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

📄 mdibaseinfo.pas

📁 在打沙场用的最简单
💻 PAS
📖 第 1 页 / 共 2 页
字号:
//          CDSsub['gno']:=CDSselectsub['gno'];
        end else
        begin
        MessageDlg('没找到相应的资料 ? ',mtWarning,[MBOK],0);
        end;
       //Grid.SelectedIndex:=10;
    end;
  Result:=itemid;  
end;

procedure TfrmMDIbaseinfo.CDSmasterBeforeCancel(DataSet: TDataSet);
begin
  inherited;
  CDSsub.Cancel;
end;

procedure TfrmMDIbaseinfo.CDSmasterAfterPost(DataSet: TDataSet);
begin
  inherited;
  if CDSsub.State in [dsEdit,dsInsert] then CDSsub.Post;
  CDSsub.First;
  while not CDSsub.Eof do
    begin
      if CDSsub.FieldByName('fitemid').AsInteger=0 then
         begin
         showmessage('资料有误,请检查!');
          Break;
         end;

      CDssub.Edit;
      CDSsub.FieldByName('fresid').AsInteger:=inNumber;
      CDSsub.FieldByName('oldfqty').Asfloat:=CDSsub.FieldByName('fqty').Asfloat;
      CDssub.Post;
      CDSsub.Next;
    end;
  if CDSsub.ChangeCount > 0 then
    begin
      applyupdata(CDSsub,subtable,keyfield);
      CDSsub.MergeChangeLog;
    end;
end;


procedure TfrmMDIbaseinfo.CDSmasterBeforeInsert(DataSet: TDataSet);
begin
  inherited;
  ClearCDSdata(CDSsub);
end;

procedure TfrmMDIbaseinfo.CDSmasterAfterScroll(DataSet: TDataSet);
var
  resid:integer;
begin
  inherited;
  Resid:=CDSMaster.fieldbyname('fResid').AsInteger;
  Getsqldata(CDSsub,subview,keyfield,'fresid='+vartosql(resid),20); 
end;

procedure TfrmMDIbaseinfo.GridGetCellParams(Sender: TObject;
  Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
  inherited;
  if Grid.SumList.RecNo mod 2=1 then
    BackGround:=$00EAEFED
    else
    BackGround:=clWhite;
end;

procedure TfrmMDIbaseinfo.acmodifyExecute(Sender: TObject);
begin
  inherited;
  CDSmaster.Edit;
  formmode:=1;
  Innumber:=CDSmaster.fieldbyname('fResid').AsInteger;
  controlEnabled;
//  billno.SetFocus;
  editstate:=2;  
end;

procedure TfrmMDIbaseinfo.acdeleteExecute(Sender: TObject);
Var
  Cid:integer;
begin
  inherited;
  if CDSMaster.RecordCount > 0 then
    if messagedlg('确认删除当前记录 ? ',mtConfirmation,[mbok,mbcancel],0)=mrok then
      begin
        inNumber:=CDSMaster.fieldbyname('fresid').AsInteger;
        Cid:=CDSMaster.fieldbyname('fid').AsInteger;
        if not execsql('Delete from '+Maintable+' where fresid='+inttostr(inNumber)) then
          begin
            messagedlg('删除主表出错 ! ',mtError,[mbok],0);
            Exit;
          end;
        if not execsql('Delete from '+SubTable+' where fresid='+inttostr(inNumber)) then
          begin
            messagedlg('删除从表出错 ! ',mtError,[mbok],0);
            Exit;
          end;
        GeteditData(CDSMaster,Maintable,keyField,Cid,20);
      end;

end;

procedure TfrmMDIbaseinfo.acsearchExecute(Sender: TObject);
var
  Child:Tform;
begin
  inherited;
  Searchtiao:='';
  Child:=Searchfrm.Create(application);
  Child.ShowModal;
  if Searchtiao<>'' then
    begin
      Getsqldata(CDSmaster,maintable,keyfield,Searchtiao,20);
    end;
end;

procedure TfrmMDIbaseinfo.aclineaddExecute(Sender: TObject);
begin
  inherited;
  CDSsub.Append;
  grid.SelectedIndex:=0;
end;

procedure TfrmMDIbaseinfo.aclinedeleteExecute(Sender: TObject);
begin
  inherited;
  CDSsub.Delete; 
end;

procedure TfrmMDIbaseinfo.acprintExecute(Sender: TObject);
var
  point:Tpoint;
begin
  inherited;
  point:=Getscreenpoint(SpeedButton1);
  popupprint.Popup(point.X,point.Y); 
end;

procedure TfrmMDIbaseinfo.p01Execute(Sender: TObject);
begin
  inherited;
  CDSsub.DisableControls;
  frMD.LoadFromFile(frname);
  frMD.ShowReport;
  CDSsub.EnableControls;
end;

procedure TfrmMDIbaseinfo.p02Execute(Sender: TObject);
begin
  inherited;
  CDSsub.DisableControls;
  frMD.LoadFromFile(frname);
  frMD.PrepareReport;
  frMD.PrintPreparedReport('',1,True,frAll);
  CDSsub.EnableControls;
end;

procedure TfrmMDIbaseinfo.p03Execute(Sender: TObject);
begin
  inherited;
  CDSsub.DisableControls;
  frMD.LoadFromFile(frname);
  frMD.PrepareReport;
  frMD.PrintPreparedReportDlg;
  CDSsub.EnableControls;
end;

procedure TfrmMDIbaseinfo.p04Execute(Sender: TObject);
begin
  inherited;
  CDSsub.DisableControls;
  frMD.LoadFromFile(frname);
  frMD.DesignReport;
  CDSsub.EnableControls;
end;

procedure TfrmMDIbaseinfo.frMDUserFunction(const Name: String; p1, p2,
  p3: Variant; var Val: Variant);
begin
  inherited;
  if AnsiCompareText('XTOD',name)=0 then
    Val:= syRMB(frParser.Calc(p1));
end;

procedure TfrmMDIbaseinfo.p05Execute(Sender: TObject);
var
  excelid, mybook: variant;
  row, col, i, j, colcount, frow: integer;
  excelflg: boolean;
  rpstr: string;
  per_count,  datasum, dsum1, dsum2: integer;
  datas1, datas2, datas3: string;
begin
  inherited;
  CDSsub.DisableControls;
  try
    excelid := createoleobject('excel.application');
    mybook := createoleobject('excel.sheet');
    mybook := excelid.workbooks.add;
    row := 1;
    col := 1;
    excelflg := true;
  except
    excelflg := false;
    application.MessageBox('请确定EXCEL是否正确安装!', '提示信息', mb_ok);
  end;
  if excelflg then
  begin
      colcount := grid.Columns.Count;
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col] :=  '基本报表';
      mybook.worksheets[1].cells.item[row, col].font.size := 18;
      mybook.worksheets[1].cells.item[row, col].font.bold := true;
      mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
      row := row + 1;
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col] := '报表日期:' +
        datetostr(date);
      row := row + 1;
      frow := row;
      CDSsub.First;
      for i := 1 to colcount do
      begin
        if grid.Columns[i-1].Visible then
        begin
        excelid.columns[i].ColumnWidth := Grid.Columns[i - 1].Width /
          8;
        excelid.columns[i].NumberFormatLocal := '@';
        mybook.worksheets[1].cells.item[row, i] := grid.Columns[i -
          1].Title.Caption;
        mybook.worksheets[1].cells.item[row, i].HorizontalAlignment := xlcenter;
        end;
      end;
      row := row + 1;
      while not CDSsub.Eof do
      begin
        for i := 1 to colcount do
          begin
          if grid.Columns[i-1].Visible then
          mybook.worksheets[1].cells.item[row, i] := CDSsub.Fields[i-1].AsString;
          end; 
          row := row + 1;
          CDSsub.Next;
      end;
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col].font.size := 12;
      mybook.worksheets[1].cells.item[row, col].font.bold := true;
      mybook.worksheets[1].cells.item[row, col].HorizontalAlignment := xlcenter;
      mybook.worksheets[1].cells.item[row, col] := '总记录数:' +
       inttostr(CDssub.RecordCount) + '条';
      row := row + 1;
      rpstr := '报表条件:';
      excelid.range['A' + inttostr(row), chr(64 + colcount) +
        inttostr(row)].merge();
      mybook.worksheets[1].cells.item[row, col] := rpstr;
      row := row + 1;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[1].LineStyle := xlContinuous;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[2].LineStyle := xlContinuous;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[3].LineStyle := xlContinuous;
      excelid.range[chr(65) + inttostr(frow), chr(64 + colcount) + inttostr(row
        - 1)].Borders[4].LineStyle := xlContinuous;
    excelid.visible := true;
  end;
  CDSsub.EnableControls;  
end;

procedure TfrmMDIbaseinfo.GridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

         if grid.Col=grid.VisibleColumns.Count then
           if cdssub.State in [dsedit,dsinsert] then
           begin
            spbtnsave.Click;
            spbtnprint.Click;
            spbtnadd.Click;
            end;


end;

procedure TfrmMDIbaseinfo.GridKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
    { if key=#13 then
         if grid.Col=grid.VisibleColumns.Count then
           if cdssub.State in [dsedit,dsinsert] then
           begin
            spbtnsave.Click;
            spbtnprint.Click;
            spbtnadd.Click;
            end;
             begin
              cdssub.Append;
              grid.SelectedIndex:=0;
             end;  }
end;

procedure TfrmMDIbaseinfo.GridColExit(Sender: TObject);
begin
  inherited;
  if  CDSsub.State in [dsEdit,dsinsert] then
  begin
      GetsqlData(CDSselectsub,'Vitem','fid','fcode='+vartosql(CDSsub['fcode']),1);
       if CDSselectsub.RecordCount > 0 then
       begin
       CDSsub['fitemid']:=CDSselectsub['fid'] ;
       CDSsub['fname']:=CDSselectsub['fname'];
       CDSsub['fcode']:=CDSselectsub['fcode'];
       CDSsub['ftype'] :=CDSselectsub['ftype'];
       CDSsub['funit']:=CDSselectsub['funit']; 
       end;
   end;
end;

procedure TfrmMDIbaseinfo.CDSsubNewRecord(DataSet: TDataSet);
begin
  inherited;
  CDSsub['fqty']:=0;
  CDSsub['fprice']:=0;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -