みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
ファイルメーカー初心者です。
ファイルメーカー12で3点質問がございます。
1点目です。
日付フィールドの内容をイレギュラー対応できるようにブラウザモードでも編集できるようにしています。
(日付フィールドはexcelをインポートして自動入力YYYY/MM/DD ←この形式です。)
スクリプトを使用↓
・コピー「日付フィールド」
・貼り付け「テキストフィールド」
テキストフィールドが自動でYYYY/MM/DD→ YYYY年MM月DD日に表記したいのですが
どうすればいいでしょうか・・
日付フィールドの表示はYYYY年MM月DD日になっております。
ブラウザモードで編集できるようにしている意図は『開始』~『終了』
期間開始にイレギュラーで2017年12月22日、25日、26日と複数入れる場合があるからです。
2点目です。
『開始』~『終了』の~部分を『終了』があるときだけ表示させたい場合はどうすればよいでしょうか。
『終了』は日付フィールドでYYYY年MM月DD日と表示させています。
3点目です。
コントロールスタイル:ドロップダウンリスト
値一覧でフィールド値を使用しています。
このフィールド値を全レコード値からではなく現レコードの値のみにする方法はございますでしょうか。
現レコードの値か空欄かを選択できるようにしたいです。
Offline
イレギュラーの対応とは?
Replace ( Replace ( 日付 ; 5 ; 1 ; "年" ) ; 8 ; 1 ; "月" ) など、いくつか方法があります。
日付フィールドをそのままそこに配置し、インスペクタの諸式で論理式を洗濯します。Yes に "〜"、No に "" を設定します。
値一覧を、動的なものにすればいいでしょうが、ただ、現レコードのイミは?
Offline
イレギュラーの対応とは?
→上記にあります通り期間開始にイレギュラーで2017年12月22日、25日、26日と複数入れる場合があるからです。
Replace ( Replace ( 日付 ; 5 ; 1 ; "年" ) ; 8 ; 1 ; "月" ) など、いくつか方法があります。
→テキストフィールドの計算値に入力しましたが表示変わらずです。。申し訳ありませんが、詳しく教えていただけますでしょうか。
初心者でして、申し訳ございません。
日付フィールドをそのままそこに配置し、インスペクタの諸式で論理式を洗濯します。Yes に "〜"、No に "" を設定します。
→こちらインスペクタの諸式で論理式が見当たりませんでした・・ですがインスペクタのデータの書式設定を弄りましたらできました。
ヒントをいただきありがとうございます。
値一覧を、動的なものにすればいいでしょうが、ただ、現レコードのイミは?
→動的なものは検索して調べてやってみたのですが思うような形にはできませんでした。
→現レコードの意味ですが、excelに入力してもらった会社名をインポートして書面に反映させています。
他レコードの入力値も合わさってドロップダウンで検索してますと時間がかかります。
書面によっては会社名の場所を空欄にしなければならないため、「現レコードの会社名」か「空欄」を選べればと思ったのですがやはり難しいでしょうか。
Offline
Replace ( Replace ( 日付 ; 5 ; 1 ; "年" ) ; 8 ; 1 ; "月" ) など、いくつか方法があります。
→すみません、Replace (Replace ( Replace ( テキストフィールド ; 5 ; 1 ; "年" ) ; 8 ; 1 ; "月" ) ; 11 ; 1 ; "日" )を計算フィールドにいれましたらできました。
ですが2017/02/03→2017年02月03日のようになってしまい、また計算フィールドの為、テキストフィールドのように編集できずイレギュラー対応ができませんでした。
編集不可の場合は「日付フィールド」で2017/02/03日→2017年2月3日で自動でできましたので、別の設定のやりかたがございましたらご教示お願いいたします。
Offline
期間開始に複数入るというのが、意味がわかりません。
日付フィールドには、日付は1個しか入りませんね。そこに複数入れると、後の処理が難しくなりますよ。
無理に処理するとして、月跨ぎ、年跨ぎもありえますよね。
> 2017/02/03→2017年02月03日のようになってしまい
正しい表記の一つですが。日付がわも、月日に0を加えて表示すれば同じになります。
0を消したいのでしたら、Year ( 日付 ) & "年" & Month ( 日付 ) & "月" & Day ( 日付 ) & "日"
編集したいのでしたら、自動計算で、上書きをさせればいいです。ただし、複数入ると処理不可能です。
Last edited by Shin (2018-01-17 12:31:41)
Offline
月跨ぎ、年跨ぎはございません。shinさんには意味がわかないかもしれませんが、そういう処理が必要なのです・・。
申し訳ございません。初心者の為、もし可能でしたら優しい言葉を使っていただければ幸いです。
Year ( 日付 ) & "年" & Month ( 日付 ) & "月" & Day ( 日付 ) & "日"こちらでできました。
試行錯誤し、テキストフィールドに日付フィールドと新たに計算フィールドを作成し、コピーのスクリプトを使えば複数日付を入れる編集が可能でしたのでご報告いたします。
値一覧の件はいかがでしょうか。やはりそのような機能はありませんということでよろしいでしょうか・・。
Offline
意味がわからないのは、運用上のことではなく、Excel からインポートされた日付が複数入力されている、というところです。
ひょっとして、日付はもともと1個入っていて、そこに FM での編集で複数になる、ということでしょうか
> 現レコードの値か空欄かを選択
空欄にするには、ボタンなどで内容を消去すると簡単でしょう。
現レコードの値、というのは、すでに設定してある値、という意味ですか。ユニークな値があれば、それで自己リレーションを張れば、動的な値一覧を使えば可能ですが、空欄との組み合わせはできません。
無理に作るとすれば、空欄を設定するための記号などと¶で区切った文字列を作り、それを対象にすると良いです。自動入力で、入力された値を判断し空欄(内容を消去)にします。
Offline
横から、、
Excelからのインポートは単純な日付なのでしょう。
それをテキストフィールドコピーして加工したいのですよね。
テキストフィールドは入力値の自動化で、
あげられた計算式を当てれば、インポート時にテキストフィールドにも入力されます。
また、値一覧は、
そのフィールドの初期値を設定しなければ空欄ですから、
値一覧で会社名フィールドの値を表示すればいいでしょう。
それには各レコードにユニークな値のフィールドを作りそれで自己リレーション。
その関連レコードの値の動的値一覧を作ればいいですね。
そうしなくても、例えば、
そのフィールドをクリックするごとに
空欄 → 会社名 → 空欄 → ・・・
とすることも出来ますね。
Offline
会社名を空白にすることは、1行スクリプトで簡単でしょうが、空白にしてしまったモノを復元するのは、そのフィールドだけでは不可能ですよ。
Offline
スレ主さんは
> 「現レコードの会社名」か「空欄」
こう書いていますよ。
#3をもう一度・・
Offline
> excelに入力してもらった会社名をインポート
という動きのようですので、その会社名が設定されているフィールドを変更する、という意味に取っているのですが。
だからそれを空白にしてしまうと完全に消えてしまいます。
違うフィールドに会社名があるのでしたら、全然いいのですが。
そのフィールド内容をさわるより、フラグを立てて、不要な時にはオブジェクトを隠せばいいように思います。
Last edited by Shin (2018-01-19 11:17:20)
Offline
状況がよく見えていませんが、
インポートした会社名フィールドはいじらずに、
別フィールドと考えればいいことでは。
Offline
ありがとうございます。
リレーションというものを調べてやってみたのですが、やはり全レコードから拾われます。
インポートで自動反映されているフィールドA
フィールドA値を反映させたい値一覧フィールドB
上記で新しいフィールドとのことでしたのでフィールドCを作りました。
Cはユニーク値と書かれてあったのですがテキストフィールドにしますとAの値が反映されないので、計算フィールドにしてAを反映させています。
リレーションでB=Cをつなぎました。
値一覧で
フィールドの値を使用
→最初のフィールドの値を使用
リレーションで新たに作ったリレーションのC
おそらく何かが違うのでしょうが不明です。申し訳ございません。
Offline
ユニークなフィールドとは、例えば、レコード毎にシリアル番号を持たせたフィールド、などの事です。そのフィールドで自己リレーションをはり、値一覧では、フィールドの値、次のリレーションから で、リレーション先からを選びます。
上にも書いていますが、単純には空白を指定出来ませんので、一工夫必要です。また、空白を表す記号を消す為の設定も必要です。
Offline
できました!丁寧に教えていただき助かりました。
本当にありがとうございます!
Offline
[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 603.16 KiB (Peak: 619.7 KiB) ]