HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■14473 / inTopicNo.1)  主ウィンドウ と 補助ウィンドウについて
  
□投稿者/ ジェダイの桐 -(2024/07/08(Mon) 16:23:57)
    2024/07/09(Tue) 17:44:50 編集(投稿者)
    2024/07/08(Mon) 16:26:00 編集(投稿者)

    桐10s Windows10を使用しています。


    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇


    やりたい事

     主ウィンドウの情報 で 補助ウィンドウのデータを絞り込み
     
     ある条件時には 主ウィンドウの情報 で 補助ウィンドウのデータを計算したい

     補助ウィンドウ を直接触ることはない


    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇


    こんにちは。


    計画表.TBX
    計画表.WFX 主ウィンドウ
    在庫表.TBX
    在庫表.WFX 補助ウィンドウ
    計画表.kex  があります。


    計画表.TBX には
     
     [商品名]    (文字列)
     [受注数]    (数値)
     [出荷準備日]  (日時)
     [出荷日]    (日時)

    の情報が有り [商品名] と [受注数] と [出荷日] は必ず情報が入っています。


    在庫表.TBX には

     [商品名]    (文字列)
     [在庫数]    (数値)

    の情報が入っています。


    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇


    計画表.WFX に 在庫表.WFX(ポップアップ) を開くコマンドボタンを作成しています。

    1、

    計画表.WFX に レコード移動 で &商品名 に [商品名] を代入しています。

    計画表.WFX の レコード移動毎 に 在庫表.WFX の [商品名] を &商品名で絞り込み 計画表.WFX へ戻る。

    流れ

    起点 計画表.WFX レコード移動 → 在庫表.WFX 絞り込み → 計画表.WFX に戻る

    2、

    計画表.WFX の [出荷準備日] が 未定義から定義になった時(初めて入力された) &受注数 に [受注数] を代入する。

    代入した &受注数 を 在庫表.WFX の [在庫数] から &受注数 を引く


    若しくは

    計画表.WFX の [出荷準備日] が 定義から未定義になった時(出荷準備を止めた) &受注数 に -[受注数] を代入する。

    代入した &受注数 を 在庫表.WFX の [在庫数] から &受注数 を引く


    流れ

    起点 計画表.WFX [出荷準備日] が 初めて入力される .or 入力削除される → 在庫表.WFX 絞り込み → 在庫表.WFX [在庫数] 計算 → 計画表.WFX に戻る


    1と2 を実現する方法が知りたいです。


    ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇


    自分の考えとしては、 レコード移動 と 入力前 と 入力後 と ソース値更新 を使用するのではと思いプログラムを作成しました。

    主ウィンドウ → 補助ウィンドウ → 補助ウィンドウでやりたい事実行 → 主ウィンドウに戻る

    の方法が思いつかないです。


    分かる方、お時間のある時教えて頂ければ幸いです。

引用返信 [メール受信/OFF] 削除キー/
■14476 / inTopicNo.2)  Re[1]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ まさやん -(2024/07/08(Mon) 23:54:27)
    2024/07/09(Tue) 07:53:33 編集(投稿者)
    2024/07/09(Tue) 06:15:04 編集(投稿者)
    2024/07/09(Tue) 06:14:07 編集(投稿者)
    2024/07/09(Tue) 05:52:01 編集(投稿者)
    2024/07/09(Tue) 05:50:43 編集(投稿者)
    2024/07/09(Tue) 01:24:04 編集(投稿者)
    2024/07/09(Tue) 01:10:15 編集(投稿者)
    2024/07/09(Tue) 01:08:39 編集(投稿者)
    2024/07/09(Tue) 00:52:05 編集(投稿者)
    2024/07/09(Tue) 00:48:37 編集(投稿者)

    ジェダイの桐さんの

     計画表 の上に 在庫表コマンド 配置の場合のサンプルを
     アップしてみます。

     


    因みに
      作例は  商品名で 検索しましたが


      商品帳 という表を作って コードを 決めて
         コード  商品名  
          1    リンゴ
          2     桃   などの

      固有番号の 商品コードを
       計画表と 在庫表に 設けて 番号で検索すると 確実性があると思います。
                    (のちのちに そうするといいかもね


     &商品名 という変数が 自動変数 になっていますので
     在庫表フォームでは 使えません。

     ので  &品名 という 共通変数を ちょっと設けてみました。

     実は まだ その辺の 詳しい書き方 はまだ会得していません
     この機会に 私も知りたいです。

     おおよそ・・  の 感じで 理解していただけるとありがたいです。
                         すみません。

     目的に あっているかどうか心配ですが・・・




    ここから   
        表 "在庫表"
            検索 [商品名]=&STR
         if (#終端行)
           メッセージボックス "在庫表","指定の商品はありません",ボ=1
         else
           行訂正 [在庫数]=[在庫数]-&受注数
         end
           終了 表,編集対照表
           編集表 &hwindow
    までは
     
       手続き実行にしようとしましたが

       &受注数 の変数が 自動変数になっていましたので
       それぞれに書きました。

       局所の変数になれば 手続き実行 在庫表更新() で できますので
       2度手間はしなくてもいいです。

引用返信 [メール受信/OFF] 削除キー/
■14477 / inTopicNo.3)  Re[2]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ まさやん -(2024/07/09(Tue) 01:00:44)
    2024/07/09(Tue) 05:57:37 編集(投稿者)
    2024/07/09(Tue) 03:00:30 編集(投稿者)

    ジェダイの桐 さん

       まったくの蛇足ですが アップしてみました。

       在庫表は 一行だけの表示でよかったら・・
       のサンプルを あげてみました。
    カード形式にしてみました



    また こんなことはないかと思いますが

       もし リンゴ というデータが 在庫表になかったら・・・・
       在庫表の リンゴ のデータを 削除してあります。
引用返信 [メール受信/OFF] 削除キー/
■14478 / inTopicNo.4)  Re[2]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 08:42:58)
    まさやんさん


    おはようございます。


    すみません。
    物凄く時間をかけて頂いたのだなと言う事が、更新時間が物語っています。


    本当に有難うございますm(__)m


    本日はサンプルを見させて頂き色々と思考を巡らせます。


    また、コメントしますね!!



    >   固有番号の 商品コードを
    >    計画表と 在庫表に 設けて 番号で検索すると 確実性があると思います。


    確かにそうですね。
    商品コードがあるので、そちらに本格運用時は置き換えて考えます!


    アイディア有難うございます!

引用返信 [メール受信/OFF] 削除キー/
■14479 / inTopicNo.5)  Re[3]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 08:44:13)
    まさやんさん


    おはようございます。


    サンプル有難うございます。


    こちらも確認させて頂きます!
引用返信 [メール受信/OFF] 削除キー/
■14480 / inTopicNo.6)  Re[1]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ONnoji -(2024/07/09(Tue) 11:16:29)
    2024/07/09(Tue) 14:26:58 編集(投稿者)

    〔計画表.tbx〕

    項目番号 項目名   データ型  項目計算式
    1     商品名   文字列  
    2     受注数   数値  
    3     出荷準備日 日時  
    4     出荷日   日時  

    〔在庫表.tbx〕

    項目番号 項目名   データ型  項目計算式
    1     商品名   文字列  
    2     在庫数   数値  


    いくつか確認させてください。

    1.計画表.wfx のフォームヘッダ部に現在行の[商品名]に対応する 在庫表.tbx の[在庫数]の値が表示されればOKですか?

    2.どうしても、ポップアップの 在庫表.wfx を表示しなければいけませんか??

    p.s.

    今回の件は、「主ウィンドウと補助ウィンドウ」というよりも、単純に 在庫表.tbx の[在庫数]の値をどこに表示させるかだと思いますね。

    仮に、在庫表.wfx を表示しても、たった1つのレコードしか表示しないのですから・・・

    わざわざポップアップウィンドウを表示して、2つのウィンドウに視線を行ったり来たり移動させるのは、見にくいだけではないでしょうか??





引用返信 [メール受信/OFF] 削除キー/
■14481 / inTopicNo.7)  Re[2]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 11:41:33)
    ONnojiさん


    こんにちは。


    > 1.計画表.wfx のフォームヘッダ部に現在行の[商品名]に対応する 在庫表.tbx の[在庫数]の値が表示されればOKですか?


    はい。OKです。


    > 2.どうしても、ポップアップの 在庫表.wfx を表示しなければいけませんか??


    現在行の[商品名]に対応する 在庫表.tbx の[在庫数]の値が表示され、
    現在表の [出荷準備日] に 入力 .or 入力削除 で
    在庫表.tbx [在庫数]- 現在表.tbx [受注数] が行えれば、ポップアップの 在庫表.wfx は必要ありません。


    > p.s.
    >
    > 今回の件は、「主ウィンドウと補助ウィンドウ」というよりも、単純に 在庫表.tbx の[在庫数]の値をどこに表示させるかだと思いますね。


    間違いなく、本質は [在庫数]の値をどこに表示させるか です。
    また、考え過ぎたのかもしれません・・・

引用返信 [メール受信/OFF] 削除キー/
■14482 / inTopicNo.8)  Re[3]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 16:43:10)
    まさやんさん


    こんにちは!


    サンプル有難うございましたm(__)m
    頂いたサンプルで、やりたい事の結果を求める事は出来ています。


    私の伝え方が悪かったのですが、在庫表.WFX はモードレス(且つポップアップ)で開きっぱなし のイメージでした。


    まさやんさんが作ってくれた サンプル はやりたい事の結果は求めれています。なので サンプルを元に私のイメージの動きにならないか思考錯誤していますが、なかなか難しいですね(T_T)


    私が、固有・共通変数を使用せず、局所で変数の受け渡しをしようしているのも思い通りに動かない原因の一つだと思います・・・


    ちょっと今の私では、高級な設計でした。
    もう少し粘ります!!
引用返信 [メール受信/OFF] 削除キー/
■14483 / inTopicNo.9)  Re[4]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ まさやん -(2024/07/09(Tue) 16:58:02)
    2024/07/09(Tue) 17:32:35 編集(投稿者)
    2024/07/09(Tue) 17:22:06 編集(投稿者)
    2024/07/09(Tue) 17:20:56 編集(投稿者)
    2024/07/09(Tue) 17:15:10 編集(投稿者)




    > 頂いたサンプルで、やりたい事の結果を求める事は出来ています。
    >
    > 私の伝え方が悪かったのですが、在庫表.WFX はモードレス(且つポップアップ)で開きっぱなし のイメージでした。
    >
    なるほど。

    >表 "在庫表"
    >        検索 [商品名]=&STR
    >     if (#終端行)
    >       メッセージボックス "在庫表","指定の商品はありません",ボ=1
    >     else
    >       行訂正 [在庫数]=[在庫数]-&受注数

    &在庫数=[在庫数]

    >     end
    >       終了 表,編集対照表
    >       編集表 &hwindow

    サンプルでは  在庫表に行って 商品検索して 在庫の増減した という流れでした。
    桐でいう 併合置換  と同じことです
     


           その時に  在庫数を 変数に 代入して
           計画表フォームの ヘッダかフッタのどっかに  その変数と 商品名を
           テキストボックスで  表示すると リアルタイムに
           在庫が 表示されますね。
    その時 私は ウインドウ更新 -1 で再表示させていました


           レコード移動イベントの箇所も  同じように 商品検索に行って
           在庫数を 変数に取得して 同じように ウインドウ更新 -1で
           計画表フォームに 表示されるといいです。


           ただ  在庫数の求め方が  もっと現代的に求める計算式が
           あるかと思います。(レガシー的な考えが抜けなくて・・・)

           
引用返信 [メール受信/OFF] 削除キー/
■14484 / inTopicNo.10)  Re[2]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 17:28:38)
    ONnojiさん


    こんにちは。


    > 今回の件は、「主ウィンドウと補助ウィンドウ」というよりも、単純に 在庫表.tbx の[在庫数]の値をどこに表示させるかだと思いますね。
    >
    > 仮に、在庫表.wfx を表示しても、たった1つのレコードしか表示しないのですから・・・


    考えれば考えるほど、この通りだと思いました。
    明日こちらの方向で、再度考えます!


    アイディア有難うございます!


引用返信 [メール受信/OFF] 削除キー/
■14485 / inTopicNo.11)  Re[5]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 17:32:34)
    まさやんさん


    こんにちは。


    >>私の伝え方が悪かったのですが、在庫表.WFX はモードレス(且つポップアップ)で開きっぱなし のイメージでした。


    こちらの考え方は、一旦白紙にします。


    >計画表フォームの ヘッダかフッタのどっかに  その変数と 商品名を
    >テキストボックスで  表示すると リアルタイムに在庫が 表示されますね。


    こちらの考え方が、素直ですね!


    明日、この方向で再度考え直します。


    まだ粘ります!


引用返信 [メール受信/OFF] 削除キー/
■14486 / inTopicNo.12)  Re[3]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ONnoji -(2024/07/09(Tue) 18:01:17)
    > アイディア有難うございます!

    粘りますね。

    明日までにサンプルを用意します。

    お待ちください。

    ちょっと手こずっているところがありまして・・・(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■14487 / inTopicNo.13)  Re[3]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ 尾形 -(2024/07/09(Tue) 18:25:16)
    どうも、こんにちは

    ちなみに
    在庫の加算はどうされるのですか?


引用返信 [メール受信/OFF] 削除キー/
■14488 / inTopicNo.14)  Re[4]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/09(Tue) 18:33:32)
    尾形さん


    こんにちは。


    > ちなみに
    > 在庫の加算はどうされるのですか?


    こちらについては、別の表があるので、計画を立てた後 別表と在庫表を併合する予定です。
    なので、純粋に在庫をマイナスしたいです。


    計画を立てる時に 受注に対して、在庫があるのか?
    在庫数を把握しながら、計画(今回の話で言えば出荷準備日)を立案する。
    こちらが狙いとなります。


引用返信 [メール受信/OFF] 削除キー/
■14489 / inTopicNo.15)  Re[2]: イベント処理で開いた表について
□投稿者/ ONnoji -(2024/07/10(Wed) 08:03:33)
    2024/07/10(Wed) 08:17:49 編集(投稿者)

    目の前に見えない物を理解するのは難しいです。

    サンプルを理解するための予備知識として、イベント処理で開いた表について説明しておきます。

    ■ファイルの構成について

    名札 メイン
     変数宣言 局所, 文字列{ &m編集文字列 }
     変数宣言 局所, 文字列{ &m編集文字列入力前, &m編集文字列入力後 }
     変数宣言 局所, 文字列{ &mNotice }
     変数宣言 局所, 文字列{ &mTblFileName在庫表 }
     変数宣言 局所, 長整数{ &mTblFileSize在庫表 }
     変数宣言 局所, 整数 { &mOpenStatus在庫表 }
     変数宣言 局所, 整数 { &mTblNum在庫表 }
     変数宣言 局所, 整数 { &mIsRecord在庫表 }
     変数宣言 局所, 整数 { &mIsString入力前, &mIsString入力後 }

     &mTblFileName在庫表 = #一括パス名 + "在庫表.tbx"



     ┌───────────────┐   ┌───────────────┐[開始時実行]コマンド
     │2.イベント処理       │   │4.イベント処理で開いた表  │ cmdStartupClick でオープン
     │               │   │               │
     │modify_計画表.kex       │   │在庫表.tbx          │
     │               ├───┤               │
     │               │   │               │
     │               │   │               │[終了時実行]コマンド
     │               │   │               │ cmdFinishClick でクローズ
     │               │   └───────────────┘
     │┌────────────────┐
     ││1.一覧表形式のフォーム    │
     ││                │
     └│modify_計画表.wfx        │
      │                │
      │                │
      │txtNotice            │
      │ソース:#変数( "mNotice" )   │
      │                │
      │                │
      │                │
      │                │
      └──────┬─────────┘
             │
      ┌──────┴────────┐
      │3.フォームの編集対象表   │
      │               │
      │計画表\計画表.tbx       │
      │               │
      │               │
      │               │
      │               │
      │               │
      └───────────────┘

    上のダイアグラムのように、4.在庫表.tbxはイベント処理で開いた表である。

    そのために、表番号:&mTblNum在庫表 はありますが、ウィンドウハンドル番号はありません。

    つまり、ウィンドウを伴わない表(.tbx)であり、ユーザが直接フォーカスできないステルスな表(.tbx)です。※添付画像を参照
        ・・・・・・・・・・・・・・    ・・・・・・・・・・・・・・・・・・・・・・・・



467×472 => 248×250

1720566482.jpg
/53KB
引用返信 [メール受信/OFF] 削除キー/
■14490 / inTopicNo.16)  Re[6]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ まさやん -(2024/07/10(Wed) 08:45:42)
    2024/07/10(Wed) 12:42:46 編集(投稿者)
    2024/07/10(Wed) 12:21:21 編集(投稿者)
    2024/07/10(Wed) 09:05:06 編集(投稿者)
    2024/07/10(Wed) 09:03:16 編集(投稿者)
    2024/07/10(Wed) 09:01:30 編集(投稿者)


    > >計画表フォームの ヘッダかフッタのどっかに  その変数と 商品名を
    > >テキストボックスで  表示すると リアルタイムに在庫が 表示されますね。
    >
    >
    > こちらの考え方が、素直ですね!


    昨日の 考え方の延長で アップしてみますね

    在庫更新時には
    併合 コマンドも使うのが本来なんでしょうが
    この方法で

    仕入伝票記載時に 仕入伝票イベント中で 仕入先台帳の 各月のデータ更新や
    同時に 仕入商品金額や数量の データ月更新や
    仕訳帳データ 転記 などに 利用していました。
    結構 便利に使っていました


    因みに
    サンプルなんですが こんなことはないでしょうが
    りんごの行の 在庫データが 何かしらのきっかけで
    消えた・・という 状態を想定して

    リンゴの時 データなし  ということにしてました
    (実際にはないでしょうけどね 例えばの例です)

    初回にアップしたサンプルに不具合がありましたので
    再度 アップしました


    × 押して 保存聞かれたとき いいえ 答えると データが
    アンバランスになるのこと 想定していませんでした
    サンプルは 削除します
引用返信 [メール受信/OFF] 削除キー/
■14491 / inTopicNo.17)  Re[3]: イベント処理で開いた表について
□投稿者/ ONnoji -(2024/07/10(Wed) 09:11:35)
    目の前に見えない物を理解するのは難しいです。

    サンプルを理解するための予備知識として、テキストボックスのイベントについて説明しておきます。


    【転載】16.3 テキストボックスのイベント|桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
        http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section16-3


    16.3 テキストボックスのイベント
     テキストボックスの[ソース]属性に編集対象表の項目名、または変数名がセットされている場合、
    表示モードから訂正等の更新モードに遷移するとテキストボックスの中にキャレット(文字カーソル)が現れます。
    桐のヘルプではこの事を[エディタ]に入ったと表現していますが、しかし[エディタ]と聞いてもチンプンカンプンな人も居ます。
    はたして、[エディタ]とは何なのでしょうか?

     テキストボックスの[ソース]属性が編集対象表の項目と変数のどちらの場合でも、値を入力する時にはテキストボックスはテキストエディタとして動作します。
    つまり、テキストボックスにキャレットが表示された時には、すなわちテキストエディタ=[エディタ]に入っているわけです。


                     ┌────────【エディタ内】─────────────┐
                     │                            │
     [入力前]イベント       │[編集開始]イベント   [入力後]イベント      │ [ソース値更新]イベント
     ┌─────────────┐ │┌────────┐   ┌─────────────┐│ ┌───────────┐
     │オブジェクト名::     │ ││オブジェクト名::│   │オブジェクト名::     ││ │オブジェクト名::   │
     │入力前(          │ ││編集開始()   │   │入力後(          ││ │ソース値更新()    │
     │参照 文字列 &編集文字列) │ ││        │   │参照 文字列 &編集文字列,│  │           │
     │             ├→┤│        ├→┬→┤   長整数 &モード,  ├─→┤           │
     │             │ ││        │ │ │参照 長整数 &入力継続) │  │           │
     │             │ ││        │ │ │             ││ │           │
     └─────────────┘ │└────────┘ │ └─────────────┘│ └───────────┘
                     │           │                │
                     │  [編集文字列変更]│                │
                     │   イベント    │                │
                     │       ┌───┴────┐           │
                     │       │オブジェクト名::│           │
                     │       │編集文字列変更()│           │
                     │       │        │           │
                     │       │        │           │
                     │       │        │           │
                     │       └────────┘           │
                     └────────【エディタ内】─────────────┘

      エディタの関連のイベントは↑上の図のように5種類あります。
     [入力前]イベント→{[編集開始]イベント→[編集文字列変更]イベント→[入力後]イベント}→[ソース値更新]イベント
     括弧({})で示した範囲は、エディタ内のイベントです。


     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    今回のサンプルでは、

    1.txt出荷準備日::入力前(参照 文字列 &編集文字列)
    2.txt出荷準備日::入力後(参照 文字列 &編集文字列, 長整数 &モード, 参照 長整数 &入力継続)
    3.txt出荷準備日::ソース値更新()

    以上の3つのイベントを使っています。

                     ┌────────【エディタ内】─────────────┐
                     │                            │
     [入力前]イベント       │[編集開始]イベント   [入力後]イベント      │ [ソース値更新]イベント
     ┌─────────────┐ │┌────────┐   ┌─────────────┐│ ┌───────────┐
     │txt出荷準備日::      │ ││未使用     │   │txt出荷準備日::      ││ │txt出荷準備日::    │
     │入力前(          │ ││        │   │入力後(          ││ │ソース値更新()    │
     │参照 文字列 &編集文字列) │ ││        │   │参照 文字列 &編集文字列,│  │           │
     │             ├→┤│        ├→┬→┤   長整数 &モード,  ├─→┤           │
     │             │ ││        │ │ │参照 長整数 &入力継続) │  │           │
     │             │ ││        │ │ │             ││ │           │
     └─────────────┘ │└────────┘ │ └─────────────┘│ └───────────┘
                     │           │                │
                     │  [編集文字列変更]│                │
                     │   イベント    │                │
                     │       ┌───┴────┐           │
                     │       │未使用     │           │
                     │       │        │           │
                     │       │        │           │
                     │       │        │           │
                     │       │        │           │
                     │       └────────┘           │
                     └────────【エディタ内】─────────────┘


     ―[入力前]イベント
      エディタにへ入る前に発生するイベントです。
      編集文字列を変更できます。
      具体的には、引数:&編集文字列 に任意の文字列を代入します。

     ―[入力後]イベント
      エディタから脱出する直前に発生するイベントです。
      このイベントではまだエディタから脱出していません。
      ・引数:&編集文字列
       編集した文字列を最適化する場合には、引数:&編集文字列 の値を変更します
      ・引数:&モード
       確定([Enter]キーや[F4]キー)か破棄( [Esc]キーによるキャンセル)を判定する
      ・引数:&入力継続
       イチ(1)を代入するとエディタから脱出しないで、再び編集エディタに戻る
        ↑
       ※著者( ONnoji )注:安易にこれを使用すると、ユーザが混乱する恐れがあります。
       使用に当たっては、メッセージボックスを表示してユーザの意思を確認することが望ましいです。
       なお、入力値に誤りがある場合には、再び編集エディタに戻らず、テキストボックスの文字色を赤にする等も効果的です。

     ―[ソース値更新]イベント
       エディタを[Enter]キー/[F4]キー/[tab]キー/[Shift]+[tab]キー/他による確定で脱出した時に発生します。
       重要:タイトルバーの[×]ボタンなどでフォームを閉じるときにも発生します。
       エディタを[Esc]キーによるキャンセルで脱出した場合には発生しません。


    となるのですが・・・

    ここで1つ問題があります。

    それは、[ソース値更新]イベントは、エディタを[Enter]キー/[F4]キー/[tab]キー/[Shift]+[tab]キー/他による確定で脱出した時に発生するということです。

    つまり、txt出荷準備日のソース:[出荷準備日]の値を何も変更しない場合でも、[Enter]キーや[F4]キーを押せば、[ソース値更新]イベントは発生してしまうのです。

    ※これって[ソース値更新]イベントという看板に偽りアリですよね。より正確には[エディタ確定]イベントと表現する方が良さそうですが・・・(^^ゞ

    以上の理由から、


     無条件に
     オブジェクト操作 @txt出荷準備日{ ソース値更新 = 0 } /* [ソース値更新]イベントをオフにする */
                ↓
                ↓動的セット
                ↓
     1.txt出荷準備日::入力前( ) → 2.txt出荷準備日::入力後( ) → 3.txt出荷準備日::ソース値更新()
                               ↑
                               ↑動的セット
             条件を満たした場合         ↑
             オブジェクト操作 @txt出荷準備日{ ソース値更新 = 1 } /* [ソース値更新]イベントをオンにする */

    ↑上のように、条件を満たした場合だけ[ソース値更新]イベントをオンにするという対策をしています。

    私は、これを[イベント]属性の動的セットと呼んでいます。

     <参考>
      10 [イベント]属性の静的/動的セット|桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
      http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section10

    p.s.

    昨日、手間取っていたのは、txt出荷準備日::入力後( ) 内での条件判定の部分でありました。(^^ゞ


引用返信 [メール受信/OFF] 削除キー/
■14492 / inTopicNo.18)  Re[4]: イベント処理で開いた表について
□投稿者/ まさやん -(2024/07/10(Wed) 09:15:23)
    2024/07/10(Wed) 09:19:55 編集(投稿者)
    2024/07/10(Wed) 09:16:15 編集(投稿者)

    ONnojiさん

    > それは、[ソース値更新]イベントは、エディタを[Enter]キー/[F4]キー/[tab]キー/[Shift]+[tab]キー/他による確定で脱出した時に発生するということです。
    >
     
    そうなんですね
    勉強になります

    ありがとうございます。
引用返信 [メール受信/OFF] 削除キー/
■14494 / inTopicNo.19)  Re[4]: イベント処理で開いた表について
□投稿者/ ジェダイの桐 -(2024/07/10(Wed) 10:59:04)
    ONnojiさん


    おはようございます。


    私が、おぼろげに考えていた事(出来るかどうかは別として)は、

     1、計画表.WFXの レコード移動 で 商品名 を変数に代入する。
     2、在庫表.tbx の商品名を変数 検索して 在庫数 を変数に代入する。
     3、計画表.WFXの ヘッダ部に在庫数を表示するテキストボックスを作成して、在庫表.tbxで代入した 在庫数を代入した変数 を表示する。
     4、計画表.WFXの 出荷準備日 に 入力.or入力削除 があった場合、在庫数を計算させる。


    こういうざっくりしたイメージを考えていました。

    出荷準備日 へ 入力.or入力削除 の判断は 入力前 入力後 ソース値更新
    で行おうと思っていました。


    が、しかし


    > それは、[ソース値更新]イベントは、エディタを[Enter]キー/[F4]キー/[tab]キー/[Shift]+[tab]キー/他による確定で脱出した時に発生するということです。
    >
    > つまり、txt出荷準備日のソース:[出荷準備日]の値を何も変更しない場合でも、[Enter]キーや[F4]キーを押せば、[ソース値更新]イベントは発生してしまうのです。


    ソース値更新 の イベント発生条件 が上記の通りであれば、私の考えではやりたい事は実現しなかったという事が分かりました・・・


引用返信 [メール受信/OFF] 削除キー/
■14495 / inTopicNo.20)  Re[5]: イベント処理で開いた表について
□投稿者/ ONnoji -(2024/07/10(Wed) 11:30:27)
    >>それは、[ソース値更新]イベントは、エディタを[Enter]キー/[F4]キー/[tab]キー/[Shift]+[tab]キー/他による確定で脱出した時に発生するということです。
    > そうなんですね
    > 勉強になります

    オンの値と、オフの値が設定されているチェックボックス(トグルボタン)の[ソース値更新]イベントの場合には、

    オン → オフ
    オフ → オン

    で[ソース値更新]イベントが発生します。

    しかし、オンの値だけが設定されているチェックボックス(トグルボタン)の[ソース値更新]イベントの場合には、

    オフ → オン

    の場合だけ発生するようですよ。

    ということで、チェックボックス(トグルボタン)の場合には看板通りと言えますね。アハハハha

引用返信 [メール受信/OFF] 削除キー/

次の20件>

トピック内ページ移動 / << 0 | 1 | 2 >>

[このトピックに返信]
Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -