⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 baseedit.pas

📁 用delphi编写的数据库管理软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:

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 + -