フォーミュラで更新...
2 posters
フォーミュラで更新...
4Dv17(Win)を使用しています。
フォーミュラエディターで、マスタテーブルのフィールドへリレーションしている別テーブルのフィールド値を格納させたいのですが...
リレートテーブルに切り替えても対象テーブルが表示されません。
しかしながら、別のテーブルでは表示できるテーブルもあります。
この表示する、表示しないの違いは何でしょうか?
フォーミュラエディターで、マスタテーブルのフィールドへリレーションしている別テーブルのフィールド値を格納させたいのですが...
リレートテーブルに切り替えても対象テーブルが表示されません。
しかしながら、別のテーブルでは表示できるテーブルもあります。
この表示する、表示しないの違いは何でしょうか?
shige- 投稿数 : 62
登録日 : 2018/03/31
Re: フォーミュラで更新...
ご連絡ありがとうございます。
状況をもう少し詳しく記載します。
(リレーション)
[商品](N) → [ログ](1)
(Key:[商品]WorkNo(Longint)→[ログ]WorkNo(Longint))
※テーブルプロパティによる非表示等の設定は行っていません。
(やりたい事)
フォーミュラエディターにて、「[商品]備考」フィールドに
「[ログ]内容」を格納させたい。
([商品]備考:=[ログ]内容)
そういったプログラムを書けば済む話ですが...ユーザ側による作業の為、
今回は上記フィールド間ですが、このパターンだけとは限らない為...
(問題点)
フォーミュラエディターの「リレートテーブル」に切り替えても
[ログ]テーブルが表示されない。
何が原因なのでしょうか?
ご教示ください。
状況をもう少し詳しく記載します。
(リレーション)
[商品](N) → [ログ](1)
(Key:[商品]WorkNo(Longint)→[ログ]WorkNo(Longint))
※テーブルプロパティによる非表示等の設定は行っていません。
(やりたい事)
フォーミュラエディターにて、「[商品]備考」フィールドに
「[ログ]内容」を格納させたい。
([商品]備考:=[ログ]内容)
そういったプログラムを書けば済む話ですが...ユーザ側による作業の為、
今回は上記フィールド間ですが、このパターンだけとは限らない為...
(問題点)
フォーミュラエディターの「リレートテーブル」に切り替えても
[ログ]テーブルが表示されない。
何が原因なのでしょうか?
ご教示ください。
shige- 投稿数 : 62
登録日 : 2018/03/31
Re: フォーミュラで更新...
前の投稿で申し上げたように,「自動リレート」が関係していると思うのですが,いかがでしょうか。
SET FIELD RELATION(推奨)
https://doc.4d.com/4Dv18/4D/18/SET-FIELD-RELATION.301-4505055.ja.html
あるいは
SET AUTOMATIC RELATIONS
https://doc.4d.com/4Dv18/4D/18/SET-AUTOMATIC-RELATIONS.301-4505059.ja.html
で,一時的に設定を変更できるかもしれません。
SET FIELD RELATION(推奨)
https://doc.4d.com/4Dv18/4D/18/SET-FIELD-RELATION.301-4505055.ja.html
あるいは
SET AUTOMATIC RELATIONS
https://doc.4d.com/4Dv18/4D/18/SET-AUTOMATIC-RELATIONS.301-4505059.ja.html
で,一時的に設定を変更できるかもしれません。
miyako- 投稿数 : 483
登録日 : 2016/07/05
Re: フォーミュラで更新...
ご連絡ありがとうございます。
「SET FIELD RELATION」の記述でフォーミュラエディタからリレーション先のフィールドが選択できるようになりました。
処理的には希望通りの動作が得られるようになりました。
ちなみに「SET FIELD RELATION」で設定変更後、元に戻す...という処理は必要ないのでしょうか?
「SET FIELD RELATION」の記述でフォーミュラエディタからリレーション先のフィールドが選択できるようになりました。
処理的には希望通りの動作が得られるようになりました。
ちなみに「SET FIELD RELATION」で設定変更後、元に戻す...という処理は必要ないのでしょうか?
shige- 投稿数 : 62
登録日 : 2018/03/31
Re: フォーミュラで更新...
もう一点質問なのですが...
EDIT FORMULA([CatalogF];$myFormula)
APPLY TO SELECTION([XXXXXF];EXECUTE FORMULA($myFormula))
...というように、ユーザ入力で 置換する方式を取っているのですが、
この時、文法エラーが発生した場合、4Dが落ちてしまいます。
EDIT FORMULAで入力された文法が正しいかどうかの判断は取れないでしょうか?
ON ERR CALLで、エラー時の回避ルートを通しても、インタプリタでは回避できますが、コンパイル済ですと、やはり落ちてしまいます。
何か解決策はないでしょうか?
EDIT FORMULA([CatalogF];$myFormula)
APPLY TO SELECTION([XXXXXF];EXECUTE FORMULA($myFormula))
...というように、ユーザ入力で 置換する方式を取っているのですが、
この時、文法エラーが発生した場合、4Dが落ちてしまいます。
EDIT FORMULAで入力された文法が正しいかどうかの判断は取れないでしょうか?
ON ERR CALLで、エラー時の回避ルートを通しても、インタプリタでは回避できますが、コンパイル済ですと、やはり落ちてしまいます。
何か解決策はないでしょうか?
shige- 投稿数 : 62
登録日 : 2018/03/31
miyako- 投稿数 : 483
登録日 : 2016/07/05
Re: フォーミュラで更新...
ご連絡ありがとうございます。
スペルミスや関数の文法エラー等はチェックできますか?
例えば、「:=」が「=」だったり、テキストフィールドに「NUM(XXXX)」で格納使用していたり....など
ユーザが誤った記述をしてAPPLY TO SELECTION~ステップを実行してしまうと4Dが落ちてしまします。
エラーの場合は、分岐してAPPLY TO SELECTIONのステップをスルーしたいのですが...
可能でしょうか?
スペルミスや関数の文法エラー等はチェックできますか?
例えば、「:=」が「=」だったり、テキストフィールドに「NUM(XXXX)」で格納使用していたり....など
ユーザが誤った記述をしてAPPLY TO SELECTION~ステップを実行してしまうと4Dが落ちてしまします。
エラーの場合は、分岐してAPPLY TO SELECTIONのステップをスルーしたいのですが...
可能でしょうか?
shige- 投稿数 : 62
登録日 : 2018/03/31
Permissions in this forum:
返信投稿: 不可
|
|