3 |
ライブラリ"Template.cmx"に変数書き出しと、読み込みのプロシージャ(手続き)をセットします。 |
3-1 |
"郵便番号簿.kex"のプログラムから、いくつかのプロシージャをライブラリ"Template.cmx"に移動します。 |
3-1-1 |
プロシージャ"変数書出"、"郵便番号簿.kex" 側です(行番号は参考です)。
※削除予定のプロシージャになりますが、一旦「 X 」 を付けておいて最終的に削除しましょう。
|
|
"Template.cmx" へ接頭辞を外して複写しました(ライブラリのプロシージに接頭辞は不要です)。
|
|
|
3-1-2 |
プロシージャ"変数値代入文字列"、"郵便番号簿.kex" 側です(行番号は参考です)。 |
|
※削除予定のプロシージャになりますが、一旦「 X 」 を付けておいて最終的に削除しましょう。 |
|
|
|
"Template.cmx" へ接頭辞を外して複写しました(ライブラリのプロシージに接頭辞は不要です)。
|
|
|
3-1-3 |
プロシージャ"変数値代入数値"、"郵便番号簿.kex" 側です(行番号は参考です)。 |
|
※削除予定のプロシージャになりますが、一旦「 X 」 を付けておいて最終的に削除しましょう。 |
|
|
|
"Template.cmx" へ接頭辞を外して複写しました(ライブラリのプロシージに接頭辞は不要です)。
|
|
|
3-1-4 |
整数用のプロシージは
"Template.cmx" で新規作成しました。
|
|
|
|
【Template.CMX】 (ライブラリ) |
|
*****
バージョンとか日付やタイトル等を付けておくとよいかもしれません ***** |
3 |
手続き定義開始 フッタ部を表示( ) |
4 |
変数宣言 自動,文字列{ §ionName } |
5 |
変数宣言 自動,整数 { &isSection, &visible } |
6 |
|
7 |
§ionName = "フォームフッタ部" |
8 |
メソッド呼び出し @フォーム.オブジェクト検査( §ionName, &isSection ) |
9 |
|
10 |
if ( &isSection ) |
11 |
オブジェクト操作 @フォームフッタ部{ &visible = 画面表示 } |
12 |
&visible = .not &visible |
13 |
オブジェクト操作 @フォームフッタ部{ 画面表示 = &visible } |
14 |
end |
15 |
手続き定義終了 |
16 |
|
17 |
手続き定義開始 変数書出( 文字列 &変数名 , 文字列 &変数値 , 文字列 &変数保存表 ) |
18 |
変数宣言 自動,整数 { &exportTblNum ,
&検索結果 } |
19 |
|
20 |
表 &変数保存表 /* "変数保存表.tbx" を開く */ |
21 |
&exportTblNum = #IS表 |
22 |
検索 [変数名] { &変数名 } , 終了状態 = &検索結果 |
23 |
if ( &検索結果 = 1 ) |
24 |
行訂正 [変数値] = &変数値 |
25 |
else |
26 |
行追加 [変数名] = &変数名 , [変数値] = &変数値 |
27 |
end |
28 |
終了 表 &exportTblNum /* "変数保存表.tbx" を閉じる */ |
29 |
編集表 &hwindow /* 終了 表
とセットで使って 編集対象表を指定 */ |
30 |
手続き定義終了 |
31 |
|
32 |
手続き定義開始 変数値代入文字列( 文字列 &変数名 , 参照 文字列 &変数値 ) |
33 |
変数宣言 自動,文字列{ &WQ = #jis( #hex("22") ) } |
34 |
変数宣言 自動,文字列{ &表現式 } /* &表現式 をつかうことで、&変数名
の値を保持したままにできます */ |
35 |
変数宣言 自動,整数 { &検索結果 } |
36 |
|
37 |
&表現式 = "*" + &WQ + &変数名 + &WQ + "*" /* 準備した
&表現式に 式の値を代入しています */ |
38 |
検索 [変数名] _ &表現式 , 終了状態 = &検索結果 |
39 |
&変数値 = #u |
40 |
if ( &検索結果 = 1 ) |
41 |
&変数値 = [変数値] |
42 |
end |
43 |
手続き定義終了 |
44 |
|
45 |
手続き定義開始 変数値代入数値 ( 文字列 &変数名 , 参照 数値 &変数値 ) /*
整数と数値でもデータ型は異なります */ |
46 |
変数宣言 自動,文字列{ &WQ = #jis( #hex("22") ) } |
47 |
変数宣言 自動,文字列{ &表現式 } /* &表現式 をつかうことで、&変数名
の値を保持したままにできます */ |
48 |
変数宣言 自動,整数 { &検索結果 } |
49 |
|
50 |
&表現式 = "*" + &WQ + &変数名 + &WQ + "*" /* 準備した
&表現式に 式の値を代入しています */ |
51 |
検索 [変数名] _ &表現式 , 終了状態 = &検索結果 |
52 |
&変数値 = #u |
53 |
if ( &検索結果 = 1 ) |
54 |
&変数値 = #数値( [変数値] ) |
55 |
end |
56 |
手続き定義終了 |
57 |
|
58 |
手続き定義開始 変数値代入整数 ( 文字列 &変数名 , 参照 整数 &変数値 ) /*
整数と数値でもデータ型は異なります */ |
59 |
変数宣言 自動,文字列{ &WQ = #jis( #hex("22") ) } |
60 |
変数宣言 自動,文字列{ &表現式 } /* &表現式 をつかうことで、&変数名
の値を保持したままにできます */ |
61 |
変数宣言 自動,整数 { &検索結果 } |
62 |
|
63 |
&表現式 = "*" + &WQ + &変数名 + &WQ + "*" /* 準備した
&表現式に 式の値を代入しています */ |
64 |
検索 [変数名] _ &表現式 , 終了状態 = &検索結果 |
65 |
&変数値 = #u |
66 |
if ( &検索結果 = 1 ) |
67 |
&変数値 = #整数( [変数値] ) |
68 |
end |
69 |
手続き定義終了 |
|
【郵便番号簿.kex】 |
1 |
名札 メイン |
2 |
|
3 |
変数宣言 局所,文字列 { &m編集対象表 = #一括パス名 + "郵便番号簿.tbx" } |
4 |
オブジェクト操作 @フォーム.編集対象表
= &m編集対象表 /* 編集対象表は、メイン処理でのみ変更できます */ |
5 |
|
6 |
変数宣言 局所,文字列 { &m変数保存表 = #一括パス名 + "変数保存表.tbx" } |
7 |
変数宣言 局所,文字列 { &m読み込みファイル名 } |
8 |
|
9 |
ライブラリ #一括パス名 + "Template.cmx" |
10 |
* |
11 |
|
12 |
手続き定義開始 cmdフッタ表示非表示Click() |
13 |
手続き実行 フッタ部を表示() |
14 |
手続き定義終了 |
15 |
|
16 |
手続き定義開始 cmd郵便番号簿更新Click() |
17 |
変数宣言 自動, 文字列 { &title, &msg } |
18 |
変数宣言 自動, 数値 { &ans } |
19 |
&title = "cmd郵便番号簿更新Click()" |
20 |
&msg = &msg + " << 郵便番号簿を更新します >>" |
21 |
&msg = &msg + "\n" |
22 |
&msg = &msg + "\n郵便番号ファイルから" |
23 |
&msg = &msg + "\n郵便番号簿を更新します。" |
24 |
&msg = &msg + "\n" |
25 |
&msg = &msg + "\n郵便番号ファイルは" |
26 |
&msg = &msg + "\n事前に郵便局のサイトからダウンロードして" |
27 |
&msg = &msg + "\n展開しておいてください。" |
28 |
&msg = &msg + "\n" |
29 |
&msg = &msg + "\n必ず所定のファイルを指定してから実行してください。" |
30 |
メッセージボックス &title, &msg,ボタン指定 = 2,アイコン = !,制御文字展開 = する,&ans |
31 |
* アイコン = i|?|!|E| 、ボタン指定 = 1:[OK]のみ|2:[OK]と[キャンセル] |
32 |
|
33 |
if ( &ans = 1 ) |
34 |
解除 * /* データーが絞り込まれていたりを想定して、解除しておきます */ |
35 |
行削除 * , 圧縮 |
36 |
読み込み CSV,&m読み込みファイル名 , * |
37 |
確認 完了しました。 |
38 |
end |
39 |
手続き定義終了 |
40 |
|
41 |
手続き定義開始 txt読み込みファイル名::ソース値更新() |
42 |
変数宣言 自動,文字列 { &ファイル名 = #ファイル名( &m編集対象表 , 2 ) } /* 2:ファイル名
*/ |
43 |
変数宣言 自動,文字列 { &STRbak , &変数値 } |
44 |
&STRbak = &STR /* &STR の値を 自動変数 &STRbak に退避 */ |
45 |
|
46 |
&STR = &ファイル名 + "," + "m読み込みファイル名" /*
保存変数名称:局所変数は使用するフォーム専用なので編集対象表名を付加。*/ |
47 |
* 固有変数の場合、編集対象表名を付加する必要はありません。付加するとトラブルの原因になると思います。 |
48 |
&変数値 = #ファイル名( &m読み込みファイル名 , 1 ) /* 1:パス名とファイル名と拡張子
*/ |
49 |
|
50 |
手続き実行 変数書出( &STR , &変数値 , &m変数保存表 ) /*
変数名称、変数の値、変数を保存する表、の順に並べてみました。*/ |
51 |
* 手続き実行 変数書出( &STR , #文字列( 文字列以外の変数値 ) , &m変数保存表 ) |
52 |
* 変数の値が文字列以外の場合には、#文字列( &文字列以外の変数値 )と文字列に変換して保存します。 \ |
53 |
そして値を変数に代入する際には #数値( &文字列以外の変数値 )といった具合に、本来のデータ型に変換します。 |
54 |
|
55 |
&STR = &STRbak /* &STRbakの値を 組み込み変数 &STR に戻す */ |
56 |
手続き定義終了 |
57 |
|
58 |
手続き定義開始 cmdStartupClick( ) |
59 |
手続き実行 prc変数読込( &m変数保存表 ) |
60 |
手続き定義終了 |
61 |
|
62 |
手続き定義開始 prc変数読込( 文字列 &変数保存表 ) |
63 |
変数宣言 自動,文字列 { &ファイル名 = #ファイル名( &m編集対象表 , 2 ) } /* 2:ファイル名
*/ |
64 |
変数宣言 自動,文字列 { &STRbak , &変数値 } |
65 |
変数宣言 自動,整数 { &importTblNum } |
66 |
&STRbak = &STR /* &STR の値を 自動変数 &STRbak に退避 */ |
67 |
|
68 |
表 &変数保存表 /* 変数保存表.tbx を開く */ |
69 |
&importTblNum = #IS表 |
70 |
|
71 |
&STR = &ファイル名 + "," + "m読み込みファイル名" /*
局所変数は使用するフォーム専用となるので編集対象表名も検索値の一部です。*/ |
72 |
手続き実行 変数値代入文字列( &STR , &m読み込みファイル名 ) /*
引数は 検索する値 , 値を代入する変数名 の順に並べてみました。 */ |
73 |
* 手続き実行 変数値代入数値( "固有変数の場合ファイル名を付加していない" , &g数値型の固有変数名 ) |
74 |
|
75 |
終了 表 &importTblNum /* 変数保存表.tbx を閉じる */ |
76 |
編集表 &hwindow /* 終了 表
とセットで使って 編集対象表を指定 */ |
77 |
&STR = &STRbak /* &STRbakの値を 組み込み変数 &STR に戻す */ |
78 |
メソッド呼び出し @フォーム.変数変更() |
79 |
手続き定義終了 |
|
|
|
【住所録.kex】 (以下のソースコードは、Capter8で修正・追加があった"名札 メイン" と
”手続き定義開始 chkフッタ表示::ソース値更新()” の部分だけです) |
1 |
名札 メイン |
2 |
|
3 |
変数宣言 局所,文字列 { &m編集対象表 = #一括パス名 + "住所録.tbx" } |
4 |
オブジェクト操作 @フォーム.編集対象表
= &m編集対象表 /* 編集対象表は、メイン処理でのみ変更できます */ |
5 |
|
6 |
変数宣言 局所,文字列 { &m変数保存表 = #一括パス名 + "変数保存表.tbx" } |
7 |
|
8 |
変数宣言 局所, 文字列 { &m入力前値 , &m入力後値 } |
9 |
変数宣言 局所, 文字列 { &m郵便番号 } |
10 |
変数宣言 局所, 整数 { &mフッタ表示 = 1 } /* 初期値を設定しています */ |
11 |
|
12 |
ライブラリ #一括パス名 + "Template.cmx" |
13 |
* |
14 |
|
15 |
手続き定義開始 chkフッタ表示::ソース値更新() |
16 |
手続き実行 フッタ部を表示( ) |
17 |
|
18 |
変数宣言 自動,文字列 { &ファイル名 = #ファイル名( &m編集対象表 , 2 ) } /* 2:ファイル名
*/ |
19 |
変数宣言 自動,文字列 { &STRbak , &変数値 } |
20 |
&STRbak = &STR /* &STR の値を 自動変数 &STRbak に退避 */ |
21 |
|
22 |
&STR = &ファイル名 + "," + "mフッタ表示" /*
保存変数名称:局所変数は使用するフォーム専用なので編集対象表名を付加。*/ |
23 |
手続き実行 変数書出( &STR , #文字列 ( &mフッタ表示 ) , &m変数保存表 ) |
24 |
|
25 |
&STR = &STRbak /* &STRbakの値を 組み込み変数 &STR に戻す */ |
26 |
手続き定義終了 |