MkKey

複数のキーフィールドを自動生成する
目的
 写真のネガを管理するのに、ファイルナンバー、フィルムナンバー、枝番の3つのフィールドをキーに使用しています。
 新規データ追加ボタンを押すと、ファイルナンバーはデータベースのファイルナンバーの最大値、フィルムナンバーは最大値+1、枝番は固定値"0"、撮影年は現在のシステムの年を自動的に生成します。
 計算フィールドは、キーフィールドを連結した一連のものとして表示するフィールドです。


新規データ追加ボタン

フォームが編集状態でない場合は編集状態にし、データを挿入する。
データベースのファイルナンバーフィールドの最大値と、FilmNoフィールドの最大値に1を加算したものを変数に保存し、現在のレコード(新規データ)に代入する。
;|BeginMethod|#ページ2.#ボタン16|pushButton|
method pushButton(var eventInfo Event)
    var
    tc  tcursor
      f form
      TY    datetime
   endvar

   f.attach()

   if not f.editing then
      action(DATABEGINEDIT)
      action(DATAINSERTRECORD)
      f.moveto()
   endif

   if tc.open("PHOTO.db") then
      ファイルナンバー=tc.cmax("ファイルナンバー")
      フィルムナンバー=tc.cmax("フィルムナンバー")+1
      枝=0
      TY=today()
      撮影年=TY.year()
      tc.close()
   endif

endMethod

;|EndMethod|#ページ2.#ボタン16|pushButton|

フォーム上の計算フィールド

一連のIDを連結した文字を表示する
;|BeginMethod|#ページ2.コード|calcField|
[MASTER.ファイルナンバー]+"-"+format("w4,ez",[MASTER.フィルムナンバー
])+"-"+[MASTER.枝]
;|EndMethod|#ページ2.コード|calcField|

<<戻る