アドレス帳③ 『HSP3』


前回は簡単な「トップメニュー」を作成しました。今回から新規登録画面を作成していきます。都道府県をプルダウンで選択させる予定ですので、まず「都道府県プルダウン」を作成したいと思います。また、「都道府県プルダウン」は汎用性が高そうなのでモジュール化しました。

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.
41.
42.
43.
44.
//**************************************************************
// 都道府県IDを渡すと都道府県名を返す
//
// 引数 :(1)kne_name 結果を格納する変数
//         (2)ken_id 都道府県ID
// 戻り値:都道府県名
//**************************************************************

#module
#defcfunc fun_GetKenName int ken_id
    sdim kens;
    kens(0) = "北海道","青森県","岩手県","宮城県","秋田県"
    kens(5) = "山形県","福島県","茨城県","栃木県","群馬県"
    kens(10) = "埼玉県","千葉県","東京都","神奈川県","新潟県"
    kens(15) = "富山県","石川県","福井県","山梨県","長野県"
    kens(20) = "岐阜県","静岡県","愛知県","三重県","滋賀県"
    kens(25) = "京都府","大阪府","兵庫県","奈良県","和歌山県"
    kens(30) = "鳥取県","島根県","岡山県","広島県","山口県"
    kens(35) = "徳島県","香川県","愛媛県","高知県","福岡県"
    kens(40) = "佐賀県","長崎県","熊本県","大分県","宮崎県"
    kens(45) = "鹿児島県","沖縄県"
   ken_name = kens(ken_id)
return ken_name
#global
//**************************************************************
// 各都道府県を「\n」で区切った文字列を取得
//
// 引数 :
// 戻り値:都道府県名を「\n」で区切った文字列
//**************************************************************

#module
#defcfunc fun_KenString
    kens = ""
    ken_name = ""
    repeat 47
        ken_name = fun_GetKenName (cnt)
        kens += ken_name + "\n"
    loop
return kens
#global
 
objsize 100,150
kenString = fun_KenString()
pos 150,140  :combox ken_id,100,kenString
stop

2つの関数をつくりました。
 
①fun_GetKenName
都道府県ID(配列インデックス番号)を引数で渡すと県名を返す関数です。ただ、インデックス0(北海道)~インデックス46(沖縄県)までの配列を作成し、指定したインデックスの配列値を求めているだけです。今作成中のアドレス帳では都道府県は全て都道府県IDで管理していきます。CSV登録を予定していますが、登録値もIDで行います。
 
②fun_KenString
HSP3ではプルダウン(コンボボックス)を作成するのに「combox命令」を使います。この命令は、複数の項目を表示する場合は、各項目を「¥n」で区切ります。独自関数「fun_KenString」は0~47まで、独自関数「fun_GetKenName」から都道府県名を取得し「¥n」で結合をしています。都道府県全てを「¥n」で結合した文字列を返しています。

 
42行目で独自関数「fun_KenString」を呼び出し、変数kenStringに都道府県文字列を格納しています。43行目でプルダウンを生成しています。


「アドレス帳③ 『HSP3』」への1件のフィードバック

コメントを残す

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