📄 mdibaseinfo.pas
字号:
// 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 + -