目次へ   図書管理  P.14

「貸出日」「返却日」の010707などの入力を可能にする

毎日の作業で「貸出日」と「返却日」の入力は一番頻繁に起こる作業でしょう。
これを簡単にストレスなく入力することはこのシステムの重要なポイントです。
先に述べた01/07/07などの入力を可能にするほか、/などの記号を含めない入力も認めるようにします。

以下のように計算式を追加します。すごく複雑になってきましたが、めげないでください。
赤字でかかれた部分が追加されたところです。
(めんどうでしたら、計算式を丸ごとドラッグ&コピーで貼り付けてください)
(式が折り返しているのは表示するブラウザの関係ですから一行に続けます)
――――――――――――次の行より計算式――――――――――――
表NO=@line(1)
書出ID=@if(貸出日<>"",@add(NO,@add("-",表NO)),"")

/----010707などの入力を認める----
貸出日=@if(@match(貸出日,"/-.")=0,@add("20",@add(@left(貸出日,2),@add("-",@add(@mid(貸出日,3,2),@add("-",@right(貸出日,2)))))),)
返却日=@if(@match(返却日,"/-.")=0,@add("20",@add(@left(返却日,2),@add("-",@add(@mid(返却日,3,2),@add("-",@right(返却日,2)))))),)


/----削除された表組行のデータ処理と日付の書式の統一----
クラス=@if(生徒番号="999","****",)
借りた人=@if(生徒番号="999","****",)
クラス=@if(生徒番号="999","****",)
貸出日=@if(生徒番号="999","****",@if(@and(貸出日<>"",@match(貸出日,"/-.")>0),@replacechar(@day(@todate(@add(@mid("2000",1,(5-@match(貸出日,"/-."))),貸出日)))," ","0"),))
返却日=@if(生徒番号="999","****",@if(@and(返却日<>"",@match(返却日,"/-.")>0),@replacechar(@day(@todate(@add(@mid("2000",1,(5-@match(返却日,"/-."))),返却日)))," ","0"),))

書出日=@replacechar(@day(@todate(@acday()))," ","0")
――――――――――――前の行まで計算式――――――――――――

以下は3行目(赤字)からの説明です。
@=@add("-",@right(貸出日,2))
「貸出日」項目の入力データ(例:010707)の下二桁を切り取り頭に"−"を付けます。
(例:-07)

A=@add(@mid(貸出日,3,2),@)
さらにその前に「貸出日」項目の入力データ(例:010707)の3文字目から2文字分を付けます。
(例:07-07)

B=@add("-",A)
さらにその前に"−"を付けます。
(例:-07-07)

C=@add(@left(貸出日,2),B)
さらにその前に「貸出日」項目の入力データ(例:010707)の最初の2文字をつけます。
(例:01-07-07)

D=@add("20",C)
さらにその前に”20”を付けます。
(例:2001-07-07)

貸出日=@if(@match(貸出日,"/-.")=0,D,)
「貸出日」の入力データに”/−.”などの記号が含まれていない場合に@〜Dを実行します。含まれている場合は無視します。
以下は以前入力された計算式の修正の説明です。
@if(貸出日<>"",@replacechar… ←変更前
@if(@and(貸出日<>"",@match(貸出日,"/-.")>0),@replacechar… ←変更後

ここでは、”/−.”などの文字が含まれていない010707などの入力データを無視するように設定しています。
つまり、「貸出日」が空白(nul)でなくてしかも”/−.”などの記号が含まれている場合は@replacechar以下を実行します…それ以外は無視する、という意味です。