みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
FMP 12 ADV Windows7にて使用しています。
受注伝票を作成しており、受注テーブル(親)とポータル形式の受注明細テーブル(子)があり、
受注IDにてリレーションしております。
複数の提案用に作成した受注伝票(親・子)の複製をして使用したいと思っているのですが、
受注テーブルにてレコードの複製を行っても、ポータル明細テーブルが反映されなくて、このような場合に
何か良い方法等ございましたら、お知恵をお貸りしたくよろしくお願いします。
関連レコードも全部複製して新しい受注IDで全置換しないと。
Offline
いろいろな方法がありましたけど手抜き例です。
http://pupld.net/28/150416/ifwpkl7b8i/index.cgi
ポータルの複製.fmp12
現在の対象レコードとかソート状態とかは考慮していません。
Offline
旅人様
確認が遅くなってすみませんでした。
参考ファイルまで作成していただき、本当にありがとうございます。
まさにこの仕組みを作りたかったのですが、私自身かなりの初心者の領域におりますため、
作成していただいたスクリプトを参考にさせていただいて、会社のファイルに組み込んでみる過程で
またご質問させていただくことと思いますので、お手数をおかけいたしますが、引き続きよろしくお願い致します。
こんな方法もありますよ。
変数を設定 [ $wn; 値:Get ( ウインドウ名 ) ]
関連レコードへ移動 [ テーブル: 「明細」; 使用するレイアウト: 「明細」 (明細) ] [ 関連レコードのみを表示; 新規ウインドウ ]
ウインドウを選択 [ 名前: $wn; 現在のファイル ]
レコード/検索条件複製
変数を設定 [ $ID; 値:伝票::ID ]
ウインドウを選択 [ 名前: "明細"; 現在のファイル ]
レコードのソート解除
レコード/検索条件/ページへ移動[ 最後の ]
Loop
レコード/検索条件複製
フィールド設定 [ 明細::ID; $ID ]
レコードを対象外に
レコードを対象外に
Exit Loop If [ Get ( 対象レコード数 ) = 0 ]
End Loop
ウインドウを閉じる [ 現在のウインドウ ]Offline
旅人 様。
お世話になります。
旅人様にアップしていただいたファイルを参考にテンポラリにCSVを書き出し方法を行ってみたのですが、インポートは出来るのですが、受注明細テーブル(子)のインポート順の設定うまくできなくて困っております。
インポート順設定時にインポート元のCSVが表示されないものでして… とてもスマートな方法を教えていただけたので、出来れば受注明細テーブル(子)のほうはインポートを行う形にしたいと思っておりますが、今後このテンポラリを使用したスクリプトの場合、
PCやOSの変更時に支障等でる恐れはございますでしょうか? アドバイスたびたびすみませんが、アドバイスよろしくお願い致します。
Shin 様
参考スクリプトをあげていただきありがとうございます。こちらの方法も今からぜひ試させていただきます。
引き続き、よろしくお願いします。
Shin 様
アップしていただいた、スクリプトを何度も検証させていただいたのですが、うまくいきませんでした。スクリプトデパッガでとめて動きを確認しておりましたら、複製元の各明細データまでは全て確認できるのですが、複製後のレコードにデータが反映していないです。
フィールド設定したIDは全てに反映はされておりますし、複製のデータ数にも間違いはありませんでした。
計算値の自動入力等いくつかあるのでそのせいあるのかと思い、受注明細テーブルにて直接ツールバーのレコードの複製を行った場合はおおかた複製はできてはいます。受注明細テーブルのほうはリレーションシップ時にソート条件をつけてあるので、原因はそのへんになるのでしょうか?もし、Shin 様のスクリプトを使用する際に何か注意点等ございましたら、教えていただけると助かります。
引き続きよろしくお願い致します。
私のファイルの場合
変数で書き出しパスを設定する部分のGet ( テンポラリパス )をGet ( デスクトップパス )にする。
レコードのインポートステップから下のステップを全部「無効」にしてそのまま実行したあと
デスクトップに書き出されたファイルを「手動で」インポートしてインポート順を合わせて実際に
インポートする。
すぐにスクリプト編集を開いて、無効になっているインポートステップを削除して、$p指定の新たな
インポートステップを作りダイアログは「あり」にする。インポート順指定はそのまま。
スクリプト編集を閉じて、実行すると手動で設定されたインポート順になっているはず。
テンポラリパスにしているのはFMを終了したとき?書き出されたcsvが勝手に消えるためで
気にならなければデスクトップパスのままでも構いません。
Offline
よくわからないけど。
こちらの検証ファイルと比較してみてください。(内部レコードは、旅人さんのを流用させてもらっています)
https://www.dropbox.com/s/o4sgrp45ryupe … 7.zip?dl=0
Last edited by Shin (2021-10-21 14:39:04)
Offline
旅人 様
この度は、本当にありがとうございました。
filemakerのインポート作業で悩んでいた点も同時に教えていただき助かりました。
Shin 様
この度は、本当にありがとうございました。
こちらの明細行のリレーションに間違いがあったようで失礼いたしました。Shin 様からご提案いただきました内容でもうまくいきました。
休み明けより早速運用させていただきます。
今後ともよろしくお願い致します。
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 576.59 KiB (Peak: 593.5 KiB) ]