📄 baseinfo.pas
字号:
else
BackGround:=clWhite;
end;
procedure TfrmBaseinfo.DSbaseinfoStateChange(Sender: TObject);
begin
inherited;
acInsert.Enabled := bCanNew;
accopy.Enabled := bCanNew;
acmodify.Enabled:=bcanModify;
acdelete.Enabled:=bCanDelete;
btnPrint.Enabled:=bCanPrint;
acsearch.Enabled:=bCanBegin;
acrefresh.Enabled:=bCanBegin;
end;
procedure TfrmBaseinfo.DSbaseinfoDataChange(Sender: TObject;
Field: TField);
begin
inherited;
DSbaseinfoStateChange(self);
end;
procedure TfrmBaseinfo.acexitExecute(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmBaseinfo.acinsertExecute(Sender: TObject);
var
ChildF:TForm;
begin
inherited;
CDSBaseinfo.Append;
ChildF:=ModifyForm.Create(Application);
ChildF.ShowModal;
ChildF.Free;
if CDSbaseinfo.ChangeCount > 0 then
begin
if cdsbaseinfo.State in [dsInsert,dsEdit] then
CDSbaseinfo.Post;
if baseformapplyupdata(CDSbaseinfo,Maintable,Keyfield) then
begin
MSNsaveinfo.Title:='信息提示';
MSNsaveinfo.Text:='成功保存当前内容ID='+inttostr(Getmaxid(Maintable,Keyfield));
MSNsaveinfo.ShowPopUp;
end
else
begin
MSNsaveinfo.Title:='信息提示';
MSNsaveinfo.Text:='保存失败';
MSNsaveinfo.ShowPopUp;
end;
CDSbaseinfo.MergeChangeLog;
end;
GetsqlData(CDSbaseinfo,Maintable,Keyfield,KeyField+'>='+vartosql(GetMaxid(Maintable,KeyField)-20));
GetGridTitle(MainTable);
end;
procedure TfrmBaseinfo.accopyExecute(Sender: TObject);
var
i:integer;
s1,s2,cmdStr:string;
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
begin
messagedlg('没有记录,不能进行复制 ! ',mtError,[mbok],0);
Exit;
end;
s1:='';
S2:='';
for i:=2 to CDSbaseinfo.FieldCount do //Because Field Fid Can not insert
begin
if s1='' then
begin
s1:=Trim(Cdsbaseinfo.Fields[i-1].FieldName);
s2:=VartoSql(Cdsbaseinfo.Fields[i-1].Value);
end
else
begin
s1:=s1+','+Trim(cdsbaseinfo.Fields[i-1].FieldName);
s2:=s2+','+VartoSql(cdsbaseinfo.Fields[i-1].Value);
end;
end;
if s1<>'' then
cmdStr:=' Insert into '+Maintable+'('+s1+') Values('+s2+')';
if cexecsql(cmdStr) then
begin
GetsqlData(CDSbaseinfo,Maintable,Keyfield,KeyField+'>='+vartosql(GetMaxid(Maintable,KeyField)-20));
GetGridTitle(MainTable);
MSNsaveinfo.Title:='提示信息';
MSNsaveinfo.Text:='成功复制记录ID='+inttostr(Getmaxid(Maintable,Keyfield));
MSNsaveinfo.ShowPopUp;
end;
end;
procedure TfrmBaseinfo.acmodifyExecute(Sender: TObject);
var
ChildF:TForm;
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
begin
messagedlg('没有记录,不能修改 !',mtError,[mbok],0);
Exit;
end;
CDSbaseinfo.Edit;
ChildF:=ModifyForm.Create(Application);
ChildF.ShowModal;
Childf.Free;
if CDSbaseinfo.ChangeCount > 0 then
begin
if baseformapplyupdata(CDSbaseinfo,Maintable,Keyfield) then
begin
if CDSbaseinfo.State in [dsEdit,dsInsert] then
CDSbaseinfo.Post;
MSNsaveinfo.Title:='提示信息';
MSNsaveinfo.Text:='成功保存id='+inttostr(Getmaxid(Maintable,Keyfield));
MSNsaveinfo.ShowPopUp;
end
else
begin
if CDSbaseinfo.State in [dsInsert,dsEdit] then
CDSbaseinfo.Cancel;
MSNsaveinfo.Title:='提示信息';
MSNsaveinfo.Text:='保存失败';
MSNsaveinfo.ShowPopUp;
end;
CDSbaseinfo.MergeChangeLog;
end;
end;
procedure TfrmBaseinfo.acdeleteExecute(Sender: TObject);
var
Cid:integer;
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
begin
messagedlg('没有记录,不能删除 !',mtError,[mbok],0);
Exit;
end;
if messagedlg('您真的要删除当前记录吗 ? ',mtConfirmation,[mbok,mbcancel],0)=mrok then
begin
Cid:=CDSbaseinfo.Fieldbyname(Keyfield).AsInteger;
CDSbaseinfo.Delete;
if CDSbaseinfo.ChangeCount > 0 then
begin
if baseformapplyupdata(CDSbaseinfo,Maintable,Keyfield) then
begin
MSNsaveinfo.Title:='信息提示';
MSNsaveinfo.Text:='成功删除记录id='+inttostr(Cid);
MSNsaveinfo.ShowPopUp;
end
else
begin
MSNsaveinfo.Title:='信息提示';
MSNsaveinfo.Text:='记录删除失败';
MSNsaveinfo.ShowPopUp;
end;
CDSbaseinfo.MergeChangeLog;
end;
end;
end;
procedure TfrmBaseinfo.acrefreshExecute(Sender: TObject);
begin
inherited;
if CDSbaseinfo.State in [dsInsert,dsEdit] then
begin
messagedlg('当前为编辑状态,不能进行刷新 ! ',mtError,[mbok],0);
Exit;
end;
GetsqlData(CDSbaseinfo,Maintable,Keyfield,KeyField+'>='+vartosql(GetMaxid(Maintable,KeyField)-20));
GetGridTitle(MainTable);
end;
procedure TfrmBaseinfo.acfieldpropertyExecute(Sender: TObject);
begin
inherited;
FromInterface:=MainTable;
if not assigned(frmInterface) then
frmInterface:=Tfrminterface.Create(application);
frminterface.ShowModal;
frminterface.Free;
postmessage(handle,WM_USER_GETDATA,0,0);
application.ProcessMessages;
end;
procedure TfrmBaseinfo.acsearchExecute(Sender: TObject);
begin
inherited;
searchtiao:='';
FromInterface:=Maintable;
if not assigned(frmSearch) then
FrmSearch:=TfrmSearch.Create(Application);
FrmSearch.showModal;
frmSearch.free;
if Searchtiao<>'' then
try
Getsqldata(CDSBaseinfo,Maintable,Keyfield,Searchtiao,20);
GetGridTitle(MainTable);
except
on E:Exception do
begin
messagedlg('条件设置错误 ! '+#10#13+E.Message,mtError,[mbok],0);
postmessage(handle,WM_USER_GETDATA,0,0);
application.ProcessMessages;
Exit;
end;
end;
end;
procedure TfrmBaseinfo.frBaseinfoUserFunction(const Name: String; p1, p2,
p3: Variant; var Val: Variant);
begin
inherited;
if AnsicompareText('SRTIME',name)=0 then
Val:=SRNow();
end;
procedure TfrmBaseinfo.gridTitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
var
sortstring:string;
begin
inherited;
with Column do
begin
if FieldName = '' then
Exit;
case Title.SortMarker of
smNoneEh:
begin
Title.SortMarker := smDownEh;
sortstring := Column.FieldName + ' ASC';
end;
smDownEh: sortstring := Column.FieldName + ' ASC';
smUpEh: sortstring := Column.FieldName + ' DESC';
end;
try
CDSBaseinfo.IndexFieldNames:= sortstring
except
end;
end;
end;
procedure TfrmBaseinfo.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
Grid.SumList.Active:=False;
end;
procedure TfrmBaseinfo.setfooter(var setfooter: Tmessage);
var
i,j:integer;
begin
i:=Grid.Columns.Count;
if i>0 then
begin
for j:=0 to i-1 do
begin
Grid.Columns[j].Footer.ValueType:=fvtStaticText;
Grid.Columns[j].Footer.Value:='合计';
Grid.Columns[j+1].Footer.ValueType:=fvtCount;
break;
end;
end;
application.ProcessMessages;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -