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

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

■14103 / inTopicNo.1)  表番号の謎
  
□投稿者/ 桐太郎 -(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] 削除キー/
■14104 / inTopicNo.2)  Re[1]: 表番号の謎
□投稿者/ ONnoji -(2024/02/04(Sun) 11:43:04)
    表( tbl/tbx )に[バックアップをとる]がオンの場合で、
    データが変更されているならば、表ウィンドウを閉じる際に、

    ! d:\path\○○○.TBX
      は更新されています.保存しますか?
      [はい][いいえ][キャンセル]

    のメッセージボックスが表示されます

    以上のほかに意外な盲点として・・・

    辞書順で並べ替え替えをすると、何故か表がダーティになってしまったと記憶しています。
    単に並べ替えするだけでダーティになりますので気付き難いですよ。
    p.s.
    只今パソコンが手元に無いので記憶だけで投稿しました。

引用返信 [メール受信/OFF] 削除キー/
■14105 / inTopicNo.3)  Re[1]: 表番号の謎
□投稿者/ 悲しげ -(2024/02/04(Sun) 16:02:45)
    No14103に返信(桐太郎さんの記事)

    「なぜそうなるのか?」についての説明ではありませんが、
    どうしてかはともかく、私なら例えばどう対応しているかに
    ついて経験を少し書きます。

    実は「ウィンドウ作成 表」から入ると、私の場合、表番号やら
    ウィンドウハンドルその他がどうなっているのか、ワケワカメに
    なってしまっていました。
    表番号で言えば、ONnojiさんが例示したようなバックアップあり
    とか、あるいは並べ替えやら多重化とかやらで、恐らく桐の側で
    勝手に(と言うか親切にも自動的に)表番号を割り当ててくれる
    こともあるようです(表番号も自動的に可変)。

    そんな訳で私は、ある時期からなるべく「ウィンドウ作成」コマ
    ンドを使わずに、まずはフォームを開くから入って、桐が自動的
    にウィンドウハンドルや表番号とかを割り当ててくれるに任せて
    (従ってイベントの記述の中で表番号とかを当方で指定すること
    はなく)一括処理の記述を書いていました。
    で、中には表番号を利用したい事もあるので、そんな時は例えば

     変数宣言 長整数{&is表1,&is表2,&is表3,・・・・
     *フォーム(の編集表)を開いている状態だとして
     &is表1=#IS表
     編集表 "ナントカ.tbx"  ←別の表
     &is表2=#IS表
     ・・・・
     編集表 &is表1
     ・・・・
     読み込み &is表1
     ・・・・
     終了 表 &is表2

    のように桐が自動的に割り当てている表番号を取得して、その後の
    処理を記述する、とか。

引用返信 [メール受信/OFF] 削除キー/
■14106 / inTopicNo.4)  Re[2]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/04(Sun) 19:59:52)
    No14104に返信(ONnojiさんの記事)

    パソコンが手元にないなか、ご返信ありがとうございます。
    "販売.TBX""売上.TBX"とも、
    [バックアップをとる]はオンになっていました。

    > 辞書順で並べ替え替えをすると、何故か表がダーティになってしまったと記憶しています。
    ダーティの意味がわからずに調べました。
    辞書順の並び替えは今回していませんでしたが、
    覚えておきたいと思います。

引用返信 [メール受信/OFF] 削除キー/
■14107 / inTopicNo.5)  Re[2]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/04(Sun) 20:39:10)
    No14105に返信(悲しげさんの記事)

    ご返信ありがとうございます。
    表番号が自動で割り当ての内容、なんとなく理解できたと思います。

    変数を使用して、表番号を取得する例も理解できたと思います。

    表をフォームで表示することについては、
    表でほとんどやりたいことが足りてしまっており、
    まだ使用したことがないに等しいです。
    (この掲示板で紹介されていたONnojiさんのページの入門講座や
    AKomeさんのページの入門講座は真似して作成してみましたが、
    どのように学習していこうかと思案中です。)


引用返信 [メール受信/OFF] 削除キー/
■14108 / inTopicNo.6)  Re[3]: 表番号の謎
□投稿者/ ONnoji -(2024/02/04(Sun) 21:10:13)
    > "販売.TBX""売上.TBX"とも、
    > [バックアップをとる]はオンになっていました。

    オフにするだけでメッセージは表示しなくなると思いますよ。

    p.s.
    毎回、コマンドで条件名を作成しても、ダーティになると思いますよ。

引用返信 [メール受信/OFF] 削除キー/
■14109 / inTopicNo.7)  Re[4]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/04(Sun) 22:46:59)
    No14108に返信(ONnojiさんの記事)

    [バックアップをとる]をオフにすることにより、
    「更新されています。保存しますか」
    というメッセージが表示されなくなるというのは
    理解しました。

    自分の最初の書き込みの内容が悪くて申し訳ないですが、
    売上.TBXを編集して閉じる前に、
    「更新されています。保存しますか」は
    表示させたいです。

    その後自分でも全部試したところ、表番号32以外だったら
    (すべて試したわけではないですが、表番号2、3、33とか)
    「更新されています。保存しますか」は表示されました。
    また、表悲しげさんから書き込みがあった番号を指定せずに、
    内容で表番号を取得すれば解決しそうなので、
    それで対応したいと思います。



引用返信 [メール受信/OFF] 削除キー/
■14117 / inTopicNo.8)  Re[3]: 表番号の謎
□投稿者/ ONnoji -(2024/02/08(Thu) 16:21:27)
    2024/02/10(Sat) 14:56:08 編集(投稿者)
    2024/02/09(Fri) 11:57:43 編集(投稿者)
    2024/02/08(Thu) 17:10:18 編集(投稿者)

    当方旅行中だった為、PCが使えずスマホで回答した次第です。大変でした(^^ゞ

    ようやく今日になって、PCでメニュー.kexを拝見しました。

    名札 メイン


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

    表番号=1、表番号=32のように表番号を指定するのは、DOS桐の一括処理を思い起こします。

    ひょっとして、DOS桐や桐ver.7の一括処理を解説した書籍を参考書にしていますか???
           ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    プログラムの書き方は自由ですから、これという決まりはありません。

    しかし、表番号を逐一指定するのは、非常に不便なので、(ヘルプに例があるかもしれませんが・・・(^^ゞ)

    表番号を使用する場合には、悲しげさんが提示した #is表 の値を変数に代入する方法をおススメします。

    > 表をフォームで表示することについては、
    > 表でほとんどやりたいことが足りてしまっており、
    > まだ使用したことがないに等しいです。
    > (この掲示板で紹介されていたONnojiさんのページの入門講座や
    > AKomeさんのページの入門講座は真似して作成してみましたが、
    > どのように学習していこうかと思案中です。)

    もう一度、プログラムの書き方は自由ですから、これという決まりはありません。

    なので100人がプログラムを書けば、100通りのプログラムが出来上がります。

    そんなファジーなプログラムですが、

    この場で、私(ONnoji)なりの方法をご紹介するのでご参考にしてください。

    単にイベント処理と言っても色々なパターンがあります。

    一括処理のように[ウィンドウ作成]コマンドで表ウィンドウを表示するのもアリでしょう。

    しかし、[コマンドボタンの機能名:開く]で表ウィンドウを表示する方が、[フォーム+イベント]的だと思いますよ。

      7.3 レガシーなアプローチ|フォームアプリケーション教書 第1部
      http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section7-3

    拙作の「新 フォームアプリケーション入門 §1・§2」をご覧いただいたそうですが、

    拙作の入門講座は、NULLフォームを使用した[ダイアログボックスの作り方]を紹介したものです。

    ちなみに[ダイアログボックスの作り方]を紹介した講座は珍しいハズですよ。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・

    ※[OK][キャンセル][はい][いいえ]等のボタンを付ければ立派なダイアログボックスになりますが、
    ※ 呼び出し元のフォームがありませんので、[閉じる]ボタンを配置している次第です。
      ・・・・・・・・・・・・・・・・・・

    これは、応用範囲が広いので[変数を編集する形式]のダイアログボックスを題材にしたと言うわけです。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    しかし、例えば[住所録フォーム]のようなものであれば、誰でも簡単に作れますよね。

    なので、誰でも簡単に作れるフォームは入門講座の題材にしていないのです。

    まとめると、[住所録フォーム]のような編集対象表を持つフォームと、

    ダイアログボックスのようなNULLフォームでは根本的に違いがあるということです。

    また、昔ながらのメニューフォーム(これはランチャーと見做すのが適当ですが)、NULLフォームで作ることが出来ますね。

    などなど、キリがありませんので、(^^ゞ

    [フォーム+イベント処理]によるアプリケーションに関しては、以下の拙作webページがありますので、ご参考にしてください。

      フォームアプリケーション教書 第1部
      http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm

      フォームアプリケーション教書 第2部
      http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm

    なお、当方は表ウィンドウの代用とする[編集対象表があるフォーム]の場合には拙作フレームワークで運用しています。
                      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    これはあらかじめ完成済みのフォームです。

    ヘッダ部の不要なオブジェクトはワークスペースへポイッ!でOKですし、

    追加したいコマンドボタンは、ヘッダ部やフッタ部にペトッ!と張り付けるだけです。

    必要ならば、[コマンドボタンの機能名:手続き実行]で呼び出す一般手続きも作れます。

    つまり、当方が行き着いた結果は、表ウィンドウの代用ならば、イチから作る必要無しというアプローチです。
                    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    表ウィンドウの代用なので、列固定も項目スクロールも可能です。

    項目の幅もマウスドラッグで自由自在に変更出来て、項目の表示/非表示も設定できます。

    表の項目名を変更しても、何もしなくても自動的にフォームの項目名は変更されます。

    つまり、必要が無ければ何もしなくてもOKなんです。

    なので、生産性は非常に高くなりましたよ。(^^)ok

    p.s.


    × 手続き定義開始 "販売から売上へデータ移行クリック"()

    〇 手続き定義開始 販売から売上へデータ移行クリック() ← 手続き名に引用符( " )は不要です。


    【転載】桐 - ヘルプ|手続き定義開始

     また、JIS2D21 〜2D7F までの文字と、つぎの記号を含めてはいけません。
       ,.:;?!""^"_|/~()[]{}+-*=<>\$%#&@
       ,.:;?!’”^|_/〜()[]{}
       +−±×÷=≠<>≦≧¥$%#&*@



引用返信 [メール受信/OFF] 削除キー/
■14118 / inTopicNo.9)  Re[1]: 表番号の謎
□投稿者/ 通りすがり -(2024/02/08(Thu) 17:02:07)
    これは、バグですね、色々と影響を及ぼしそうです
    管理工学研究所へ報告して頂いた方が良しいかと思います

引用返信 [メール受信/OFF] 削除キー/
■14119 / inTopicNo.10)  Re[1]: 表番号の謎
□投稿者/ 尾形 -(2024/02/08(Thu) 17:23:08)
    どうも、こんにちは


    表 "販売.TBX"
    表 "売上.TBX"
    ウィンドウ作成 表
    ジャンプ 行番号= 終端
    読み込み 表,"販売.TBX"
    編集表 "販売.TBX"
    終了 表 編集対象表


    表番号変数を使わない書き方
    もありかもです

引用返信 [メール受信/OFF] 削除キー/
■14120 / inTopicNo.11)  Re[2]: 表番号の謎
□投稿者/ ONnoji -(2024/02/08(Thu) 17:34:49)
    2024/02/10(Sat) 00:30:46 編集(投稿者)
    2024/02/09(Fri) 13:40:41 編集(投稿者)
    2024/02/09(Fri) 13:10:25 編集(投稿者)
    2024/02/08(Thu) 17:36:30 編集(投稿者)

    No14118に返信(通りすがりさんの記事)
    > これは、バグですね、色々と影響を及ぼしそうです
    > 管理工学研究所へ報告して頂いた方が良しいかと思います

     表 "売上.TBX", 表番号=32
     ウィンドウ作成 表

    オオ〜、表番号が32だとなりますねぇ〜、ビックリ(@_@)

    桐10s 桐ビルド番号:#2545 で再現性ありです。


    p.s.

    桐9-2012でも再現しますね。

    桐sでも再現します。

    典型的な潜在虫ですね。

    ただし、[フォーム+イベント処理]では表番号32はもちろん、

    [ウィンドウ作成]コマンドも普通使わないですからねぇ〜。

    見逃されていたんですね。

    p.p.s.

    この虫の件はK3へ報告しておきました。

引用返信 [メール受信/OFF] 削除キー/
■14121 / inTopicNo.12)  Re[1]: 表番号の謎
□投稿者/ ONnoji -(2024/02/09(Fri) 10:23:43)
    2024/02/09(Fri) 10:39:50 編集(投稿者)

    > 表をフォームで表示することについては、
    > 表でほとんどやりたいことが足りてしまっており、
    > まだ使用したことがないに等しいです。

    確かに、ちょっとした作業を履歴機能よりも少しスマートに行いたいというのであれば、

    今回見せていただいた{ メニュー.WFX|メニュー.kex }のように、

    あたかも履歴のような、DOS桐/桐ver.7の一括処理を流用したようなイベント処理のプログラムでもOKだと思います。

    しかし、もう少し本格的なアプリケーションを目指すのであれば、不満な部分が多くなると思いますよ。
        ・・・・・・・・・・・・・・・・・・・・・・・・・

    > (この掲示板で紹介されていたONnojiさんのページの入門講座や
    > AKomeさんのページの入門講座は真似して作成してみましたが、
    > どのように学習していこうかと思案中です。)

    プログラムの書き方は自由ですから、これという決まりはありません。

    なので100人がプログラムを書けば、100通りのプログラムが出来上がります。

    そんなファジーなプログラムですが、

    私(ONnoji)なりの方法をご紹介するのでご参考にしてください。

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

    添付ファイルを解凍すると以下のファイルがあります。

    メニュー_modify.kex
    メニュー_modify.WFX ← コマンドボタンに機能名:開くを利用したランチャーフォーム
    売上.kex
    売上.TBX
    売上.WFX ← ランチャーフォームから開かれる売上のフォーム 開始時に自動的に販売.tbxを読み込みます
    販売.TBX

    <重要>

    添付ファイルのダウンロードに成功するケースと失敗するケースがありますのでご注意ください。

    この掲示板を http で閲覧する時と、 https で閲覧する時との違いで起きます。

    〇 http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?H=T&no=0  ※従来のリンクを辿るとこっちになります

    × https://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?H=T&no=0 ※ググルとこっちになります(^^ゞ


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

    ■メニュー_modify.WFX

     フォーム
     ├ ファミリ
     ├ ワークスペース
     └ フォーム明細部
       └ cmd販売から売上へデータ移行

     オブジェクト名: cmd販売から売上へデータ移行
     標題     : 販売から売上へデータ移行( ランチャー版 )

      機能名 機能パラメータリスト
     1 表示
     2 開く   "売上.WFX"
     3 なし
     4 なし

    ■メニュー_modify.kex

    名札  メイン





    ■売上.WFX

     フォーム
     ├ ファミリ
     ├ ワークスペース
     │ └ cmdStartup  ← 開始時実行コマンドボタン
     ├ フォーム操作バー
     ├ フォームヘッダ部
     │ ├ a
     │ ├ a日付
     │ ├ a会社名
     │ ├ a商品名
     │ ├ a単価
     │ ├ a数量
     │ └ a税抜金額
     └ フォーム明細部
       ├ 行セレクタ
       ├ t日付
       ├ t会社名
       ├ t商品名
       ├ t単価
       ├ t数量
       └ t税抜金額

     オブジェクト名: cmdStartup
     標題     : 開始時実行コマンドボタン

      機能名   機能パラメータリスト
     1 表示
     2 手続き実行 cmdStartupClick
     3 なし
     4 なし


    ■売上.kex

    名札  メイン
     変数宣言 局所,長整数{ &mフォーム開始時のレコード数 }
     変数宣言 局所,長整数{ &m販売を読み込み後のレコード数 }



    手続き定義開始 cmdStartupClick( )
     変数宣言 自動, 文字列{ &title = "cmdStartupClick( )", &msg }
     変数宣言 自動, 整数 { &status, &ans }

     &mフォーム開始時のレコード数 = #総件数

     ジャンプ 行番号 = 終端
     読み込み 表, 条件名 = "読込表 販売.tbx",終了状態 = &status

     &m販売を読み込み後のレコード数 = #総件数

     &msg =      "開始時実行コマンドボタン( cmdStartup )を実行しました"
     &msg = &msg + "\n\nフォーム開始時のレコード数 = " + #str( &mフォーム開始時のレコード数  )
     &msg = &msg + "\n\n販売を読み込み後のレコード数 = " + #str( &m販売を読み込み後のレコード数 )
     &msg = &msg + "\n\n販売.tbx から " + #str( &m販売を読み込み後のレコード数 - &mフォーム開始時のレコード数 ) + " レコードを読み込みました"
     メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する, &ans

    手続き定義終了

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

    開始時実行コマンドボタンに関しては以下の拙作webページを参考にしてください

     桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
     18.1 [名札 メイン]/[フォーム開始]/[実行コマンド:開始時]/[実行コマンド:終了時]/[フォーム終了]
     http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section18-1

    また、あこめ(AKome)さんのwebページにも詳しい記事があるので、こちらもご参考にしてください。

     あこめの桐のプログラミング入門 桐10s by AKome
     Tips 起動・終了時に自動で
     http://akome409102.html.xdomain.jp/Kiri/Tips_auto_run.html


引用返信 [メール受信/OFF] 削除キー/
■14126 / inTopicNo.13)  Re[4]: 表番号の謎
□投稿者/ 桐太郎 -(2024/02/09(Fri) 17:26:52)
    No14117に返信(ONnojiさんの記事)

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

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

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

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


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

    通りすがりさん、ONnojiさん

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

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


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

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

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

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

    ありがとうございます。
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

Mode/  Pass/

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

- Child Tree -
- Antispam Version -