Chapter 6:ティータイム、郵便番号簿を更新しましょう。


フォーム "郵便番号簿.WFX" を定義画面で開いてください。


右クリックメニューイベント定義
右クリックメニューから "イベント定義" をクリックしてください。

*イベントファイルがない場合、ファイル名入力画面が表示されるのでここでは "郵便番号簿" と入力します(保存場所は表とフォームと同じフォルダを指定してください)。

 

 名札 メイン の部分に次のように入力してください。

オブジェクト操作 @フォーム.編集対象表 = #一括パス名 + "郵便番号簿.tbx"

変数宣言 局所,文字列 { &m読み込みファイル名 }

 

 

名札メイン 

フッタ部分を表示して必要なオブジェクトを設定します。

フッタ



 

 メニュー → 表示 → フッタ にチェックをいれます。




 


 

フッタ部分にテキストボックスを配置します(ラベル部分は不要なので削除してください)。
またオブジェクトの属性は図のように設定します(ツールヒントは設定しなくても構いません)。
*なお図のテキストボックスは罫線を立体線に設定しています ( ^)o(^ )

 

また "入力時の操作"(上図のマウスポインタ)で入力支援ボタンにチェックを入れて、入力支援ボタンの属性を次のように設定します。
リストの種別は "ファイル名選択" 、また "自動終了" にチェックを入れてください。

 

設定が完了したら、"郵便番号簿.WFX" の定義画面を保存終了して、編集画面から入力支援ボタンが動作するか確かめてみましょう。

入力支援ボタン KEN_ALL 選択 

選択済みの状態


それでは郵便番号簿を更新するためのプログラムを作成していきましょう。

定義画面で開いて、次のようにコマンドボタンを設定します。

郵便番号簿更新ボタン属性

ここでは履歴を参考にしてソースコードを書いてみましょう。

まず履歴を取りながら郵便番号簿を更新する操作をしてみましょう ( "郵便番号簿" フォームは一旦閉じてください)。

表:郵便番号簿.tbx を編集画面で開いて → 履歴登録開始 → 全行削除 → ファイル → 読み込み → CSV
→ 読み込みCSV:ファイルを指定(KEN_ALL.CSV) → 読み込み項目は 全てでOK です。
→ 履歴登録終了  といったところでしょうか。

つぎのように出来上がりました。

郵便番号簿更新履歴登録

"郵便番号簿.WFX"のイベントファイルも開いて、履歴の必要な部分を利用して(リファレンスをよく見ましょう) 手続きを完成させます。

手続き 郵便番号簿更新

完成したら フォーム"郵便番号簿.WFX" を編集画面で開いて、
郵便番号のファイルを選択して、"郵便番号簿更新ボタン" をクリックしてみてください。いかがでしょうか。
*図のコマンドボタンは背景を Windowsの立体色 にしています。

郵便番号簿更新完了

 

最後に実行時のメッセージも詳しく表示させましょう。

 


参考)

1  名札    メイン
2  
3   オブジェクト操作 @フォーム.編集対象表 = #一括パス名 + "郵便番号簿.tbx"    /* 編集対象表は、メイン処理でのみ変更できます */
4  
5   変数宣言 局所,文字列 { &m読み込みファイル名 }
6  *
7  
8  手続き定義開始 cmd郵便番号簿更新Click( )
9   変数宣言 自動, 文字列 { &title, &msg }
10   変数宣言 自動, 数値 { &ans }
11   &title = "cmd郵便番号簿更新Click()"
12   &msg = &msg +   " << 郵便番号簿を更新します >>"
13   &msg = &msg + "\n"
14   &msg = &msg + "\n郵便番号ファイルから"
15   &msg = &msg + "\n郵便番号簿を更新します。"
16   &msg = &msg + "\n"
17   &msg = &msg + "\n郵便番号ファイルは"
18   &msg = &msg + "\n事前に郵便局のサイトからダウンロードして"
19   &msg = &msg + "\n解凍しておいてください。"
20   &msg = &msg + "\n"
21   &msg = &msg + "\n必ず所定のファイルを指定してから実行してください。"
22   メッセージボックス &title, &msg,ボタン指定 = 2,アイコン = !,制御文字展開 = する,&ans
23    * アイコン = i|?|!|E| 、ボタン指定 = 1:[OK]のみ|2:[OK]と[キャンセル]
24  
25   if ( &ans = 1 )
26    解除 *                    /* データーが絞り込まれていたりを想定して、解除しておきます */
27    行削除 * , 圧縮
28    読み込み CSV,&m読み込みファイル名 , *
29    確認 完了しました。
30   end
31  手続き定義終了