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

📄 baseinfo.pas

📁 用delphi编写的数据库管理软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -