アドレス帳⑩ 『HSP3』
前回は編集によるバッファの更新処理をみました。今回は一覧から選択されたレコード情報を全部表示する詳細画面をつくってみます。大部分は編集処理と同じで、mes命令で表示するかinputなどのオブジェクトの初期値にするかの違いです。

| 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. |
//********************************************* // バッファからデータ取得(サブルーチン) //********************************************* *getBufData noteget tmpLine,listNo i=0 repeat getstr tmpArray(cnt),tmpLine,i,',' if strsize = 0 : break i = i + strsize loop if length(tmpArray) >=1 : name = fun_loadAmend(tmpArray(0)) if length(tmpArray) >=2 : kana = fun_loadAmend(tmpArray(1)) if length(tmpArray) >=3 : zip = fun_loadAmend(tmpArray(2)) if length(tmpArray) >=4 : ken_id = int(tmpArray(3)) if length(tmpArray) >=5 : address = fun_loadAmend(tmpArray(4)) if length(tmpArray) >=6 : address2 = fun_loadAmend(tmpArray(5)) if length(tmpArray) >=7 : biko = fun_loadAmend(tmpArray(6)) return //********************************************* // 詳細画面 //********************************************* *detail cls : gosub *init //選択データをバッファから取得 gosub *getBufData pos 50,20 :mes "■詳細" pos 50,50 :mes "名前 : " + name pos 50,80 :mes "ふりかな: " + kana pos 50,110 :mes "郵便番号: " + zip pos 50,140 :mes "都道府県: " + fun_GetKenName(ken_id) pos 50,170 :mes "住所 : " + address pos 50,200 :mes "マンション等 : " + address2 pos 50,230 :mes "備考 : " pos 140,230 :mes biko objsize 100,25 pos 50,320 :button "トップへ",*menu pos 200,320 :button "一覧へ",*list stop |
一覧で選択したレコードのデータをバッファから取得し各項目の変数に代入するところまでは「編集」の時と同様です。ラベル「*edit」内で処理していましたが、同じ処理の部分を「getBufData」サブルーチンにしました。一覧から「詳細へ」ボタンが押されるとラベル「*detail]へ飛びます。
26行目:選択されたレコードの情報を「getBufData」サブルーチンで取得しています。戻ってきたら各項目の変数に値が入ってますので27~35行目でmes命令を使って表示しています。
31行目:変数ken_idは都道府県名ではなく都道府県IDが代入されています。独自関数「fun_GetKenName」によりIDから名称に変換しています。
35行目:備考だけ変数の前にpos命令で位置(140,230)を指定してます。これは備考は改行コードを含んで登録できるため、改行さられても縦のスタート位置が揃うようにする為です。pos命令で座標を指定すると、横座標はposで指定した横座標でインデントします。

今回で「アドレス帳」の一連の流れは終わりました。かなり強引に処理した箇所もあると思いますが、オブジェクトの処理とメモリノートパッド命令の良い復習材料になったと思います。一旦アドレス帳の作成は終了しますが、「sendmsg命令」やSQL処理などを勉強して高度な技術を身につけ、また拡張バージョンをブログにしたいと思います。
サンプルファイル(簡易アドレス帳 最終版):
lib_address.hsp
sample.hsp


