7 返信 最新の回答 日時: Sep 14, 2014 2:10 AM ユーザー:nkk47

    当月度を表示させるには?

    nkk47

      タイトル

      当月度を表示させるには?

      フォーラムに投稿

      お世話になります。

      利用環境
      ・Windos Vista HP SP2
      ・FileMaker PRO 11 0v3

      以前にも「現在の日付から該当データを表示させる」という質問をさせていただき、ご教示頂きました方法で解決したのですが、今回も同じような事なのでそれで出来るかとやってみましたが、どうにもうまくいきませんでした。


      以下、●はテーブル名、・はフィールド名です。

      ●カレンダー[4018レコード(2010/01/01~2020/12/31)]
      ・年月日
      ・曜日
      ・祝祭日
      ・祝祭日マーク

      ●勤務表
      ・集計開始年月日
      ・集計終了年月日
      ・年
      ・月度
      ・G_集計開始年月日(グローバル)
      ・G_集計終了年月日(グローバル)

      ・ポータル:カレンダー

      ●勤務記録
      ・集計開始年月日
      ・集計終了年月日
      ・年月日
      ・年
      ・月度
      ・祝祭日マーク

      ●集計
      ・集計開始年月日
      ・集計終了年月日
      ・年
      ・月度
      ・本日日付

      集計レイアウトには位置した[当月度]というボタンをクリックすると、現在の年月日から、対応するデータをポータルに表示させたいので、色々と試行錯誤しましたがどうにもうまくいきません。

      現在の年月日が、勤務表の[集計開始年月日]と[集計終了年月日]のどこに該当するのかを調べて、対応する[年][月度]へその値を変えさせる・・・というような流れになるのかと考えましたが、行き詰まりました。
      文章での説明は難しいので、ファイルを下記へアップしました。

      http://firestorage.jp/download/6c08db6ee7704aef224db8d0b386a40eb44dfe33

      ご教示の程、宜しくお願い致します。

       

        • 1. Re: 当月度を表示させるには?
          sago350@未来Switch

          こんな感じですかねえ

          ファイル

          • 2. Re: 当月度を表示させるには?
            nkk47

             sago35 さん

            早々にご教示頂き、ありがとうございます。
            解決いたしました。

            ご教示頂きましたスクリプトの内容は、まだ完全には理解出来ていませんが、これから勉強致します。

            これからも、宜しくお願い致します。

            • 3. Re: 当月度を表示させるには?
              nkk47

              sago35 さん

              いつもお世話になります。

              本日が、別データ(カレンダー)のどの期間になるのかを検索させたいなどの
              場合、下記のようなスクリプトで実行できることを教わりました。

              検索モードに切り替え[]
              フィールド設定[テーブルA;;フィールドA; "<-"  & Get( 日付 )]
              フィールド設定[テーブルA;;フィールドB; "->"  & Get( 日付 )]
              検索実行[]
              全レコード表示

              これを始めて見た時、[ "<-"  & Get( 日付 ) ]という記述が何故このよう
              になるのかが理解出来ませんでした。
              スクリプト辞典(書籍)やヘルプで調べみたのですが、私の調べ方が足りなかっ
              たのでしょう。いまでも理解出来ていません。

              単純に下記のようではいけないのか?

              フィールド設定[テーブルA;;フィールドA; <- Get( 日付 )]
              フィールド設定[テーブルA;;フィールドB; -> Get( 日付 )]

              実際にその様に記述しようと試みると、
              ・フィールド設定で[テーブルA;;フィールドA or B]には出来る。
              ・計算結果を指定で[ <- Get( 日付 ) ]と記述してOKをクリックすると

              数字、テキスト、フィールド名、または[(]を入れて下さい。

              というダイアログが表示されてしましました。
              <- を指定する場合は、その左右にフィールド、数値などの比較できる値がな
              ければならないので、当たり前だと気が付きました。

              そこで、ターゲットフィールドを指定せずに、計算式で指定してはどうかと
              思い、下記のように記述いたしました。

              テーブルA;;フィールドA <- Get( 日付 )
              テーブルA;;フィールドB -> Get( 日付 )

              すると今度はアラートも表示されませんでしたので、この状態で動くのかを検
              証してみたところ、全然違う値が返されました。
              現時点であれば「2014年 9月度」と返されるところが、「2014年 2月度」と返
              されてしまいます。

              もちろん、冒頭のこちらでご教示頂いた通りに記述であればきちんと
              2014年9月 と表示されます。(?_?)

               "<-"  & Get( 日付 )

              という記述の意味をご教示頂きたく、宜しくお願い致します。

               

              • 4. Re: 当月度を表示させるには?
                Shin

                "<=" ですよ。"≦" でも良いのですが。

                • 5. Re: 当月度を表示させるには?
                  nkk47

                  Shinさん

                  お世話になります。

                   

                  単なるタイプミスでした。申し訳ございません。m( _ _ )m

                  • 6. Re: 当月度を表示させるには?
                    sago350@未来Switch

                    検索モードに切り替え[]
                    フィールド設定[テーブルA;;フィールドA; "<-"  & Get( 日付 )]
                    フィールド設定[テーブルA;;フィールドB; "->"  & Get( 日付 )]

                    検索実行[]

                    スクリプトを赤文字の箇所だけにすると判るのですが、検索モードでフィールドに「<=2014/09/14」という文字列を入れています。あくまで、"<=" は文字列なのです。
                    応用として、ある期間の日付を出したい時は

                    Get( 日付 ) & ".." Get( 日付 ) + 10

                    とすると
                    「2014/09/14...2014/09/24」
                    というテキストを返します。

                    結果としてどういう値が入っているか確認すると、解りやすいかなと思います。

                    • 7. Re: 当月度を表示させるには?
                      nkk47

                      sago35さん

                      いつもお世話になります。

                      フィールド設定[テーブルA;;フィールドA; "<-"  & Get( 日付 )]

                      上記は・・・

                      テーブルAのフィールドA
                      <= 現在の日付 という文字列を入力する

                      という事なのですね。

                      ""(ダブルクォーテーション)で囲まれた値は文字列として扱われるという事
                      までは理解していましたが、その後の & は左側の文字列に、右側の文字列を
                      追加して連結する文字列演算子という事なので、Get( 日付 ) は文字列じゃな
                      いから・・・と、思考が停止しておりました。

                      > スクリプトを赤文字の箇所だけにすると判るのですが、検索モードでフィー

                      早速試してみました。
                      確かに <=2014/09/14 と表示されました。

                      すっきりと胸のつかえが取れました。
                      ありがとうございます。

                      これからも宜しくお願い致します。