アドレス帳⑩ 『HSP3』


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

address08

【lib_address.hsp】 修正分
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で指定した横座標でインデントします。

address09

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

サンプルファイル(簡易アドレス帳 最終版):
lib_address.hsp
sample.hsp


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です