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

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

■14266 / inTopicNo.1)  加工開始日を求めたい
  
□投稿者/ ジェダイの桐 -(2024/04/09(Tue) 09:55:19)
    おはようございます。

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


    ・やりたい事
      休日を除いた工場の加工開始日を 加工日1 加工日2 に表示(代入?)したい。
      加工日1の加工日数は5日 加工日2の加工日数は7日 です。
      会社の休日カレンダーは作成済です。


    ・自分で考えてやってみた事

     休日カレンダーを作成し直前値を使って 当日日付 - 前日日付 で休日を除いた日数をカウントする。

     加工日数(数値)を入力して、当日日付 - 前日日付が -1 の時は加工日数、その他は 当日日付 - 前日日付 + 加工日数 を当日日付から引く。

     これで求める事が出来ると安易に考えていましたが、よく考えたら当日日付から加工日数を引いているので、いくら休日を除いた日数をカウントしても意味がありませんでした・・・

     手続きが使えれば実現可能ではないかと、自分なりに調べてみたのですが分かりませんでした。

    お時間がある時でいいのでご回答いただければ幸いです。

引用返信 [メール受信/OFF] 削除キー/
■14267 / inTopicNo.2)  Re[1]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/09(Tue) 14:12:31)
    2024/04/09(Tue) 14:39:10 編集(投稿者)

    > ・やりたい事
    >   休日を除いた工場の加工開始日を 加工日1 加工日2 に表示(代入?)したい。
    >   加工日1の加工日数は5日 加工日2の加工日数は7日 です。
    >   会社の休日カレンダーは作成済です。

    人が行う場合も、プログラムで行う場合も同じです。

    0.表(.tbx)の現在のレコード(行)から、
    1.前に5レコード戻って値を変数Aに代入
    2.前に7レコード戻って値を変数Bに代入
    3.元のレコードへ戻って、加工日1に変数Aを、加工日2に変数Bの値を格納

    という段取りになると思いますが、厄介なこと休日を除外しなければなりませんね。
                    ・・・・・・・・・・・・・・・・・・・・・・

    そこで休日を除外するには、事前に条件式: [休日] = "" で絞り込めばOKだと気が付くでしょう。

    以上を参考にして手続きを作ってくださいと言っても、慣れていないと大変でしょう。(^^ゞ

    なので、以下に加工日数.kexのサンプルを示します。

    コピペで動きますよ。

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

    ■加工日数.kex

    名札  メイン



    手続き定義開始 cmdテストClick( )
     変数宣言 自動,文字列{ &title = "cmdテストClick( )", &msg }
     変数宣言 自動,日時 { &加工日1, &加工日2 }
     変数宣言 自動,整数 { &multiTblNum }
     変数宣言 自動,長整数{ &recordNum }


     &msg =      "Start"
     &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
     &msg = &msg + "\n\n不要になったらコメントアウトしてください"
     メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

     多重化
     &multiTblNum = #is表  /* 多重化した表の表番号を取得 */

     解除 *
     絞り込み [休日]{ [休日] = #u }
     ジャンプ 行番号 = 先頭
     繰り返し ( .not #eof )

      &recordNum = #行番号
      手続き実行 prc加工日探索( &加工日1, &加工日2 )
      ジャンプ 行番号 = &recordNum

      トレース出力 _[日付], "  ", _&加工日1, "  ", _&加工日2
      行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2

      ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */
     繰り返し終了

     終了 表 &multiTblNum  /* 多重化した表を閉じる */
     編集表 &hwindow

     &msg =      "Finish"
     &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
     &msg = &msg + "\n\n不要になったらコメントアウトしてください"
     メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

    手続き定義終了

    手続き定義開始 prc加工日探索( 参照 日時 &加工日1, 参照 日時 &加工日2 )
     変数宣言 自動,文字列{ &title = "prc加工日探索( )", &msg }
     変数宣言 自動,長整数{ &recordNum }

     &加工日1 = #u /* 参照引数を初期化 */
     &加工日2 = #u /* 参照引数を初期化 */

     &recordNum = #行番号
     ジャンプ 行番号 = &recordNum
     if ( &recordNum > 5 )
      ジャンプ 行番号 = -5
      &加工日1 = [日付]
     end

     ジャンプ 行番号 = &recordNum
     if ( &recordNum > 7 )
      ジャンプ 行番号 = -7
      &加工日2 = [日付]
     end

    手続き定義終了

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

    ■加工日数.WFX のコマンドボタン

     オブジェクト名: cmdテスト
     標題     : テスト

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

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

    ■トレース結果

     <参考>
     40 [トレース出力]ウィンドウと[トレース出力]コマンド|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
     http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section40

     :[日付] : 2024年 4月 1日 0時 0分 0秒  &加工日1 :   &加工日2 :
     :[日付] : 2024年 4月 2日 0時 0分 0秒  &加工日1 :   &加工日2 :
     :[日付] : 2024年 4月 3日 0時 0分 0秒  &加工日1 :   &加工日2 :
     :[日付] : 2024年 4月 4日 0時 0分 0秒  &加工日1 :   &加工日2 :
     :[日付] : 2024年 4月 5日 0時 0分 0秒  &加工日1 :   &加工日2 :
     :[日付] : 2024年 4月 6日 0時 0分 0秒  &加工日1 : 2024年 4月 1日 0時 0分 0秒  &加工日2 :
     :[日付] : 2024年 4月 8日 0時 0分 0秒  &加工日1 : 2024年 4月 2日 0時 0分 0秒  &加工日2 :
     :[日付] : 2024年 4月 9日 0時 0分 0秒  &加工日1 : 2024年 4月 3日 0時 0分 0秒  &加工日2 : 2024年 4月 1日 0時 0分 0秒
     :[日付] : 2024年 4月10日 0時 0分 0秒  &加工日1 : 2024年 4月 4日 0時 0分 0秒  &加工日2 : 2024年 4月 2日 0時 0分 0秒
     :[日付] : 2024年 4月11日 0時 0分 0秒  &加工日1 : 2024年 4月 5日 0時 0分 0秒  &加工日2 : 2024年 4月 3日 0時 0分 0秒
     :[日付] : 2024年 4月12日 0時 0分 0秒  &加工日1 : 2024年 4月 6日 0時 0分 0秒  &加工日2 : 2024年 4月 4日 0時 0分 0秒
      :
     途中省略
      :
     :[日付] : 2025年 5月14日 0時 0分 0秒  &加工日1 : 2025年 5月 8日 0時 0分 0秒  &加工日2 : 2025年 5月 2日 0時 0分 0秒
     :[日付] : 2025年 5月15日 0時 0分 0秒  &加工日1 : 2025年 5月 9日 0時 0分 0秒  &加工日2 : 2025年 5月 7日 0時 0分 0秒
     :[日付] : 2025年 5月16日 0時 0分 0秒  &加工日1 : 2025年 5月10日 0時 0分 0秒  &加工日2 : 2025年 5月 8日 0時 0分 0秒
     :[日付] : 2025年 5月19日 0時 0分 0秒  &加工日1 : 2025年 5月12日 0時 0分 0秒  &加工日2 : 2025年 5月 9日 0時 0分 0秒
     :[日付] : 2025年 5月20日 0時 0分 0秒  &加工日1 : 2025年 5月13日 0時 0分 0秒  &加工日2 : 2025年 5月10日 0時 0分 0秒
     :[日付] : 2025年 5月21日 0時 0分 0秒  &加工日1 : 2025年 5月14日 0時 0分 0秒  &加工日2 : 2025年 5月12日 0時 0分 0秒
     :[日付] : 2025年 5月22日 0時 0分 0秒  &加工日1 : 2025年 5月15日 0時 0分 0秒  &加工日2 : 2025年 5月13日 0時 0分 0秒
     :[日付] : 2025年 5月23日 0時 0分 0秒  &加工日1 : 2025年 5月16日 0時 0分 0秒  &加工日2 : 2025年 5月14日 0時 0分 0秒
     :[日付] : 2025年 5月24日 0時 0分 0秒  &加工日1 : 2025年 5月19日 0時 0分 0秒  &加工日2 : 2025年 5月15日 0時 0分 0秒
     :[日付] : 2025年 5月26日 0時 0分 0秒  &加工日1 : 2025年 5月20日 0時 0分 0秒  &加工日2 : 2025年 5月16日 0時 0分 0秒
     :[日付] : 2025年 5月27日 0時 0分 0秒  &加工日1 : 2025年 5月21日 0時 0分 0秒  &加工日2 : 2025年 5月19日 0時 0分 0秒
     :[日付] : 2025年 5月28日 0時 0分 0秒  &加工日1 : 2025年 5月22日 0時 0分 0秒  &加工日2 : 2025年 5月20日 0時 0分 0秒
     :[日付] : 2025年 5月29日 0時 0分 0秒  &加工日1 : 2025年 5月23日 0時 0分 0秒  &加工日2 : 2025年 5月21日 0時 0分 0秒
     :[日付] : 2025年 5月30日 0時 0分 0秒  &加工日1 : 2025年 5月24日 0時 0分 0秒  &加工日2 : 2025年 5月22日 0時 0分 0秒

    p.s.

    なお、サンプルは多重化して、レコードをあちこっちに移動させていますが、これ以外にも方法があると思います。

    プログラムの作り方はいろいろありますので、サンプルはその一つの例だとお考え下さい。

    p.p.s

    サンプルはレコードをあちこっちに移動させていますので、多重化しない状態で行うと目が回ります。(@_@)

    ということで多重化をしています。

    サンプルの一般手続き:prc加工日探索( ) では参照の引数を使っています。

    これは一見すると難しく見えますが、慣れてしまえば簡単ですよ。

    難しそうだからと敬遠していると、一番美味しいところを食べそこないますよ。(^^ゞ

     27.3 引数の[値渡し]と[参照渡し]|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
     http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section27-3




引用返信 [メール受信/OFF] 削除キー/
■14268 / inTopicNo.3)  Re[2]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/09(Tue) 16:16:45)
    2024/04/09(Tue) 16:41:09 編集(投稿者)


    ONnojiさん

    こんにちは。

    今回も、ご対応ありがとうございましたm(__)m
    やりたい事が可能になりました!

    信じて貰えないかもしれませんが、これでも2日考えたんです・・・

    #項目属性を使ったらいいのでは?
    とか、出来ないなりに変数宣言をしてみたりとか、メインで局所変数を宣言してみたりとか・・・

    そもそもが、理解できていないので何もできませんでしたが(T_T)

    分からないなりに調べたり色々挑戦した事がいつか経験として活かせたら良いなと思います。


    > という段取りになると思いますが、厄介なこと休日を除外しなければなりませんね。
    >                 ・・・・・・・・・・・・・・・・・・・・・・

    > そこで休日を除外するには、事前に条件式: [休日] = "" で絞り込めばOKだと気が付くでしょう。
    >
    > 以上を参考にして手続きを作ってくださいと言っても、慣れていないと大変でしょう。(^^ゞ

    正にこれをどうやったら解決するのか分かりませんでした(T_T)


    > なので、以下に加工日数.kexのサンプルを示します。
    >
    > コピペで動きますよ。

    ありがとうございましたm(__)m

    >
    > サンプルの一般手続き:prc加工日探索( ) では参照の引数を使っています。
    >
    > これは一見すると難しく見えますが、慣れてしまえば簡単ですよ。
    >
    > 難しそうだからと敬遠していると、一番美味しいところを食べそこないますよ。(^^ゞ
    >
    >  27.3 引数の[値渡し]と[参照渡し]|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    >  http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section27-3
    >
    例え難しくても、理解出来るように努力します。
    (仕事で使う上で、今回の様な事が沢山起こっています。少しずつでも桐で解決したいので、勉強して精進します!)
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■14269 / inTopicNo.4)  Re[3]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/09(Tue) 17:22:11)
    2024/04/11(Thu) 16:09:16 編集(投稿者)
    2024/04/10(Wed) 09:18:06 編集(投稿者)

    > #項目属性を使ったらいいのでは?
    > とか、出来ないなりに変数宣言をしてみたりとか、メインで局所変数を宣言してみたりとか・・・

    やはり、初級者は変数に慣れていないので、プログラミングの敷居は高くなりますね。

    現在、初級者向けのプログラミングに関する読み物を執筆しています。

    まだ草稿ではありますが、添付しますのでご一読ください。

    よろしければ、読後の感想をフィードバックしていただけると嬉しいです。(^^♪

    >>なので、以下に加工日数.kexのサンプルを示します。
    >>コピペで動きますよ。
    > ありがとうございましたm(__)m

    ジェダイの桐さんは、拙作: 新 フォームアプリケーション入門 §1/§2を自習されているでしょう。

    なので、コピペの形式でご案内しましたよ。

    もしも、そうでなければ、添付ファイルにするところでした。

    > 例え難しくても、理解出来るように努力します。
    > (仕事で使う上で、今回の様な事が沢山起こっています。少しずつでも桐で解決したいので、勉強して精進します!)

    桐はパーソナルなデータベースですが、アプリケーション開発のプラットフォームでもあるんですね。

    事務作業の大部分のことが、桐を使うことによって自動化出来ます。

    もちろん、桐でなんでも出来るわけではありませんので、適材適所で使うのがキモですよ。

    p.s.

    当方は、「フォーム+イベント処理」によるガントチャートの試作を行っています。

    貴殿はガントチャートにご興味ありますか????


引用返信 [メール受信/OFF] 削除キー/
■14270 / inTopicNo.5)  Re[4]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/09(Tue) 17:41:17)
    > やはり、初級者は変数に慣れていないので、プログラミングの敷居は高くなりますね。
    >
    > 現在、初級者向けのプログラミングに関する読み物を執筆しています。
    >
    > まだ草稿ではありますが、添付しますのでご一読ください。
    >
    > よろしければ、読後の感想をフィードバックしていただけると嬉しいです。(^^♪
    >

    有難うございます!
    今週中にフィードバックしますm(__)m


    > p.s.
    >
    > 当方は、「フォーム+イベント処理」によるガントチャートの試作を行っています。
    >
    > 貴殿はガントチャートにご興味ありますか????
    >
    あります!

    昨年の事です。
    23年11月〜23年12月中納期でチームで資料作りがありました。
    桐でガントチャートがあればなと思っていました。

    結局その時は、開始日と納期を日時で持った表で対応しました(T_T)

    それこそ、ガントチャートがあれば、工場の加工スケジュール管理にも使えそうだなと思います(^^)

引用返信 [メール受信/OFF] 削除キー/
■14271 / inTopicNo.6)  Re[5]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/09(Tue) 17:57:41)
    2024/04/09(Tue) 18:25:09 編集(投稿者)
    2024/04/09(Tue) 18:03:06 編集(投稿者)

    >>よろしければ、読後の感想をフィードバックしていただけると嬉しいです。(^^♪
    > 今週中にフィードバックしますm(__)m

    よろしくお願いいたします。m(__)m

    >>当方は、「フォーム+イベント処理」によるガントチャートの試作を行っています。
    >>貴殿はガントチャートにご興味ありますか????
    > あります!
    > 昨年の事です。
    > 23年11月〜23年12月中納期でチームで資料作りがありました。
    > 桐でガントチャートがあればなと思っていました。
    > 結局その時は、開始日と納期を日時で持った表で対応しました(T_T)
    > それこそ、ガントチャートがあれば、工場の加工スケジュール管理にも使えそうだなと思います(^^)

    エクセルの「ガントチャートなんちゃ〜ってサンプル」等を参考にして試作しました。

    しかし、当方はガントチャートを実際に使う立場ではありませんので、

    イマイチこれで良いのか自信がありません。

    そこで、ジェダイの桐さんの知見をお借りできればと思う次第です。

    表の定義は以下です。

    項目番号 項目名  データ型
    1     カテゴリ 文字列
    2     タスク  文字列
    3     担当   文字列
    4     開始日  日時
    5     終了日  日時
    6     1     文字列
    7     2     文字列
    8     3     文字列
    9     4     文字列
    10    5     文字列
      :
     途中省略
      :
    91    86    文字列
    92    87    文字列
    93    88    文字列
    94    89    文字列
    95    90    文字列
    96    91    文字列
    97    92    文字列
    98    93    文字列
    99    カレンダ開始日  文字列
        
    イメージは添付ファイルをご覧ください。

    正直言ってまったく自信がありませんので、忌憚のないご意見をいただけるととても嬉しいです。

    よろしくお願いいたします。m(__)m

    p.s.

    今回の経験で気が付いたことがあります。

    それは、会社の休業日を休日として扱う必要があるということです。

    これは気が付きませんでした。(^^ゞ

    p.p.s.

    決まり文句の[カテゴリ][タスク][担当]ですが、これで本当にOKでしょうか???



引用返信 [メール受信/OFF] 削除キー/
■14272 / inTopicNo.7)  Re[6]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/09(Tue) 18:40:50)
    > エクセルの「ガントチャートなんちゃ〜ってサンプル」等を参考にして試作しました。
    >
    > しかし、当方はガントチャートを実際に使う立場ではありませんので、
    >
    > イマイチこれで良いのか自信がありません。
    >
    > そこで、ジェダイの桐さんの知見をお借りできればと思う次第です。
    >
    > 表の定義は以下です。
    >
    > 項目番号 項目名  データ型
    > 1     カテゴリ 文字列
    > 2     タスク  文字列
    > 3     担当   文字列
    > 4     開始日  日時
    > 5     終了日  日時
    > 6     1     文字列
    > 7     2     文字列
    > 8     3     文字列
    > 9     4     文字列
    > 10    5     文字列
    >   :
    >  途中省略
    >   :
    > 91    86    文字列
    > 92    87    文字列
    > 93    88    文字列
    > 94    89    文字列
    > 95    90    文字列
    > 96    91    文字列
    > 97    92    文字列
    > 98    93    文字列
    > 99    カレンダ開始日  文字列
    >     
    > イメージは添付ファイルをご覧ください。
    >
    > 正直言ってまったく自信がありませんので、忌憚のないご意見をいただけるととても嬉しいです。
    >
    > よろしくお願いいたします。m(__)m
    >

    これは かなり使えると思います!
    今、パソコンがないので 明日意見を回答させて貰います^_^
引用返信 [メール受信/OFF] 削除キー/
■14273 / inTopicNo.8)  Re[6]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/10(Wed) 09:36:12)
    2024/04/10(Wed) 09:40:38 編集(投稿者)
    2024/04/10(Wed) 09:40:06 編集(投稿者)

    ONnojiさん

    > p.p.s.
    >
    > 決まり文句の[カテゴリ][タスク][担当]ですが、これで本当にOKでしょうか???
    >
    1、

    これは オートフォームを想定しているのでしょうか??

    [カテゴリ][タスク][担当]に関して問題ないと思います。
    オートフォーム的に使用出来るのなら、

     カテゴリ → 商品名
     タスク → 工程名
     担当 → 設備名

    に置き換える事も可能なのかな と思います。

    2、

    製造で使う事を想定した時、別の表で 設備マスタ or 担当者マスタ を作成して、ID番号を入力したら表引きで 担当者を表示させる事もいいと思います。

    3、

    完了日ですが、完了日を超過した場合 対策を入力させる項目があった方が便利と面ます。
    完了予定日 と 実際の完了日 が入力出来たらなと思いました。

    4、

    カレンダー部分に色が着いて欲しいです。(サンプル画像の沖縄旅行は、スケジュールより前の 開始日 完了日なので、色が表示していないだけかもしれませんが・・・)
    また、完了日より超過 or 短縮 した場合 チャート色が変われば良いと思いました。
    カテゴリ タスク 担当者 の文字色も変われば異常を感知しやすいと思います。


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

    一個人の感想ですので、参考になれば良いのですが・・・(^^;

    いつかガントチャートがリリースされたとした場合、
    教えて頂いた 休日を除いた加工完了日と上手く組み合わせる事が出来れば
    製造スケジュールが可視化出来るなとちょっと思っちゃいました(^^♪

引用返信 [メール受信/OFF] 削除キー/
■14274 / inTopicNo.9)  Re[7]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 11:37:43)
    2024/04/10(Wed) 11:44:06 編集(投稿者)

    >>決まり文句の[カテゴリ][タスク][担当]ですが、これで本当にOKでしょうか???
    > これは オートフォームを想定しているのでしょうか??
    >
    > [カテゴリ][タスク][担当]に関して問題ないと思います。
    > オートフォーム的に使用出来るのなら、
    >
    >  カテゴリ → 商品名
    >  タスク → 工程名
    >  担当 → 設備名

    オートフォームでは無理なので固定になります。

    画像拝見しました。なるほど!、ですね。

    【改修前】 [カテゴリ][タスク]       [担当][開始日][終了日]

    【改修後】 [カテゴリ][タスク1][タスク2][担当][開始日][終了日][超過完了予定日][完了日][超過対策][備考]

    このように改修しようと思いました。非常に参考になりました。

    ありがとうございました。m(__)m

    > 製造で使う事を想定した時、別の表で 設備マスタ or 担当者マスタ を作成して、ID番号を入力したら表引きで 担当者を表示させる事もいいと思います。

    表引きは表(.tbx)側で設定すれば、フォームでも可能なので特にフォームでは何もしないつもりです。

    > 完了日ですが、完了日を超過した場合 対策を入力させる項目があった方が便利と面ます。
    > 完了予定日 と 実際の完了日 が入力出来たらなと思いました。

    なるほど、実用的ですね。

    > カレンダー部分に色が着いて欲しいです。(サンプル画像の沖縄旅行は、スケジュールより前の 開始日 完了日なので、色が表示していないだけかもしれませんが・・・)
    > また、完了日より超過 or 短縮 した場合 チャート色が変われば良いと思いました。
    > カテゴリ タスク 担当者 の文字色も変われば異常を感知しやすいと思います。

    現状では、*マークが連続表示されるようになっていますが、背景色を変えるだけにも対応できると思います。

    ただし、PCが遅いと表示が鈍重になるのが難点ですが・・・※特に当方のマシンはチープなスペックなものでして(^^ゞ

    > 一個人の感想ですので、参考になれば良いのですが・・・(^^;
    > いつかガントチャートがリリースされたとした場合、
    > 教えて頂いた 休日を除いた加工完了日と上手く組み合わせる事が出来れば
    > 製造スケジュールが可視化出来るなとちょっと思っちゃいました(^^♪

    試行錯誤を重ねてプロトタイプが出来ていますが、完成の目途はまだたっていません。

    p.s.

    拙作:整形ユーティリティでは、テキストファイルに疑似手続きを作成することでWBSが作れますよ。

    ※Work Breakdown Structure (WBS、作業分解構造)

    例えば、以下のような形式のものです。

    1 IPS+INF

    ├ 1.1 IPS_Framework
    │ │
    │ └ 1.1.1 SPN_Framework

    ├ 1.2 INF_Framework

    ├ 1.3 VK_Framework

    └ 1.4 MNU_Framework

    このようなWBSが作れるので、ガントチャートもと欲張っているのでありました。(^^ゞ



引用返信 [メール受信/OFF] 削除キー/
■14275 / inTopicNo.10)  Re[8]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/10(Wed) 17:09:27)
    > p.s.
    >
    > 拙作:整形ユーティリティでは、テキストファイルに疑似手続きを作成することでWBSが作れますよ。
    >
    > ※Work Breakdown Structure (WBS、作業分解構造)
    >
    > 例えば、以下のような形式のものです。
    >
    > 1 IPS+INF
    > │
    > ├ 1.1 IPS_Framework
    > │ │
    > │ └ 1.1.1 SPN_Framework
    > │
    > ├ 1.2 INF_Framework
    > │
    > ├ 1.3 VK_Framework
    > │
    > └ 1.4 MNU_Framework
    >
    > このようなWBSが作れるので、ガントチャートもと欲張っているのでありました。(^^ゞ
    >

    ONnojiさん

    バイタリティが凄いですね!

    桐で使えるガントチャートで最大に良いと感じるのは、
    スケジュール管理が出来る事も重要ですが、データベースとして蓄積出来る事だと思いました。


    例えば、

    ガントチャートで可視化して量産品生産スケジュール管理をすると共に、
    1年程度データを蓄積する。

    蓄積したデータを分析した時、いつも超過している工程があったとしら改善策を考える事が出来ます。

    また、備考欄 を 難易度欄に置き換えて使用した場合、初期設定が高難度だとしても、実際の完了日が予定完了日より常に短縮して終了している場合、

    難易度設定の見込みが甘かった or 人材が育って来ている 等 検証する事も出来ると思います。


    エクセルでも、書き込みした事が対応可能なのかもしれませんが、やっぱり餅は餅屋じゃないですが、データベースソフトで分析できた方が良いと思います(^^)/



引用返信 [メール受信/OFF] 削除キー/
■14276 / inTopicNo.11)  Re[4]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/10(Wed) 17:28:47)
    ONnojiさん

    プログラミングテキスト非常に読みやすいです。

    >プログラミングの書籍などでは変数とは[名前が付いた箱]といった比喩(例え話)が見受けられますが、

    >このような比喩(例え話)は頭の中が混乱するだけなので忘れてください。


    ネットで変数の事を調べると必ずと言って良いほど みかん箱 の話が出てきました。
    確かに みかん箱 で例える必要もないですね。


    >変数宣言 局所,文字列{ &variableName }


    いつも疑問に感じる事が、(桐に関しては?)変数名は漢字でもOKなはずなのに
    何故英語が書くのかが分からないのです。

    この英語は 任意のキーワード なのか プログラムの世界では一般的なキーワード なのか??

    任意だとしら、なにか命名法則があるのか??

    初心者目線の疑問でした。

    知れて良かった事は 代入 を省略して記入してあると言う事です。
    これを 知っているか いないかは 個人的にはかなり大きいと思います。


    代入しているんだろうな と想像してプログラムを見るより、代入を省略しているけど代入していると確信してプログラムを見る方が理解度が高くなるからです。


    初心者向けのプログラミングの読み物が完成してHPにアップされた暁には、必ず読ませて頂きます(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■14277 / inTopicNo.12)  Re[9]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 17:34:12)
    2024/04/10(Wed) 19:00:39 編集(投稿者)

    > 桐で使えるガントチャートで最大に良いと感じるのは、
    > スケジュール管理が出来る事も重要ですが、データベースとして蓄積出来る事だと思いました。
    > 例えば、
    > ガントチャートで可視化して量産品生産スケジュール管理をすると共に、
    > 1年程度データを蓄積する。
    > 蓄積したデータを分析した時、いつも超過している工程があったとしら改善策を考える事が出来ます。
    > また、備考欄 を 難易度欄に置き換えて使用した場合、初期設定が高難度だとしても、実際の完了日が予定完了日より常に短縮して終了している場合、
    > 難易度設定の見込みが甘かった or 人材が育って来ている 等 検証する事も出来ると思います。
    > エクセルでも、書き込みした事が対応可能なのかもしれませんが、やっぱり餅は餅屋じゃないですが、データベースソフトで分析できた方が良いと思います(^^)/

    そうですね。

    データベースの方がワークシートよりも保管しやすいですよね。

    今回のガントチャート用の表(.tbl)の定義は次の内容です。

    番号  項目名  データ型
    1    カテゴリ 文字列
    2    タスク1 文字列
    3    タスク2 文字列
    4    担当   文字列
    5    開始日  日時
    6    終了日  日時
    7    超過完了予定日  日時
    8    完了日  日時
    9    超過対策 文字列
    10   備考   文字列
    11   1     文字列
    12   2     文字列
    13   3     字列
    14   4     文字列
      :
     途中省略
      :

    96   86    文字列
    97   87    文字列
    98   88    文字列
    99   89    文字列
    100   90    文字列
    101   カレンダ開始日  文字列
        
    ここで重要なのは、

    1    カテゴリ 文字列
    2    タスク1 文字列
    3    タスク2 文字列
    4    担当   文字列
    5    開始日  日時
    6    終了日  日時
    7    超過完了予定日  日時
    8    完了日  日時
    9    超過対策 文字列
    10   備考   文字列

    の項目だけなんですよね。

    残りの項目は、単に視覚化するだけの項目なんですね。

    拙作では、任意の日付からカレンダを生成して、90日分の視覚化が可能というわけです。

    ちなみにカレンダ機能は、先日アップデートした INF_DatePicker のエンジンを流用しています。(*^^)v


引用返信 [メール受信/OFF] 削除キー/
■14278 / inTopicNo.13)  Re[5]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 18:05:28)
    2024/04/10(Wed) 22:56:23 編集(投稿者)

    > プログラミングテキスト非常に読みやすいです。
    > >プログラミングの書籍などでは変数とは[名前が付いた箱]といった比喩(例え話)が見受けられますが、
    > >このような比喩(例え話)は頭の中が混乱するだけなので忘れてください。
    >
    > ネットで変数の事を調べると必ずと言って良いほど みかん箱 の話が出てきました。
    > 確かに みかん箱 で例える必要もないですね。

    みかん箱じゃ余計に分からなくなりますよね。

    下手くそなテクニカルライターが始めた例え話だと思いますが、ネットで蔓延していますよね。

    その他に、桐ではもちろんオブジェクト指向プログラミングは出来ないのですが、

    Javaなどのオブジェクト指向プログラミング言語でも、ものすごい例え話を並べて読者を煙に巻いています。

    あまりにも変な比喩(例え話)が世の中に蔓延したので、とうとう「なんでもオブジェクト」だと言い出す人まで現れました。

    こうなると、ChatGPT に勝るとも劣らないデタラメな議論が巻き起こったりしますね。

    レストランで出されたメニューに書かれている料理名を見て、これを「オブジェクト指向メニュー」だと誰も言わないでしょう。

    噴飯ものですよね。

    まったく呆れ果てたものですねぇ〜。アハハha

    > >変数宣言 局所,文字列{ &variableName }
    > いつも疑問に感じる事が、(桐に関しては?)変数名は漢字でもOKなはずなのに
    > 何故英語が書くのかが分からないのです。

    例えば #文字列関数のヘルプには次のようなシンタックス(文法)が掲載されています。

     #文字列( 【 num | num , n | tmst | itvl 】 )

    このように、桐のヘルプでも英語的なキーワードがたくさんあります。

    コンピュータの世界では、英語圏が中心で発達してきたんですよね。

    だから、英語や英語的なキーワードがどうしても多くなります。

    これは仕方ないと思って慣れてください。

    余談ながら、かつての日本IBMの5550というPCでは、キーボードとは呼ばずに鍵盤装置と呼称していたんですよ。

    日本IBMが頑張ってなんでも日本語で表記していたのですが、さすがにマウスは鼠とは呼ばなかったと記憶しています。(^^ゞ

    > この英語は 任意のキーワード なのか プログラムの世界では一般的なキーワード なのか??
    > 任意だとしら、なにか命名法則があるのか??
    > 初心者目線の疑問でした。

    私( ONnoji )の著作では非常に英語風の変数名が多いと思います。

    これは私( ONnoji )が漢字が使えない8ビットPC(当時マイコンと呼んでいた)からプログラミングをしていたからです。

    また桐ver.2 と出会う前までは、dBASE2/3/3+ といったデータベースでプログラミングしていましたが、

    やはり日本語の変数は誤動作の元になることがあるので、日本語は極力使わないようにしていましたよ。

    桐では日本語の変数名でも何の問題はありませんが、これは桐が最初から日本語対応だったからですよ。

    Windows が発売されたころのオフィスでも日本語の変数名は忌避されていたと思います。

    もちろん、今ではOKでしょうけれど・・・※怖さを知っている人はやはり避けますけどね。アハハha

    > 知れて良かった事は 代入 を省略して記入してあると言う事です。
    > これを 知っているか いないかは 個人的にはかなり大きいと思います。

    桐の[代入]コマンドや、VB/VBAの[Let] ステートメントは、まず、いや絶対に書きませんね。

    でも、入門書やヘルプでは、その事を教えてくれないようですね。

    > 代入しているんだろうな と想像してプログラムを見るより、代入を省略しているけど代入していると確信してプログラムを見る方が理解度が高くなるからです。
    > 初心者向けのプログラミングの読み物が完成してHPにアップされた暁には、必ず読ませて頂きます(^^ゞ

    だから、数学の等式と勘違いして頭の中が混乱する人が多いんですよ。アハハha。

    テキストはごく最初の部分だけを添付しました。

    現在鋭意執筆中ですので、完成したら拙作HPに掲載しますのでお楽しみにしてください。

    p.s.

    > この英語は 任意のキーワード なのか プログラムの世界では一般的なキーワード なのか??

    桐の関数に #文字列、#条件選択 がありますね。

    しかし、私( ONnoji )は、それぞれの関数の別名 #str #cond を好んで使うわけです。

    また、ちぇっ!また英語かぁ〜という声が聞こえてきそうですが・・・(^^ゞ

    実は、これらの別名は、多くのソフトウェアでも一般的なものなのです。

    思い付くまま列挙すると

    #文字列 → #str 意味:string 文字列

    #部分列 → #sstr 意味:sub string 部分列

    #条件選択 → #cond 意味:条件

    #終端行 → #eof 意味:End Of File ファイルの終わり

    #文字置換 → #s 意味:stuff の s だと思われます 詰め込む ※アルファベット1文字の関数名は一般的ではありません。

    他にもあると思いますが・・・この辺で(^^ゞ

    なお、

    #連結 → #cat は 語源として catalog だっと思いますが今ではこの関数を使う人はまず居ないと思います。

    なぜならば #cat( [名前], "様" ) は、関数を使わずに [名前] + "様" という式で書けるからです。

    余談ついでに(^^ゞ

     #計算 の別名は #PROGN。
     この別名って、プログラミング言語 Common Lisp の progn関数からきているようですね。
     prog1 prog2 というのもあるから、 n は n番め=最後という意味なのでしょうかね。
     そういえば、K3殿は Lisp の開発もしてましたっけ。
     ちなみに、#SETQ も Lisp 由来かもしれない。

     #TRIM や #STR など、桐の関数の別名はプログラミング言語でお馴染みのものから来ていますね。
     私は dBASE言語を使っていたので、桐のコマンド・関数の別名の大部分の見当がすぐに付きました。
     なお、[コマンド]コマンドの別名 eval はエバリュエーション(Evaluation)でしょうね。
     eval をイーバルと読む技術者も多いようですね。

引用返信 [メール受信/OFF] 削除キー/
■14279 / inTopicNo.14)  Re[6]: 加工開始日を求めたい
□投稿者/ うにん -(2024/04/10(Wed) 21:09:31)
    > 桐では日本語の変数名でも何の問題はありませんが、これは桐が最初から日本語対応だったからですよ。
    >
    > Windows が発売されたころのオフィスでも日本語の変数名は忌避されていたと思います。
    >
    > もちろん、今ではOKでしょうけれど・・・※怖さを知っている人はやはり避けますけどね。アハハha

    WindowsXPだったかなあ、ユーザ名を日本語にすると、何かとトラブルのもとになってました。(インストール時にIMEが使えるので日本語で入れてしまう人が多数いた)

    最近でも、FileMakerというデータベースソフトで、ファイル名を日本語にするとサーバからダウンロードできなくなるトラブルとかありました。
引用返信 [メール受信/OFF] 削除キー/
■14280 / inTopicNo.15)  Re[7]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/10(Wed) 21:56:11)
    > WindowsXPだったかなあ、ユーザ名を日本語にすると、何かとトラブルのもとになってました。(インストール時にIMEが使えるので日本語で入れてしまう人が多数いた)
    > 最近でも、FileMakerというデータベースソフトで、ファイル名を日本語にするとサーバからダウンロードできなくなるトラブルとかありました。

    桐のユーザは恐怖体験が無いんですよね。アハハha

    普通のソフトならデータベースのフィールド名だって漢字を使いませんよね。オッカナクッテね(^^ゞ

    ファイル名だって、変数名だって、etc. でもこれは元が舶来品のソフトウェアの場合ですね。

引用返信 [メール受信/OFF] 削除キー/
■14281 / inTopicNo.16)  Re[6]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/11(Thu) 08:59:44)
    ONnojiさん


    > やはり日本語の変数は誤動作の元になることがあるので、日本語は極力使わないようにしていましたよ。
    >
    > 桐では日本語の変数名でも何の問題はありませんが、これは桐が最初から日本語対応だったからですよ。
    >
    > Windows が発売されたころのオフィスでも日本語の変数名は忌避されていたと思います。
    >
    > もちろん、今ではOKでしょうけれど・・・※怖さを知っている人はやはり避けますけどね。アハハha
    >


    なるほど。
    そう言う歴史があるんですね!

    そのような歴史(過去は漢字が使えなかった。そもそも日本語を想定していないので、日本語を使うとトラブルが起こる可能性がある。)があると言う前段をしっていれば、すんなり英語が入ってきます。

    うにんさん と  ONnojiさんのコメントで、よりリアルに知る事が出来ました(^^♪



    >>代入しているんだろうな と想像してプログラムを見るより、代入を省略しているけど代入していると確信してプログラムを見る方が理解度が高くなるからです。
    >>初心者向けのプログラミングの読み物が完成してHPにアップされた暁には、必ず読ませて頂きます(^^ゞ
    >
    > だから、数学の等式と勘違いして頭の中が混乱する人が多いんですよ。アハハha。
    >


    =は等式じゃなく 代入 していると言う事ですもんね。
    知識が無ければ数学に感じてしまいます・・・(私も 明らかに代入に意味だなと読めない物以外は 数式 だと思っていました・・・)


    >
    > #文字列 → #str 意味:string 文字列
    >
    > #部分列 → #sstr 意味:sub string 部分列
    >
    > #条件選択 → #cond 意味:条件
    >
    > #終端行 → #eof 意味:End Of File ファイルの終わり
    >
    > #文字置換 → #s 意味:stuff の s だと思われます 詰め込む ※アルファベット1文字の関数名は一般的ではありません。
    >
    > 他にもあると思いますが・・・この辺で(^^ゞ
    >
    > なお、
    >
    > #連結 → #cat は 語源として catalog だっと思いますが今ではこの関数を使う人はまず居ないと思います。
    >
    > なぜならば #cat( [名前], "様" ) は、関数を使わずに [名前] + "様" という式で書けるからです。
    >
    > 余談ついでに(^^ゞ
    >
    >  #計算 の別名は #PROGN。
    >  この別名って、プログラミング言語 Common Lisp の progn関数からきているようですね。
    >  prog1 prog2 というのもあるから、 n は n番め=最後という意味なのでしょうかね。
    >  そういえば、K3殿は Lisp の開発もしてましたっけ。
    >  ちなみに、#SETQ も Lisp 由来かもしれない。
    >
    >  #TRIM や #STR など、桐の関数の別名はプログラミング言語でお馴染みのものから来ていますね。
    >  私は dBASE言語を使っていたので、桐のコマンド・関数の別名の大部分の見当がすぐに付きました。
    >  なお、[コマンド]コマンドの別名 eval はエバリュエーション(Evaluation)でしょうね。
    >  eval をイーバルと読む技術者も多いようですね。


    この解説はかなり助かますm(__)m
    財産にさせて頂きます!

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

    ここで一つ疑問があります。
    今回作成して頂いたプログラムの変数名の中に


    変数宣言 自動,日時 { &加工日1, &加工日2 }


    があります。
    コメントを頂いた流れで言えば

     &加工日1 → &dom1 (date of manufacture)
     &加工日2 → &dom2

    と言う変数名になった方が自然な印象です。

    表に定義のある項目名を変数名にする時は、表の言葉に合わせると言う事なのでしょうか??


    う〜ん。
    プログラムは奥が深いですね(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■14282 / inTopicNo.17)  Re[7]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/11(Thu) 09:46:45)
    2024/04/11(Thu) 11:07:21 編集(投稿者)

    > =は等式じゃなく 代入 していると言う事ですもんね。
    > 知識が無ければ数学に感じてしまいます・・・(私も 明らかに代入に意味だなと読めない物以外は 数式 だと思っていました・・・)

    初級者の最初の挫折がこの部分である人って案外と多いと思いますね。

    > ここで一つ疑問があります。
    > 今回作成して頂いたプログラムの変数名の中に
    > 変数宣言 自動,日時 { &加工日1, &加工日2 }
    > があります。
    > コメントを頂いた流れで言えば
    >  &加工日1 → &dom1 (date of manufacture)
    >  &加工日2 → &dom2
    > と言う変数名になった方が自然な印象です。
    > 表に定義のある項目名を変数名にする時は、表の言葉に合わせると言う事なのでしょうか??

    流れとしては次のようになりますね。

     手続き定義開始 cmdテストClick( )
      変数宣言 自動,文字列{ &title = "cmdテストClick( )", &msg }
      変数宣言 自動,日時 { &加工日1, &加工日2 }
       :
       :
      行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
       :
       :
     手続き定義終了

    ということで、項目[加工日1]に対応する変数が &加工日1 で、項目[加工日2]に対応する変数が &加工日2 という事です。

    これを

      行訂正 [加工日1] = &dom1, [加工日2] = &dom2

    と書いてしまうと、もちろん動きますが・・・(^^ゞ

    一番の問題は、後で読み返す際に直感的に分かりにくいんですね。
           ・・・・・・・・・・・・・・・・・・

      行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2

    としていれば、一目瞭然です。※最小限の思考で済みますから・・・(^^ゞ

    それに項目名と変数名が同じならば、イベント処理を検索する時に都合がいいでしょう。※後々のことを考えましょう。アハハha

    添付のテキストには

    > 桐のようなデータベースソフトでは、データベースで指定できる[項目のデータ型]と[変数のデータ型]は1対1で対応するものなのです。
    > なので、任意のレコード(行)の[項目の【値】]を任意の名前の[変数の【値】]として入れることが出来ます。

    という文言があると思います。

    変数の最も大事な目的は、データベースの項目の値の一時的な格納先(バッファ)ということです。

    そして、もう一つの変数の目的は、プログラムの流れを制御することです。

    例えば、変数 &recordNum は、プログラムの流れの選択制御に使われています。

     手続き定義開始 prc加工日探索( 参照 日時 &加工日1, 参照 日時 &加工日2 )
      変数宣言 自動,文字列{ &title = "prc加工日探索( )", &msg }
      変数宣言 自動,長整数{ &recordNum }
       :
       :
      &recordNum = #行番号
      ジャンプ 行番号 = &recordNum
      if ( &recordNum > 5 )
       ジャンプ 行番号 = -5
       &加工日1 = [日付]
      end
       :
       :
     手続き定義終了

    話が戻りますが・・・

    >  &加工日1 → &dom1 (date of manufacture)
    >  &加工日2 → &dom2
    > と言う変数名になった方が自然な印象です。

    &dom1 &dom2 といった短い英語風の変数名は、意味が明瞭ならばOKですが、この場合には好ましくないでしょう。

    &dateOfManufacture1 &dateOfManufacture2 の方が全然素直です。
                           ・・・・

    ネットをご覧になると、変数名がアルファベット3文字というのが多いと気が付くでしょう。

    これも昔のPCのレガシー(遺産)なんですよ。

    昔のPCのメモリーが少なかったので、変数名を長くできなかったんですよ。

    それと、暗号のような変数を使っていても本人が判れば良しだったり、開発チームで暗号を共有していたりしたのです。

    そもそも、ソフトウェアに添付されているマニュアルのプログラミング例が暗号のような変数名だったのですから・・・

    桐のプログラミング例も同じく、妙に変数名を短くしているケースを見ると思いますが、これはDOS桐の文字数制限の影響でしょうね。

    いずれにしても、短い変数名を良しとするのはレガシーです。MS-DOS時代は何かと窮屈だったんですよ。アハハha

    かといって長すぎるのも読み下しが大変ですから、程々にしておくのが肝心だと思いますよ。

    > う〜ん。
    > プログラムは奥が深いですね(^^ゞ

    問題意識を持っていれば大丈夫です。

    後は経験を積んで慣れるしかありません。ガーン (*^^)ok

    p.s.

    私( ONnoji )の場合には、項目名が基本的に漢字なので、対応する変数名も漢字になります。

    そして、それ以外の変数名は基本的に英語または英語風です。
                 ・・・・

    なお、アルファベットは小文字を基本とします。

    ソフトウェアによっては大文字を基本とするものもあります。

    例えば、VB/VBAは大文字が基本だったと思います。※歴史的な経緯がありますけれど・・・

    しかし、それ以外のソフトウェアでは小文字を基本とするものが多いです。

    ちなみに、私( ONnoji )の場合には、キャメルケースを常用しています。

    こちら
     ↓
     キャメルケース フリー百科事典『ウィキペディア(Wikipedia)』
     https://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9

     名称                       表記例     備考
     ローワーキャメルケース、または単にキャメルケース getInputReader 複合語の先頭を、小文字で書き始める。

引用返信 [メール受信/OFF] 削除キー/
■14283 / inTopicNo.18)  Re[8]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/11(Thu) 14:15:11)
    ONnojiさん


    > ということで、項目[加工日1]に対応する変数が &加工日1 で、項目[加工日2]に対応する変数が &加工日2 という事です。
    >
    > これを
    >
    >   行訂正 [加工日1] = &dom1, [加工日2] = &dom2
    >
    > と書いてしまうと、もちろん動きますが・・・(^^ゞ
    >
    > 一番の問題は、後で読み返す際に直感的に分かりにくいんですね。
    >        ・・・・・・・・・・・・・・・・・・
    >
    >   行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
    >
    > としていれば、一目瞭然です。※最小限の思考で済みますから・・・(^^ゞ
    >
    > それに項目名と変数名が同じならば、イベント処理を検索する時に都合がいいでしょう。※後々のことを考えましょう。アハハha


    解説有難うございますm(__)m
    疑問が解決しました!!
    分かりやすさは重要ですよね(^^♪


    > &dom1 &dom2 といった短い英語風の変数名は、意味が明瞭ならばOKですが、この場合には好ましくないでしょう。
    >
    > &dateOfManufacture1 &dateOfManufacture2 の方が全然素直です。
    >                        ・・・・
    >
    > ネットをご覧になると、変数名がアルファベット3文字というのが多いと気が付くでしょう。
    >
    > これも昔のPCのレガシー(遺産)なんですよ。
    >
    > 昔のPCのメモリーが少なかったので、変数名を長くできなかったんですよ。
    >
    > それと、暗号のような変数を使っていても本人が判れば良しだったり、開発チームで暗号を共有していたりしたのです。
    >
    > そもそも、ソフトウェアに添付されているマニュアルのプログラミング例が暗号のような変数名だったのですから・・・
    >
    > 桐のプログラミング例も同じく、妙に変数名を短くしているケースを見ると思いますが、これはDOS桐の文字数制限の影響でしょうね。
    >
    > いずれにしても、短い変数名を良しとするのはレガシーです。MS-DOS時代は何かと窮屈だったんですよ。アハハha
    >
    > かといって長すぎるのも読み下しが大変ですから、程々にしておくのが肝心だと思いますよ。


    こちらもありがとうございます。
    決行 3文字 のアルファベットが出てくる印象なので、そう言うものなのかなと思ってしまいました。
    やっぱり、経緯を知る事は勉強する上で理解度に差が出ると思うので教えて頂いて良かったです!


引用返信 [メール受信/OFF] 削除キー/
■14284 / inTopicNo.19)  Re[9]: 加工開始日を求めたい
□投稿者/ ONnoji -(2024/04/11(Thu) 17:06:10)
    2024/04/11(Thu) 17:50:49 編集(投稿者)

    蛇足を少々・・・

    > いずれにしても、短い変数名を良しとするのはレガシーです。MS-DOS時代は何かと窮屈だったんですよ。アハハha
    > かといって長すぎるのも読み下しが大変ですから、程々にしておくのが肝心だと思いますよ。

    いくつかの例外がありますの・・・

    それは「遠い昔、遥か彼方の銀河系でコンピュータ言語が発明された時以来」の習慣です。

    次の1文字の変数名は普通に使いますよ。

    それは、アイ、ジェー、ケー つまり i j k です。

    桐の場合には、変数を直接(リテラル)記述する場合には、接頭辞のアンパサンド記号(&)を付けますので

    つまり、&i &j &k ですが、これはプログラミングに慣れている人には違和感がありません。

    これらの変数は整数のカウンタとして使うんですよ。

    すなわち、&i が 1、&i が 2、&i が 3、… &i が n のように値が増加していくケースです。

    これは「ヒツジが一匹、ヒツジが二匹・・・」というやつです。(^^ゞ

    例えば、

     &step = 1
     &loop = 10
     繰り返し &i = 1, &loop, &step

      ** &i の値が、1から10になるまで1(&step)増分して繰り返す

     繰り返しい終了

    ちなみに、&j &k は、さらに繰り返しが入れ子になる場合に使いますね。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・

    1文字の変数名ではありませんが、私( ONoji )はカウンタとして &cnt をよく使います。

    本当は &count でも良いのですが、やはり3文字のレガシーで &cnt です。アハハha (^^ゞ

    例えば、

     &cnt = 0
     繰り返し ( &cnt <= 10 )

      ** &i の値が、1から10になるまで1増分して繰り返す

      &cnt = &cnt + 1
     繰り返し終了

    とかですね。

    ところで、&cnt = &cnt + 1 もヘンテコに見えるでしょう。

    でもこれは、&cntに1加算した結果を &cnt 自身に代入するという意味です。

    つまり、加算(インクリメント)のコマンドになるわけです。

    ちなみに、桐以外のコンピュータ言語でも基本的に同じですが、

     i = i + 1 と書かずに i++ と書く言語が多いですよ。

    もしも、i++ なんて見るとますます頭の中が混乱しますよね。

    でもね、プログラマーは i++ を i = i + 1 とは絶対に書かないんですよ。アハハha

    p.s.

    [繰り返し ... 繰り返し終了]という繰り返しコマンドはワカリニクイでしょう。

    初級者が最も苦手とするのが、この繰り返し処理なんですよ。

    そうそう、サンプルにも繰り返し処理がありましたね。

      :
      :
     ジャンプ 行番号 = 先頭
     繰り返し ( .not #eof )

       :
      分かり易さのために途中のコマンドを省略しています
       :

      ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */
     繰り返し終了
      :
      :


     Did you understand? (^^)ok

引用返信 [メール受信/OFF] 削除キー/
■14285 / inTopicNo.20)  Re[10]: 加工開始日を求めたい
□投稿者/ ジェダイの桐 -(2024/04/12(Fri) 09:31:19)
    ONnojiさん


    > 次の1文字の変数名は普通に使いますよ。
    >
    > それは、アイ、ジェー、ケー つまり i j k です。
    >
    > 桐の場合には、変数を直接(リテラル)記述する場合には、接頭辞のアンパサンド記号(&)を付けますので
    >
    > つまり、&i &j &k ですが、これはプログラミングに慣れている人には違和感がありません。


    これば疑問に思っていました。
    ネットでプログラムの事を見ている時に i って頻繁に目にしました。

    これも過去からの流れなんですね!

    但し、 j と k は初めて知りました。



    > 本当は &count でも良いのですが、やはり3文字のレガシーで &cnt です。アハハha (^^ゞ


    初級者目線(私だけかもしませんが・・・)で言えば、正にこういう事がしりたかったのです。

    &count でも良い けど 3文字のレガシーで &cnt

    なんでもない事かもしれないですが、変数名は自由にしていいのに
    何故英語? 何故3文字? (?_?)

    過去からの流れで 英語 を使用した方がトラブル回避になる、項目に代入する時は 見た目に分かりやすい方が良い。(結果 漢字を使用する or 一般的に理解出来れば 3文字英語 そうでなければ 素直に英単語 にした方が分かりりやすい)

    この知識が前段で無いと、プログラミングの門が狭く感じてしまうのです・・・(^^;


    > ところで、&cnt = &cnt + 1 もヘンテコに見えるでしょう。


    確かに見えましたが、
    ↓の開設のおかげで

    >
    > でもこれは、&cntに1加算した結果を &cnt 自身に代入するという意味です。
    >
    > つまり、加算(インクリメント)のコマンドになるわけです。

    &msg =      "Start"
     &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
     &msg = &msg + "\n\n不要になったらコメントアウトしてください"
     メッセージボックス  &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

    &msg = &msg + "\n\n文字列"
    の意味が非常に良く分かりましたm(__)m

    > p.s.
    >
    > [繰り返し ... 繰り返し終了]という繰り返しコマンドはワカリニクイでしょう。
    >
    > 初級者が最も苦手とするのが、この繰り返し処理なんですよ。
    >
    > そうそう、サンプルにも繰り返し処理がありましたね。
    >
    >   :
    >   :
    >  ジャンプ 行番号 = 先頭
    >  繰り返し ( .not #eof )
    >
    >    :
    >   分かり易さのために途中のコマンドを省略しています
    >    :
    >
    >   ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */
    >  繰り返し終了
    >   :
    >   :


    自分で完璧に作れるかは怪しいですが、
    私の理解が正しければ・・・

    ジャンプ 行番号 = 先頭 ←最初は先頭行にジャンプする
     繰り返し ( .not #eof ) ←このプログラム以下から 最終行 になるまで繰り返す


    やりたい事の命令


    ジャンプ 行番号 = 次行 ←これは ジャンプ 行番号 = 先頭 に対して 次行なので 2行目 最終行になるまで加算させる。

    だから注釈の様に ジャンプ 行番号 = 次行 を忘れると 永遠に 先頭行 を繰り返す事になる

    という事だと認識していますm(__)m


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

    昨日プログラムを見ていて気付いた事があります。


    多重化
     &multiTblNum = #is表  /* 多重化した表の表番号を取得 */



    行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2



    終了 表 &multiTblNum  /* 多重化した表を閉じる */
     編集表 &hwindow


    これを見ると、 多重化 した表に 求めたいデータを最終行まで代入していると理解しています。

    最終行までいって繰り返しが終了しらたら 多重化 した表を閉じて、編集対象表に戻る。

    これ自体は理解の通りであれば、納得出来るのですが
    代入している表が 多重化 した表です。

    それが何故編集対象表に求めた結果があるのか??

    これは、 多重化した表 と 編集対象表は リンクしていると言う事なのでしょうか??

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


    このツリーは本当に私の財産です。
    初級者に対しての講義と言っても過言じゃないと思っています。

    本当に助かっています!

    ありがとうございますm(__)m


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

次の20件>

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

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

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

- Child Tree -
- Antispam Version -