| 2019/07/01(Mon) 23:35:16 編集(投稿者) 2019/07/01(Mon) 21:57:13 編集(投稿者) 変数宣言 固有,Str {&開始日,&終了日,&項目名="入力年月日",&type} 変数宣言 固有,整数{&終了[2],&tbl,&y,&m,&d,&ok} &tbl = #IS表,&type = #項目属性(#項目番号(&項目名),2) if (&tbl > 0) キー入力 (12,21)-(20,1),プロンプト="開始日付を入力してくだい。"\ ,モ=確定,初期値="2019/01/01",上書き=する,終了状態=&終了[1],&開始日 手続き実行 日付確認(&開始日,&ok) if ((&終了[1]=1)*(&ok<>1)) キー入力 (12,21)-(20,1),プロンプト="終了日付を入力してください。"\ ,モ=確定,初期値="2019/03/31",上書き=する,終了状態=&終了[2],&終了日 手続き実行 日付確認(&終了日,&ok) if ((&終了[2]=1)*(&ok<>1)) cond (&type = "日時") 絞り込み &項目名{[]>=#日時値(&開始日),[]=<#日時値(&終了日)},文字比較方法=自動,部分一致検索=しない cond (&type = "文字列") 絞り込み &項目名{#日時値([])>=#日時値(&開始日),#日時値([])=<#日時値(&終了日)},文字比較方法=自動,部分一致検索=しない end end else 確認 "表が開かれていません" end 手続き定義開始 日付確認(Str &日付,参照 整数 &確認) &確認 = 0 if (#num(#対応文字列(#S(&日付 ,"/",","),1))-#年(#日時値(&日付))<>0) 確認 "年が異なっています" &確認 = 1 end if (#num(#対応文字列(#S(&日付 ,"/",","),2))-#月(#日時値(&日付))<>0) 確認 "月が異なっています" &確認 = 1 end if (#num(#対応文字列(#S(&日付 ,"/",","),3))-#日(#日時値(&日付))<>0) 確認 "日が異なっています" &確認 = 1 end 手続き定義終了
手続き開始→↑迄は名札と同様に扱うので続けて書くとエラーになります。 分かり易く日本語表記に変えました。 まず名札なのか手続き定義開始なのか不明なので良く書けません。 普通は一括処理から入って表を開けるのか 表を開けてから一括処理を実行するのかが不明なのでこちらではうまく 書けません。
蛇足ですが日付入力はキー入力よりカレンダーを用意した方が簡単かもしれません。 カレンダーなら2月30日や6月31日等のご入力はあり得ません。
|