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

《 桐質問以外の話題は、「のほか掲示板」からどうぞ 》
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal認知症検査(1) | Nomal絞り込み検索条件式(3) | Nomal軸単位の異なるデータを一つのグラフで表示させたい(4) | Nomal数値型項目で入力の際数値以外のキーを受け付けない(17) | Nomal表のサイズが小さくなる。(6) | Nomal項目の値を変数に取り込むには(2) | Nomal桐10終了(12) | Nomal最新(直近)のデータだけを表示させたい(2) | Nomalレポートについて(12) | Nomal文字列の計算(12) | Nomal表整理の一括化(17) | Nomalwindows10の動作(8) | Nomal経過日を知りたい(5) | Nomal表引きについて(13) | Nomal超初心者です。桐の変数代入について教えて下さい。(2) | Nomal区分ごとに行で色を付けたい(4) | Nomal絞り込み式(5) | Nomal連番を入れたら、その日の年月を自動で入れたい(6) | Nomal併合の絞り込みについて(8) | Nomalライブラリが読み込まれない(1) | Nomal絞り込み:比較式での日時値絞り込みの相談(12) | Nomal常時「訂正」モードにしたい(20) | Nomal桐s-2024 LTへのバージョンアップ(16) | Nomalテキスト読み込み(3) | Nomal一括処理でテキストを選択したい(8) | Nomal課税、非課税(8) | Nomalビルド番号について(4) | Nomal12ヶ月分のレコードを一度に作成する方法について(5) | Nomal一括処理で集計したい(2) | Nomalハンドルとは?(31) | Nomal帳票印刷(7) | Nomalメール送信(9) | Nomal拡張子CSVで項目間をカンマで区切り書き出したい(32) | Nomal正か負かで区分を付けたい(4) | Nomal項目計算式にメモ(4) | Nomal連番を自動入力したい(8) | Nomal項目別 連番生産(9) | Nomalイベントでフォームをまとめて開く(8) | Nomal9000バイトの出力(4) | Nomal一括処理書き方(7) | Nomal印字コマンド(13) | Nomal状態表示について(3) | NomalTXTファイルからDATファイルに変更(4) | Nomalテーブルの項目を整理する際の影響確認(5) | Nomalフォームの閉じ方について(18) | Nomalレポートにつきまして(5) | Nomal【アイデア募集】スケジュール表示(2) | Nomal表番号の謎(16) | Nomal主ウィンドウ と 補助ウィンドウについて(42) | Nomalチェックボックスの動作(8) | Nomal文字列中に、4桁以上の数字が含まれているか検査したい(8) | Nomal変数値の取得方法について(16) | Nomal行制約について(31) | Nomal比較式の書き方について(28) | Nomal期間絞込でのエラー時対応について(31) | Nomalarm版Windows での桐の使用(4) | Nomal月毎の日数端数を切り捨てた月期間の計算について(10) | Nomal保存した条件における読み込み元表のパスが変更されている場合(4) | Nomalレポートでページごとの合計を表示(2) |



■記事リスト / ▼下のスレッド
■14545 / 親記事)  レポートにつきまして
□投稿者/ ミーノ -(2024/08/26(Mon) 16:23:33)
    よろしくお願いいたします。

       一時金 年金
    山本 30,000
    山本     10,000  という.tbl
    をレポートで

    山本
       一時金
       30,000
       年金
       10,000
    を作成するにはどのようにすればいいのでしょうか。
    初歩的なことですみません。

     桐Ver.9です
引用返信 [メール受信/OFF]

▽[全レス5件(ResNo.1-5 表示)]
■14546 / ResNo.1)  Re[1]: レポートにつきまして
□投稿者/ ななーし -(2024/08/27(Tue) 08:18:49)
    こんにちは。

    ごめんなさい。読解力が足らず間違っていたらすみません。

    上記のように名前と年金・一時金が一覧表形式に表示されているのを
    1枚づつ名前の下にタグのように一時金・年金を表示したいってことであってますか?

    作りたいレポートの種類でタイル(タックシール)を選択すると複数名が1枚で印刷
    カード(単票)を選べば1名分が印刷できるかと思います。
引用返信 [メール受信/OFF]
■14547 / ResNo.2)  Re[1]: レポートにつきまして
□投稿者/ ONnoji -(2024/08/27(Tue) 09:20:08)
    2024/08/27(Tue) 09:47:42 編集(投稿者)

    >    一時金 年金
    > 山本 30,000
    > 山本     10,000

    こういう表の定義なんですかね?

    なんか表計算ソフトみたいですね。(^^ゞ

    常識的なデータベースの発想からすると

    名前 適用  金額
    山本 一時金 30,000
    山本 年金  10,000

    ↑このようになると思うんですけれどね・・・

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    私も、第一感では"ななーしさん"と同じく[カード]形式のレポートを考えました。

    しかし、変則的ですが明細行を2行使えば[一覧表]形式でイケそうだったので試してみました。
        ・・・・・・・・・・・・・・・

    >    一時金 年金
    > 山本 30,000
    > 山本     10,000

    ↑このエクセルみたいなデータをターゲットにしているので、
     ・・・・・・・・・・・・・

    決して一般的な内容ではありませんよ。
    ・・・・・・・・・・・・・・・・

     レポート < 一時金年金.rpt > の定義情報
     レポートの種類 一覧表
     ------------------<一覧表オブジェクト>------------------
      一覧表1
      ラベル1 一時金年金
      集計1(大計) #項目値( [名前] )
      ラベル2 名前
      ラベル3 明細
      テキスト3 #cond( #横合計( [一時金], [一時金] ), "一時金", 1, "年金" )
      テキスト16 #cond( #横合計( [一時金], [一時金] ), [一時金], 1, [年金] )

    添付ファイルは数日を目途に削除しますので、ダウンロードはお早めに願います。

    p.s.

    > 初歩的なことですみません。

    >    一時金 年金
    > 山本 30,000
    > 山本     10,000

    ↑このような変則的な表定義だから、普通にレポートのウィザードで作れないのですよ。

    エクセルのデータを使ったのでしょうかね??

    繰り返しになりますが、

    名前 適用  金額
    山本 一時金 30,000
    山本 年金  10,000

    ↑このような表定義ならば、普通にレポートのウィザードで作れますよ。


引用返信 [メール受信/OFF]
■14548 / ResNo.3)  Re[2]: レポートにつきまして
□投稿者/ ミーノ -(2024/08/27(Tue) 10:04:31)
    ONnoji様
    ななーし様

    ありがとうございました。
    今後とも、よろしくお願いいたします。
解決済み!
引用返信 [メール受信/OFF]
■14549 / ResNo.4)  Re[3]: レポートにつきまして
□投稿者/ ミーノ -(2024/08/28(Wed) 14:26:54)
    No14548に返信(ミーノさんの記事)
    > ONnoji様

    解決済み! としておきながらすみません。
    どうしたら、「年金」の下の10,000が表示されるのでしょうか。
    いろいろ試しましたが、表示できません。
    時間のある時にお教えください。
引用返信 [メール受信/OFF]
■14550 / ResNo.5)  Re[4]: レポートにつきまして
□投稿者/ ONnoji -(2024/08/28(Wed) 14:35:41)
    2024/08/28(Wed) 19:02:54 編集(投稿者)

    > どうしたら、「年金」の下の10,000が表示されるのでしょうか。
    > いろいろ試しましたが、表示できません。

    質問内容が分かりにくいので、なんと回答すればよいのか本当に悩みます。

    > 「年金」の下

    この上とか下とか言う表現が分かり難いんですよね。
         ・・・・・・・・・・・・・

    いろいろと考えてみた結果・・・

    > いろいろ試しましたが、10,000 が表示できません。
                ・・・

    こういう意味なんでしょうね。きっと・・・(ーー;)--------------> ※遠い目線

    ということだと仮定するならば・・・

    ひょっとして、一覧表レポートの明細行を1行にしていませんか?
           ・・・・・・・・・・・・・・・・・・・・・・

    一覧表のレポートを作ったら、必ず、明細行を2行分確保して
                  ・・・・・・・・・・・・・・

    1行め #cond( #横合計( [一時金], [一時金] ), "一時金", 1, "年金" )
    2行め #cond( #横合計( [一時金], [一時金] ), [一時金], 1, [年金] )

    ですよ。

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

■記事リスト / レス記事表示 → [親記事-5]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■14541 / 親記事)  【アイデア募集】スケジュール表示
□投稿者/ ななーし -(2024/08/22(Thu) 11:33:19)
    こんにちは。ななーしです。

    現在、受発注システムの改善として各商品の納品スケジュール
    をカレンダー表示することで納品を客観視しやすくできないか?を検討しております。

    上記を行う場合、どのような方法があるかアイデアを頂けると幸いです。
    現在案はフォームのカード形式に対してテキストボックスを作り、
    そこに桐のサンプルのカレンダーから日付を当てはめて、
    当月分の表データを単一化で簡略し、そのデータからテキストボックスの
    値へ代入するといった形を構想してますが、まあまあ面倒だなあと・・・。
    何か簡略的にできる良い案があればうれしいです。

    ちなみにVBSで発注時にOutlookに予定を突っ込むものも作成してみたんですが、
    できれば連動してほしいという強い要望があったため、手詰まりとなりました。(笑)
引用返信 [メール受信/OFF]

▽[全レス2件(ResNo.1-2 表示)]
■14542 / ResNo.1)  Re[1]: 【アイデア募集】スケジュール表示
□投稿者/ ONnoji -(2024/08/22(Thu) 12:30:43)
    2024/08/22(Thu) 12:44:42 編集(投稿者)

    > 現在、受発注システムの改善として各商品の納品スケジュール
    > をカレンダー表示することで納品を客観視しやすくできないか?を検討しております。
    >
    > 上記を行う場合、どのような方法があるかアイデアを頂けると幸いです。
    > 現在案はフォームのカード形式に対してテキストボックスを作り、
    > そこに桐のサンプルのカレンダーから日付を当てはめて、
    > 当月分の表データを単一化で簡略し、そのデータからテキストボックスの
    > 値へ代入するといった形を構想してますが、まあまあ面倒だなあと・・・。
    > 何か簡略的にできる良い案があればうれしいです。

    釈迦に説法かと存じますが・・・

    これを言ったらオシマイかもしれませんが、「カレンダって超面倒ですよ」。ガッハハ(^^ゞ

    カレンダには、7日(日〜土)×週(4〜5回)=1カ月の、いわゆる卓上カレンダのタイプと

    拙作でお騒がせしているガントチャートのような、工程表タイプのカレンダの2つがあると思います。

    とちらも、曜日はともかくとして、ころころ変わる祝日の計算など面倒ですよね。

    ・卓上カレンダのタイプならば、配列変数を使う

    ・工程表タイプのカレンダならば、日数に相当する複数項目を使う

    というところがキモだろうと思います。

    私( ONnoji )的には、日数分のレコードを作成するアプローチは避けた方が良いと思いますよ。

     ◇ ◇ ◇ ◇ ◇

    余談ながら・・・(^^ゞ

    工程表タイプのカレンダというのは、表は簡単に左右にスクロールできますが、

    フォームでは左右にスクロールするのは難しいのですね。

    もともと、フォームには列固定いう機能がありませんから、

    当然左右スクロールもフォームスクロールバーで全体を動かすことになります。

    実は、この列固定+項目の左右スクロールをサポートするのが、拙作:INF_Fremework なんですよね。

    これが工程表カレンダのブレークスルーです。

    お騒がせしているガントチャートも、拙作:INF_Fremework の応用例です。

    なお、ガントチャートのカレンダ計算は、拙作:INF_DatePicker を流用したものです。

    p.s.

    そうそう、思い出しました!。

    それこそ、以前お話したと思いますが、桐の印字コマンドでHTMLをゴリゴリ書き出すのが良さそうですよ。

    桐sでは、フォームにHTMIを表示できるオブジェクトが追加されていますよ。

    グッド!。(^^ゞ
引用返信 [メール受信/OFF]
■14543 / ResNo.2)  Re[2]: 【アイデア募集】スケジュール表示
□投稿者/ ななーし -(2024/08/22(Thu) 13:53:19)
    何か一瞬で解決しました!
    桐で先任が作った表で1〜31が1か月分記入・印刷できる桐カレンダーがあるので
    そこに代入する形で見せることがよいな!と考えました。

    フォームレイアウト的にかなり困難だし、難解なプログラムになりそう・・・
    どうする?やるか?これって思ってましたが本システムなら改造で済みそうなので
    助かりました!

    いや〜相談するというのはとても良いことです。誠にありがとうございました。
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■14103 / 親記事)  表番号の謎
□投稿者/ 桐太郎 -(2024/02/03(Sat) 00:33:32)
    WIN11、桐10S使用です。
    イベントを触りはじめたというレベルです。

    編集対象表をもたないメニューフォームにある
    コマンドボタンを押して、
    売上.TBXに販売.TBXのデータを読み込む。
    読み込み後、売上.TBXのウィンドウを作成する。
    イベントはここまでです。
    その後は売上.TBXのウィンドウで会話処理で
    細かい部分を修正して目視で確認してから
    売上.TBXを保存終了する。
    このようなことをしたく、メニューフォームに
    以下のとおりイベントを作成しました。
    (実際は販売.TBXをいろいろ絞り込みしてから読み込むのですが、
    単純化した内容です。)

    今回お聞きしたいのは、以下のイベントのとおり、
    売上.TBXの表番号を32としたところ、
    売上.TBXのウィンドウの右上の×印を押したら、
    「更新されています。保存しますか」という
    メッセージがでずにウィンドウが消えてしまいます。

    売上.TBXの表番号を32から2に変更したら、
    「更新されています。保存しますか」
    というメッセージが表示されます。

    32にするとなぜそうなるのか、
    桐の他の箇所の設定の問題で起きる問題なのか、
    チンプンカンプンです。
    ファイルも添付するので教えてください。

    手続き定義開始 "販売から売上へデータ移行クリック"()
    表 "販売.TBX", 表番号=1
    表 "売上.TBX", 表番号=32
    ウィンドウ作成 表
    ジャンプ 行番号= 終端
    読み込み 表,"販売.TBX"
    終了 表 1
    手続き定義終了





1706888012.zip
/13KB
引用返信 [メール受信/OFF]

▽[全レス16件(ResNo.12-16 表示)]
■14126 / ResNo.12)  Re[4]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/09(Fri) 17:26:52)
    No14117に返信(ONnojiさんの記事)

    > 表番号=1、表番号=32のように表番号を指定するのは、DOS桐の一括処理を思い起こします。
    >
    > ひょっとして、DOS桐や桐ver.7の一括処理を解説した書籍を参考書にしていますか???

    旅行中、また、戻られてから詳しい内容での
    回答ありがとうございました。

    終了 表 のヘルプを見たところ、
    表番号を指定するか、編集対象表かのどちらかしかなかったので、
    仕方なく表番号を指定していました。
    [ウィンドウ作成]も一般的ではないとのことですが、
    ウインドウがなかったので、ヘルプを頼りにそうしていました。

    現在の標準的な方法は、[フォーム+イベント]を使用したやり方というのは
    掲示板でよく見る内容ですよね。
    フォームアプリケーション教書等々、触って学習したいと思います。


引用返信 [メール受信/OFF]
■14127 / ResNo.13)  Re[3]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/09(Fri) 17:29:29)
    > ただし、[フォーム+イベント処理]では表番号32はもちろん、
    >
    > [ウィンドウ作成]コマンドも普通使わないですからねぇ〜。
    >
    > 見逃されていたんですね。
    >
    > p.p.s.
    >
    > この虫の件はK3へ報告しておきました。

    通りすがりさん、ONnojiさん

    確認、報告ありがとうございました。
    一般的な方法ではないとのことも知れてよかったです。
    報告もしていただいたということで解決済みにします。
解決済み!
引用返信 [メール受信/OFF]
■14128 / ResNo.14)  Re[2]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/09(Fri) 17:31:02)

    > 編集表 "販売.TBX"
    > 終了 表 編集対象表
    >
    >
    > 表番号変数を使わない書き方
    > もありかもです


    編集対象表にすれば、表番号変数を使用しなくてもよいですね。
    ありがとうございました。

引用返信 [メール受信/OFF]
■14129 / ResNo.15)  Re[2]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/09(Fri) 17:34:47)
    No14121に返信(ONnojiさんの記事)

    添付ファイルダウンロードしました。
    内容も自分には難解そうです。

    が、フォーム+イベントを理解していきたいので、
    いろいろ触ってみます!

    ありがとうございます。
引用返信 [メール受信/OFF]
■14521 / ResNo.16)  Re[1]: 表番号の謎
□投稿者/ ONnoji -(2024/07/12(Fri) 00:28:56)
    2024/07/12(Fri) 16:12:44 編集(投稿者)

    この件はfixされましたのでご連絡します。

    ただし、桐10sではありませんでしたが・・・

    桐の障害情報ページ|管理工学研究所
    https://www.kthree.co.jp/kiri/ct_support/trouble/10/

    修正済みの障害

    #3265 2024/06/27更新

    【240627-4】[一括コマンド(表コマンド)](#2425〜#3202)
    表コマンドで、表番号「32」を指定して開いた表を編集した場合、閉じる際に保存の確認が表示されない。


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

■記事リスト / レス記事表示 → [親記事-9] [10-16]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■14473 / 親記事)  主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(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]

▽[全レス42件(ResNo.38-42 表示)]
■14516 / ResNo.38)  Re[5]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/11(Thu) 11:08:54)
    2024/07/11(Thu) 11:27:12 編集(投稿者)

    ONnojiさん


    おはようございます。


    > ということで、モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」は難易度が中程度になります。
    > 【難易度】
    >  高い  モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    >  ↑
    >  │   モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」
    >  │
    >  │   モードレスな「フォーム+イベント処理」+「ステルスな表」
    >  ↓
    >  低い  モードレスな「フォーム+イベント処理」


    今回、サンプル提供頂いたデザインはこのチャート表でいえば中間ですね。
    凄くポジティブに考えれば、中間ステップまでこれたなと捉える事が出来ます。
    勿論、サンプル の プログラムを理解し、使いこなせる事が前提です。


    一方 モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」 に関しては
    ■14350 期間絞込でのエラー時対応について の時 ONnojiさんに プログラム提供 と 考え方 を教えて頂いたので、教えて頂いた範囲は理解出来ています。
    (範囲外の概念の場合は未知数ですが・・・)


    あの時点で モードレスな「フォーム+イベント処理」+「ステルスな表」 より一つ上のデザインを希望してしまっていたのですね。


    最終的には モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」 を目指したいですが、

    モードレスA → こんにちは。モードレスB → モードレスB で こんにちは。モードレスB を表示

    モードレスB → こんにちは。モードレスA → モードレスA で こんにちは。モードレスA を表示


    と言う、やり取りを作る所からというイメージを抱きました。
    (当分先の事になりますが・・・)


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


    そもそも、どうして モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    を発想したかと言うと単純に フォーム と サブフォーム の関係に苦手意識があるからです。


    単純に表示だけする場合には、サブフォームはありと思いますが、プログラムを書くと言う事になれば別の話になります。


    昔、メインフォーム側ではプログラムが動くのに、サブ側では一部しか動かない。
    と言う事がありました。今にして思えば ウインドウハンドル番号問題 もありそうです。


    が、とにかく メイン サブ の関係がややこしいので それなら モードレスで開いた方が分かりやすいな 位の発想だったんです。


    結果、最高難易度で撃沈・・・
    でも、道しるべ(チャート表)を教えて頂いたので、その時その時の自分の理解度とチャート表を照合して、設計をデザインしていきます(^^ゞ


    今回も本当にありがとうございましたm(__)m
引用返信 [メール受信/OFF]
■14517 / ResNo.39)  Re[6]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ONnoji -(2024/07/11(Thu) 12:50:35)
    2024/07/11(Thu) 13:21:28 編集(投稿者)

    > そもそも、どうして モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    > を発想したかと言うと単純に フォーム と サブフォーム の関係に苦手意識があるからです。
    > 単純に表示だけする場合には、サブフォームはありと思いますが、プログラムを書くと言う事になれば別の話になります。
    > 昔、メインフォーム側ではプログラムが動くのに、サブ側では一部しか動かない。
    > と言う事がありました。今にして思えば ウインドウハンドル番号問題 もありそうです。

    メイン&サブフォームの場合、サブフォームはメインフォームにラップ(包含)されているので、ウィンドウハンドル番号はメインと同じですよ。

    ハンドル番号は同じですが、[オブジェクト操作]と[メソッド呼び出し]は @メインのsubformObjectName@サブのobjectName で指定します。

    例えば、

     メソッド呼び出し 戻り値 = &return, @subformAccept.@txt日付_入力用.フォーカス設定()
     メソッド呼び出し 戻り値 = &return, @subformAccept.@cmd訂正.実行()

    これは、少し前の スケジュール表_main.kex より。

    ユーザの操作で発生するイベントは、操作対象のフォームのものですよ。

    つまり、メインとサブのどちらが現在フォーカスを持っているかが重要になってきます。

    > が、とにかく メイン サブ の関係がややこしいので それなら モードレスで開いた方が分かりやすいな 位の発想だったんです。
    > 結果、最高難易度で撃沈・・・
    > でも、道しるべ(チャート表)を教えて頂いたので、その時その時の自分の理解度とチャート表を照合して、設計をデザインしていきます(^^ゞ

    ちなみに、私( ONnoji )がメイン&サブフォームが大嫌いなことは割と有名カモしれませんが・・・アハハha

    そんなわけで、前回のチャートではメイン&サブフォームは敢えて無視しました。

    しかし、チャートに付け加えるとすれば以下のような感じでしょうかねぇ〜。

    【難易度】

     最高  メイン「フォーム+イベント処理」+サブ「フォーム+イベント処理」
     ↑
     │   メイン「フォーム+イベント処理」+サブ「フォームのみ」
     │
     │   メイン「フォームのみ」+サブ「フォームのみ」
     ↑
     高い  モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
     ↑
     │   モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」
     │
     │   モードレスな「フォーム+イベント処理」+「ステルスな表」
     ↓
     低い  モードレスな「フォーム+イベント処理」

    というのも、メイン&サブフォームというのは、ウィンドウの数が2つか1つかの違だけで、
                          ・・・・・・・・・・・・・・・・・・

     モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」≒ メイン「フォームのみ」+サブ「フォームのみ」

    ニアリーイコール(≒)なんですよね。
    ・・・・・・・・・・・・・・・

     最高  メイン「フォーム+イベント処理」+サブ「フォーム+イベント処理」
     ↑
     │   メイン「フォーム+イベント処理」+サブ「フォームのみ」
     │
     高い  メイン「フォームのみ」+サブ「フォームのみ」


    さらにイベント処理が付け加わると、メインフォームの局所変数とサブフォームの局所変数に同名のものがあると後から宣言(または代入)した変数に上書きされるワケです。
                                         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    もしも、そのような事態になると、もうお気づきだと思いますが、プログラムが破綻してしまうんですよ。
                                  ・・・・・・・・・・・・・

    という由緒正しい理由から、私( ONnoji )は、メイン&サブフォームを避けているのです。アハハハha。


    > 最終的には モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」 を目指したいですが、
    > モードレスA → こんにちは。モードレスB → モードレスB で こんにちは。モードレスB を表示
    > モードレスB → こんにちは。モードレスA → モードレスA で こんにちは。モードレスA を表示
    > と言う、やり取りを作る所からというイメージを抱きました。

    アラ!懐かしいですね、思い出してしまいました。

    私は20年以上前にAフォームとBフォームでジャンケンの勝負をさせようと思ったことがありましたっけ。

    ただし、考えただけで実際には作りませんでしたけれどね。グァハハハ。

    ここにある「こんにちは」はアラン・ケイが言う所のメッセージングのような意味かと思いますが・・・(^^ゞ

    実に面白いですね。v(^^)v

    ちなみに、拙作フレームワーク:INF_Framework の場合には、

     ** HDLCOM var 第 2.1 版で追加された変数
     変数宣言 局所,文字列{ &HDLCOMmSendMacro, &HDLCOMmReceiveMacro }
     変数宣言 局所,整数 { &HDLCOMmOnMacro, &HDLCOMmReceiveReady = 1 }

     一般手続き:HDLCOMprcMacroSend( 整数 &hdl, 文字列 &sendMacro, 参照 整数 &done )

    といった具合に、ハンドル+通信( communication )の意味合いで HDLCOM という機能名を用意していますよ。


引用返信 [メール受信/OFF]
■14518 / ResNo.40)  Re[1]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ななーし -(2024/07/11(Thu) 14:33:25)
    ジェダイの桐さんこんにちは。

    過去話で上記の連携フォーム作ったのですが、結構バグが出て、
    現在は以下のようなやり方になりました。
    (作業者の人為的なバグで予想外なことをやってくれまして・・・)

    目的:発注システムで設備情報を確認できるようにしたい。

    過去:右に情報用のフォームを表示、行移動で情報が変わるシステム
       右の情報用フォーム内で検索等が可能なシステム

    現在:行を右クリック時にモーダルフォームで該当行に関する情報を
       検索し表示するシステムに変更

    過去システムの際は自分で作ったのもあり、行移動イベントごとにサブウィンドウの情報が切り替わったことで行移動にものすごく時間がかかりました。
    結論、見たい情報は右クリックやコマンドボタン押すなどイベントタイミングで
    適切なモーダルウィンドウ(一時的に確認するウィンドウを表示、確認後閉じる)
    にし、共有変数を作成し、確認した数字がいいならメインフォームに代入する
    これくらいにすると、後の開発が楽になります。
引用返信 [メール受信/OFF]
■14519 / ResNo.41)  Re[7]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/11(Thu) 15:55:18)
    ONnojiさん


    >  メソッド呼び出し 戻り値 = &return, @subformAccept.@txt日付_入力用.フォーカス設定()
    >  メソッド呼び出し 戻り値 = &return, @subformAccept.@cmd訂正.実行()


    @subformAccept これが正直謎でした。
    サブフォームの指定でどこの段階で代入したっけ??
    と思っていたのですが、


    > ユーザの操作で発生するイベントは、操作対象のフォームのものですよ。
    >
    > つまり、メインとサブのどちらが現在フォーカスを持っているかが重要になってきます。


    この文章がヒントとなり、試しにメインフォームの サブフォーム部分で右クリック → オブジェクトの属性 → サブフォームタブ → オブジェクト名


    しっかりと定義されていました。
    サブフォームを使う事がないので、発想が出来ませんでした。


    理解度が上がりました。ありがとうございますm(__)m


    > 【難易度】
    >
    >  最高  メイン「フォーム+イベント処理」+サブ「フォーム+イベント処理」
    >  ↑
    >  │   メイン「フォーム+イベント処理」+サブ「フォームのみ」
    >  │
    >  │   メイン「フォームのみ」+サブ「フォームのみ」
    >  ↑
    >  高い  モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    >  ↑
    >  │   モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」
    >  │
    >  │   モードレスな「フォーム+イベント処理」+「ステルスな表」
    >  ↓
    >  低い  モードレスな「フォーム+イベント処理」
    >


    より詳しいチャート表ありがとうございます!


引用返信 [メール受信/OFF]
■14520 / ResNo.42)  Re[2]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/11(Thu) 16:00:21)
    ななーしさん


    こんにちは。


    > 目的:発注システムで設備情報を確認できるようにしたい。
    >
    > 過去:右に情報用のフォームを表示、行移動で情報が変わるシステム
    >    右の情報用フォーム内で検索等が可能なシステム
    >
    > 現在:行を右クリック時にモーダルフォームで該当行に関する情報を
    >    検索し表示するシステムに変更


    結局、どんなに気を使ったプログラムを作っても、 原点は使用者 に有ると言う事なんですよね。


    そして、プログラムをアップデートしていく。


    結果として、使用者に喜ばれ 開発者はノウハウが溜まる。


    私もこういう流れになる様に、日々精進します!


    お話を聞かせて頂きありがとうございます。
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-19] [20-29] [30-39] [40-42]



■記事リスト / ▲上のスレッド
■14452 / 親記事)  チェックボックスの動作
□投稿者/ 篤姫 -(2024/06/25(Tue) 10:12:53)
    桐10s windows11

    いつも勉強させていただいています。

    フォームのチェックボックス[A]:数値
    オンの値:1 オフの設定:する オフの値:0

    イベントでマウス左クリックで
    行訂正 [B]=#条件選択([A]=1,&A,1,"") 

    ところが
    チェックを入れると[B]に&Aは入らず
    チェックをはずすと[B]に&Aが入ります。

    何が間違っているかご教示願えませんか?

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

▽[全レス8件(ResNo.4-8 表示)]
■14456 / ResNo.4)  Re[4]: チェックボックスの動作
□投稿者/ 篤姫 -(2024/06/25(Tue) 15:02:13)
    ONnojiさん

    ありがとうございます。
    ソース値更新にすると
    行訂正ではエラーがでました。
    項目地代入で動作しました。


    チェックボックスは
    オン=1
    オフ=0 に設定しています。
    ソース値更新もしくはマウス左クリックを使用する場合
    チェックボックスのオンに対してではなく
    オフの値に対して条件式を設定するのが正しいのでしょうか?

    よろしくお願いします。
引用返信 [メール受信/OFF]
■14457 / ResNo.5)  Re[5]: チェックボックスの動作
□投稿者/ ONnoji -(2024/06/25(Tue) 15:56:28)
    2024/06/26(Wed) 14:27:07 編集(投稿者)
    2024/06/25(Tue) 18:39:13 編集(投稿者)

    > チェックボックスは
    > オン=1
    > オフ=0 に設定しています。
    > ソース値更新もしくはマウス左クリックを使用する場合
    > チェックボックスのオンに対してではなく
    > オフの値に対して条件式を設定するのが正しいのでしょうか?

    [マウス左クリック]イベントはお勧めしません。理由は以下にたくさん書いておきました。(^^ゞ

    [ソース値更新]イベントを使うべきだと思いますよ。

    チェックボックスをマウス左クリックした場合、

     マウス左ダウン → マウス左アップ → マウス左クリック → ソース値更新

    の順番にイベントが発生します。

     (注意)マウス左ダウン した後で、マウスポインタをチェックボックスの上から他へ移動すると、マウス左アップとマウス左クリックは発生しません。

    実は、チェックボックスの値を変える(ソース値更新)方法としては、マウス左クリック以外の方法もあるんですよ!

    つまり、チェックボックスにフォーカスが有る時に、[スペース]キーを押しても、オンの値とオフの変わりますよ。アクセスキーでも同じく変わります。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・  ・・・・・・・・・・

    従って、[マウス左クリック]イベントが発生した時点で、チェックボックスのオン/オフが変わることは絶対ないのですよ。
        ・・・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    チェックボックス(トグルボタン)には、[ソース値更新]イベントがあるのですから、それを利用するのが正しいですよ。

    このことは案外と多くの人が気が付いていないようですね。(^^ゞ

     ◇ ◇ ◇ ◇ ◇ ◇

    <参考>

    論より証拠ですから、トレース結果を以下に示します。

    チェックボックス:chkA

     ソース    :[A]
     データ型  :数値
     オンの値  :1
     オフの値設定:する
     オフの値  :0

    以下は、チェックボックスがオフの時に([A]の値がゼロ)の時にマウス左クリックした直後のトレース

    ┌when :chkA::マウス左ダウン()を実行開始しました

    │ :[A] : 0 ← この時点では オフの値 です

    └end

    ┌when :chkA::マウス左アップ()を実行開始しました

    │ :[A] : 0 ← この時点では オフの値 です

    └end

    ┌when :chkA::マウス左クリック()を実行開始しました

    │ :[A] : 0 ← この時点では オフの値 です

    └end

    ┌when :chkA::ソース値更新()を実行開始しました


    │ :[A] : 1 ← ここで既に オンの値 になっていることが確認できます

    │    ※これは[ソース値更新]イベントが発生する前にオン/オフが切り替わっているということです
    └end      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    ■使用したイベント処理(.kex)

    名札  メイン



    手続き定義開始 chkA::マウス左ダウン(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
     変数宣言 自動,文字列{ &title = "chkA::マウス左ダウン()", &msg }
     変数宣言 自動,整数 { &trace }

     &trace = 1
     条件 ( &trace ) トレース出力 &title + "を実行開始しました"

     条件 ( &trace ) トレース出力 _[A]

     条件 ( &trace ) トレース出力 &title + "を実行終了しました"
    手続き定義終了

    手続き定義開始 chkA::マウス左アップ(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ)
     変数宣言 自動,文字列{ &title = "chkA::マウス左アップ()", &msg }
     変数宣言 自動,整数 { &trace }

     &trace = 1
     条件 ( &trace ) トレース出力 &title + "を実行開始しました"

     条件 ( &trace ) トレース出力 _[A]

     条件 ( &trace ) トレース出力 &title + "を実行終了しました"
    手続き定義終了

    手続き定義開始 chkA::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
     変数宣言 自動,文字列{ &title = "chkA::マウス左クリック()", &msg }
     変数宣言 自動,整数 { &trace }

     &trace = 1
     条件 ( &trace ) トレース出力 &title + "を実行開始しました"

     条件 ( &trace ) トレース出力 _[A]


     条件 ( &trace ) トレース出力 &title + "を実行終了しました"
    手続き定義終了

    手続き定義開始 chkA::ソース値更新()
     変数宣言 自動,文字列{ &title = "chkA::ソース値更新()", &msg }
     変数宣言 自動,整数 { &trace }

     &trace = 1
     条件 ( &trace ) トレース出力 &title + "を実行開始しました"

     条件 ( &trace ) トレース出力 _[A]

     条件 ( &trace ) トレース出力 &title + "を実行終了しました"
    手続き定義終了


    p.s.

    > 実は、チェックボックスの値を変える(ソース値更新)方法としては、マウス左クリック以外の方法もあるんですよ!
    >
    > つまり、チェックボックスにフォーカスが有る時に、[スペース]キーを押しても、オンの値とオフの変わりますよ。アクセスキーでも同じく変わります。

    これはコマンドボタンの場合も同じです。

    つまり、コマンドボタンにフォーカスが有る時に、[スペース]キーを押してもコマンドボタンは実行されるのです。アクセスキーでも同じく実行出来ます。

    いわんや、[Enter] キーを押してもですけれどね。

    ということで、[マウス左クリック]イベントが万能だと考えるのは危険ですよ。

    <参考>

    12.3 コマンドボタンを実行する|フォームアプリケーション教書 第1部
    http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section12-3

    >  コマンドボタンはマウス左クリックで実行することが多いのですが、それ以外の方法でもコマンドボタンを実行できます。
    > 以下にコマンドボタンが実行されるタイミングを示します。
    >
    >  a.マウスでコマンドボタンを左クリックした時
    >  b.コマンドボタンへフォーカスを移動して、キーボードの[スペース]または[Enter]キーを押した時
    >  c.コマンドボタンのアクセスキーを押した時(例えば[Alt]+[X])
    >  d.プロシージャ内でコマンドボタンの[実行]メソッドを実行した時


引用返信 [メール受信/OFF]
■14458 / ResNo.6)  Re[6]: チェックボックスの動作
□投稿者/ 篤姫 -(2024/06/25(Tue) 19:14:48)
    ONnojiさん

    ありがとうございます。
    なかなか高度です。


    ソース値更新にすると
    チャックボックスでオンの1が入った段階で
    イベントの処理を実行すると考えていいという事ですか



引用返信 [メール受信/OFF]
■14460 / ResNo.7)  Re[7]: チェックボックスの動作
□投稿者/ ONnoji -(2024/06/26(Wed) 09:07:10)
    2024/07/10(Wed) 09:53:46 編集(投稿者)
    2024/06/26(Wed) 23:08:20 編集(投稿者)
    2024/06/26(Wed) 16:09:39 編集(投稿者)

    > ソース値更新にすると
    > チェックボックスでオンの1が入った段階で
    > イベントの処理を実行すると考えていいという事ですか

    チェックボックス:chkA

     ソース   :[A]
     データ型  :数値
     オンの値  :1
     オフの値設定:する
     オフの値  :0

    ↑のように、オンの値:1 と オフの値:0(オフの値設定:する)が設定されている場合には、

    当該チェックボックスをマウス左クリックすると、

      【マウス左クリック前】           【 マウス左クリック後】

     a.オフの値:0(オフの値設定:する)の状態 → オンの値:1           の状態

     b.オンの値:1           の状態 → オフの値:0(オフの値設定:する)の状態

    のように状態が遷移します。

    この時、どちらの場合でも[オン/オフの状態が変化した後]に、必ず[ソース値更新]イベントが発生しますよ。
                 ・・・・・・・・・・・・・・
    ※[マウス左クリック]イベントは[オン/オフの状態が変化する前]に発生します。

    > チェックボックスでオンの1が入った段階で
    > イベントの処理を実行すると考えていいという事ですか

    言葉の上げ足を取るつもりはありませんが・・・

    イベントは発生するものですよ。

    [ソース値更新]イベントが発生する前に、既にチェックボックスの状態(オン⇔オフ)は変わっています。

    [ソース値更新]イベントが発生すると、対応する[イベントハンドラ]が呼び出されるという仕組みですよ。


引用返信 [メール受信/OFF]
■14463 / ResNo.8)  Re[8]: チェックボックスの動作
□投稿者/ 篤姫 -(2024/06/26(Wed) 17:40:35)
    ONnojiさん

    ONnojiさんからご教示いただいた
    ソース値更新にすることで
    全てが正常な動作になりました。

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


解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-8]






1576568

Mode/  Pass/

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

- Child Tree -
- Antispam Version -