📄 baseedit.pas
字号:
procedure TfrmBaseEdit.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;
end;
procedure TfrmBaseEdit.FormShow(Sender: TObject);
begin
inherited;
FormTitle.Caption:=Caption;
postmessage(handle,WM_USER_GETDATA,0,0);
SetControlField(MainView);
end;
procedure TfrmBaseEdit.acPrevExecute(Sender: TObject);
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
Exit;
try
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(GetLogDir('Prints')+ReportName);
frbaseinfo.ShowReport;
CDSbaseinfo.EnableControls;
except
on E:Exception do
begin
messagedlg('打印预览出错 ! '+#10#13+E.Message,mtError,[MBOK],0);
Exit;
end;
end;
end;
procedure TfrmBaseEdit.acPrintExecute(Sender: TObject);
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
Exit;
try
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(GetLogDir('Prints')+ReportName);
frbaseinfo.PrepareReport;
frbaseinfo.PrintPreparedReport('',1,True,frAll);
CDSbaseinfo.EnableControls;
except
on E:Exception do
begin
messagedlg('直接打印出错 !'+#10#13+E.Message,mtError,[MBOK],0);
Exit;
end;
end;
end;
procedure TfrmBaseEdit.acPSetExecute(Sender: TObject);
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
Exit;
try
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(GetLogDir('Prints')+ReportName);
frbaseinfo.PrepareReport;
frbaseinfo.PrintPreparedReportDlg;
CDSbaseinfo.EnableControls;
except
on E:Exception do
begin
messagedlg('打印设置出错 ! '+#10#13+E.Message,mtError,[MBOK],0);
Exit;
end;
end;
end;
procedure TfrmBaseEdit.acRSetExecute(Sender: TObject);
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then
Exit;
try
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(GetLogDir('Prints')+ReportName);
frbaseinfo.DesignReport;
CDSbaseinfo.EnableControls;
except
on E:Exception do
begin
messagedlg('报表设计出错 ! '+#10#13+E.Message,mtError,[MBOK],0);
Exit;
end;
end;
end;
procedure TfrmBaseEdit.DSBaseinfoStateChange(Sender: TObject);
begin
inherited;
{设置功能按钮的有效性}
acSave.Enabled := CDSBaseInfo.State in [dsInsert,dsEdit];
acNew.Enabled := bCanNew and Not acSave.Enabled ;
acEdit.Enabled := bCanModify and Not acSave.Enabled;
acCancel.Enabled := acSave.Enabled ;
acDelete.Enabled := bCanDelete;
btnprint.Enabled := bCanPrint;
acRefresh.Enabled := not acSave.Enabled;
acSearch.Enabled := Not acSave.Enabled ;
end;
procedure TfrmBaseEdit.DSBaseinfoDataChange(Sender: TObject;
Field: TField);
begin
inherited;
DSBaseinfoStateChange(self);
end;
procedure TfrmBaseEdit.acNewExecute(Sender: TObject);
begin
inherited;
FormStatus:='Add';
CDSBaseinfo.Append;
end;
procedure TfrmBaseEdit.acEditExecute(Sender: TObject);
begin
inherited;
FormStatus:='Edit';
CDSBaseinfo.Edit;
end;
procedure TfrmBaseEdit.acDeleteExecute(Sender: TObject);
begin
inherited;
if CDSBaseinfo.RecordCount > 0 then
begin
WriteBalance(3,0,CDSBaseinfo.fieldbyname('fno').AsString,'',0,'',0,0,0,0,0,0,0,0,0);
if Messagedlg('您是否要删除当前记录?',mtconfirmation,[mbok,mbcancel],0)=mrok then
begin
CDSBaseinfo.Delete;
baseformapplyupdata(CDSBaseinfo,MainTable,keyField);
end;
end;
end;
procedure TfrmBaseEdit.acSaveExecute(Sender: TObject);
begin
inherited;
if cdsbaseinfo.State in [dsInsert,dsEdit] then
CDSbaseinfo.Post;
FormStatus:='Null';
end;
procedure TfrmBaseEdit.acCancelExecute(Sender: TObject);
begin
inherited;
if CDSBaseinfo.State in [dsEdit,dsInsert] then
begin
CDSBaseinfo.Cancel;
FormStatus:='Null';
end;
end;
procedure TfrmBaseEdit.acRefreshExecute(Sender: TObject);
begin
inherited;
if CDSbaseinfo.State in [dsInsert,dsEdit] then
begin
messagedlg('当前为编辑状态,不能进行刷新 ! ',mtError,[mbok],0);
Exit;
end;
GetsqlData(CDSbaseinfo,MainView,Keyfield,KeyField+'>='+vartosql(GetMaxid(Maintable,KeyField)-20));
GetGridTitle(MainView);
end;
procedure TfrmBaseEdit.acSearchExecute(Sender: TObject);
begin
inherited;
searchtiao:='';
FromInterface:=MainView;
if not assigned(frmSearch) then
FrmSearch:=TfrmSearch.Create(Self);
FrmSearch.showModal;
frmSearch.free;
if Searchtiao<>'' then
try
Getsqldata(CDSBaseinfo,MainView,Keyfield,Searchtiao,20);
GetGridTitle(MainView);
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 TfrmBaseEdit.generalFieldIndicateDS;
var
ParentDS:Tcomponent;
begin
ParentDS:=self.FindComponent('DSBaseinfo');
editNo.DataSource:=TdataSource(ParentDS);
editNo.DataField:='fno';
edtcreauser.DataSource:=TdataSource(ParentDS);
edtcreauser.DataField:='fcreauser';
edtcreadate.DataSource:=TdataSource(ParentDS);
edtCreadate.DataField:='fcreadate';
end;
procedure TfrmBaseEdit.SetfieldDisplayFormat;
var
i:integer;
begin
for i:=0 to CDSBaseinfo.FieldCount - 1 do
begin
if (CDSBaseinfo.Fields[i] is TNumericField) and (not (CDSBaseinfo.Fields[i] is TIntegerField)) then
(CDSBaseinfo.Fields[i] as TNumericField).DisplayFormat := '###,##0.00';
if (CDSBaseinfo.Fields[i] is TFloatField) then
(CDSBaseinfo.Fields[i] as TFloatField).DisplayFormat := '###,##0.00';
if (CDSBaseinfo.Fields[i] is TCurrencyField) then
(CDSBaseinfo.Fields[i] as TCurrencyField).DisplayFormat := '¥###,##0.00';
end;
end;
procedure TfrmBaseEdit.CDSBaseinfoBeforePost(DataSet: TDataSet);
var
OutNumber:String;
begin
inherited;
if CDSBaseinfo.State = dsInsert then
begin
Try
OutNumber:=GetOutNumber(iFunctionID);
except
on E:Exception do
begin
MessageDlg('获取外部单号错误 ! '+#13#10+E.Message,mterror,[mbOk],0);
Abort;
end;
end;
CDSBaseinfo.FieldByName('fNO').asString:=OutNumber;
End;
end;
procedure TfrmBaseEdit.acFieldPropertyExecute(Sender: TObject);
begin
inherited;
FromInterface:=MainView;
if not assigned(frmInterface) then
frmInterface:=Tfrminterface.Create(self);
frminterface.ShowModal;
frminterface.Free;
postmessage(handle,WM_USER_GETDATA,0,0);
application.ProcessMessages;
end;
procedure TfrmBaseEdit.CDSBaseinfoAfterPost(DataSet: TDataSet);
begin
inherited;
if CDSbaseinfo.ChangeCount > 0 then
begin
if baseformapplyupdata(CDSbaseinfo,MainTable,Keyfield) then
begin
MSNsaveinfo.Title:='信息提示';
MSNsaveinfo.Text:='成功保存当前内容ID='+inttostr(Getmaxid(MainView,Keyfield));
MSNsaveinfo.ShowPopUp;
end
else
begin
MSNsaveinfo.Title:='信息提示';
MSNsaveinfo.Text:='保存失败';
MSNsaveinfo.ShowPopUp;
end;
CDSbaseinfo.MergeChangeLog;
end;
// GetsqlData(CDSbaseinfo,MainView,Keyfield,KeyField+'>='+vartosql(GetMaxid(Maintable,KeyField)-20));
// GetGridTitle(MainView);
end;
procedure TfrmBaseEdit.CDSBaseinfoAfterInsert(DataSet: TDataSet);
begin
inherited;
CDSBaseinfo.FieldByName('fCreaUSer').asString:= DLLUcode;
CDSBaseinfo.FieldByName('fCreaDate').AsString:= SRNow();
end;
procedure TfrmBaseEdit.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 TfrmBaseEdit.FormDestroy(Sender: TObject);
begin
inherited;
frmBaseEdit:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -