みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
ありがとうございます、Shin様の方法で無事希望通りの仕組みを構築する事が出来ました。
大変助かりました、いつもありがとうございます。
いつもお世話になっております。
タイトル通り、作成日から一年以上経過したレコードをスクリプトで絞り込みたいのですが、
具体的な方法が分からず、どなたかご教授頂ければ幸いでございます。
「作成日(日付フィールド)」の値が本日より1年以上経過していた場合、
「一年経過レコード(テキストフィールド)」に "経過" と入力するスクリプトを作りたいです。
何か良い方法がございましたら、是非アドバイス頂ければと思います。
himadanee様
情報ありがとうございます!確認してみます!
皆様もご回答頂きありがとうございました!ひとつひとつ検証してみようと思います!
今後とも宜しくお願い致します!
皆様ご回答ありがとうございます!
中々聞きなれない関数などが多く、解決には至っていないのですが、参考にさせて頂きます!
尚、現在使用中のバージョンは
FileMaker Pro 17 Advanced
17.0.2.205
です!
また、himadanee様の仰っておりました「データファイルを利用」に関してですが、こちら参考になるwebページなどありますでしょうか?
キーワードで検索してもそれらしいページがヒットせず、可能でしたらご教授頂ければと思います!
チポ様
コメントありがとうございます!
「次のフィールドへ移動」を使用すると良いという事でしたが、具体的にどのように使えば良いか分かりませんでした!
察しが悪く申し訳ないのですが、詳しくご教授頂けると助かります!
以下のような状況で、どのように活用すれば良いのでしょうか?
フィールド内容のエクスポートを使用し、テーブルA::オブジェクトフィールドAをHTMLファイルとして出力したい時、
現在は「フィールド内容のエクスポート」のプルダウンからテーブルA::オブジェクトフィールドを選択する所を、
事前に変数を設定しておき、$変数A = テーブルA::オブジェクトフィールドA とした時、
「$変数A」を使用してファイルの書き出しを行いたい
以上、何卒宜しくお願い致します!
いつもお世話になっております。
表題の通りなのですが、「フィールド内容のエクスポート」は、プルダウンから希望するフィールドを選択してデータを出力する形になると思いますが、これを変数などを用いた計算式でフィールドを指定する事は出来ないのでしょうか?
何か良い方法があればご教授願いたいです、何卒宜しくお願い致します。
Moz 様
コメントありがとうございます!結論から申し上げますと何もかも上手くいきました!
ご用意頂いたサンプルのスクリプト等も拝見させて頂き、大変参考になりました!
丸一日色々と実験して上手くいかず心が折れそうでしたが、
ご教授頂いた通りやってみたら全てが期待通りの結果となり、笑みがこぼれ落ちて顔が無くなりました!
本当にありがとうございます!!
himadanee様
コメントありがとうございます!これはオブジェクトフィールド用の関数なのですね!
では、テキストフィールドをフィールド内容のエクスポートで書き出す際、他に良い方法は無いでしょうか?
もし何かあればご教授頂きたいです!宜しくお願い致します!
いつもお世話になっております、懲りずに質問させて頂きます。
スクリプトで、フィールド内容のエクスポートを行う際に、文字コードをutf-8に変更して出力したいのですが、うまくいきません。
フィールド設定 [ テーブル::フィールドA ; TextEncode ( テーブル::フィールドA ; "utf-8" ; 1 ) ]
フィールド内容のエクスポート [ テーブル::フィールドA ; "output.txt" ]
このように行っているのですが、結果はフィールドAに、テキストとして"utf-8"という文字列が入ってしまい、エクスポートをしてもその文字列だけが収まったデータが出力されてしまいます。
原因が分かる方がいらっしゃいましたらご教授願いたいです、宜しくお願い致します。
Hiro 様 himadanee 様
コメントありがとうございます!
>集計作業用の汎用テーブルを「バーチャル・リスト」の考え方で、1テーブルだけ追加すれば十分でしょう。
大変申し訳ございません、、初心者の自分には何が何だかという感じで、、やはり根本的な勉強が必要ですね、、
>ODBC共有設定をして「SQLを実行」にすると、複数のフィールドを一度に全置換できます。
こちらも上記の通り、何が何だかというのが正直な感想です、、、
自分がファイルメーカーを使い始めた当初は、まだ商品数も少なく管理も簡単だったのですが、
最近になって色々なキャラクターの製品を取り扱うようになり、商品数も多くなり、
もう自分の能力では管理出来ないという事を痛感致しました。。
もちろん、コツコツと勉強すれば出来るのかもしれませんが、
ファイルメーカーの勉強以上に、商品の仕入れなど利益に直結する仕事も多数転がっており(むしろそっちが自分の本業)
そういった事を考慮しても、何もかも自分でやる事は大変非効率だと思いました。。
今朝会社の会議で、今後は誰か良さそうな方を探して、その方に全面的に設計管理等お願いする方向で決まりました!
個人的にファイルメーカーは大好きなのでまた質問などさせて頂くかと思いますが、その時はどうぞ宜しくお願い致します!
チポ 様
コメントありがとうございます!
GetField関数は、使い方を今回初めて知ったので大変勉強になりました!
ありがとうございます!!
チポ様
コメントありがとうございます!
>Get ( アクティブフィールドテーブル名 )がありますから、
>いずれかのフィールドに移動すればそのテーブル名が得られます。
こんな便利な関数があるのですね!!それならば仰る通りテーブル名を変数にする必要はありません!!
>テーブル名不要で
>GetField ( "フィールドA" )
>これでいいです。
これは、そのテーブルに滞在しているから、わざわざテーブル名を指定する必要が無く、フィールド名の指定だけで希望する値が取り出せる、というような解釈で良いのでしょうか?
>フィールドDを計算フィールドとできない理由があるのでしょうか?
根本的には自分の設計に問題があると思うのですが、現在ECサイトのページを書き出すシステムを構築しているのですが、
計算フィールドを多用し過ぎてファイルがものすごく重くなってしまって、
その為になるべくテキストフィールドを使うようにしています。
計算式も、今回は例として分かりやすくするため短いですが、実際には色々なテーブルとリレーションして、
様々な情報をあっちこっちから引っ張ってくるような内容となっており、
また、現在計画している仕組みが膨大なページ数になる見通しなので、なるべく軽くしたいと思っています、、
別トピでも相談させて頂いており、そのコピペとなりますが、
以下のような仕組みを考えております。
------------------------------------------------
現在、ネット通販ページのソート機能(価格順、人気順、カラー別など)を疑似的にHTMLファイルのみで再現する仕組みを構築しており、
膨大な数のファイルを書き出すスクリプトが必要となっております。
※楽天市場やYahooショッピングでも使用する為、データベースから情報を引き出すような操作が出来ず、そのような設計を考えています。
ブランド毎のページ 37レコード
カテゴリ(大)毎のページ 18レコード ※トップス等
カテゴリ(小)毎のページ 42レコード ※Tシャツ等
上記の三種類のページ内で、
カラーで絞り込む(黒系、白系、赤系など全15色)
並び替え(価格順、人気順など全6通り)
表示切替(説明文を交え全カラーを表示させた詳細リストと、カラー毎に価格とレビュー点数・件数だけを掲載したサムネリストの2種類)
このようなソートが出来る仕組みを考えております。
そこで、以下のような54テーブルを用意し、
・ブランドページ 詳細リスト お勧め順
・ブランドページ 詳細リスト 価格安い順
・ブランドページ 詳細リスト 価格高い順
・ブランドページ 詳細リスト レビュー件数順
・ブランドページ 詳細リスト レビュー点数順
・ブランドページ 詳細リスト 月間売上順
・ブランドページ サムネリスト お勧め順
・ブランドページ サムネリスト 価格安い順
・ブランドページ サムネリスト 価格高い順
・ブランドページ サムネリスト レビュー件数順
・ブランドページ サムネリスト レビュー点数順
・ブランドページ サムネリスト 月間売上順
・ブランド×カラーページ サムネリスト お勧め順
・ブランド×カラーページ サムネリスト 価格安い順
・ブランド×カラーページ サムネリスト 価格高い順
・ブランド×カラーページ サムネリスト レビュー件数順
・ブランド×カラーページ サムネリスト レビュー点数順
・ブランド×カラーページ サムネリスト 月間売上順
・大カテゴリページ 詳細リスト お勧め順
・大カテゴリページ 詳細リスト 価格安い順
・大カテゴリページ 詳細リスト 価格高い順
・大カテゴリページ 詳細リスト レビュー件数順
・大カテゴリページ 詳細リスト レビュー点数順
・大カテゴリページ 詳細リスト 月間売上順
・大カテゴリページ サムネリスト お勧め順
・大カテゴリページ サムネリスト 価格安い順
・大カテゴリページ サムネリスト 価格高い順
・大カテゴリページ サムネリスト レビュー件数順
・大カテゴリページ サムネリスト レビュー点数順
・大カテゴリページ サムネリスト 月間売上順
・大カテゴリ×カラーページ サムネリスト お勧め順
・大カテゴリ×カラーページ サムネリスト 価格安い順
・大カテゴリ×カラーページ サムネリスト 価格高い順
・大カテゴリ×カラーページ サムネリスト レビュー件数順
・大カテゴリ×カラーページ サムネリスト レビュー点数順
・大カテゴリ×カラーページ サムネリスト 月間売上順
・小カテゴリページ 詳細リスト お勧め順
・小カテゴリページ 詳細リスト 価格安い順
・小カテゴリページ 詳細リスト 価格高い順
・小カテゴリページ 詳細リスト レビュー件数順
・小カテゴリページ 詳細リスト レビュー点数順
・小カテゴリページ 詳細リスト 月間売上順
・小カテゴリページ サムネリスト お勧め順
・小カテゴリページ サムネリスト 価格安い順
・小カテゴリページ サムネリスト 価格高い順
・小カテゴリページ サムネリスト レビュー件数順
・小カテゴリページ サムネリスト レビュー点数順
・小カテゴリページ サムネリスト 月間売上順
・小カテゴリ×カラーページ サムネリスト お勧め順
・小カテゴリ×カラーページ サムネリスト 価格安い順
・小カテゴリ×カラーページ サムネリスト 価格高い順
・小カテゴリ×カラーページ サムネリスト レビュー件数順
・小カテゴリ×カラーページ サムネリスト レビュー点数順
・小カテゴリ×カラーページ サムネリスト 月間売上順
※カラー別ページはキャラクター的に全カラー表示の詳細リストは不要なので、テーブルを用意しておりません
この54テーブルを、ブランド別のデータベースを抱えたテーブルや、商品別に価格などの情報を持ったテーブルとリレーションさせて、
そのリレーションのソートルールを価格の昇順や、レビュー件数順などに設定する事で、希望するHTMLソースをList関数などを用いて出力させようとしています。
カラーやソートなどのパターンを掛け合わせると、ザックリ計算しても約2万~3万ページが必要となるのですが、
基本的に上記の54テーブルは、全て同じ仕組みでHTMLソースを書き出すので、
一連のスクリプトを、テーブル名だけを変えて54回スクリプトを回せば出力できると見込んでおります。
この「一連のスクリプト」内では、複数回の「フィールド内容の全置換」関数が使用されるのですが、
現状はこの全ての関数に個別にアクセスして、テーブル名をプルダウンから選択する、という作業をしており、
更にはその作業をテーブル数である54セット繰り返さなければならず、かなりの作業量が見込まれます。
そこで、スクリプト冒頭でテーブル名を変数として設定し、以下のような形で、その冒頭の変数だけを変えれば全て片が付くスクリプトに出来ないかと模索しております。
例)
【変数を設定】 $テーブル名 → "ブランドページ 詳細リスト お勧め順"
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドA" ) → 計算式A
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドB" ) → 計算式B
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドC" ) → 計算式C
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドD" ) → 計算式D
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドE" ) → 計算式E
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドF" ) → 計算式F
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドG" ) → 計算式G
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドH" ) → 計算式H
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドI" ) → 計算式I
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドJ" ) → 計算式J
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドK" ) → 計算式K
・
・
・
-------------------------------------
別トピで既にご指摘頂いておりますが、そもそも、最終的にはHTMLページとして書き出したいので、フィールドに値を落とし込む必要すら無いのだと思うのですが、
では具体的にどうするのという事が一切見当もつかず、仕方なくアナログな方法で作業しています、、
Shin様
いつもコメントありがとうございます!
>FIleMaker に限らず、このように大量のデータを系統的に扱う際の効率的な方法を、まず習得するべきでしょう。
その通りだと思います、、以前こちらの掲示板で良い勉強用の資料をご紹介頂き、そういった教材でもって基礎的な知識やテクニックを身に着けるべきだと感じております、、
しかしながら、目の前の仕事として撮影やコピーライトなどがあり、中々勉強に時間を割けない状況でございます、、
ファイルメーカーはアマゾンで購入出来る初心者用の参考書を数冊読んだ程度でして、最初の内はその程度の知識でも十分便利にファイルメーカーを使えておりました(元々はエクセルを使って強引に管理していたので、)
しかし、サイトが複雑になるにつれて、予期せぬエラーやトラブルが起こるようになり、対処しきれない状況です。。
>まぐろを、ペティナイフでさばくようなものです。
そうなんです、、、非常に的確な例えで、全くもってそのような状況である事は重々理解しているのですが、、
例えるならば皆さんはマグロ包丁どころか、最新のデジタル機器でオートマチックにマグロをさばいているように見えまして、
タイピングすらできない自分には、そんなデジタル機器はチンプンカンプン、、でも捌かなければならないマグロは次々にやってくるという感じで、
まさに、ペティナイフが使えれば、それとなく感覚で使えるマグロ包丁くらいの知識が欲しいという感じです、、!
デジタル機器を使用している人にとって、マグロ包丁なんて時代遅れかもしれませんが、ペティナイフしか無い自分としてはものすごく即戦力なのです!!
先日、1時間1万円で色々とスカイプでファイルメーカーの事を教えて頂けるサービスを利用したのですが、
レイアウト編集ページで、右上のアイコンを押すと左側にフィールド一覧が出てきて、
ここからまとめてフィールドを配置出来る事を知り感動しました、、!!(今までは1つ1つ、上部のフィールドツールをつかってたくさんのフィールドを配置してました、、その為画面もグチャグチャです、、)
このレベルのマグロ包丁くらいの知識で心から感動するレベルです!!泣
しかし、いつかはデジタル機器が使えるようにならないとなと思いつつ、中々時間が作れずに今の状態です。。
理想は、マグロ解体工場に丸ごと仕事をぶん投げたいくらいなのですが、、下手なりに、これこれこういう風に解体したいというコダワリだけは強いと思うので、
外注するにしても、要望を伝えるには相当な時間が掛かるだろうし、そもそもどこに外注すれば良いのかも分からない、、そんな感じです、、
こんな者の為にいつもコメント頂き心から感謝しております!
>上にあるリスト、というテーブルは全て動的に作るべきもので、保存しておくモノでは無いでしょう。リストがあれば、html への書き換えも単純なのでは。
そうですよね、、自分は元々デザイナーで、以前は優秀なプログラマーの方と一緒に仕事をしていたので、
大体こういう感じの事は出来るんだろうな、という事だけは何となく分かってはいるのですが、
いざ自分で作業しようと思うと、ありとあらゆる事が分からず手詰まりになってしまい、
結局自分で分かる範囲のアナログな方法に落ち着いてしまいます、、
きっと仰る通り、こんな回りくどい事をしなくても、もっと簡単に希望する結果に出来ると思うのですが、、
やはり勉強が必要ですね、、また何か分からない事があった時はご相談させて頂くかと思いますが、
今後とも何卒宜しくお願い致します、、!!
Moz 様
せっかくコメント頂いたのにも関わらず、申し訳ございません、、
正直に言うと、「[Loop]と[フィールドを名前で設定]を利用すれば代用できます。」という言葉を聞いても、
具体的にどういった事を行えば良いのか想像がつかず、また、そのような質問をしてしまうと返って質問を複雑にしてしまうと感じた為、
自分が分かる範囲内での質問に絞らさせて頂きました、、
ご提案頂いた内容も、大変申し訳ございませんが私には全く理解する事が出来ませんでした、、
やはり、まずは根本から勉強をし直さないとファイルメーカーは使えないと感じました、
今回は何とか力業で乗り越えようと思います、ご回答頂いた皆様、本当にありがとうございました!
Moz様
コメントありがとうございます!先程長文のコメントを投稿させて頂きました際にすれ違いとなってしまいました!申し訳ございません!
>[フィールド内容の全置換]を使わずに[Loop]と[フィールドを名前で設定]を利用すれば代用できます。
ご教授頂きありがとうございます!実はその方法も視野には入れているのですが、現在組んでいるスクリプトの根本が覆されてしまう事になると思っており、出来ればフィールド内容の全置換で対応出来ればと考えております、、
詳細に関して先程のコメントのような形で細かく説明させて頂こうとも思いましたが、再びものすごい長文になってしまいそうなので、大変心苦しいのですがここでは割愛させて頂きます、、
あくまでも「フィールド内容の全置換」をどうやって効率的に設定するか、そこだけを焦点に出来れば幸いでございます。。
せっかくご教授頂いたのにも関わらず、本当に申し訳ございません!
himadanee 様
コメントありがとうございます!
>そこは繰り返しフィールドの繰り返し数を指定する場所です。
>フィールド自体を計算で指定することはできません。
そういう事なのですね!理解致しました!
>フィールドでなくテーブルを変えて1つのスクリプトで兼用したいように読めますが?
申し訳ございません!挙げた例は分かりやすく説明するための例でして、実際には状況が異なります!
色々と複雑なスクリプトになってしまっており、実例を挙げるとややこしくなってしまうなと思い、そのような質問にさせて頂きました!
一言注意文を書き入れるべきでした!申し訳ございません!
長くなってしまうと思いますが、出来るだけ簡潔に、
現在構築したい仕組みの概要を紹介させて頂きます!
現在、ネット通販ページのソート機能(価格順、人気順、カラー別など)を疑似的にHTMLファイルのみで再現する仕組みを構築しており、
膨大な数のファイルを書き出すスクリプトが必要となっております。
※楽天市場やYahooショッピングでも使用する為、データベースから情報を引き出すような操作が出来ず、そのような設計を考えています。
ブランド毎のページ 37レコード
カテゴリ(大)毎のページ 18レコード ※トップス等
カテゴリ(小)毎のページ 42レコード ※Tシャツ等
上記の三種類のページ内で、
カラーで絞り込む(黒系、白系、赤系など全15色)
並び替え(価格順、人気順など全6通り)
表示切替(説明文を交え全カラーを表示させた詳細リストと、カラー毎に価格とレビュー点数・件数だけを掲載したサムネリストの2種類)
このようなソートが出来る仕組みを考えております。
そこで、以下のような54テーブルを用意し、
・ブランドページ 詳細リスト お勧め順
・ブランドページ 詳細リスト 価格安い順
・ブランドページ 詳細リスト 価格高い順
・ブランドページ 詳細リスト レビュー件数順
・ブランドページ 詳細リスト レビュー点数順
・ブランドページ 詳細リスト 月間売上順
・ブランドページ サムネリスト お勧め順
・ブランドページ サムネリスト 価格安い順
・ブランドページ サムネリスト 価格高い順
・ブランドページ サムネリスト レビュー件数順
・ブランドページ サムネリスト レビュー点数順
・ブランドページ サムネリスト 月間売上順
・ブランド×カラーページ サムネリスト お勧め順
・ブランド×カラーページ サムネリスト 価格安い順
・ブランド×カラーページ サムネリスト 価格高い順
・ブランド×カラーページ サムネリスト レビュー件数順
・ブランド×カラーページ サムネリスト レビュー点数順
・ブランド×カラーページ サムネリスト 月間売上順
・大カテゴリページ 詳細リスト お勧め順
・大カテゴリページ 詳細リスト 価格安い順
・大カテゴリページ 詳細リスト 価格高い順
・大カテゴリページ 詳細リスト レビュー件数順
・大カテゴリページ 詳細リスト レビュー点数順
・大カテゴリページ 詳細リスト 月間売上順
・大カテゴリページ サムネリスト お勧め順
・大カテゴリページ サムネリスト 価格安い順
・大カテゴリページ サムネリスト 価格高い順
・大カテゴリページ サムネリスト レビュー件数順
・大カテゴリページ サムネリスト レビュー点数順
・大カテゴリページ サムネリスト 月間売上順
・大カテゴリ×カラーページ サムネリスト お勧め順
・大カテゴリ×カラーページ サムネリスト 価格安い順
・大カテゴリ×カラーページ サムネリスト 価格高い順
・大カテゴリ×カラーページ サムネリスト レビュー件数順
・大カテゴリ×カラーページ サムネリスト レビュー点数順
・大カテゴリ×カラーページ サムネリスト 月間売上順
・小カテゴリページ 詳細リスト お勧め順
・小カテゴリページ 詳細リスト 価格安い順
・小カテゴリページ 詳細リスト 価格高い順
・小カテゴリページ 詳細リスト レビュー件数順
・小カテゴリページ 詳細リスト レビュー点数順
・小カテゴリページ 詳細リスト 月間売上順
・小カテゴリページ サムネリスト お勧め順
・小カテゴリページ サムネリスト 価格安い順
・小カテゴリページ サムネリスト 価格高い順
・小カテゴリページ サムネリスト レビュー件数順
・小カテゴリページ サムネリスト レビュー点数順
・小カテゴリページ サムネリスト 月間売上順
・小カテゴリ×カラーページ サムネリスト お勧め順
・小カテゴリ×カラーページ サムネリスト 価格安い順
・小カテゴリ×カラーページ サムネリスト 価格高い順
・小カテゴリ×カラーページ サムネリスト レビュー件数順
・小カテゴリ×カラーページ サムネリスト レビュー点数順
・小カテゴリ×カラーページ サムネリスト 月間売上順
※カラー別ページはキャラクター的に全カラー表示の詳細リストは不要なので、テーブルを用意しておりません
この54テーブルを、ブランド別のデータベースを抱えたテーブルや、商品別に価格などの情報を持ったテーブルとリレーションさせて、
そのリレーションのソートルールを価格の昇順や、レビュー件数順などに設定する事で、希望するHTMLソースをList関数などを用いて出力させようとしています。
カラーやソートなどのパターンを掛け合わせると、ザックリ計算しても約2万~3万ページが必要となるのですが、
基本的に上記の54テーブルは、全て同じ仕組みでHTMLソースを書き出すので、
一連のスクリプトを、テーブル名だけを変えて54回スクリプトを回せば出力できると見込んでおります。
この「一連のスクリプト」内では、複数回の「フィールド内容の全置換」関数が使用されるのですが、
現状はこの全ての関数に個別にアクセスして、テーブル名をプルダウンから選択する、という作業をしており、
更にはその作業をテーブル数である54セット繰り返さなければならず、かなりの作業量が見込まれます。
そこで、スクリプト冒頭でテーブル名を変数として設定し、以下のような形で、その冒頭の変数だけを変えれば全て片が付くスクリプトに出来ないかと模索しております。
例)
【変数を設定】 $テーブル名 → "ブランドページ 詳細リスト お勧め順"
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドA" ) → 計算式A
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドB" ) → 計算式B
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドC" ) → 計算式C
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドD" ) → 計算式D
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドE" ) → 計算式E
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドF" ) → 計算式F
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドG" ) → 計算式G
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドH" ) → 計算式H
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドI" ) → 計算式I
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドJ" ) → 計算式J
【フィールド内容の全置換】GetField ( $テーブル名 & "::" & "フィールドK" ) → 計算式K
・
・
・
現在は、ご教授頂いた通りフィールド内容の全置換は対象フィールドが計算式で指定出来ない為、全てプルダウンから選んでいるのですが、
とにかく作業工数が多く、加えて設定ミスも予測されるので、何とか改善出来ないものか模索しております。
恐らく、根本的にもっと効率的なやりかたはあると思うのですが、
何分私がファイルメーカーに疎く、仮に業者に依頼する等して自分の知らない方法でシステムを構築してしまうと、
今後の改修なども出来なくなってしまうので、上記のようなアナログな方法で何とか希望する形にしたいと考えております。
※本業がwebデザインや撮影、コピーライト等でして、プログラミング関係は出来るだけ時間をかけず、分かりやすい方法で、手が届く範囲でという形でやっています、
また、上記説明だけですと「ブランドやカテゴリが増える度にレコードを増やす必要があり、労力では?」「ページ数が多すぎて計算フィールドで行うにしても重すぎて動かないのでは?」「そんなにフィールド内容の全置換を使う必要は無いのでは?」など、
様々な疑問点が生まれてしまう事は重々承知しておりますが、この辺りを全て解説していくと大変な文章量になってしまうと思うので、
勝手な言葉で本当に申し訳ないのですが、一旦その辺りは見逃して頂ければと思います、、
例えば「ブランドやカテゴリが増える度にレコードを増やす必要があり、労力では?」に関しては、
スクリプト開始と同時に全てのテーブルの全てのレコードを削除し、ブランドマスタやカテゴリマスタといったデータベースを利用して、
自動的に必要なレコードが生まれるような仕組みを既に構築し、解決しております。(こちらもとてもアナログな方法ですが、、)
また、1つのサイトだけでなく、楽天やYahooといった支店のページも出力する必要があり、そのために諸々のリンク先URLも異なり、更にはPCとスマホでソースが違うなど、
様々な要因もあってフィールド内容の全置換が多数出て参りまして、計算が複雑になっております。
それ以外にも、恐らくこういう事が疑問になってしまうだろうな、という点はいくつか思いつくのですが、
本当に心苦しいですがここでは割愛させて頂きますので、何卒ご容赦頂ければと思います、、
中には、実際に回りくどい方法で設計している事も重々承知しております。
素晴らしいアドバイスを頂けることは大変嬉しいのですが、本当に申し訳なく感じております。
しかしながら、HTMLページを書き出すという事においては、力業であまり美しくはないかもしれませんが、既に実験して成功しており、
あとはどうやって効率的にスクリプトを構築するか、そして上記の通り「フィールド内容の全置換」をどうやって効率的に設定するか、そこだけが課題になっております。
解決が難しいようであれば、フィールド内容の全置換に関しては全ての関数に入って、全てプルダウンから選択するという力業で乗り越えようと覚悟はしております。。
このような状況なのですが、いかがでしょうか?
何か良いアイデアがあればご教授願いたいです、宜しくお願い致します。
いつもお世話になっております。
スクリプトにある「フィールド内容の全置換」では、ターゲットフィールドの指定をプルダウンより行う必要があるかと思いますが、
この指定を計算式を用いて行う事は可能でしょうか?
イメージ的には以下のような形です。
目的・・テーブルAの中にあるフィールドAを、「フィールドB & "のページ"」という計算式でフィールド内容の全置換を行いたい
↓
「変数の設定」$テーブル名 → "テーブルA"
「フィールド内容の全置換」
ターゲットフィールドの指定 → GetField ( $テーブル名 & "::" & "フィールドA" )
計算式の指定 → フィールドB & "のページ"
ターゲットフィールドの指定ダイアログ内に「指定」というボタンがあり、これをクリックすると計算式入力フィールドが出たので、ここに「GetField ( $テーブル名 & "::" & "フィールドA" )」と指定を行いましたが、エラーとなってしまいました。
何か良い方法はありますでしょうか?何卒宜しくお願い致します。
チポ様
度々申し訳ございません!頂いた情報を元に色々と実験して考えてみたのですが、恐らく答えが出ました!
以下のような事をご提案頂いていた、という解釈で宜しいでしょうか?
作業1、「変数の設定」で、$テーブル名 → "テーブルA"
作業2、「フィールドを名前で設定」で、、、
ターゲットフィールドの指定 → $テーブル名 & "::" & "フィールドD"
計算結果 → GetField ( $テーブル名 & "::" & "フィールドA" ) + GetField ( $テーブル名 & "::" & "フィールドB" ) + GetField ( $テーブル名 & "::" & "フィールドC" )
つまり、「フィールドを名前で設定」や「GetField関数」は、他のスクリプトと違って「フィールドの指定をテキスト直打ち、または計算式で指定する事が出来る」、という所がポイントで、
だからこそ変数で設定したテキストも、フィールドを指定する値として使用する事が出来る、という解釈で宜しいでしょうか?
チポ様
コメントありがとうございます!
しかし、頂いたURLなど何度も何度も読み返しましたが、自分にはどう応用すれば良いのか分かりませんでした、、
>いろいろ疑問がありますが聞いちゃいけない様ですので。。
お気を悪くさせてしまい申し訳ございません、、こちらの掲示板は皆さま非常にレベルが高く、理解出来ない話が多いため出来る限り質問をシンプルにと練りに練った例と質問の仕方だったのですが、、
やはり基礎的な勉強が必要だと再認識致しました、、またレベルが上がってから出直してきます!ありがとうございました!!
いつもお世話になっております。
ファイルメーカーでスクリプトを構築しているのですが、以下のような事が可能なのかを知りたく、投稿させて頂きます。
以下のようなテーブル(仮に26個)があるとして、
・テーブルA
・テーブルB
・テーブルC
・
・
・
・テーブルZ
全てのテーブルに以下のようなフィールド(仮に4個)がある場合
・フィールドA
・フィールドB
・フィールドC
・フィールドD
スクリプトの「変数を設定」と「フィールド設定」で、現在は以下のような設定をしているのですが、
【変数を設定】$変数A → テーブルA : フィールドA
【変数を設定】$変数B → テーブルA : フィールドB
【変数を設定】$変数C → テーブルA : フィールドC
【フィールド設定】テーブルA : フィールドD → $変数A + $変数B + $変数C
【変数を設定】$変数A → テーブルB : フィールドA
【変数を設定】$変数B → テーブルB : フィールドB
【変数を設定】$変数C → テーブルB : フィールドC
【フィールド設定】テーブルB : フィールドD → $変数A + $変数B + $変数C
・
・
・
【変数を設定】$変数A → テーブルZ : フィールドA
【変数を設定】$変数B → テーブルZ : フィールドB
【変数を設定】$変数C → テーブルZ : フィールドC
【フィールド設定】テーブルZ : フィールドD → $変数A + $変数B + $変数C
このテーブル設定を、以下のようなイメージで1回テーブルを設定すれば希望する計算結果が出力されるようにしたいのですが、方法はありますか?
【テーブルを選択】$テーブル名 → テーブルA
【変数を設定】$変数A → $テーブル名 : フィールドA
【変数を設定】$変数B → $テーブル名 : フィールドB
【変数を設定】$変数C → $テーブル名 : フィールドC
【フィールド設定】$テーブル名 : フィールドD → $変数A + $変数B + $変数C
【テーブルを選択】$テーブル名 → テーブルB
【変数を設定】$変数A → $テーブル名 : フィールドA
【変数を設定】$変数B → $テーブル名 : フィールドB
【変数を設定】$変数C → $テーブル名 : フィールドC
【フィールド設定】$テーブル名 : フィールドD → $変数A + $変数B + $変数C
・
・
・
【テーブルを選択】$テーブル名 → テーブルZ
【変数を設定】$変数A → $テーブル名 : フィールドA
【変数を設定】$変数B → $テーブル名 : フィールドB
【変数を設定】$変数C → $テーブル名 : フィールドC
【フィールド設定】$テーブル名 : フィールドD → $変数A + $変数B + $変数C
現在の方法だと、変数を設定×3と、フィールド設定×1の計4工程が必要ですが、
テーブルを変数のような形で管理出来るのであれば、テーブルを選択×1の、1工程で作業が完了出来ると考えております。
※実際にはテーブル数も変数数も非常に多い状況で、現在の方法で設定していくと全ての変数設定に入って計算式内のテーブル名の書き換えが必要なので手間だなと思っております。
※分かりやすいように上記のような例を挙げさせて頂きましたが、実際には状況が異なりますので、「こういう計算ならもっとこういう方法が…」ではなく、テーブル名を変数のような形で管理出来るのかが知りたいです
何か良い方法があればご教授願いたいです、宜しくお願い致します。
Shin様
いつもお世話になっております。
>グローバル変数とローカル変数、さらに、Let(), While() など式内の変数 のそれぞれの挙動は理解されていますか。
いいえ、、残念ながら曖昧な理解に留まっております、、つまりはその辺りに問題の根があり、やはり単なるバグ的な挙動では無いのですね!
もうちょっと色々と研究してみます!ありがとうございます!
いつもお世話になっております。
タイトルの通りなのですが、スクリプトで変数を設定しても値が入らない場合があり、困っています。
【環境】
File Maker Pro 17 Advanced
バージョン:17.0.2.205
Windows 10
スクリプト→変数を設定 で、計算式の結果を変数としてもたせたいのですが、
その計算式はかなり長く、様々な関連テーブルから値を引っ張ってきたり、変数の中で変数を使ったりなど、それなりに複雑になっていると思います。
※具体的には、webページとして書き出すHTMLソースです
一度スクリプトを回しても値が入らない場合があり、その後もう一度同じスクリプトを回すと上手くいったりと、なぜか挙動が安定しません。
このように計算式が長い場合、処理が飛んでしまったりする場合があるのでしょうか?
パソコンのスペックはメモリ128GBのハイスペック機なので、PCの処理能力によるものでは無いとは思うのですが、
お手数ではございますが、ご教授頂ければ幸いでございます。
koeda 様
サンプル本当にありがとうございます!!内容を確認させて頂きましたが丁寧にコメントまで色々とつけて頂き、大変感謝しております!(そもそもスクリプトにコメントがつけられる事を初めて知りました、、)
>FileMakerについての基礎知識は、この掲示板でもたびたび紹介されている公式ガイドブックがおすすめです。
こんなものがあるのですね!!初めて知りました!!!これはファイルメーカーを使用する人は必ずチェックした方が良さそうですね!!
>Claris社のオンラインセミナーやYouTube等のセミナー動画でも学べます。
こんなものまで!大変参考になる情報をご提供頂き本当にありがとうございます!!
>実際のソリューションを参考にするのが早道です。
なるほど!さっそくkoeda先輩のサンプルから色々と学ぼうと思います!!
今までは市販の参考書に掲載されている関数リストを眺めながら、どんな使い道があるか自分なりに考えたりしていたのですが、
中々それだけでは具体的な使い道にたどり着くまで時間が掛かり、確かに出来上がったソリューションを分析した方が色々と早そうです!
コツコツと勉強してみようと思います!貴重なアドバイス本当にありがとうございました!!!!
koeda 様
サンプルまで作成して頂き本当にありがとうございます!諸々チェックさせて頂きました!
作成頂きましたスクリプトを見ましたが、使ったことも見たこともない関数や仕組みばかりで、お恥ずかしながらまだ理解出来ずにおります。。
「オブジェクト名」という概念があるのですね!こういった事も調べて初めて知りました!ひとつひとつ解読してみようと思います!
参考までになのですが、自分は初心者向けのファイルメーカー参考書は何冊か読みましたが、そういった書籍の中では、このような込み入ったスクリプトの構築などは紹介されておらず、
どういった情報を参考にこのような知識やテクニックを身につけられているのでしょうか?
もし使いやすい書籍やサイトをご存じでしたら是非ご教授頂きたいです!
koeda 様
ご回答ありがとうございます!
>なぜCSVを経由しなければならないのでしょうか?
お恥ずかしながら知識不足なもので、自分が分かる方法の中で出来る限りのアイデアでございます、、
頂きました例のようにレコードが増えた際にそのような動きをすればCSVを経由しなくとも問題ございません!
また、アドバイス頂きました方法に関してですが、大変申し訳ないのですが具体的な設定方法などが分からず、
もし宜しければ以下ご教授頂ければと思います。。
> 1)カラーのリストを関数で取得する
こちらは具体的にどのような関数を使用するのでしょうか?取得と聞いて自分が分かるのはせいぜい「編集 / コピー」程度でして、、
私が挙げた例で言う所のテーブルBの内容「黒、茶、青」というデータを、どのように取得すれば良いのでしょうか?
list関数で指定したフィールドに「黒、茶、青」というテキストデータを出力させるような事は自分でも出来ますが、
今回の作業のような場合にどうすれば良いのか、宜しければご教授お願い出来ればと思います!
> 2)カテゴリーのレイアウトにテーブルCのポータルを作成し(カテゴリでリレーションし、リレーションによるレコードの作成を許可)
ポータルを作成し、リレーションシップの設定項目から「リレーションによるレコードの作成を許可」にチェックをつけました!
> 3)ポータルの各行にカラーを順番にセットする
恐らく(1)でアドバイス頂いたテーブルBのリストを関数で取得したものを使うと思うのですが、申し訳ございませんが具体的な作業方法が分かりません、、
もし宜しければご教授頂ければと思います!
[ Generated in 0.011 seconds, 6 queries executed - Memory usage: 858.51 KiB (Peak: 943.92 KiB) ]