8 返信 最新の回答 日時: Jun 29, 2010 8:49 PM ユーザー:ARIKA1

    スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。

    ARIKA1

      タイトル

      スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。

      フォーラムに投稿

      <!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;o:DocumentProperties&gt;   &lt;o:Template&gt;Normal&lt;/o:Template&gt;   &lt;o:Revision&gt;0&lt;/o:Revision&gt;   &lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;   &lt;o:Pages&gt;1&lt;/o:Pages&gt;   &lt;o:Words&gt;142&lt;/o:Words&gt;   &lt;o:Characters&gt;814&lt;/o:Characters&gt;   &lt;o:Company&gt;株式会社システムアリカ&lt;/o:Company&gt;   &lt;o:Lines&gt;6&lt;/o:Lines&gt;   &lt;o:Paragraphs&gt;1&lt;/o:Paragraphs&gt;   &lt;o:CharactersWithSpaces&gt;999&lt;/o:CharactersWithSpaces&gt;   &lt;o:Version&gt;11.1287&lt;/o:Version&gt; &lt;/o:DocumentProperties&gt; &lt;o:OfficeDocumentSettings&gt;   &lt;o:AllowPNG/&gt; &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:DoNotShowRevisions/&gt;   &lt;w:DoNotPrintRevisions/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:DrawingGridVerticalSpacing&gt;10 pt&lt;/w:DrawingGridVerticalSpacing&gt;   &lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;   &lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;   &lt;w:Compatibility&gt;    &lt;w:SpaceForUL/&gt;    &lt;w:BalanceSingleByteDoubleByteWidth/&gt;    &lt;w:DoNotLeaveBackslashAlone/&gt;    &lt;w:ULTrailSpace/&gt;    &lt;w:DoNotExpandShiftReturn/&gt;    &lt;w:AdjustLineHeightInTable/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:NoLineBreaksAfter Lang=&quot;JA&quot;&gt;$([\{£¥‘“〈《「『【〔$([{「¥&lt;/w:NoLineBreaksAfter&gt;   &lt;w:NoLineBreaksBefore Lang=&quot;JA&quot;&gt;!%),.:;?]}¢°’”‰′″℃、。々〉》」』】〕゛゜ゝゞ・ヽヾ!%),.:;?]}。」、・゙゚&lt;/w:NoLineBreaksBefore&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  /* Font Definitions */ @font-face      {font-family:&quot;Times New Roman&quot;;      panose-1:0 2 2 6 3 5 4 5 2 3;      mso-font-charset:0;      mso-generic-font-family:auto;      mso-font-pitch:variable;      mso-font-signature:50331648 0 0 0 1 0;} @font-face      {font-family:&quot;MS 明朝&quot;;      panose-1:0 2 2 6 0 4 2 5 8 3;      mso-font-charset:78;      mso-generic-font-family:auto;      mso-font-pitch:variable;      mso-font-signature:16777216 0 117702657 0 131072 0;} @font-face      {font-family:Century;      panose-1:0 2 4 6 4 5 5 5 2 3;      mso-font-charset:0;      mso-generic-font-family:auto;      mso-font-pitch:variable;      mso-font-signature:50331648 0 0 0 1 0;} @font-face      {font-family:&quot;\@MS 明朝&quot;;      panose-1:0 2 2 6 0 4 2 5 8 3;      mso-font-charset:78;      mso-generic-font-family:auto;      mso-font-pitch:variable;      mso-font-signature:16777216 0 117702657 0 131072 0;} @font-face      {font-family:&quot;Lucida Grande&quot;;      panose-1:0 2 11 6 0 4 5 2 2 2;      mso-font-charset:0;      mso-generic-font-family:auto;      mso-font-pitch:variable;      mso-font-signature:50331648 0 0 0 1 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0mm;      margin-bottom:.0001pt;      text-align:justify;      text-justify:inter-ideograph;      mso-pagination:none;      font-size:12.0pt;      font-family:&quot;MS 明朝&quot;;      mso-font-kerning:1.0pt;      mso-ansi-language:EN-US;} p.MsoFooter, li.MsoFooter, div.MsoFooter      {margin:0mm;      margin-bottom:.0001pt;      text-align:justify;      text-justify:inter-ideograph;      mso-pagination:none;      tab-stops:center 212.6pt right 425.2pt;      layout-grid-mode:char;      font-size:12.0pt;      font-family:&quot;MS 明朝&quot;;      mso-font-kerning:1.0pt;      mso-ansi-language:EN-US;} table.MsoNormalTable      {mso-style-parent:&quot;&quot;;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;} /* Page Definitions */ @page      {mso-page-border-surround-header:no;      mso-page-border-surround-footer:no;} @page Section1      {size:595.2pt 841.7pt;      margin:99.25pt 30.0mm 30.0mm 30.0mm;      mso-header-margin:42.55pt;      mso-footer-margin:49.6pt;      mso-paper-source:0;} div.Section1      {page:Section1;}   --> 

      FileMaker pro10 , Mac osxの環境で 作業しております。

      下記のようにスクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。解決策をご教示頂ければ幸いです。

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      関連ファイルは2つです。

       

       <業務メニューファイル>

         

        業務メニューの一覧を表示し、選ばれた業務アプリケーションをスクリプトで起動します。

        業務を選ぶ前に各種のパラメータ(この場合はレコードの抜き出し期間のFROMTO)を指定することができます。

        このファイルには1レコードしかありません。

       

       <契約案件明細ファイル>

       

        契約の明細レコードのファイルです。

       

      2つのファイルはリレーションで結ばれて、契約案件明細表を作成するスクリプトで、業務メニューファイルの抜き出し対象期間を参照します。

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      契約案件明細表作成のスクリプトは以下の通りです。

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

       1 全レコードを表示

       2 レイアウトの切り替え[「契約案件一覧表(契約明細ファイル)」

       3 検索モードに切り替え[記憶する]

       4 検索実行[]

       5 変数を設定[$$抜き出し対象期間FROM;:業務メニューファイル::契約案件明細抜き出し対象期間FROM]

       6 変数を設定[$$抜き出し対象期間TO;:業務メニューファイル::契約案件明細抜き出し対象期間TO]

       7 フィールド設定[契約明細ファイル::契約年月日[$$抜き出し対象期間FROM &"..."& $$契約明細ファイル::抜き出し対象期間TO] ]

       8 検索モードに切り替え[]

       9 対象レコードの絞り込み

      10 レコードのソート[記憶する;ダイアログなし]

      11 ブラウズモードに切り替え[一時停止]

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      結果は、

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      「この検索条件には有効なものがありません。検索する前に有効な検索条件を入力してください。」

       

      というメッセージが出てきて対象レコードがあるにも関わらず抜き出せません。

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      3では契約明細レコードの契約年月日が空白のものを対象外にしています。

      これは有効に実行されています。

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      5以降のコーディングが有効に働かないのですが、どこか基本的な理解が足りないのでしょうか?

      (検索画面にして契約年月日を実際の期間で指定すると20件ほどのレコードが抜き出せます。)

       

      アドバイスをどうかよろしくお願いいたします。

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      <!--  [if !supportEmptyParas]  --> <!--  [endif]  -->

      <!--  EndFragment  -->

        • 1. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
          tella
            

          ARIKAさんこんにちは。

           

          細かく確認してないので違うかもしれませんが、

          変数で期間(FROMとTO)をとってきて、それを使って範囲検索をしたいのですよね?

           

          それであれば、スクリプトの7と8が逆です。

          検索モードに切り替えてから、契約年月日フィールドにFROM...TOをフィールド設定で

          入力後に絞り込まないと、空欄を絞り込んでいる事になります。

          これではないですかね?

           

          間違ってたらすいません。

           

          ご参考までに 

          • 2. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
            ARIKA1
              

            tellaさま

             

            ありがとうございます。

            さっそく、7と8を入れ替えてみました。

            結果は変わらずデータが見つかりませんでした。

             

            ちなみに抜き出し期間の変数のフィールドを確認できるように表の中にレイアウトしてみると

            FROMが2010.01.15、TOが2010.03.15と正しく参照されているのですが・・・・・・・。

             

            • 3. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
              tella
                

              ARIKAさん

              おはようございます。

               

              そうですか。うまく行かなかったですか。

              スクリプトを見る限り、7と8を入れ替えるだけで行けるはずなんですが・・・。

               

              因に、 契約年月日フィールド?を手動で2010.01.15...2010.03.15で検索するとちゃんとHITしてきますか?

               

              もう一カ所気になったのが、

               

              7 フィールド設定[契約明細ファイル::契約年月日[$$抜き出し対象期間FROM &"..."& $$契約明細ファイル::抜き出し対象期間TO] ]

               

              これの計算式って「$$抜き出し対象期間FROM &"..."& $$抜き出し対象期間TO」の下記間違いですよね?

              にtellaにより編集されたメッセージ
              • 4. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
                ARIKA1
                  

                tellaさま

                 

                お早うございます。

                返信ありがとうございます。

                 

                ご指摘の

                  <因に、 契約年月日フィールド?を手動で2010.01.15...2010.03.15 で検索するとちゃんとHITしてきますか?>

                   

                  はい、ちゃんとHITしてきます(109件中の17件)。

                 

                  <もう一カ所気になったのが、7 フィールド設定[契約明細ファイル::契 約年月日[$$抜き出し対象期間FROM &"..."& $$契約明細ファイル:

                   抜き出し対象期間TO] ] これの計算式って「$$抜き出し対象期間FROM &"..."& $$抜き出し対象期間TO」の下記間違いですよね?

                 

                  すみません間違えました。ご指摘の通り実際のコーディングは「$$抜き出し対象期間FROM &"..."& $$抜き出し対象期間TO」となっています。

                 

                よろしくお願いいたします。

                 

                 

                • 5. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
                  tella
                    

                  ARIKAさん

                   

                  すいません。一つ見逃してました。

                  抜き出し対象期間FROMと抜き出し対象期間TOは「業務メニューファイル」のフィールドで

                  その値を使うのは「契約案件明細ファイル」なんですよね?

                  さらに、 業務メニューファイルと契約案件明細ファイルはリレーションで繋がってるんですよね?

                   

                  この場合、リレーションが成立している抜き出し対象期間FROMと抜き出し対象期間TOしかグローバル変数で

                  直接とってくる事は出来ません。

                  通常別ファイル(Aファイル)の値を別ファイル(Bファイル)で検索条件等に使う場合、AファイルとBファイルで一つずつ

                  スクリプトを作成し、データを引き渡してあげる処理が必要になります。

                  実際にスクリプトの例をかきますと、Bファイルはほぼそのままでいいんですが、

                   

                  Aファイルで

                  変数を設定 [$date;業務メニューファイル::契約案件明細抜き出し対象期間FROM &"..."& 業務メニューファイル::契約案件明細抜き出し対象期間TO

                  スクリプトを実行[]←ココでBファイルの検索スクリプトを選択し、選択した画面の下の方にあるスクリプトパラメータに$dateを入力

                   

                  Bファイルに 

                   1 全レコードを表示

                   2 レイアウトの切り替え[「契約案件一覧表(契約明細ファイル)」

                   3 検索モードに切り替え[記憶する]

                   4 検索実行[]

                   5 変数を設定[$date;Get(スクリプト引数)

                   6 検索モードに切り替え[]

                   7 フィールド設定[契約明細ファイル::契約年月日[$date] ]

                   8 対象レコードの絞り込み

                   9 レコードのソート[記憶する;ダイアログなし]

                   

                  10 ブラウズモードに切り替え[一時停止]  

                   

                  という感じにすれば可能です。

                   

                  遠回りになっちゃってすいませんでした。

                  ご参考までに。 

                   

                   

                   

                  • 6. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
                    ARIKA1
                      

                    tellaさま

                     

                    ありがとうございます。

                    理解が悪くて申し訳ありません。もう少し教えて頂けませんか。

                     

                    ーーーーーーーーーーー

                    Aファイルで

                    変数を設定 [$date;業務メニュー ファイル::契約案件明細抜き出し対象期間FROM &"..."& 業務メニューファイル::契約案件明細抜き出 し対象期間TO

                    スクリプトを実行[]←ココでBファイルの検索スクリプトを選択し、選択した画面の下の方にあるスクリプト パラメータに$dateを入力

                    ーーーーーーーーーーー

                     

                     

                    上記をこのようにコーデイング致しました。

                     

                    変数を設定 [$契約案件明細抜き出し対象期間FROMTO;業務メニュー ファイル::契約案件明細抜き出し対象期間FROM &"..."& 業務メニューファイル::契約案件明細抜き出 し対象期間TO

                    スクリプト実行[契約案件詳細情報検索],ファイル:「契約案件明細ファイル」]

                     

                    質問1

                    選択した画面の下の方にあるスクリプトパラメータに$date  ($契約案件明細抜き出し対象期間FROMTO)を入力とありますがここでいう、選択した画面とはBファイルの「契約案件詳細情報検索」の画面でしょうか? それともAファイルの業務メニューの画面でしょうか?

                     

                    質問2

                    自分で”..."を使って範囲指定を行おうとするフィールドの属性は日付でしょうか?テキストでしょうか? フィールドの定義の仕方で混乱しています。

                    基本的な質問ですみません。

                    もっとも、やりたいことはFROMのフィールドとTOのフィールドで別々に入力したものをFROM TOの範囲指定にしたいのですが。

                     

                    質問3

                    上記のコーデイングでAファイル(業務メニューファイル)のスクリプト からBファイルのスクリプトに移行したと考えれば良いのでしょうか?

                    それともFROMとTOの入力が完了したらBファイルのスクリプトを 実行させるような続きのコーデイングが、Aファイルのスクリプトに必要

                    でしょうか?

                     

                    ーーーーーーーーーー 

                    Bファイルに 

                     1 全レ コードを表示

                     2 レイアウトの切り替え[「契約案件一覧表(契約明細 ファイル)」

                     3 検索モードに切り替え[記憶する]

                     4 検索実行[]

                      5 変数を設定[$date;Get(スクリプト引数)

                     6 検 索モードに切り替え[]

                     7 フィールド設定[契約明細ファイル::契 約年月日[$date] ]

                     8 対 象レコードの絞り込み

                     9 レコードのソート[記憶する;ダイアログなし]

                     10 ブラウズモードに切り替え[一 時停止] 

                     ーーーーーーーーーーーー

                     

                    質問4

                     

                     5 変数を設定[$date;Get(スクリプト引数)]とありますが、この ”Get(スクリプト引数)”というのはこのとおりのコーデイングで

                    よろしいのでしょうか?

                     

                     

                    基本的な知識が欠けていて申し訳ありません。 よろしくお願いいたします。

                     

                    • 7. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
                      tella
                        

                      ARIKAさんこんにちは

                      ご質問に対しお答えいたします。 

                       

                      質問1

                      選択した画面の下の方にあるスクリプトパラメータに$date  ($契約案件明細抜き出し対象期間FROMTO)を入力とありますがここでいう、選択した画面とはBファイルの「契約案件詳細情報検索」の画面でしょうか? それともAファイルの業務メニューの画面でしょうか?

                      回答1

                      これはAファイルの「スクリプト実行」のステップでBファイルのスクリプトを選択すると思うのですが、下の方の「OK、キャンセル」のすぐ上に

                      「オプションのスクリプトパラメータ」の項目に入力します。

                       

                      質問2

                      自分で”..."を使って範囲指定を行おうとするフィールドの属性は日付でしょうか?テキストでしょうか? フィールドの定義の仕方で混乱しています。

                      基本的な質問ですみません。

                      もっとも、やりたいことはFROMのフィールドとTOのフィールドで別々に入力したものをFROM TOの範囲指定にしたいのですが。

                      回答2

                      これは日付フィールドで問題ないです。 

                       

                      質問3

                      上記のコーデイングでAファイル(業務メニューファイル)のスクリプト からBファイルのスクリプトに移行したと考えれば良いのでしょうか?

                      それともFROMとTOの入力が完了したらBファイルのスクリプトを 実行させるような続きのコーデイングが、Aファイルのスクリプトに必要

                      でしょうか?

                      回答3

                      そうですね。AファイルのスクリプトからBファイルのスクリプトを呼び出し、AからBへスクリプトが移行したと考えていただければ結構です。

                      AファイルからBファイルのスクリプトを実行させる手続きが「スクリプト実行」のスクリプトステップです。

                       

                      質問4

                      5 変数を設定[$date;Get(スクリプト引数)]とありますが、この ”Get(スクリプト引数)”というのはこのとおりのコーデイングで

                      よろしいのでしょうか?

                      回答4

                      そのままで大丈夫です。

                      回答1のスクリプト実行ステップで実行したBファイルのスクリプトにAファイルで指定した変数を渡してあげる手順が「オプションのスクリプトパラメータ」に変数名を

                      入力する事です。

                      それをBファイルで「受け取る 」方法が5番のステップになります。

                      スクリプトステップや関数の詳細に関して、もっと詳しく知りたいのであれば製品のHELPを見るのが便利です。

                       

                      こんな感じでいいですか?

                       

                      ご参考までに 

                      • 8. Re: スクリプトを使って対象データの絞り込みをしようとしていますが上手くいきません。
                        ARIKA1
                          

                        tellaさま

                         

                        おかげさまで、対象レコードの抜き出しができました。

                        この方式は他の管理資料でもたくさん使うことになります。

                        助かりました。

                        ご指導、ありがとうございました。