📄 modiinid.pas
字号:
unit ModiInid;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, Mask, DB;
type
TfrmModiInid = class(TForm)
btnOK: TButton;
btnCancel: TButton;
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
edtNewInid: TMaskEdit;
edtNewTimes: TMaskEdit;
lblOldInid: TLabel;
lblOldTimes: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure btnCancelClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmModiInid: TfrmModiInid;
implementation
{$R *.DFM}
uses datamodule;
procedure TfrmModiInid.btnCancelClick(Sender: TObject);
begin
close;
end;
procedure TfrmModiInid.btnOKClick(Sender: TObject);
var OldInid,NewInid : integer;
NewInidExist, OldTimes,NewTimes : smallint;
CurRec : TBookMark;
begin
{
if not (trim(edtNewInid.Text) = '') then begin // if newinid is input
OldInid := DM.PatiDataInid.AsInteger;
OldTimes := DM.PatiDatatimes.AsInteger;
try
NewInid := strtoint(edtNewInid.Text);
except
raise Exception.Create('住院号输入错!');
Abort;
end;
if trim(edtNewTimes.Text) = '' then // if newtimes not input
NewTimes := OldTimes // then set it to oldtimes
else
try
NewTimes := strtoint(edtNewTimes.Text); // or transfer from input
except
raise Exception.Create('次数输入错!');
Abort;
end;
with DM do begin
PatientData.Open;
if not PatientData.Locate('Inid',NewInid,[]) then begin
NewInidExist := 0; // New Inid is not exist
try
if dm.ProjHisadt.InTransaction then
dm.ProjHisadt.Commit;
dm.ProjHisadt.StartTransaction;
prcModiInid.Params[0].AsSmallInt := NewInidExist;
prcModiInid.Params[1].AsInteger := OldInid;
prcModiInid.Params[2].AsSmallInt := OldTimes;
prcModiInid.Params[3].AsInteger := NewInid;
prcModiInid.Params[4].AsSmallInt := NewTimes;
// prcModiInid.Prepare;
prcModiInid.ExecProc;
dm.ProjHisadt.Commit;
except
dm.ProjHisadt.Rollback;
end;
CurRec := PatiData.GetBookMark;
PatiData.Close;
PatiData.Open; //Pruduce Current Used Beds
PatiData.GotoBookmark(CurRec);
PatiData.FreeBookmark(CurRec);
end
else // new init is already exist
if Application.MessageBox('此号已存在。继续修改吗?',
'警告',MB_ICONWARNING+MB_OKCANCEL) = IDOK then begin // sure to modify
NewInidExist := 1; // New Inid is exist and modify continue
NewTimes := PatientData.FieldByName('times').AsInteger; //modify newtimes
try
if dm.ProjHisadt.InTransaction then
dm.ProjHisadt.Commit;
dm.ProjHisadt.StartTransaction;
prcModiInid.Params[0].AsSmallInt := NewInidExist;
prcModiInid.Params[1].AsInteger := OldInid;
prcModiInid.Params[2].AsSmallInt := OldTimes;
prcModiInid.Params[3].AsInteger := NewInid;
prcModiInid.Params[4].AsSmallInt := NewTimes;
// prcModiInid.Prepare;
prcModiInid.ExecProc;
dm.ProjHisadt.Commit;
except
dm.ProjHisadt.Rollback;
end;
CurRec := PatiData.GetBookMark;
PatiData.Close;
PatiData.Open; //Pruduce Current Used Beds
PatiData.GotoBookmark(CurRec);
PatiData.FreeBookmark(CurRec);
end;
end;
end;
close;
}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -