目次へ   図書管理  P.17

「図書貸出」ファイルの「貸出日」「返却日」の入力を自動化する

入力を省略できるところはできるだけ省略することが大切です。また間違いを少なくする対策にもなります。

「図書貸出」ファイルを開きます。
メニュー〈デザイン〉→〈計算式〉で以下(青色部分)を追加します。
/----は注釈行ですから入力しなくても問題ありません。
「生徒番号」が入力されていないときには何も入りませんが、入力されると今日の日付が自動的に入ります。もし、今日の日付にしたくなければ『手動』で直せます。

※今日の日付を入力する関数@xcday()をそのまま使わず@mid(@xcday(),3,)というように3文字以下を切り出しているわけは先にP.14で、010707などの日付入力を2001-07-07に整形する計算式を設定したためです。
@xcday()のままですと、20010707で出力されますから、3文字目から切り出して、010707にしてあげる必要があるのです。計算式が面倒になって申し訳ありません。

/----「貸出日」の初期値に今日の日付を入力----
貸出日=@if(生徒番号<>"",@mid(@xcday(),3,),)


「返却日」については少し面倒になりますが、次のようになります。
同じく「生徒番号」が入力されていないときは何も入りません。
「返却日」に+(半角または全角)が入力されると今日の日付が入ります。
しかし、あとの計算式に影響されないように直しておくことも必要です。

/----「返却日」に+を入れると今日の日付が入る----
返却日=@if(@and(生徒番号<>"",@or(返却日="+",返却日="+")),@replacechar(@acday()," ","0"),)

返却日=@if(@match(返却日,"/-.
++")=0,@add("20",@add(@left(返却日,2),@add("-",@add(@mid(返却日,3,2),@add("-",@right(返却日,2)))))),)



※これができれば、ほとんどこれで間に合ってしまうかも。(@_@)

<補足>
「返却日」の自動入力のキーワードに「+」を使いましたが、もし、ノートパソコンをお使いなら「スペースキー」の方が便利と思い、以下の計算式を付け加えました。


全角スペースでも、半角スペースでも「返却日」の自動入力ができます。
なお、下の計算式内のスペースは「半角スペース+全角スペース」です。

―――――――――以下はドラッグ&コピー用です―――――――――
表NO=@line(1)
書出ID=@if(貸出日<>"",@add(NO,@add("-",表NO)),"")

/----「貸出日」の初期値に今日の日付を入力----
貸出日=@if(生徒番号<>"",@mid(@xcday(),3,),)

/----「返却日」に+を入れると今日の日付が入る----
返却日=@if(@and(生徒番号<>"",@or(返却日="+",返却日="+",返却日=" ",返却日=" ")),@replacechar(@acday()," ","0"),)

/----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")