| 変数宣言 固有,文字列 {&S表名="ikatusyosinsya.tbl",&S項目名="番号"},固有,長整数{&LFrom,<o} 手続き実行 numberset(&LFrom,"From",100) if (&LFrom) call numberset(<o,"To",200) if (<o) if (#FSIZE(&S表名)>0) if (&LFrom<<o) call 表追加(&S表名,&S項目名,&LFrom,<o) else call 表追加(&S表名,&S項目名,<o,&LFrom) end else call 表作成(&S表名,"長整数,"+&S項目名) if (&LFrom<<o) call 表追加(&S表名,&S項目名,&LFrom,<o) else call 表追加(&S表名,&S項目名,<o,&LFrom) end End End End 表 &S表名 , 終了状態=<o 表形式編集 終了 表 * 手続き定義開始 numberset(参照 Long &N番号,文字列 &Sメッセージ,長整数 &Lfirst) キー入力 プロンプト=&Sメッセージ, モード=無変換,初期値=&Lfirst, 終了状態=&Lfirst,&N番号 End Proc 表作成(Str &S名前,Str &S項目名データ型並び) 変数宣言 Str{&Stmp作業="Temp.k3"} var 整数{&Iend=#L(&S項目名データ型並び),&Icount=#L(#S(&S項目名データ型並び,",",""))} var Int{&Iデータ要素数=(&Iend-&Icount+1)/2} 印字開始 &Stmp作業, 終了状態=&Iend 印字 "###" 印字 "### WIN桐 00" 印字 "###" For &Icount=1,&Iデータ要素数 印字 """"+#対応文字列(&S項目名データ型並び,&Icount*2)+"""",",",""""+#対応文字列(&S項目名データ型並び,&Icount*2-1)+"""" end 印字終了 改頁=しない 表作成 &S名前,定義ファイル=&Stmp作業,モード=専有,終了状態=&Iend 手続き定義終了 Proc 表追加(Str &S表名,Str &S項目名,Long &L開始,Long &L終了) var Long {&Lcount},Int{&Iend} if (#表オープン状態(&S表名,1)=0) /* 共有モード */ if (#表オープン状態(&S表名,2)=1) /* 更新禁止モード */ 確認 "表は更新禁止です。編集できません。" else 表 &S表名, 終了状態=&Iend for &Lcount=&L開始,&L終了 行追加 終了状態=&Iend, &S項目名 = &Lcount end end else if (#表オープン状態(&S表名,1)=1) /* 専有モード */ 確認 "既に表は開かれています。編集できません。" else /* 開かれていない */ 表 &S表名, 終了状態=&Iend 繰り返し &Lcount=&L開始,&L終了 行追加 終了状態=&Iend, &S項目名 = &Lcount end 終了 表 編集対象表 end End
|