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

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

■14187 / inTopicNo.1)  行制約について
  
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 14:54:09)
    2024/02/29(Thu) 08:54:51 編集(投稿者)

    桐10s Windows10 使用

    桐初心者です。

    商品名 数量 納期
    上記項目があり、納期が未定義の時のみ、数量出来るように行制約を入れたいです。

    桐のヘルプを見て
    ( [数量] .and [納期] = "").or ( [数量] = "" .and [納期] <> "")
    と書いたのですがダメでした・・・

    分かる方、解決方法を教えて頂けたら幸いです。

    よろしくお願いします。


引用返信 [メール受信/OFF] 削除キー/
■14188 / inTopicNo.2)  Re[1]: 行制約について
□投稿者/ うにん -(2024/02/28(Wed) 16:21:52)
    「数量出来る」とは?

    納期が定義になったら他の項目は変更できない?
引用返信 [メール受信/OFF] 削除キー/
■14190 / inTopicNo.3)  Re[1]: 行制約について
□投稿者/ ONnoji -(2024/02/28(Wed) 16:41:11)
    > 納期が未定義の時のみ、数量変更可能にしたい。

    ↑これなんですが、行制約というのは、制約=制限=つまりダイアログボックスが表示されて、操作を弾き飛ばす事が目的の機能ですよね。
    ※自分以外の他人に入力操作を依頼した場合には、非常に乱暴な挙動の機能だと思いますが・・・(^^ゞ


    【桐 - ヘルプ】より
     行制約
     --------------------------------------------------------------------------------
     項目に入力できる値を、他の項目の値で制限するには、項目属性の行制約式に条件式を指定します。

    つまり、許可するという意味ではありませんよね。

    よって、行制約では出来ないではないかなぁ〜。(ーー;)--------------> ※遠い目線


引用返信 [メール受信/OFF] 削除キー/
■14191 / inTopicNo.4)  Re[2]: 行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 16:43:23)
    No14188に返信(うにんさんの記事)
    回答ありがとうございます。

    > 「数量出来る」とは?
    >
    すみません・・・
    完全に誤字です。

    数量変更出来る が正しいです。

    よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■14192 / inTopicNo.5)  Re[2]: 行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 16:45:42)
    回答ありがとうございます。

    No14190に返信(ONnojiさんの記事)
    >>納期が未定義の時のみ、数量変更可能にしたい。
    >
    > ↑これなんですが、行制約というのは、制約=制限=つまりダイアログボックスが表示されて、操作を弾き飛ばす事が目的の機能ですよね。

    そうなんです。
    操作を弾き飛ばしたいのです。

    弾き飛ばす式が分からないのです・・・

引用返信 [メール受信/OFF] 削除キー/
■14193 / inTopicNo.6)  Re[2]: 行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 16:50:50)
    No14190に返信(ONnojiさんの記事)

    >
    > つまり、許可するという意味ではありませんよね。
    >
    > よって、行制約では出来ないではないかなぁ〜。(ーー;)--------------> ※遠い目線
    >
    > そうなんです。
    本来の意味合いから言えば 許可 したいのですが、私自身の桐レベルから言えば
    まず行制約からやってみたいので質問しました。

    式の書き方が間違っているから 弾かれないと思うのですが、どこが間違っているのかが分からない状態なのです・・・
    (逆に言えば、私の今の理解度はあの式程度と言う事なのです・・・)
引用返信 [メール受信/OFF] 削除キー/
■14194 / inTopicNo.7)  Re[3]: 行制約について
□投稿者/ ONnoji -(2024/02/28(Wed) 17:08:43)
    2024/02/28(Wed) 17:20:03 編集(投稿者)

    >>つまり、許可するという意味ではありませんよね。
    >>
    >>よって、行制約では出来ないではないかなぁ〜。(ーー;)--------------> ※遠い目線
    >>
    >>そうなんです。
    > 本来の意味合いから言えば 許可 したいのですが、私自身の桐レベルから言えば
    > まず行制約からやってみたいので質問しました。
    >
    > 式の書き方が間違っているから 弾かれないと思うのですが、どこが間違っているのかが分からない状態なのです・・・
    > (逆に言えば、私の今の理解度はあの式程度と言う事なのです・・・)

    確かにこういうニーズってあると思います。

    しかし、[行制約]でやるかというと別問題だと思いますよ。

    桐の表の機能に[項目制約][行制約]というのがDOS桐の頃からあります。

    これは一種のエラーチェックのような物ですね。

    ※エラーメッセージの内容まで指定できるので正真正銘のエラーチェックそのものですね。入力の許可/禁止ではありません。

    「違反です!」とダイアログボックスを見せられても、意味不明のことが多いです。

    もちろん、表定義をした人ならば、一目瞭然なのですが、第三者には不親切な機能です。

    「違反です!」に対する対処法が分からず、桐を強制終了しちゃうとか考えると恐ろしいです。

    つまり、自分自身が表を定義して、なおかつ自分自身が入力作業をするのは良いのですが、

    しかし、他人様に入力をお願いした場合には結構凶暴な機能だと思いますよ。

    なので、私は個人的にはお勧めしませんね。※個人の感想です(^^ゞ

    p.s.

    表をそのまま使って、[行制約]で入力許可/入力禁止をというアプローチはちょっと無理筋のような気がします。

    表にフォームを使っても良いというのであれば[行制約]以外のアプローチが可能だと思いますが・・・


引用返信 [メール受信/OFF] 削除キー/
■14195 / inTopicNo.8)  Re[4]: 行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 17:24:27)
    No14194に返信(ONnojiさんの記事)
    > 2024/02/28(Wed) 17:13:06 編集(投稿者)

    > つまり、自分自身が表を定義して、なおかつ自分自身が入力作業をするのは良いのですが、
    >
    > しかし、他人様に入力をお願いした場合には結構凶暴な機能だと思いますよ。
    >
    > なので、私は個人的にはお勧めしませんね。※個人の感想です(^^ゞ
    >
    うーん。やっぱりそうなんですね。納期が入力済の時は色を付ける事はやっているんですけどね。

    分かりました。きっぱり諦めます!

    但し、どうしても納得できなので 非常に厚かましいのですが
    式の添削して頂く事できるでしょうか?

    なんで思った通りに出来なかったのかが知りたいのです・・・
    (試行錯誤して時間を費やしたのに、どこが間違っていてどうやったら式として成立するのか分からないままだと悔しいです・・・)

    よろしければ、ご指導よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■14196 / inTopicNo.9)  Re[5]: 行制約について
□投稿者/ ONnoji -(2024/02/28(Wed) 17:49:12)
    2024/02/28(Wed) 17:54:26 編集(投稿者)

    >>つまり、自分自身が表を定義して、なおかつ自分自身が入力作業をするのは良いのですが、
    >>
    >>しかし、他人様に入力をお願いした場合には結構凶暴な機能だと思いますよ。
    >>
    >>なので、私は個人的にはお勧めしませんね。※個人の感想です(^^ゞ
    >>
    > うーん。やっぱりそうなんですね。納期が入力済の時は色を付ける事はやっているんですけどね。
    >
    > 分かりました。きっぱり諦めます!

    表だけでも、かなりの事が出来ますので、思わず出来そうかなぁ〜と思ったりしますよねぇ〜。

    でも、決して何でも出来るわけではないんですよ。

    [フォーム+イベント処理+表]であれば簡単に出来ますが・・・

    > 但し、どうしても納得できなので 非常に厚かましいのですが
    > 式の添削して頂く事できるでしょうか?
    >
    > なんで思った通りに出来なかったのかが知りたいのです・・・
    > (試行錯誤して時間を費やしたのに、どこが間違っていてどうやったら式として成立するのか分からないままだと悔しいです・・・)
    >
    > よろしければ、ご指導よろしくお願いします。

    いきなり[行制約式]に条件式を書き込むアプローチはワカリニクイだけです。

    なので、以下のように表に整数型項目:[条件式1]と整数型項目:[条件式2]を追加してみてください。

    追加した項目は計算項目なので、以下を参考に計算式も張り付付けてください。

    ■test.TBX

    項目番号 項目名  データ型  項目計算式
      1   商品名  文字列  
      2   数量   数値  
      3   納期   日時  
      4   備考   文字列  
      5   条件式1 整数   ( [数量] .and [納期] = "")
      6   条件式2 整数   ( [数量] = ”” .and [納期] <> "")

    そうすると、

    条件式1と条件式2には、ゼロ(0)またはイチ(1)が表示されるハズです。

    ゼロ(0)は偽、イチ(1)は真に相当します。

    これは条件式の評価結果です。

    条件式は論理ですので馴染みが無い人が多いと思います。

    なので以下の拙作ブログを参考にしてください。

    30 論理と条件式|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section30


    p.s.

    なお、 [数量] = ””は要注意です。

    表の未定義項目値処理が[未定義]ならばOKですが、

    もしも、未定義項目値処理が[ゼロ]ならば、

    #横合計( [数量], [数量] ) = ””とする必要があります。

    この掲示板と過去ログを #横合計で検索すると色々見つかりますよ。

引用返信 [メール受信/OFF] 削除キー/
■14197 / inTopicNo.10)  Re[6]: 行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 19:01:30)
    No14196に返信(ONnojiさんの記事)
    > 2024/02/28(Wed) 17:54:26 編集(投稿者)


    > いきなり[行制約式]に条件式を書き込むアプローチはワカリニクイだけです。
    >
    > なので、以下のように表に整数型項目:[条件式1]と整数型項目:[条件式2]を追加してみてください。
    >
    > 条件式1と条件式2には、ゼロ(0)またはイチ(1)が表示されるハズです。
    >
    > ゼロ(0)は偽、イチ(1)は真に相当します。
    >
    > これは条件式の評価結果です。
    >
    > 条件式は論理ですので馴染みが無い人が多いと思います。
    >
    なるほど。分割して考えたら良いのですね。私では思い浮かばなかったです。
    スッキリしました!ご回答ありがとうございました!

    > [フォーム+イベント処理+表]であれば簡単に出来ますが・・・
    で、本題のフォーム+イベント処理ですが、明日トライしてみます!

    ネットで調べてみたら ソース値更新 ケース開始 オブジェクト操作 で出来そうだと思いました。
    明日また報告します!

    早速のご対応ありがとうございました^_^

引用返信 [メール受信/OFF] 削除キー/
■14199 / inTopicNo.11)  Re[7]: 行制約について
□投稿者/ ONnoji -(2024/02/28(Wed) 22:55:45)
    2024/02/28(Wed) 23:44:25 編集(投稿者)
    2024/02/28(Wed) 23:12:46 編集(投稿者)

    >>[フォーム+イベント処理+表]であれば簡単に出来ますが・・・
    > で、本題のフォーム+イベント処理ですが、明日トライしてみます!
    >
    > ネットで調べてみたら ソース値更新 ケース開始 オブジェクト操作 で出来そうだと思いました。
    > 明日また報告します!

    まず、[ソース値更新]イベントは必要ないと思いますよ。キッパリ(^^)ok

    [ソース値更新]イベントはチェックボックス等(トグルボタン)では非常に良く使いますが、

    テキストボックスでは、私は不便な事の方が多いので使いませんよ。

    また[オブジェクト操作]を使って、フォームの表示モードを変更したりとか、

    テキストオブジェクトをフォーカス禁止にするとかも必要ありませんよ。

    あくまでも個人的な意見ですが、これらの発想はDOS桐の古典一括処理と桐ver.7 の拡張一括処理の流儀の残滓のように思いますよ。
    ・・・・・・・・・・・・・・               ・・・・        ・・・・    ・・・・・・・・・・ 

    今風(今様)の[フォーム+イベント処理]では、一括処理の流儀の残滓の影響を受ける必要は全くないと申し上げたいですね。
                           ・・・・・・・・・・・・・・・・・・・・・・・・
    余談ですが・・・(^^ゞ

    願わくば、ダークサイドからライトサイドへ移動されることを期待したいですね。アハハha。(^^ゞ

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

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

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

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

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

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

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

    test.kex
    test.TBX
    test.WFX

    フォーム:test.WFX を開いてください。

    テキストボックスの[入力前]イベントと[入力後]イベントは1組で使用することが多いです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    詳しくは、以下の拙作webページを参考にしてください。

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

    p.s.

    <参考>

    ■test.WFX

     フォーム
     ├ ファミリ
     ├ ワークスペース
     ├ フォーム操作バー
     ├ フォームヘッダ部
     │ ├ a
     │ ├ lbl商品名
     │ ├ lbl数量
     │ ├ lbl納期
     │ └ lbl備考
     └ フォーム明細部
       ├ 行セレクタ
       ├ txt商品名
       ├ txt数量
       ├ txt納期
       └ txt備考

    ■test.kex

    名札  メイン
     変数宣言 局所,文字列{ &m編集文字列 }



    手続き定義開始 txt数量::入力前(参照 文字列 &編集文字列)

     &m編集文字列 = &編集文字列

    手続き定義終了

    手続き定義開始 txt数量::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
     変数宣言 自動,文字列{ &title = "txt数量::入力後( )", &msg }
     変数宣言 自動,整数 { &ans }

     if ( [納期] = #u )

      ** nop: no operation 納期が空なので何もしない
     else

      if ( &m編集文字列 <> &編集文字列 )

       &msg =      "<警告>"
       &msg = &msg + "\n\n・[数量]の値が書き換えられましたが、この操作は許可されていません"
       &msg = &msg + "\n\n⇒自動的に数量の値を直前の数値( " + &m編集文字列 + " )に戻します"
       &msg = &msg + "\n\n<ヒント>"
       &msg = &msg + "\n\n納期の値が未定義の時のみ、数量が変更可能可能です"
       &msg = &msg + "\n\n[納期]= " + #str( [納期] )
       &msg = &msg + "\n\n[数量]の値を書き換える必要が有る場合には[納期]の値を空欄にしてください"
       メッセージボックス  &title, &msg, アイコン = e, ボタン指定 = 1, 制御文字展開 = する, &ans

       &編集文字列 = &m編集文字列
      else

       ** nop: no operation テキストの入力後の値が入力前の値と同じなので何もしない
      end
     end

    手続き定義終了

    p.p.s.

    [メッセージボックス]コマンドは改行が出来るので便利ですが、[確認]コマンドでお茶を濁す人が多いですよね。

    [メッセージボックス]コマンドでも、そんなに手間でも無さそうですが、(^^ゞ

    長年の習慣で[確認]コマンドを使う人が多いように思います。

    今回のサンプルでは、メッセージボックスの文言にこだわってみました。

    何故ならば、せっかくデータ入力のリズムが調子よくなってきたのにも関わらず、
              ・・・・・・・・・・・・・・・・・・・・・・・・・・

    入力作業を中断する割り込み、つまりメッセージボックスを表示するのですから、
    ・・・・・・・・・・・・・    ・・・・・・・・・・・・・・・・・・・

    「入力中のオペレータさんに中断する理由が納得していただけるような文言」にこだわりましたよ。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    アプリケーションの利用者への「明快な情報フィードバック」が対話型のアプリケーションでは必須になると思いますよ。

    つまり、「作る人の優先(都合)でなくて、使う人の分かり易さ優先のユーザインタフェースです」ゾッ!。
                        ・・・・・・・・・・・・・・・・・・・・・・

引用返信 [メール受信/OFF] 削除キー/
■14200 / inTopicNo.12)  Re[8]: 行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/29(Thu) 08:52:40)
    No14199に返信(ONnojiさんの記事)
    > 2024/02/28(Wed) 23:44:25 編集(投稿者)
    > 2024/02/28(Wed) 23:12:46 編集(投稿者)

    まず最初にお礼を言わせて下さい。
    本当に有難う御座いましたm(__)m


    > まず、[ソース値更新]イベントは必要ないと思いますよ。キッパリ(^^)ok
    >
    > [ソース値更新]イベントはチェックボックス等(トグルボタン)では非常に良く使いますが、
    >
    > テキストボックスでは、私は不便な事の方が多いので使いませんよ。
    >
    > また[オブジェクト操作]を使って、フォームの表示モードを変更したりとか、
    >
    > テキストオブジェクトをフォーカス禁止にするとかも必要ありませんよ。
    >
    そうなんですね。
    知識がないので、参考になりそうな物をネットで探して、これなら応用すれば出来そうだ!って思った次第です。



    > 今回のサンプルでは、メッセージボックスの文言にこだわってみました。
    >
    > 何故ならば、せっかくデータ入力のリズムが調子よくなってきたのにも関わらず、
    >           ・・・・・・・・・・・・・・・・・・・・・・・・・・
    >
    > 入力作業を中断する割り込み、つまりメッセージボックスを表示するのですから、
    > ・・・・・・・・・・・・・    ・・・・・・・・・・・・・・・・・・・
    >
    > 「入力中のオペレータさんに中断する理由が納得していただけるような文言」にこだわりましたよ。
    > ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    >
    > アプリケーションの利用者への「明快な情報フィードバック」が対話型のアプリケーションでは必須になると思いますよ。
    >
    > つまり、「作る人の優先(都合)でなくて、使う人の分かり易さ優先のユーザインタフェースです」ゾッ!。
    >                     ・・・・・・・・・・・・・・・・・・・・・・
    >

    正に一番やりたかったイメージの物でした!
    フォーム+イベント処理は敷居が高く感じますが、乗り越えたらやりたいイメージの物が出来上がりますね!
    ブログ読ませて頂きます!(直ぐに理解出来ないので何回も読もうと思います)



    > 願わくば、ダークサイドからライトサイドへ移動されることを期待したいですね。アハハha。(^^ゞ

    ONnojiさんが、オビ=ワン・ケノービの様に導いてくださったので、ライトサイドになれました(^^♪
    ジェダイの騎士ならぬ "ジェダイの桐" 目指して頑張ります!

    この度は本当に有難う御座いました!
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■14202 / inTopicNo.13)  Re[9]: 行制約について
□投稿者/ ONnoji -(2024/02/29(Thu) 11:00:44)
    2024/03/01(Fri) 16:53:36 編集(投稿者)
    2024/02/29(Thu) 11:20:28 編集(投稿者)
    2024/02/29(Thu) 11:06:27 編集(投稿者)

    > 正に一番やりたかったイメージの物でした!
    > フォーム+イベント処理は敷居が高く感じますが、乗り越えたらやりたいイメージの物が出来上がりますね!
    > ブログ読ませて頂きます!(直ぐに理解出来ないので何回も読もうと思います)

    当方のwebページの、

    フォームアプリケーション教書 第1部
    フォームアプリケーション教書 第2部

    は、[フォーム+イベント処理]のガイド・事典として執筆したものです。
                    ・・・・・・

    一応、順番にお読みになることをお勧めしますが、必要な所を拾い読みしていただくのでも構いません。

    なお、著者が認める「悪文」ですので、読み難さについてはご勘弁ください。アハハhe(^^ゞ

    対象範囲が広いので、例えば「変数って何ですか?」のような初級者向けの事柄は割愛しています。

    つまり、変数の知識は有ることが前提になっています。

    そうしないと、膨大な量の解説を書かなければなりませんがら・・・(^^ゞ

    一方、桐のイベント処理の入門講座である
         ・・・・・・・・・・・

    新 フォームアプリケーション入門 §1
    新 フォームアプリケーション入門 §2

    こちらは、初級者向けの入門書ですのでお気軽に読めると思います。
         ・・・・・・・・・・・・・・・・・・・・・・・・・

     INF_Framework入門 レベル1

    ↑これは拙作フレームワークを用いた実践例です。是非お試しください。m(__)m
                     ・・・

    >>願わくば、ダークサイドからライトサイドへ移動されることを期待したいですね。アハハha。(^^ゞ
    >
    > ONnojiさんが、オビ=ワン・ケノービの様に導いてくださったので、ライトサイドになれました(^^♪
    > ジェダイの騎士ならぬ "ジェダイの桐" 目指して頑張ります!

    オォォ〜、「ジェダイの桐」って恰好いいですねぇ〜。

    もしも、次回投稿される場合には、ハンドル名を"ジェダイの桐"にされたらいかがでしょうかね?(*^^*)ok

    May the Form be with you.

    p.s.

    つい先日の私の投稿:14117から一部を転載します。

    ■14117  Re[3]: 表番号の謎 □投稿者/ ONnoji -(2024/02/08(Thu) 16:21:27) より

     :
     :

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

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

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

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

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

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

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

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

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

     :
     :



引用返信 [メール受信/OFF] 削除キー/
■14315 / inTopicNo.14)  Re[8]: 行制約について
□投稿者/ ジェダイの桐 -(2024/04/23(Tue) 09:11:18)
    2024/04/23(Tue) 09:12:20 編集(投稿者)

    ONnojiさん

    おはようございます。


    今の理解力で、プログラムを読み返して見ました。
    理解出来ない事があります・・・



    > 名札  メイン
    >  変数宣言 局所,文字列{ &m編集文字列 }
    >
    > *
    >
    > 手続き定義開始 txt数量::入力前(参照 文字列 &編集文字列)
    >
    >  &m編集文字列 = &編集文字列
    >
    > 手続き定義終了
    >
    > 手続き定義開始 txt数量::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
    >  変数宣言 自動,文字列{ &title = "txt数量::入力後( )", &msg }
    >  変数宣言 自動,整数 { &ans }
    >
    >  if ( [納期] = #u )
    >
    >   ** nop: no operation 納期が空なので何もしない
    >  else
    >
    >   if ( &m編集文字列 <> &編集文字列 )
    >
    >    &msg =      "<警告>"
    >    &msg = &msg + "\n\n・[数量]の値が書き換えられましたが、この操作は許可されていません"
    >    &msg = &msg + "\n\n⇒自動的に数量の値を直前の数値( " + &m編集文字列 + " )に戻します"
    >    &msg = &msg + "\n\n<ヒント>"
    >    &msg = &msg + "\n\n納期の値が未定義の時のみ、数量が変更可能可能です"
    >    &msg = &msg + "\n\n[納期]= " + #str( [納期] )
    >    &msg = &msg + "\n\n[数量]の値を書き換える必要が有る場合には[納期]の値を空欄にしてください"
    >    メッセージボックス  &title, &msg, アイコン = e, ボタン指定 = 1, 制御文字展開 = する, &ans
    >
    >    &編集文字列 = &m編集文字列
    >   else
    >
    >    ** nop: no operation テキストの入力後の値が入力前の値と同じなので何もしない
    >   end
    >  end
    >
    > 手続き定義終了


    変数宣言 自動,整数 { &ans } これは、何故宣言する必要があるのでしょうか??
    また &ans = 〇〇 のように代入の命令が無いのも不思議です(?_?)


    メッセージボックス  &title, &msg, アイコン = e, ボタン指定 = 1, 制御文字展開 = する, &ans
    ここに &ans が出てきます。
    代入の命令がないので、試しに

    メッセージボックス  &title, &msg, アイコン = e, ボタン指定 = 1, 制御文字展開 = する

    と &ans を省いてフォームを触ったところ、試した範囲では特に問題なく動きました(◎_◎;)
    ますます 泥沼 にハマってしまいました。


    お時間がある時回答頂けたら幸いですm(__)m


    p.s.

    仮題)目からウロコの「桐プログラミング」入門 拝読させてもらいました!

    つくづく私は運が良かったと感じています。
    小論の道筋を、私の事例で解説して頂いたのだなと思いました(^^♪

    一般的にタイミングが重要と良く言われますが、
    ONnojiさんが小論執筆している時に、質問出来て幸せです。

    フォームを感じる為に、フォームがONnojiさんへ導いてくれたのかもしれません(^^)/
引用返信 [メール受信/OFF] 削除キー/
■14316 / inTopicNo.15)  Re[9]: 行制約について
□投稿者/ ONnoji -(2024/04/23(Tue) 10:10:48)
    2024/04/23(Tue) 11:00:02 編集(投稿者)

    > 今の理解力で、プログラムを読み返して見ました。
    > 理解出来ない事があります・・・
    >>
    >>手続き定義開始 txt数量::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
    >> 変数宣言 自動,文字列{ &title = "txt数量::入力後( )", &msg }
    >> 変数宣言 自動,整数 { &ans }
    >>
    >>    :
    >>   メッセージボックス  &title, &msg, アイコン = e, ボタン指定 = 1, 制御文字展開 = する, &ans
    >>    :
    >>
    >>手続き定義終了
    >
    > 変数宣言 自動,整数 { &ans } これは、何故宣言する必要があるのでしょうか??
    > また &ans = 〇〇 のように代入の命令が無いのも不思議です(?_?)

    変数:&ans はレガシー3文字変数名で、answer の意味で、操作の応答を受け取る変数です。

    プログラム中の[メッセージボックス]コマンドでは、ボタン指定 = 1 の指定なので[OK]ボタンしか表示されません。

    なので、最後の &ans は不要です。(^^ゞ

    おそらく、コピペした際に &ans が付いてしまったのだと思います。
         ・・・・・・・・・・・・・・・・・・・・・・・・・

    しかし、ボタン指定 = 2 のようにすると、[OK]と[キャンセル]の2つのボタンが表示されるので、

    if ( &ans = 1 )

     ** [OK]ボタンが押された時の処理

    else

     ** [OK]ボタンが押されなかった処理です。つまりこの場合は[キャンセル]が押された時の処理

    end

    とか出来ますよ。

    > また &ans = 〇〇 のように代入の命令が無いのも不思議です(?_?)

    [メッセージボックス]コマンドは[代入]コマンドではありません。

    多くのコマンドで、応答内容や実行結果(成功・不成功)が代入されるパラメータがありますよ。

    でも、これはパラメータであって、代入コマンドではありません。
          ・・・・・・・・・・・・・・・・・・・・・・・

    > 仮題)目からウロコの「桐プログラミング」入門 拝読させてもらいました!
    > つくづく私は運が良かったと感じています。
    > 小論の道筋を、私の事例で解説して頂いたのだなと思いました(^^♪
    > 一般的にタイミングが重要と良く言われますが、
    > ONnojiさんが小論執筆している時に、質問出来て幸せです。

    桐プログラミングの初級者向けのwebページは幾つか存在しますが、

    初級者が最初につまずくことが多い変数に関して解説したものは非常に少ないですね。

    「だって、解説を書くのがとても大変なんだモン」というワケですよ。

    しかし、私( ONnoji )は今までの経験上、初級者の最初の一歩は変数だと確信していましたので、

    今回は、拙作webページの「桐の釣魚大全」の

    「桐のイベント処理の入門講座」

    新 フォームアプリケーション入門 §1
    新 フォームアプリケーション入門 §2

    の副読本として執筆したものです。

    内容に関しては、プログラミング経験者にしてみれば、あまりにも基本的な事柄ばかりなので、それが返って難しいのです。

    そこで、変数=みかん箱みたいな比喩(例え話)をせずに、なるべく具体的な内容として何とか書き上げた次第です。

    なので、図解は基本的になしで、文章オンリーになっています。

    しかし、初級者にとっては確かに「目からウロコ」の知識が得られるのではないかと自負しています。



引用返信 [メール受信/OFF] 削除キー/
■14317 / inTopicNo.16)  Re[10]: 行制約について
□投稿者/ ジェダイの桐 -(2024/04/23(Tue) 14:29:45)
    ONnojiさん


    早速の回答ありがとうございますm(__)m


    > 変数:&ans はレガシー3文字変数名で、answer の意味で、操作の応答を受け取る変数です。
    >
    > プログラム中の[メッセージボックス]コマンドでは、ボタン指定 = 1 の指定なので[OK]ボタンしか表示されません。
    >
    > なので、最後の &ans は不要です。(^^ゞ
    >
    > おそらく、コピペした際に &ans が付いてしまったのだと思います。
    >      ・・・・・・・・・・・・・・・・・・・・・・・・・


    スッキリしました(^^)/
    理解しました!


    > しかし、ボタン指定 = 2 のようにすると、[OK]と[キャンセル]の2つのボタンが表示されるので、
    >
    > if ( &ans = 1 )
    >
    >  ** [OK]ボタンが押された時の処理
    >
    > else
    >
    >  ** [OK]ボタンが押されなかった処理です。つまりこの場合は[キャンセル]が押された時の処理
    >
    > end
    >
    > とか出来ますよ。
    >
    >>また &ans = 〇〇 のように代入の命令が無いのも不思議です(?_?)
    >
    > [メッセージボックス]コマンドは[代入]コマンドではありません。
    >
    > 多くのコマンドで、応答内容や実行結果(成功・不成功)が代入されるパラメータがありますよ。
    >
    > でも、これはパラメータであって、代入コマンドではありません。
    >       ・・・・・・・・・・・・・・・・・・・・・・・


    if ( &ans = 1 )ですが、if ( &ans )でも正解なんですかね??
    と言うのも、フォームアプリケーション教書 第2部 30.3 条件式の書き方と似ているなと感じました。


    正解 か 不正解 の2択に使う場合の &ans であれば、関数ではない( &ans の事 )ですが、#eof 関数と同じ考え方で良いのかも??と思ってしまいました。


    仮に、この考え方が正しかったとしても、こういう発想もあると言う認識にしておいて、今は if ( &ans = 1 )で確実にプログラムを書くと思いますが(^^♪


    (と言っても、実際に使うチャンスがある時は、if ( &ans )のパターンも試すと思います(^^ゞ)


    > しかし、初級者にとっては確かに「目からウロコ」の知識が得られるのではないかと自負しています。
    >


    これは私の体験として、自信をもってその通りだと言い切れます!
引用返信 [メール受信/OFF] 削除キー/
■14318 / inTopicNo.17)  Re[11]: 行制約について
□投稿者/ ONnoji -(2024/04/23(Tue) 15:33:05)
    2024/04/23(Tue) 15:50:53 編集(投稿者)

    > if ( &ans = 1 )ですが、if ( &ans )でも正解なんですかね??
    > と言うのも、フォームアプリケーション教書 第2部 30.3 条件式の書き方と似ているなと感じました。

    コマンドの書き方に関しては、メニューバー の[ヘルプ]→[ヘルプの表示]で[桐 - ヘルプ]を常に参照してください。

    [メッセージボックス]コマンドの文法は次の通りです。

     メッセージボックス  <タイトル>,\
      <表示文字列>,\
       アイコン = i|?|!|E|,\
        ボタン指定 = 1|2|3|4|5|6,\
         制御文字展開 = しない|する,\
          <整数型の変数名>

    ■パラメータ
     :
     :
     :

     <整数型の変数名>
     クリックしたボタン番号を代入する変数名を指定します。
     ボタン番号を取得する必要がない場合は、このパラメータを省略してかまいません。
     指定する変数のデータ型は、長整数、数値、通貨、実数でもかまいません。
     <変数名>には、つぎのボタン番号が代入されます。

     戻り値 ボタン番号
     1    [OK]
     2    [キャンセル]
     3    [中止]
     4    [再試行]
     5    [無視]
     6    [はい]
     7    [いいえ]

    とありますので、&ans の値は1(イチ)または2(ニ)です。

    if ( &ans = 1 )

    else ← &ans が1(イチ)以外、つまり2(ニ)の場合

    end

    と書くしかありません。

    しかし、これが1(イチ)または0(ゼロ)であれば論理値として扱えます。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    if ( &ans ) ※ &ans が論理値相当の場合には、#eof と同様に if ( &ans = 1 ) とは書かなくてOK
           ※ もちろん if ( &ans = 1 ) と書いても誤りではありませんので、ちゃんと動きますけど(^^ゞ

    else ← &ans が1(イチ)以外、つまり0(ゼロ)の場合

    end

    > 正解 か 不正解 の2択に使う場合の &ans であれば、関数ではない( &ans の事 )ですが、#eof 関数と同じ考え方で良いのかも??と思ってしまいました。

    #eof 関数は、1(イチ)と0(ゼロ)の2値しか返しません。

    しかし、[メッセージボックス]コマンドでクリックしたボタン番号を受取る変数には

     戻り値 ボタン番号
     1    [OK]
     2    [キャンセル]
     3    [中止]
     4    [再試行]
     5    [無視]
     6    [はい]
     7    [いいえ]

    ↑のように、1〜7であり、1(イチ)と0(ゼロ)の2値ではありません。

    p.s.

    [メッセージボックスの]コマンドでクリックしたボタン番号を受取る変数の値は、VB/VBA等と同じだったと思います。

    私( ONnoji )は、値が1〜7のどれかでは非常に覚えにくいので、1(イチ)と0(ゼロ)の2値に変換するて手続きを自作して使っています。

    ※実際には[OKのみ]と[OK/キャンセル]と[はい/いいえ]の3通りのメッセージボックスしか使いません。

    詳しくは、AKome さんのwebページをごらんください。

    こちら
     ↓
    メッセージボックス|あこめの桐のプログラミング入門 桐10s
    http://akome409102.html.xdomain.jp/Kiri/INF_prcMsg.html


引用返信 [メール受信/OFF] 削除キー/
■14319 / inTopicNo.18)  Re[12]: 行制約について
□投稿者/ ジェダイの桐 -(2024/04/23(Tue) 15:48:58)
    ONnojiさん


    > コマンドの書き方に関しては、メニューバー の[ヘルプ]→[ヘルプの表示]で[桐 - ヘルプ]を常に参照してください。


    分かりました!
    習慣づけます。


    > しかし、これが1(イチ)または0(ゼロ)であれば論理値として扱えます。
    >
    > if ( &ans ) ※ &ans が論理値相当なので if ( &ans = 1 ) とは書かない
    >
    > else ← &ans が1(イチ)以外、つまり0(ゼロ)の場合
    >
    > end


    > #eof 関数は、1(イチ)と0(ゼロ)の2値しか返しません。
    >
    > しかし、[メッセージボックスの]コマンドでクリックしたボタン番号を受取る変数には
    >
    >  戻り値 ボタン番号
    >  1    [OK]
    >  2    [キャンセル]
    >  3    [中止]
    >  4    [再試行]
    >  5    [無視]
    >  6    [はい]
    >  7    [いいえ]
    >
    > ↑のように、1〜7であり、1(イチ)と0(ゼロ)の2値ではありません。


    物凄い分かりやすい解説ありがとうございましたm(__)m
    誤った解釈で理解する所でした・・・


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



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

このトピックに書きこむ

Mode/  Pass/

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

- Child Tree -
- Antispam Version -