みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Shin 様
様々な情報をありがとうございます。
PDFファイルに書き出してそれを印刷ですか。
色々なやり方があるのですね。
ところで、なんと、Pro13のマシンを使用して管理者権限で調整したところ、隙間なく印刷することができました。
また、Pro14のマシンからも問題なく、印刷することができました。
一応の目的は達成したのですが、表頭部分とポータル部分の縦の罫線が、これまたプレビューモードと実際の印刷において微妙に(0.01ミリ程度か?)ずれています。
インスペクタを使用してオブジェクトの位置の数値情報を確認しましたが、まったく同じになっているのです。
これもWindowsの計算誤差によるものでしょうね。
まだ、やや不満は残りますが、今のところ、この問題は解決ということにさせてください。
ありがとうございました。
Shin様 いつもすみません。
400%に拡大しても同様です。
また、インスペクタの数値では、表頭部分の下辺がポータル部分の上辺より下ですので、むしろ重なっているようですが、印刷では開いてしまいます。
もう少し重なりを多くしたほうが良いということでしょうか。
ご説のように、本来はポータルは使うべきでないのかもしれません。
色々な問題が発生して、皆様のご教示により何とかリリースに近づきましたが、Pro14の隙間はともかく、Pro13の方はかなり開いていて、何とかしたいなと思います。
Windows10, FileMaker Pro Advanced14
MacOS Sierra,FileMaker Server15
の環境です。
印刷用のレイアウトにタイトルや日付とともに表頭が配置され、表頭に合うようにポータルが配置されています。
レイアウト、ブラウズ及び検索のモードでは、表頭部分とポータル部分はぴったりとあっています。
ところが、プレビューモードや実際の印刷では、わずかに隙間ができてしまいます。
Windows10, FileMaker Pro Advanced13の別のクライアントでは、この隙間がさらに遠目にもわかるくらいになっています。
このような現象の改善策をお教えください。
Shin様 色々とありがとうございました。
また、あちらこちらに同じような質問をして申し訳ありませんでした。
お陰様で、ようやくこの問題の周辺のことが分かり出しました。
解決とさせてください。
Hiro 様
まだ、「ふりがな」が入力されていないので、同姓同名に気が付かないで動作確認をしていました。
解決策としては、次のようなやり方はありでしょうか。
ただし、「顧客ID+顧客名+ふりがな+番号」のような値一覧ができるので、非常に煩わしいですね。
1 「ふりがな」フィールドのほかに、同姓同名の処理をする「ふりがな+番号」フィールドをおきます。
2 「ふりがな」フィールドに入力があったとき、「ふりがな」フィールドを検索して、当該「ふりがな」の数を数えて、その番号を付け加えたものを「ふりがな+番号」に入力する。
3 「値一覧」は、『「顧客ID+顧客名」フィールド+「ふりがな+番号」フィールド』(「ふりがな+番号」でソート)にする。
チポ 様、Shin 様 ありがとうございます。
チポ様の案で、以前にShin様からご教示いただいた方法を試してみました。
前にもお話したとおり、「顧客ID」から選択することをメインにしております。
そこで、直接IDを入力させ、そのIDに不安があるときには、「顧客ID+顧客名」の値一覧を表示してそれにより選択するようにしています。
「顧客名」から選択したいという要望があったので、その実現の手段を考えておりました。
Shin様から教えていただいたように、「顧客名」フィールドをクリックすると、その後ろに隠してある「顧客ID]フィールドのオブジェクトに移動するようにしてみました。
そして、「顧客名」フィールドに『「顧客ID+顧客名」フィールド+「ふりがな」フィールド』の値一覧(「ふりがな」でソート)を付けました。
「顧客ID+顧客名」フィールドの値が入力されたとき、「顧客ID」を抜き出して「顧客ID」フィールドに設定するスクリプトを「OnObjectModify」トリガで実行させます。
これにより、まずまずの結果が出ました。(ただし、この値一覧では「顧客ID+顧客名+ふりがな」が表示されるので、ちょっとうっとうしいですが。)
「予約」テーブルの「顧客ID」フィールドにも入力制限をかけたのは、私自身ですので、忸怩たる思いですが、これを外したところ問題なく動きます。
ありがとうございました。
なお、「ふりがな」フィールドが未入力のレコードのデータは、リストに表示されないようです。(「ふりがな」も必須入力にしないと!)
チポ 様 ありがとうございます。
「顧客管理」テーブルの「顧客ID」フィールドだけでなく、「予約」テーブルの「顧客ID」フィールドにも入力制限をかけていました。
これが原因でした。どうも余計なことをすることが多くて困ります。
また、「顧客ID」から入力することを原則にしますが、「顧客ID」をすぐに確認できないときに「顧客名」から入力しようとしています。
同姓同名で「顧客ID」が近い場合はほとんどありませんので、「顧客ID」で判別できると判断しております。
Hiro 様
「3連装の動的値一覧」とは何なんでしょうか。
だんだん難しくなってちょっと手が付けられないかも知れません。
Hiro 様 ありがとうございます。
Hiro 様からお示しいただいた方法も、良い方法だと思いますが、顧客数が現在5,000人以上あり、次第に増えていく状況です。
また、地方のため、同じ姓の人が非常に多く、名前(ふりがな)までないと難しいのです。
例えば、渡辺(異字体を含む。)が600人以上いるのです。
同姓同名への対処は、「顧客ID」で行うことになります。
このテーマについて、チポ 様に再質問があります。
以前のお答えに
無理無理ですが、、
顧客IDと顧客名を連結したフィールドを作り、
値一覧をそのフィールドとふりがなフィールドにする。
実際の入力は、
スクリプトで顧客IDか顧客名(どちらか書かれていません)だけにする。
このスクリプトをトリガで実行させればいいでしょう。
とありますが、
これで入力しようとすると、フィールドが数値のため入力できない旨のメッセージが出ます。
どのようなスクリプトをどのトリガにつけたらよいのですか。
手取り足取りのようで申し訳ありませんが、よろしくお願いします。
皆さま お騒がせしました。
レイアウト設定の「印刷」で段設定をしておりました。
その上、プリンターの設定で「集約」というのを設定して、2ページを1ページに印刷するようにしていました。
これが原因でしたので、この両方の設定を外し、レイアウトをコピーして横に二つ並べました。
この方法で、1ページに同じものが2つ印刷されるようになりました。
ただし、ブラウズモードでも同じものが2つ表示されるので、ここでは1つだけ表示することができないかと思っています。
ところで、RICOH MP C4504を使用しています。
A5程度のレイアウトを横に2つ並べてA5の用紙に印刷したいのですが、「用紙」をA5にして、A4をA5に縮小すると、さらに小さく印刷されます。
どうも、この場合は「用紙」をA4にしなくてはならないようですので、普通の感覚(「用紙」とは、印刷されて出てくる紙の大きさ)からずれていますね。
これも、混乱の原因でした。
最後に、ブラウズモードでは2つ並べたレイアウトの一方だけが表示される方法があれば、教えてください。
Shin 様 ありがとうございました。
「顧客ID_5桁」などの計算フィールドがどのように使われているかを検討し、支障が出ないことを確認したうえで、解消したいと思います。
時間がかかるとは思いますが、やってみます。
本当にありがとうございました。
ひぐらし 様 ありがとうございます。
なんとなくモヤモヤしていたものが、徐々に解消してまいりました。
まだ、完全というわけではないのですが、このトピックについては全体として何とかなりそうですので、解決とさせてください。
> グローバルフィールドが配置されているテーブルを単純な表形式のレイアウトで見てみましたら、何も入力されていませんでした
何か入力してみないと・・
これは、保存されない仕様かもしれません。
別個に新たなテーブルにグローバルフィールドに作って、データを入力してみます。
チポ 様 ありがとうございました。
チポ 様、ひぐらし 様 ありがとうございます。
グローバルフィールドが配置されているテーブルを単純な表形式のレイアウトで見てみましたら、何も入力されていませんでした。
レイアウトに配置されるフィールドは、何らかのテーブルのフィールドのみに限定されるというFileMakerの仕様があるため、スクリプト等で使用する変数以外には、テーブル上のフィールドと無関係なデータを一時保管する場所がないことの回避として、グローバルフィールドがあるということでしょうか。
ちょっと前に、変数以外にデータをどこかに保管して、それを利用して計算ができればなあと思ったことがありました。
こうした目的に使用できるのでしょうか。
そうすると、グローバルフィールドは、どのテーブルに配置しても同じだということになるように思いますが、間違っていますでしょうか。
Shin 様、Hiro 様 本当にありがとうございます。
ある顧客の予定を抜き出すレイアウトで、顧客「234」の予定を抜き出すはずが、「1234」や「2234」も抜き出されました。
顧客IDの前に「00」を付けてみたところ重ならないことが分かりましたので、開発者にその旨伝えました。
そうしたら、「0」で埋めたフィールドを作って、数値フィールドの顧客IDからの計算で表示される「顧客ID_5桁」が作成されました。
比較はこの「顧客ID_5桁」で行われています。
もしかしたら、数値フィールドをテキストの比較方法で比較していたのかもしれません。
これらの計算フィールドの駆逐は、まだ私の能力では困難と思われます。
もう少し勉強したいと思います。
なかなか上達しない生徒ですが、今後ともよろしくご指導いただきたいと存じます。
追伸
Shin様にお尋ねがあります。
おっしゃっている方法では、タイプ「数字」のフィールドのままで、オプションの「入力値の自動化」の「計算値」にその計算式を入れればよいということでしょうか。
この場合、「00」は付いていても、システム上数値として取り扱われるということでよろしいでしょうか。
チポ 様
テーブル上のフィールドにもかかわらず、「レコードに依存しないフィールド」とはどういうことですか。
フィールドはレコードの一部ではないのですか。
そこのところが、いまいちわからないのです。
チポ 様、Hiro 様
いつもありがとうございます。
やはり2つ以上のフィールドを連結する計算フィールドを作るわけですね。
もともと、改定を迫られているソリューションファイルの各テーブルには、本来的に必要なフィールド以外に計算で作られるフィールドがたくさんあるのです。(本来の3~5倍)
例えば、数値の「顧客ID」の「234」と「1234」が混同されないように、「顧客ID_5桁」という計算フィールドを置いて「0234」のようなデータを格納しています。
それも複数のテーブルで同じような計算がされています。
またまた、計算フィールドが増えるのかと思うとちょっとがっくりときています。
しかし、それしか方法がないのであれば仕方ありません。
皆様から提示していただいた案を下敷きに考えてみます。
本当にありがとうございます。
ああ!!
その「グローバルフィールド」なるものの正体がわかりません。
ヘルプを読んでみたり、ネットで検索してみましたが、いまいちピンときません。
次の解説は、比較的分かりやすいと思いますが、まだもやもやしています。
素人のために、もう少し丁寧に分かりやすく教えていただきたく存じます。
グローバルフィールドを活用しよう (FileMaker 12)
2013年02月01日 08:03 PM ファイルメーカーのTips
今回のテーマは、グローバルフィールドです。
FileMaker初心者の方向けになると思いますがよろしくお願いいたします。
グローバル格納が定義されたフィールドを、「グローバルフィールド」と呼びます。ヘルプはこちら(v12)
【グローバル格納】とはファイル内のレコード全てに共通した値を格納できるということです。
通常のフィールドがレコード単位でデータを保持するのに対し、グローバルフィールドはテーブル単位でデータを保持するというイメージです。 レイアウト上に非関連テーブルのフィールドを配置した際、通常であれば<非関連テーブル>と表示され入力できません。
しかし、そのフィールドがグローバルフィールドであれば入力可能となります。
リレーションシップの「照合フィールド」として使用することもできます。 設定方法は、データベース管理画面からオプションボタンで[フィールドのオプション]を開き、データの格納タブにある【グローバル格納を使用する】にチェックを入れるだけです。(下図)
このままだと、検索やレコードの修正を行ったあとで「登録」ボタンをクリックすると、どんどん空のレコードが増えていってしまいます。
なんとかなりませんか。
「顧客ID」と「顧客名」のフィールドを使った値一覧のドロップダウンリストから入力してもらいたいと思います。
この場合、「顧客名」が漢字で登録されているので、これでソートすると音読み順になってしまいます。
顧客管理テーブルに「ふりがな」フィールドを追加して、「ふりがな」順にソートしたいと思いますが、どのような手立てがありますか。
ちなみに、値一覧のソート順は第1フィールドか第2フィールドのどちらかを選択するようになっていて、第3のフィールドによるソートが用意されていないようですが。
このところ、、またまたFileMakerの構造が分からなくなりました。(混乱しています。)
お力を貸してください。
顧客データを追加するフォームを作りたいと思います。
この場合、「登録」ボタンを置いて、いくつかのフィールドにデータが入力されていれば、新たなレコードを表示して登録を続けるようにしたいと思います。
ボタン設定で次のようなスクリプトを置けばよいのかなと思いますが、これだけでよいのか自信がありません。
IF ( IsEmpty ( 顧客管理::顧客ID ) or IsEmpty ( 顧客管理::顧客名 )
カスタムダイアログを表示 (”OK” , "顧客登録には、少なくとも「顧客ID」と「顧客名」の入力が必要です。" )
現在のスクリプト終了 [ ]
Else
新規レコード/検索条件
EndIf
チポ 様 ありがとうございます。
ですが、ファイルメニューの印刷設定でも、A4横になっています。
また、レイアウトモードで、表示メニューのページ余白を表示させても、下におおきな余白はありません。
ところで、ブラウズモードのときだけ非表示(プレビューモードや実際の印刷時には表示)にすることができないでしょうか。
Shin 様 いつもお世話になります。
段数はおっしゃるとおりだと思います。
ただし、2ページ目以降が意図した状態になっていないので、まったく訳の分からないことになってしまいました。
もともと必要なのは、まったく同じ2つのレイアウトを1枚に印刷したいのです。
そこで、レイアウト全体をコピーして、横に貼り付けることで実現しました。
ポータルについては、もしかしたらレイアウトのテーブルのレコード絞り込まず、ポータルのレコードにフィルタをかけただけなのかも知れません。
もう少し調査してみます。
色々ありがとうございました。
印刷用のレイアウトは、A4版横の設定になっています。
プレビューモードでも横向きにほぼぴったりと収まっています。
しかし、実際に印刷するとA4版の用紙が縦に使われ、その上段半分(A5版横の状態)に印刷されます。
この現象に心当たりがあれば、対処方法を教えてください。
チポ 様 ありがとうございました。
スクリプトで「対象レコードを対象外に」「対象外のみを表示」を印刷ボタンにつけて実現できました。
ところが、印刷設定やらなにやら、色々やっていたらこのスクリプトが無くても、またプレビューモードでも、表示されるようになりました。
何がなんだかわからない状態です。
また、印刷設定などの途中で、「レイアウト設定」で「印刷」タブの「印刷時の段数」を「2」に設定したところ、同じものが横に2つ並んで印刷されました。
A4版縦の上部に2つ並んで印刷されたので、A5版にすれば用紙の無駄がないかと思って変更したら、場外になってしまって印刷できませんでした。
その後、2つ並んで印刷する設定がどうしてもできなくなりました。
どうなっているのか、まったくわからなくなりました。
FileMakerは非常に難しいですね。
[ Generated in 0.010 seconds, 7 queries executed - Memory usage: 721.27 KiB (Peak: 775.56 KiB) ]