みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
チポさん、Shinさん
希望通り出来ました。
改行を使うんですね、想像もつきませんでした。
いつもありがとうございます。
FM19 WINDOWSを使用しています。
テーブル「対象商品」に
レコード毎に対象商品を登録しています。
別にテーブル「商品」があり、こちらにも同じ様にレコード毎に商品を登録しております。
「対象商品」と「商品」のテーブルがあります。
それぞれのテーブルにはレコード毎に「対象商品」と「商品」を登録しています。
例----------------------------------------------
テーブル【対象商品】
[レコード]アイス[箱小]
[レコード]袋スナック180g
[レコード]チョコレートスナック
テーブル【商品】
[レコード]袋スナック180g
[レコード]チョコレートスナック ※対象
[レコード]チョコレート ※対象
----------------------------------------------
テーブル【商品】に商品名を入力した時に、【対象商品】に同じ名前のものがあれば
※対象 と該当のレコードに入れたいので、
PatternCount ( List (対象商品) ; 商品 )で【対象商品】のテーブルを参照して、
※対象が入る様にしたいとのですが、上記のように、チョコレートにも※対象が入って
しまいます。
こちらを、テキストの完全一致のような感じで、「チョコレートスナック」だけ
入るような計算式はないでしょうか。
Exact ( List (対象商品) ; 商品 )にしてみましたが上手く行きませんでした。
宜しくお願いします。
チポさん himadaneeさん
有難うございます。希望通りできました。
いつも有難うございます。
チポさん ありがとうございます。
Countの式はどのようになるのでしょうか。
> GetAsBoolean ( 主キー ≠ オカレンス::主キー)
ですから、
照合1番は0を
二番目以降は1を返しますね。Count
にすれば、
単一は1を
重複は2以上を返します。
Shinさん チポさん himadaneeさん
有難うございます。
https://www.youtube.com/watch?v=o4siC05Ttl4
を参考に今回の重複をチェックしましたが、
himadaneeさんの仰る、重複レコードの値が全て1になる、方法がありましたら教えて頂きたいです。
計算フィールドは非保存でも構いません。
何度もすみませんが、宜しくお願い致します。
チポさん himadaneeさん
ありがとうございます。
説明がめちゃくちゃでした。すみませんでした。
[商品名]=[オカレンス:商品名]でリレーションをしております。
フィールド:GetAsBoolean ( 主キー ≠ オカレンス::主キー )で重複したレコードに
1がつくようになっています。
例ですが、
みかん 0
みかん 1
みかん 1
りんご 0
メロン 0
となります。
希望としては、重複のある「みかん」0のついたみかんも含め
3つのレコードを検索したいと思っておりました。
宜しくお願い致します。
windows11とFM19を使用しています。
自己リレーション
主キー≠オカレンス主キー
重複を判定をしているのですが、
重複している値1つのレコードのみ判断するのですが、重複している2つの値を同じように検索で出したいのですが、
どのようにすれば良いでしょうか。
宜しくお願いします。
himadaneeさん
ありがとうございます。新規ウインドウで解決できました。
助かりました。
WIN10 FM19を使用しています。
テーブルAを2つのレイアウトで表示しています。
・レイアウト1では、通常のパネルで一枚ずつ
・レイアウト2では、一覧で表示しています。
レコードを削除する場合には、レイアウト2の一覧にレコードにレコード削除ボタンを設置し削除しています。
フィールドには、グループIDと番号の2つがあり、その2つのフィールドで固有の番号にしています。
レイアウト2のリストから削除を行う時に削除するデータを全く別のテーブルにインポートしてコピーを取っているので、
削除を押した際に、一度レイアウト1に移動し→グループIDと番号で検索→レコードのインポート→レイアウトを戻る
というスクリプトで削除をしています。
レイアウト1で一度検索をかけているので、再度レイアウト2に戻った時に削除前に検索していたものが、くずれる為
続けて削除する事が出来ず困っています。
レイアウトの移動に関連レコードに移動を使用してみましたが、ピンポイントで関連レコードに移動する事が出来ません。
テーブルオカレーションでグループIDと番号をリレーションすれば、良いのかと思いましたがうまくいきませんでした。
上記のようにレコードのインポートが必要な場合、一覧に戻ってもレイアウトの移動前の状態に戻れる方法はありますでしょうか。
宜しくお願いします。
Shinさん いつも有難うございます。
改行区切りで試してみたいと思います。
win10 FM19を使用しています。
教えてください。
リレーションを設定で
テーブルA フィールド[店名]※グローバルフィールド
テーブルB フィールド[店名]
の2つのテーブルを
テーブルA フィールド[店名]= テーブルB フィールド[店名]
のリレーションを設定した場合、
2つのテーブルをテーブルAの[店名]に店名を入力する事で、テーブルBのレコードを表示しているのですが、
テーブルAの[店名]のフィールドが空の場合は、テーブルBのすべてのレコードを表示する事は出来るでしょうか。
FM19 win11を使用です。
スクリプト、フィールド内容のエクスポートの[フォルダを作成:オン]
を利用して、フォルダを自動作成したいと思っております。
フォルダを作成するディレクトリが、ネットワークドライブになり、
Windowsでは、ネットワークドライブの割り当てを「a:」として割り当てており、
------------------------------
/a:/データ格納/[フィールド名]
------------------------------
でデータ格納フォルダにフィールド名のフォルダを作成する事が出来ているのですが、
Macでは、ネットワークドライブの割り当てができないので、
ネットワークドライブのIP「192.168.0.105」を利用し、
------------------------------------------------
smb://192.168.0.105/データ格納/[フィールド名]
------------------------------------------------
と
------------------------------------------------
/192.168.0.105/データ格納/[フィールド名]
------------------------------------------------
で指定してみましたが、フォルダを作成出来ません。
ネットワークドライブの場合のMACの指定方法をお分かりでしたら、教えて頂ければと思います。
以上、宜しくお願い致します。
Shinさん、有難うございます。
仰せの通り、アクセス排他が怪しいので、UUIDで設定してみます。
いつもありがとうございます。
入力時の連携用のID に、UUID でも使っておき、入力終了後はそのIDを入力テーブルのグローバルフィールドを消去するだけでいいのでは。UUID でしたら、コピペ以外で同じものを手入力することは、まず無理でしょう。
アクセス権でコントロールしてもいいと思います、
Shinさん
チポさん
himadaneeさん
有難うございます。
すみません。説明が間違っておりました。
入力用の「入力用」のレイアウトは、[申込書入力]というレコードがあり、
そこに[基本データ][商品][詳細]のレコードフィールドがおいてあります。
[申込書入力](ID)グローバルフィールド
[基本データ](ID)(顧客名)→[申込書入力]レコード 「入力用」レイアウト内にそのまま顧客名のフィールドがおいてあります。
[商品] (ID)(商品名)→[申込書入力]レコード 「入力用」レイアウト内にポータルで商品名が入力されています。
[詳細] (ID)(卸元) →[申込書入力]レコード 「入力用」レイアウト内にポータルで卸元が入力されています。
リレーションは、(ID)と(リレーション用)になります。
「入力用」のレイアウトでは、入力開始を押すと、、[申込書入力](ID)グローバルフィールドに自動でIDが付与され、
顧客名を入力する事で、[基本データ]にIDがコピーされ、[商品]のポータル内の(商品名)に入力すると[商品]にIDがコピーされ、
別のレイアウトでは、[基本データ]からそれぞれを(ID)で紐づけています。
入力が完了したものに対して、入力の変更が出来ない様に入力完了後(リレーション用)の1を外して、「入力用」レイアウトでは表示出来ない様に
していました。
説明不足ですみません。
情報の入力フィールド用に「入力用」というレイアウトを作成し[基本データ]のテーブルを設定しています。
「入力用」のフィールド内には、[商品]と[詳細]という2つのテーブルをポータルで表示しています。
[基本データ][商品][詳細]にはそれぞれ(ID)というフィールドとリレーション用に(リレーション用)という”1”が入力されているフィールドがあり、
入力が完了したときに、スクリプトボタン【フィールド設定[フィールド;””]】で[基本データ][商品][詳細]の(リレーション用)の「1」を削除することで、レイアウトに表示出来ないようにしているのですが、この1の削除が時々削除されないのですが、原因がわかりません。
[基本データ]・[商品]・[詳細]の(リレーション用)のフィールドは「入力用」のレイアウトには設置していないので、それが原因でしょうか。
削除されない現象が、毎回ではなく、時々なので、原因を特定できずにおりました。
何か推測出来るような事がありましたら、ご教示ください。
リレーションとフィールドはこのような感じです。
入力完了後 (リレーション用)の1を削除し[基本データ]の「入力用」のレイアウトから表示を消しています。
[商品][詳細]の(リレーション用)のフィールドは、「入力用」のレイアウトにも表示していません。
[基本データ](ID)(リレーション用"1") -- (ID)(リレーション用"1")[商品]
-- (ID)(リレーション用"1")[詳細]
宜しくお願い致します。
ありがとうございました。
37さん、有難うございます。
FMDB-blue開発者様との事恐縮です。
使わせて頂いております。
ご説明頂きました、
d_DataID.textフィールドと編集側のファイルの主キーをリレーションキーにしまして、
変更レコードのIDを取得する事が出来ました。
ありがとうございます。
こちらのファイルは無料で使わせて頂いても問題ないのでしょうか。
Shinさん、有難うございます。
FMDB-blue_Dataと顧客DBリレーションしFMDB-blue_Dataに顧客DBのIDをルックアップしたかったのですが、
FMDB-blue_Data側の照合フィールドがわからず、顧客DBとFMDB-blue_Data双方にTimestampで照合していた為、
ローカルでは、時間のズレが無くルックアップ出来ていたのですが、サーバー上では1秒ほどズレる為ルックアップ出来ないようでした。
初心者の考えで申し訳ありませんでした。
もう少し他の方法を考えます。
お騒がせ致しました。
Shinさん ありがとうございます。
確認しましたが、同じ名称のファイルは無いようです。
※同サーバー内にFMDB-blue_Dataのファイル名ということで間違い無いでしょうか
サーバー上で再ルックアップをしますと
----------------------------------
処理されていないレコード数 1
----------------------------------
砂時計後何もルックアップされません。
FMDB-blue_Dataのファイルには、現在ログインしている顧客DBと同じユーザー名を[完全アクセス]で設定していますが、
接続ファイルは、DLしたものを使わせてもらっているので、詳しくはわからないのですが、
ファイルのセキュリティということは考えられるでしょうか?
win10 FM19を使用しています。
FMDB-blueの変更テーブルのフィールドの値については、リーレーションとルックアップでなんとか取得出来るようになったのですが、
このルックアップが、ローカルの状態ですとルックアップ出来るのですが、そのままサーバーにアップするとルックアップができなくなってしまいます。
ルックアップがローカルですと可能でサーバー上ではできないような、理由や条件などありましたらご教示頂けますでしょうか。
データファイル
顧客DB
FMDB-blue_Data
FMDB-blue_Processor
の3つのファイルがあります。
----------------------------
ファイル 顧客DB
テーブル 履歴 (変更履歴を取得する対象のテーブル)
テーブル 変更ログ (D_LogDataを表示する為のテーブル)
フィールド 顧客ID
フィールド Timestamp (レコード修正情報タイムスタンプ)
----------------------------
ファイル FMDB-blue_Data
テーブル D_LogData (変更ログが追加されるテーブル)
フィールド Timestamp (レコード修正情報タイムスタンプ)
フィールド 顧客ID(顧客DBの顧客IDをルックアップ)
----------------------------
顧客DBのリレーションシップ内にFMDB-blue_DataのD_LogDataをテーブルオカレンスで追加し、顧客DBの変更ログのテーブルと
リレーションし顧客DBファイル内にポータルでD_LogDataを表示していました。
また、FMDB-blue_Dataのリレーションシップ内に履歴をテーブルオカレンスで追加しTimestamp=Timestampでリレーションをしており、
変更された、顧客DBの顧客IDをFMDB-blue_Dataの顧客IDに入れる為に、ルックアップしている状態です。
それをファイルの顧客DBの変更ログというテーブルを設定したレイアウトでD_LogDataをポータルで表示しています。
ローカルとサーバー上の違いとして、外部データソース管理のファイルパスはすべて、ローカル上のパスfilewin:// からfile:ファイル名に変更はしてみましたが
改善されません。
その他、原因として考えられる事はありますでしょうか。
win10 FM19を使用しています。
お世話になっています。
以前、ポータル内のフィールドの変更ログが取得できず、FMDB-blueを教えて頂きまして、
こちらのページを参考に(https://qiita.com/siebenunddreissig/items/73b299837cc6e6c78afa)
FMDB-blueを設置しました、機能的には十分なのですが、
1点ポータルや各レコードのログを取得した場合、どのレコードで行われた変更なのかが判断できず、困っておりました。
各レコードには、固有のIDを付けていましたので、IDと変更ログのレコード紐づけたいのですが、
方法等ご存知の方がおりましたら、教えていただけないでしょうか。
宜しくお願い致します。
Shinさん 有難うございます。
チュートリアルやってみました。入力戻しも実装したかったので、まさに完璧でした。
実際のファイルに実装してみます。
いつも有難うございます。
WIN10 FM19を使用しています。
レコードの変更履歴を取得する為に、下記の動画を参考に作成してみました。
https://www.youtube.com/watch?v=ds_z7Yt5QUg
[テーブル]基本データ
[テーブル]対応データ
[テーブル]変更履歴
のテーブルがあります。
[テーブル]基本データを表示している、レイアウトに[テーブル]対応データをポータルで表示しております。
そのポータルの変更履歴を取りたいのですが、変更履歴が取得できませんでした。
[テーブル]変更履歴のレイアウトでフィールドを変更すると、取得できるのですが。
ポータル内の変更履歴は取得できないのでしょうか。
何か良い方法がありましたら、教えてください。
宜しくお願い致します。
Shinさん、チポさん
いつも有難うございます。
助かりました。
WIN10 FM19を使用しています。
ポータルフィルターに下記で各フィールドに入力があるもののみ表示しております。
not IsEmpty ( 履歴::ヘルプ ) and not IsEmpty ( 履歴::クレーム )
これに追加して、結果というフィールドに"完了"もしくは"継続"と入力のあるもは表示しないようにしたいのですが、
この条件を追加する方法がわかりません。
教えて頂けますでしょうか。
宜しくお願い致します。
[ Generated in 0.009 seconds, 8 queries executed - Memory usage: 667.99 KiB (Peak: 723.9 KiB) ]