3 返信 最新の回答 日時: Mar 3, 2009 8:31 PM ユーザー:sskhrry

    フィールド内容の複製

    sskhrry

      タイトル

      フィールド内容の複製

      フォーラムに投稿

      請求書発行システムを作りましたが、納品書の内容と請求書の内容を少々変えたいため、といっても両者はほとんど同じないよう、たとえば納品書には品名を細かく記載するが、請求書では“一式”といった具合、一度入力した情報を使用しつつも変更ができ、元のデータが変更されないように、フィールドを2つ用意し、請求書用と納品書用を準備しました。納品書の情報を請求書に複製すれば、入力の2度手間が省けるので、コピー&ペーストでデータを複製しようと考えているのですが、どうもうまくいきません。以下、不具合現象と今まで試したことですが、こうしたデータの複製をうまく行う方法をご存知の方いらっしゃいませんか。簡単なことを抜かしたスクリプトを作成しているようにも思いますが、

      WindowsXPですが、Web公開でも試しています。

       

      コピー&ペースト

      1)繰り返しフィールドの最初の行だけしかペーストできない。

      2)複数のフィールドで順次行うようスクリプトを作成しましたが、途中で空白のフィールドがあるとその直前のフイールドの内容がいつまでもクリップボードに残っているのか、何度もスクリプト設定されているボタンを押すと、その値が何回も別のフィードにペーストされる。(クリップボードの内容を消すコマンドやスクリプトがあればそれでも解決できるようにも思います)

       

      GetField

      上記同様、繰り返しフィールドの最初の行しかペーストされない

       

      フィールドタイプを計算にすると2行目、3行目もペーストされるのですが、修正ができないので、目的が達せられない。

       

      どなたご存知のかたいらっしゃらないでしょうか。

        • 1. Re: フィールド内容の複製
          R-rbe
            

          Rと申します。

           

          Filemaker7以降のバージョンと仮定してお話させていただきますね。

           

          繰り返しフィールドを使っている場合は、コピー元の繰り返し行番号と、コピー先の繰り返し行番号を正しく指定してあげなくてはいけません。

           

          またコピー&ペーストでは無駄な動きが多いので、フィールド設定を使います。 

          下記のようなスクリプトステップで正しく動くようになります。

           

          フィールド設定[コピー先フィールド名[1],コピー元フィールド名[1]] 

          フィールド設定[コピー先フィールド名[2],コピー元フィールド名[2]] 

          フィールド設定[コピー先フィールド名[3],コピー元フィールド名[3]]  

           

          []の中の数字の部分が繰り返し行番号になります。この数字を正しく設定しないと繰り返しの部分は反映されません。

          GetRepetition ( 繰り返しフィールド ; 回数 )を使ってコピー元フィールドを指定しても同じ結果になります。

           

          空白の行が~という部分の意味がよく分からないのですが、仮に

          コピー元の3行目が空白で、コピー先には3行目を詰めてペーストしたい場合は、

          上記のスクリプトではうまく動きません。

          このような場合は一度コピー元が空白であるかどうかをIsEmpty関数で判断して、変数に収め、その変数をフィールド設定で反映するという方法もあるかと思います。

           

          また構造の話になってしまうのですが、可変数の行が生じるような場合は、繰り返しフィールドではなく、子になるテーブルを作り、リレーションさせる方が後々便利です。

          請求書、請求書明細というテーブル構造にし、請求書IDでそれそれのテーブルをリレーションするという考えです。

          そうしておくと、任意の行だけを取り出して集計したり、複数の請求書の明細から、一つの請求書を作り上げるといったことも可能です。

           

          少々難しい話になってしまったかもしれませんが、ご参考になれば幸いです。

           

           

          • 2. Re: フィールド内容の複製
            Hiro
              

            繰り返しフィールド同士(同繰り返し数)なら元フィールドを参照するだけでは?

            「先フィールド」繰り返し計算フィールド:式=「元フィールド」

             

            ただ、後の運用を考えると、明細データは繰り返しでなく、別テーブルに1明細1レコードにして、ポータルを利用するようお勧めします。

            • 3. Re: フィールド内容の複製
              sskhrry
                

              R様

               

              できました。 助かりました。 ありがとうございました。