| アックンさん横レスすいません。表を新たに作る方法です。 変数宣言 固有,文字列 {&S表名="ikatusyosinsya.tbl",&S項目名="日付"}\ ,固有,長整数{&LFrom,<o,&Lday} 手続き実行 numberset(&LFrom,"年を入力",2006) if (&LFrom) call numberset(<o,"月を入力",1) if (<o) call numberset(&Lday,"日を入力",1) if (&Lday) call 表作成(&S表名,"日時,"+&S項目名) call 表追加(&S表名,&S項目名,&LFrom,<o,&Lday) End End End 表 &S表名 , 終了状態=<o 表形式編集 終了 表 *
Proc numberset(参照 Long &N番号 , 文字列 &Sメッセージ , 長整数 &Lfirst ) *桐8では開始位置↓を指定しないと構文エラーになった。知らなかった キー入力 (10,10),プロンプト = &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終了,Long &L日) var Long {&Lcount},Int{&Iend},date{&D開始} &D開始=#日時値(#Str(&L開始)+"/"+#str(&L終了)+"/"+#STR(&L日)) 繰り返し (&D開始<#日時値) 行追加 終了状態=&Iend, &S項目名 = &D開始 &D開始=#日数加算(&D開始,1) end 終了 表 編集対象表 End
|