HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
ファイル一覧
検索
過去ログ
[
最新記事及び返信フォームをトピックトップへ
]
[ トピック内全33記事(21-33 表示) ]
<<
0
|
1
>>
■14286
/ inTopicNo.21)
Re[11]: 加工開始日を求めたい
▼
■
□投稿者/ ONnoji
-(2024/04/12(Fri) 12:40:45)
2024/04/12(Fri) 14:05:39 編集(投稿者)
2024/04/12(Fri) 13:10:32 編集(投稿者)
>>つまり、&i &j &k ですが、これはプログラミングに慣れている人には違和感がありません。
> これば疑問に思っていました。
> ネットでプログラムの事を見ている時に i って頻繁に目にしました。
> これも過去からの流れなんですね!
> 但し、 j と k は初めて知りました。
歴史的にそうなんですよ。アルゴリズムの書籍などを読むと必ず出てきますよ。
> &count でも良い けど 3文字のレガシーで &cnt
> なんでもない事かもしれないですが、変数名は自由にしていいのに
> 何故英語? 何故3文字? (?_?)
> 過去からの流れで 英語 を使用した方がトラブル回避になる、項目に代入する時は 見た目に分かりやすい方が良い。
> (結果 漢字を使用する or 一般的に理解出来れば 3文字英語 そうでなければ 素直に英単語 にした方が分かりりやすい)
&count ⇒ &cnt は、いわゆる母音抜きなんですよ。だいたい通じますね。AKIBA ⇒ AKB とかね (*^^)ok
ところが、既出の &dom1 &dom2 では、「なんじゃコレ〜」になるわけですよ。アハハha
> &msg = "Start"
> &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
> &msg = &msg + "\n\n不要になったらコメントアウトしてください"
> メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
>
> &msg = &msg + "\n\n文字列"
> の意味が非常に良く分かりましたm(__)m
ご明察です。
&msg = "Start\n\nこれはテスト用のメッセージボックスです\n\n不要になったらコメントアウトしてください"
でもいいのですが、実際にメッセージボックスに表示されるイメージで代入しているわけです。
視覚的にも良好だし、書き直す際に便利なんですよ。
> 自分で完璧に作れるかは怪しいですが、
> 私の理解が正しければ・・・
>
> ジャンプ 行番号 = 先頭 ←最初は先頭行にジャンプする
> 繰り返し ( .not #eof ) ←このプログラム以下から 最終行 になるまで繰り返す
> :
> :
> やりたい事の命令
> :
> :
> ジャンプ 行番号 = 次行 ←これは ジャンプ 行番号 = 先頭 に対して 次行なので 2行目 最終行になるまで加算させる。
>
> だから注釈の様に ジャンプ 行番号 = 次行 を忘れると 永遠に 先頭行 を繰り返す事になる
> という事だと認識していますm(__)m
桐では基本が日本語なので[終端行]と呼んでいますが、一般的には eof( end of file )いうものがファイルにはあります。
桐の表(.tbx)の場合には、最終行レコード(行)の次の行です。もしも、レコードがひとつも無ければ、最終行とeof( 終端 )は同じです。
桐では特に明記していないと思いますが、桐のようなデータベースの場合には、レコードポインタというものがあります。
表ウィンドウの行セレクタにある右向き黒▲がレコードポインタです。
[ジャンプ]コマンドは、レコードポインタを移動させるものです。
だから、
ジャンプ 行番号 = 先頭
繰り返し ( .not #eof )
ジャンプ 行番号 = 次行
繰り返し終了
という恰好が頻繁に表れるんですよ。
#終端行が関数の本名ですが、私の場合には(さすがにダサく見えるので)別名の #eof を使用しています。
#eof は0ゼロ(偽)または1イチ(真)のどちらかの値(論理値)を返す関数です。
なので、繰り返し ( .not #eof ) を
繰り返し ( .not #eof = 1 ) や 繰り返し ( #eof <> 1 ) や 繰り返し ( #eof ≠ 1 ) や 繰り返し ( #eof = 0 ) とは書きません。
30.3 条件式の書き方|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section30-3
> 昨日プログラムを見ていて気付いた事があります。
> 多重化
> &multiTblNum = #is表 /* 多重化した表の表番号を取得 */
> :
> :
> 行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
> :
> :
> 終了 表 &multiTblNum /* 多重化した表を閉じる */
> 編集表 &hwindow
>
> これを見ると、 多重化 した表に 求めたいデータを最終行まで代入していると理解しています。
> 最終行までいって繰り返しが終了しらたら 多重化 した表を閉じて、編集対象表に戻る。
> これ自体は理解の通りであれば、納得出来るのですが
> 代入している表が 多重化 した表です。
> それが何故編集対象表に求めた結果があるのか??
> これは、 多重化した表 と 編集対象表は リンクしていると言う事なのでしょうか??
多重化がどんなものか見た事がないのでリンクかな?と思われたのでしょう。
リンクではありません、そのまま多重化です。つまり、多重人格と同じです。(@ @)
具体的には、表ウィンドウで[メニューバー]→[ウィンドウ]→[新しいウィンドウを開く]を実行してみてください。
その後、同じく[メニューバー]→[ウィンドウ]→[重ねて表示]などを実行してみてください。
ほらね。見た通りですから。アハハha。
この時に、[メニューバー]→[表示]→[ファイルパレット]を実行してみてください。
そして、[ファイルパレット]の大きめのアイコンの一番右の[編集表]を実行してください。
すると同じファイル名の表が2つ開いていることが分かるでしょう。
ちなみに、私は普段から[ファイルパレット]は一切使いませんが、多重化の時だけは確認のために使いますよ。
これは手続きで多重化した表を、うっかりで閉じ忘れる事があるからですよ。アハハha
多重化に関してはヘルプも読んでみてください。
> このツリーは本当に私の財産です。
> 初級者に対しての講義と言っても過言じゃないと思っています。
成り行きで公開講義みたいになってしまいましたね。アハハha。
実は、執筆中の「(仮題)目からウロコのデータベース桐プログラミング」のよい取材源にもなっているんですよ。
なので、お気楽にどうぞ。v(^^)v
p.s.
他にも気が付いたことがありますので、当方は追加投稿すると思います。
しばらくはこの掲示板を見に来てください。(@^^)/~~~
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14288
/ inTopicNo.22)
Re[12]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ジェタイの桐
-(2024/04/12(Fri) 19:07:22)
ONnojiさん
> 多重化がどんなものか見た事がないのでリンクかな?と思われたのでしょう。
>
> リンクではありません、そのまま多重化です。つまり、多重人格と同じです。(@ @)
>
> 具体的には、表ウィンドウで[メニューバー]→[ウィンドウ]→[新しいウィンドウを開く]を実行してみてください。
>
> その後、同じく[メニューバー]→[ウィンドウ]→[重ねて表示]などを実行してみてください。
>
> ほらね。見た通りですから。アハハha。
>
> この時に、[メニューバー]→[表示]→[ファイルパレット]を実行してみてください。
>
> そして、[ファイルパレット]の大きめのアイコンの一番右の[編集表]を実行してください。
>
> すると同じファイル名の表が2つ開いていることが分かるでしょう。
びっくり仰天でした(@_@)
解説だけでも、何となくは理解出来たのですが、実際に 新しいウインドウ で開き 重ねて表示 させました。
そして、文字を入力したり消してみたら、どちらの表も同じ結果になっていました。
驚き以外の何ものでもありません…
実際に試す事は重要ですね^_^
> 多重化に関してはヘルプも読んでみてください。
こちらに関してはまだ読めてないので、月曜日に確認します!
> p.s.
>
> 他にも気が付いたことがありますので、当方は追加投稿すると思います。
>
> しばらくはこの掲示板を見に来てください。(@^^)/~~~
はい!
勿論チェックします!
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
昔は要領の関係で、文字数制限があったと言われていました。
プログラムを考える上で縛りがある分良く考えなければいけなかったじゃないでしょうか?
と言う事は、文字数縛りのない現在と違い、発想力が凄く質の高いプログラマーが
生まれやすい環境だったのかな??
キャメルケースも知恵の1つですよね^_^
等と勝手に推測してみましたm(_ _)m
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14293
/ inTopicNo.23)
Re[13]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 16:55:49)
2024/04/15(Mon) 18:46:45 編集(投稿者)
ジェタイの桐さん
自然人間知能の ChatONnoji の生成結果だよ。幻覚(=ハルシネーション)じゃないからご安心ください。(^^ゞ
>>多重化がどんなものか見た事がないのでリンクかな?と思われたのでしょう。
> びっくり仰天でした(@_@)
> 驚き以外の何ものでもありません…
> 実際に試す事は重要ですね^_^
その通りです。頭で考えるのではなく Use the Table. Feel it. です。
時々、何の確認も取らずに仮説を立てて、思い込みだけで、独り相撲を取る人がいますが、それを避けられます。
プログラムの制御構造というのが普通に当たり前に常識としてありますので・・・簡単に。
それは次の3つです。 ※構造化プログラミング フリー百科事典『ウィキペディア(Wikipedia)』より
1.順次(sequence) 部分プログラムを順々に実行する。
2.選択(selection) 条件式が導出した状態に従い、次に実行する部分プログラムを選択して分岐する。
3.反復(repetition) 条件式が導出した特定の状態の間、部分プログラムを繰り返し実行する。
たぶん↑これで意味内容を理解できる初級者はまず居ないですよね。
ということで、意味を噛み砕いて説明しますね。
1.順次(sequence)
順次(sequence)とは、プログラムは先頭の行から順番に実行されるように記述することです。
・・・・・・・・・・・・・・・・・・・
部分プログラムとは桐の場合では、[名札 メイン]・[一般手続き]・[イベントハンドラ]です。
「先頭の行から順番に実行するって当たり前じゃん」と思う人が多いと思いますが、これにも歴史的な経緯があるんですよ。
実は、初期のプログラミング言語では、プログラムの途中から実行したり、上から下へ順番に実行しないで、途中まで行って上に戻ったり、途中を飛ばして下へ進んだり、
ありとあらゆる勝手気まま(恣意的)にプログラムの流れを作っていたんですよ。
これはカオス(混沌)状態と同じで、いわゆるスパゲッティなプログラムなわけです。
だから、「どげんかせんといかん」と考えた人達が現れたんですね。
そうして、「プログラムは上から下へ流れるように書きましょう」という共通認識が培われたというわけです。
2.選択(selection)
選択(selection)とは、ある条件を満たしている時に実行する範囲と、条件を満たしていない時に実行する範囲を分けて作りましょうということです。
これはWin桐ではお馴染みの if ( 条件 ) ... else ... end です。※実はDOS桐には if else end がありませんでした。これホント
似た物としては、ケース開始 ケース( 条件 ) ... ケース その他 ... ケース終了 があります。※これはDOS桐にもありました。
ということで、DOS桐時代の一括処理を見ると、[ケース開始 ... ケース終了]がたくさん書いてありますよ。
ところが、DOS桐には[分岐]と[名札]コマンドがあるので、[ケース開始 ... ケース終了]を使うべきところで、
[条件 分岐]と[名札]コマンドでプログラムの流れを選択していた初級者も居たと思います。
さらに、DOS桐では初級者によって[条件 分岐]と[名札]コマンドを使いスパゲッティなプログラムが大量生産されていたと思います。
DOS桐の時代は、MS-DOSのバッチファイルや、NEC 9801のBASIC言語の全盛期でしたが、
どちらもスパゲティなプログラムが自由自在に作れるので、DOS桐の利用者も全然気にしていなかったと思いますね。
しかし、当時すでにスパゲッティなプログラムが作れない、または原則禁止のプログラミング言語もありまして、※dBASE言語には分岐命令がありません
そういうプログラミング言語を使っている人たちからみると、DOS桐は恐ろしく見えたかもしれませんね。
かくゆう私( ONnoji )が初めて桐ver.2の一括処理を見せてもらった時には、あまりにもスパゲッティなプログラムが多いので腰を抜かしましたよ。
3.反復(repetition)
反復(repetition)は、同じ範囲を繰り返して実行することです。
Win桐では、[繰り返し ... 繰り返し終了]コマンドが相当します。
これは難しくないので、すぐに理解出来るでしょう。
一番のキモは、[繰り返し ( 条件 ) ... 繰り返し終了]の場合には、 if ( 条件 ) ... else ... end の場合と同じように、
( 条件 )に記述する条件式が最終的に論理値を生成している点を理解することです。
つまり、 条件式の結果(これは評価とも)が1イチ(真)か0ゼロ(偽)のどちらかということです。
これさえ理解すればOKです。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
以上がプログラムの制御構造と制御構文ですが、関連することを・・・
to be continued
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14294
/ inTopicNo.24)
Re[14]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 16:56:38)
以上がプログラムの制御構造と制御構文ですが、関連することを・・・
実は、スパゲッティにならなければ何でもよいのか?というわけではないのです。
もう一つ重要なポイントは、ブロック化です。
分かり易く言えば、ブロック玩具のレゴ(LEGO)みたいにプログラムを作るということです。
・・・・・・・・・・・・・・・・・・・・・・・・
以下のイベント処理(.kex)は何度も見ていると思います。
1.[名札 メイン ... *]
2.[手続き定義開始 cmdテストClick( ) ... 手続き定義終了]
3.[手続き定義開始 prc加工日探索( ) ... 手続き定義終了]
↑この3つが機能のブロックですね。
しかし、単に範囲という意味ではなくて[機能]という視点からのブロックです。
・・・・・・・・・・・・・・・・
つまり、このイベント処理(.kex)には、3個の機能(ブロック)があるということです。
そして、機能のブロックを[モジュール]と呼びますよ。
┌名札 メイン
│
│ ** フォームが開かれる時に必ず実行される機能のブロック
│
└*
┌手続き定義開始 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, 制御文字展開 = する
│
│ *手続き定義終了
│
└end
┌手続き定義開始 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
│
└手続き定義終了
もうひとつ大事なことは、3個の機能(ブロック)のうち2つの機能
cmdテストClick ← 上位の機能(モジュール)
│
└ prc加工日探索 ← 下位の機能(モジュール)
は、実行するタイミングで、上位の機能(モジュール)と下位の機能(モジュール)と呼びます。
これは、呼び方が違うだけでメインルーチンとサブルーチンと全く同じものですよ。
上位モジュール:cmdテストClickの機能
・多重化した表の先頭から最後までジャンプすること
下位モジュール:prc加工日探索の機能
・加工日を探索して、変数に格納して、呼び出し元へ値を返すこと。
ということです。
このように、各モジュールで仕事分担をしています。
そして、ひとつのモジュールはひとつの機能を分担しています。
・・・・・・・・・・・・・・・・・・・・・・・・
実は、初級者の場合このような機能の分割・分担の切り分けが上手に出来ません。
だって、慣れていないのですから当たり前です。
繰り返しになりますが、ひとつのモジュールはひとつの機能を分担するという事を常に念頭にしていれば、
上位の機能(モジュール)と下位の機能(モジュール)の関係で手続きが作れるようになりますよ。
そして、機能(モジュール)は一般手続きですから、同じイベント処理の別の機能(一般手続き・イベントハンドラ)からも呼び出せます。
また、一度作った一般手続きは、別のイベント処理でも再利用しやすくなります。
cmdテストClickの機能とprc加工日探索の機能を合体させた、ひとつの一般手続きを例示しようと思っていましたが、説明が長くなったので割愛します。
でも、合体させた場合には、プログラムが複雑にってしまって分かりにくくなるということはイメージできると思います。
<参考>
8.4 一般プロシージャをサブルーチンとして呼び出す|桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section8-4
p.s.
今回話題にした[プログラムの制御構造]や[モジュラー設計]というのは、いわゆる[構造化プログラミング]と呼ばれるものです。
[構造化プログラミング]は、はるか昔から提唱されてきた考え方ですので、現代では特に[構造化プログラミング]が雑誌やネットで騒がれることはありません
また、[構造化プログラミング]とされる範囲は非常に広いので、今さら[構造化プログラミング]をお勉強される必要はないと思います。
非常に文章が長くなって恐縮ですが。アハハha (@^^)/~~~
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14296
/ inTopicNo.25)
Re[15]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ジェダイの桐
-(2024/04/15(Mon) 17:45:27)
ONnojiさん
> もう一つ重要なポイントは、ブロック化です。
> 1.[名札 メイン ... *]
> 2.[手続き定義開始 cmdテストClick( ) ... 手続き定義終了]
> 3.[手続き定義開始 prc加工日探索( ) ... 手続き定義終了]
>
> ↑この3つが機能のブロックですね。
> もうひとつ大事なことは、3個の機能(ブロック)のうち2つの機能
>
> cmdテストClick ← 上位の機能(モジュール)
> │
> └ prc加工日探索 ← 下位の機能(モジュール)
>
> は、実行するタイミングで、上位の機能(モジュール)と下位の機能(モジュール)と呼びます。
ブロック化の考え方、私に合っていると思います。
1つずつ分けて考えた方が分かりやすいからです。
ただ一つ疑問が・・・
今回は cmdテストClick(上位機能) prc加工日探索(下位機能)だけでした。
もし 後から prc加工日探索(下位機能) を使いまわしたくなった場合、
cmdテストClick ← 上位の機能(モジュール)
│
└ prc加工日探索 ← 下位の機能(モジュール)
│
└cmdテスト2Click← 後から追加した上位の機能(モジュール)
上機能 → 下機能 → 上機能 の順番になると思うのです。
であれば、明らかに汎用性の高い 下位機能 と分かっている場合は 別のイベント処理(.kex) を作成して 代入 させた方が 上位下位の整合性が保ち易いのではないかと思ってしまいました。
物凄く見当違いな意見かもしれませんが・・・
詳しい解説有難うございましたm(__)m
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14297
/ inTopicNo.26)
Re[16]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 17:59:24)
2024/04/15(Mon) 18:08:38 編集(投稿者)
> ただ一つ疑問が・・・
>
> 今回は cmdテストClick(上位機能) prc加工日探索(下位機能)だけでした。
> もし 後から prc加工日探索(下位機能) を使いまわしたくなった場合、
>
>
> cmdテストClick ← 上位の機能(モジュール)
> │
> └ prc加工日探索 ← 下位の機能(モジュール)
> │
> └cmdテスト2Click← 後から追加した上位の機能(モジュール)
>
>
> 上機能 → 下機能 → 上機能 の順番になると思うのです。
>
> であれば、明らかに汎用性の高い 下位機能 と分かっている場合は
> 別のイベント処理(.kex) を作成して 代入 させた方が 上位下位の整合性が保ち易いのではないかと思ってしまいました。
上機能 → 下機能 → 上機能 というのは、A機能 → B機能 → A機能 という考えた方が良いと思いますよ。
つまり、上とか下はあまり重要ではありません。
外しているかもしれませんが、いや当たりかなぁ〜???
ひょっとして[再帰呼び出し]のことでしょうかね?????
<参考>
38.2 再帰呼び出し|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section38-2
しかし、当方は部品展開や逆展開で使うと便利かなぁ〜程度の認識ですが、ウルトラ難度の頭の回転技を必要としそうですよ。
時々[再帰呼び出し]が得意な人を見かけますが、当方は詳しくないので聞かないでね。m(__)m
p.s.
最初から汎用性を追求する必要性はありませんよ。
たくさん、手続きを作っていくうちに、汎用性がある機能というのが浮かび上がってくるものなんですよ。
・・・・・・・・・・・・・・・・・・・・・・
そうしたら、汎用性を持たせた内容で、新しく作り直した方が早いですよ。
・・・・・・・・・・・・
ローマは一日してならず。
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14298
/ inTopicNo.27)
Re[15]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 18:09:28)
2024/04/15(Mon) 18:31:45 編集(投稿者)
> cmdテストClickの機能とprc加工日探索の機能を合体させた、ひとつの一般手続きを例示しようと思っていましたが、説明が長くなったので割愛します。
>
> でも、合体させた場合には、プログラムが複雑にってしまって分かりにくくなるということはイメージできると思います。
上位モジュールと下位モジュールを合体させてみました。
複雑さが増して、その結果分かりにくくなっているでしょう??
最初はこれでもいいのですが、だって動くんだモン♪
でもね、モジュール化をしないと、一か月後、数か月後、一年後と時間が経てば経つほど、
記憶もあいまいになって、さらに複雑さも加わり、謎のプログラムに変容していくのです。アハハ。
しかし、モジュール化しておけば、記憶が曖昧になっていても、複雑さが軽減されているで、何とかなるのです。アハハ。
自分で作ったプログラムが解読出来なくて何時間も格闘するするのは無駄でしょう。、
だから、未来への投資だと思って、後々のことを考えて拙速にならないようにくれぐれも気を付けてください。
┌手続き定義開始 cmdテストClick( )
│ 変数宣言 自動,文字列{ &title = "cmdテストClick( )", &msg }
│ 変数宣言 自動,日時 { &加工日1, &加工日2 }
│ 変数宣言 自動,整数 { &multiTblNum }
│ 変数宣言 自動,長整数{ &recordNumMain } /* 変数名が重複するので &recordNum → &recordNumMain に変更 */
│ 変数宣言 自動,長整数{ &recordNum }
│
│
│ &msg = "Start"
│ &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
│ &msg = &msg + "\n\n不要になったらコメントアウトしてください"
│ メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
│
│ 多重化
│ &multiTblNum = #is表 /* 多重化した表の表番号を取得 */
│
│ 解除 *
│ 絞り込み [休日]{ [休日] = #u }
│ ジャンプ 行番号 = 先頭
│┌繰り返し ( .not #eof )
││
││ &recordNumMain = #行番号
││ **手続き実行 prc加工日探索( &加工日1, &加工日2 ) /* 下位モジュールを読み込んだのでコメントアウト */
││
││ &加工日1 = #u /* 参照引数を初期化 */
││ &加工日2 = #u /* 参照引数を初期化 */
││
││ &recordNum = #行番号
││ ジャンプ 行番号 = &recordNum
││┌if ( &recordNum > 5 )
│││ ジャンプ 行番号 = -5
│││ &加工日1 = [日付]
││└end
││
││ ジャンプ 行番号 = &recordNum
││┌if ( &recordNum > 7 )
│││ ジャンプ 行番号 = -7
│││ &加工日2 = [日付]
││└end
││
││ ジャンプ 行番号 = &recordNumMain
││
││ トレース出力 _[日付], " ", _&加工日1, " ", _&加工日2
││ 行訂正 [加工日1] = &加工日1, [加工日2] = &加工日2
││
││ ジャンプ 行番号 = 次行 /* これを忘れると無限ループになります */
│└繰り返し終了
│
│ 終了 表 &multiTblNum /* 多重化した表を閉じる */
│ 編集表 &hwindow
│
│ &msg = "Finish"
│ &msg = &msg + "\n\nこれはテスト用のメッセージボックスです"
│ &msg = &msg + "\n\n不要になったらコメントアウトしてください"
│ メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
│
└手続き定義終了
p.s.
これは、適切に機能を分割していない例です。
既出の prc加工日探索 のように、機能を分割するべきです。
そして、 prc加工日探索 は本来ならば汎用性が求められるものですが、現行のサンプルは見本であって汎用性に欠けていますよ。(^^ゞ
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14299
/ inTopicNo.28)
Re[17]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 18:18:06)
> ただ一つ疑問が・・・
>
> 今回は cmdテストClick(上位機能) prc加工日探索(下位機能)だけでした。
> もし 後から prc加工日探索(下位機能) を使いまわしたくなった場合、
↑これ当方は、実はよく理解できないんです。
もしも、使い回したい機能があれば、それを呼び出す一般手続きまたはイベントハンドラから呼び出せばOKです。
そういう意味なのでそんなに悩ましいとは思えないのですが・・・
ただですね、prc加工日探索(下位機能) は、名前は立派ですが、内容は非常にチープなんですよ。
だって、探索する項目も探索する日数も全部が固定されているでしょう。
なので、まだまだ改良の余地があるでしょう。
でも、最初は急ぐよりも、一歩一歩が大事なんですよ。
急がば回れというでしょう。急いでも何も良い事はありませんよ。
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14300
/ inTopicNo.29)
Re[17]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ジェダイの桐
-(2024/04/15(Mon) 18:19:55)
ONnojiさん
早速の返信ありがとうございますm(_ _)m
ちょっと書き方が分かりにくかったかもしれません。
cmdテストClick ← 上位の機能(モジュール)
│
└ prc加工日探索 ← 下位の機能(モジュール)
│
└cmdテスト2Click← 後から追加した上位の機能(モジュール)
└ prc加工日探索 ← 下位の機能(モジュール)(使い回し。cmdテスト2Clickの中にprc加工日探索を指示しておけば、実際にはcmdテスト2Clickの上にプログラムがあるので、記載しなくて良いと言う認識です。)
だけど、
> 上機能 → 下機能 → 上機能 というのは、A機能 → B機能 → A機能 という考えた方が良いと思いますよ。
と言う考え方なのですね^_^
気を引き締めて、理解していかないとスパゲッティ迷宮に迷い込みそうです(TT)
> ひょっとして[再帰呼び出し]のことでしょうかね?????
私の発想はかなり単純でした。
上位プログラム と 下位プログラムを最初から分けておいた方が管理がしやすいのかな??
と思ってしまったんです…
まさか、こんなにウルトラ難度とも梅雨知らず(TT)
勉強になりました(^^)/
> <参考>
> 38.2 再帰呼び出し|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
>
http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section38-2
>
> しかし、部品展開や逆展開で使うと便利かなぁ〜程度の認識ですが、ウルトラ難度の頭の回転技を必要としそうですよ。
本当に本当に上達して、必要がある時のみ、こう言う事が出来ればなぁ とは思いますが、まずはしっかりと基礎固めします^_^
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14301
/ inTopicNo.30)
Re[18]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 19:02:22)
2024/04/15(Mon) 19:40:29 編集(投稿者)
> ちょっと書き方が分かりにくかったかもしれません。
>
> cmdテストClick ← 上位の機能(モジュール)
> │
> └ prc加工日探索 ← 下位の機能(モジュール)
> │
> └cmdテスト2Click← 後から追加した上位の機能(モジュール)
> └ prc加工日探索 ← 下位の機能(モジュール)(使い回し。cmdテスト2Clickの中にprc加工日探索を指示しておけば、実際にはcmdテスト2Clickの上にプログラムがあるので、記載しなくて良いと言う認識です。)
>
> だけど、
>
>>上機能 → 下機能 → 上機能 というのは、A機能 → B機能 → A機能 という考えた方が良いと思いますよ。
>
> と言う考え方なのですね^_^
> 気を引き締めて、理解していかないとスパゲッティ迷宮に迷い込みそうです(TT)
よ〜く見たら、
cmdテストClick ← 上位の機能(モジュール)
│
└ prc加工日探索 ← 下位の機能(モジュール)
cmdテスト2Click ← 後から追加した上位の機能(モジュール)
│
└ prc加工日探索
↑こういう意味なんでしょうね。
サンプルはあくまでも見本ですので最小で作ってあるんですよ。
この場合には、
cmdテストClick ※メインの機能を 手続き実行 prc多重化して探索( ) に変更
│
└ prc多重化して探索 ※cmdテストClickを prc多重化して探索( ) にリネームしたもの
│
└ prc加工日探索 ※そのまま
cmdテスト2Click ※メインの機能を 手続き実行 prc多重化して探索( ) に変更
│
└ prc多重化して探索 ※cmdテストClickを prc多重化して探索( ) にリネームしたもの
│
└ prc加工日探索 ※そのまま
のように、コマンドボタンから呼び出す一般手続きを2つ作って、
cmdテストClick と cmdテスト2Click ですが、
手続き定義開始 cmdテストClick( )
手続き実行 prc多重化して探索( )
手続き定義終了
手続き定義開始 cmdテスト2Click( )
手続き実行 prc多重化して探索( )
手続き定義終了
こんな感じでOKです。
<参考>
25.3 プロシージャ(手続き)名の付け方|桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
http://silicon7565.html.xdomain.jp/guide/guide_Part2.htm#section25-3
p.s.
最初のサンプルの時に、3階層で作って置けばよかったですかね?
cmdテストClick ※メインの機能を 手続き実行 prc多重化して探索( ) に変更
│
└ prc多重化して探索 ※cmdテストClickを prc多重化して探索( ) にリネームしたもの
│
└ prc加工日探索 ※そのまま
でも、いきなり3階層では、消化不良を起こすかもしれなかったので2階層にしましたよ。(^^ゞ
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14302
/ inTopicNo.31)
Re[19]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/15(Mon) 21:46:17)
2024/04/15(Mon) 22:08:34 編集(投稿者)
こんなやり取りがありましたね。(^^ゞ
> ■Re[9]: 行制約について
>>正に一番やりたかったイメージの物でした!
>>フォーム+イベント処理は敷居が高く感じますが、乗り越えたらやりたいイメージの物が出来上がりますね!
>>ブログ読ませて頂きます!(直ぐに理解出来ないので何回も読もうと思います)
> 当方のwebページの、
> フォームアプリケーション教書 第1部
> フォームアプリケーション教書 第2部
> は、[フォーム+イベント処理]のガイド・事典として執筆したものです。
> 一応、順番にお読みになることをお勧めしますが、必要な所を拾い読みしていただくのでも構いません。
> なお、著者が認める「悪文」ですので、読み難さについてはご勘弁ください。アハハhe(^^ゞ
> 対象範囲が広いので、例えば「変数って何ですか?」のような初級者向けの事柄は割愛しています。
> つまり、変数の知識は有ることが前提になっています。
> そうしないと、膨大な量の解説を書かなければなりませんがら・・・(^^ゞ
予想をはるかに超えて大きなツリーになってしまいました。
貴殿のような初級者の人に、実際に動作するサンプルを見せて、後は自分で頑張ってね〜(^^)v
なんてね、でもそれはちょっと酷だと思ったのです。
実は当方では「(仮題)目からウロコのデータベース桐プログラミング」という小論を書き始めた時期だったのです。
このようにタイミングが重なったためにかなり長大な投稿を繰り返してしまいました。
最後まで読んでいただいて、丁寧なリプライをいただきまして感謝です。
また、ガントチャートに関しての知見をお聞かせいただいて合わせて感謝です。
ということで、いい加減に終わりですが (^^ゞ
最後にひとつ・・・
ジェダイの桐さんのお仕事は製造業のようなので、加工機械は身近なものでしょう。
この機械(マシン)はハードウェアと言うものですね。
一方、桐の[フォーム+イベント処理]はソフトウェアです。
このソフトウェアという言葉を、[柔らかな機械]と考えていただきたいのです。
見えなくて、実際に触ることも出来ないけれど、それは機械と同じなんだとね。
だから、機能だとかモジュラー設計だとか、まるでハードウェアと同じような言葉が飛び出すのです。
ハードウェアのメンテナンスや故障診断と、ソフトウェアのそれはまったく同じではありませんが、
ソフトウェアが[柔らかな機械]だと考えればイメージしやすくなるでしょう。
では最後に、
ジェダイの桐さんへ
フォームを使え。感じるのだ。 Use the Form. Feel it.
フォームと共にあらんことを。 May the Form be with you.
それでは。(@^^)/~~~
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14309
/ inTopicNo.32)
Re[20]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ジェダイの桐
-(2024/04/18(Thu) 09:19:37)
ONnojiさん
このツリーで最後の返信にします。
教えて貰った後日談です。
変数の読み方 ブロック構造の考え方 の知識が入った状態で、
ONnojiさん と あこめさんの、プログラム練習をやっている途中です。
以前やった時は 作業 でやったみただけ状態でした。
しかし、今は若干ではありますがプログラムの意味が分かります。
(代入 が省かれて記入されている事と、ブロック構造の考え方を教えて貰ったのが大きいと思います。)
プログラム練習を全部やって、少しずつ自分の業務に応用出来る様に挑戦していきます。
また、新たな壁にぶつかった時は 掲示板に新たな投稿をします。
フォームを感じ、フォームと共に頑張ります(^^)/
今まで本当にありがとうございましたm(__)m
それでは〜(^^♪
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14310
/ inTopicNo.33)
Re[21]: 加工開始日を求めたい
▲
▼
■
□投稿者/ ONnoji
-(2024/04/19(Fri) 18:41:09)
2024/04/19(Fri) 18:42:39 編集(投稿者)
ジェダイの桐さん
後日談拝を読しました。
さらに参考になるかもしれない?ということで、補習授業みたいな??
この【多遊】さんのHPの、もうひとつ別の掲示板「のほか掲示板」に投稿してテキストを添付しました。
・・・・・・・・・・・・・・・・・・・・・
よろしければ、添付のテキストをお読みになってみてください。
《 桐質問以外の話題は、「のほか掲示板」からどうぞ 》
> ■1442 / 親階層) (仮題)目からウロコの「桐プログラミング」入門
> □投稿者/ ONnoji -(2024/04/19(Fri) 18:33:10)
>
> 現在、(仮題)目からウロコの「桐プログラミング」入門という小論を執筆中です。
>
> これは[フォーム+イベント処理]の初級者向けの内容です。
>
> まだまだ執筆途中ですが、ご高覧いただければ嬉しいです。
>
> ご意見・ご感想などフィードバックいただければ幸いです。
>
> よろしくお願いいたします。m(__)m
引用返信
[メール受信/OFF]
削除キー/
編集
削除
このトピックをツリーで一括表示
<前の20件
トピック内ページ移動 /
<<
0
|
1
>>
このトピックに書きこむ
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
URLは自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例:
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
■お願い−−−−−−−
質問には、できるだけ「OS・桐 Ver」等ご記入願います
将来ここに掲載されました内容を、桐のファイルへ変換予定です。
できましたら、3,500文字以内位での投稿お願い致します
■ご注意(Comment)−−−−−
通常モード・・・通常文章等
図表モード・・・等幅表示(イベントや数字等を記入したとき:
初期設定
)
■
解決しましたら最下段にチェックを入れてください
■
引用文は、最小限に、お願いいたします
Name
/
E-Mail
/
└> 関連するレス記事をメールで受信しますか?
NO
YES
/ アドレス
非公開
公開
Title
/
メッセージ中には下記URLと同じURLを書き込まないで下さい
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
■No14267に返信(ONnojiさんの記事) > 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 > > > >
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.jpeg
/
.png
/.txt/.lzh/.zip/.mid
圧縮ファイル[lzh,zip]は、事前に解凍してご利用下さい。
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
100KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[0/500KB]
残り:[500KB]
パスワード
/
半角小文字で「ケイ・アイ・アール・アイ」を入力
削除キー
/
(半角8文字以内)
解決済み!
BOX/
解決したらチェックしてください!
プレビュー/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
ファイル一覧
検索
過去ログ
-
Child Tree
-
-
Antispam Version
-