📄 tas450_01.pas.svn-base
字号:
//查找任务类别表中该记录是否有上级类别
// if AParent<>0 then UpdateParent(AParent,AValue,ADataSet,AFieldName);
end;
procedure TTas450_01Form.GetData(AYear:string);
var
AValue,AMonth,AParentNo:Integer;
ABookmark:TBookmark;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select 1 as FTotal,T510_016,T100_001,T100_002,T100_003,month('+AByTotal+') as FMonth');
ADOQuery1.SQL.Add('from TAS510,TAS100');
ADOQuery1.SQL.Add('where T510_004=T100_001 and year('+AByTotal+')='+AYear);
ADOQuery1.SQL.Add('group by T510_016,T100_001,T100_002,T100_003,month('+AByTotal+')');
ADOQuery1.SQL.Add('order by T100_003,T100_001');
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
if ADODataSet1.Locate('FNo',ADOQuery1.FieldByName('T100_001').Value,[]) then
begin
ADODataSet1.Edit;
AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue);
ADODataSet1.Post;
ATotal[AMonth]:=ATotal[AMonth]+AValue;
end else
begin
ADODataSet1.Append;
ADODataSet1.FieldByName('FNo').Value:=ADOQuery1.FieldByName('T100_001').Value;
ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('T100_002').Value;
ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('T100_003').Value;
AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
AMonth:=ADOQuery1.FieldByName('FMonth').AsInteger;
SetFieldValue(AMonth,AValue);
ADODataSet1.Post;
ATotal[AMonth]:=ATotal[AMonth]+AValue;
end;
ADOQuery1.Next;
end;
//累加數量到上級類別
ADODataSet1.First;
while not ADODataSet1.Eof do
begin
ABookmark:=ADODataSet1.GetBookmark;
AParentNo:=ADODataSet1.FieldByName('FParent').Value;
if AParentNo<>0 then
begin
AValue:=ADODataSet1.FieldByName('FTotal1').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal1');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal2').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal2');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal3').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal3');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal4').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal4');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal5').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal5');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal6').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal6');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal7').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal7');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal8').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal8');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal9').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal9');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal10').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal10');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal11').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal11');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal12').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal12');
ADODataSet1.GotoBookmark(ABookmark);
AValue:=ADODataSet1.FieldByName('FTotal').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal');
end;
ADODataSet1.GotoBookmark(ABookmark);
ADODataSet1.FreeBookmark(ABookmark);
ADODataSet1.Next;
end;
end;
procedure TTas450_01Form.dxDBTreeList1FTotal1DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[1]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal2DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[2]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal3DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[3]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal4DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[4]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal5DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[5]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal6DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[6]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal7DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[7]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal8DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[8]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal9DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[9]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal10DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[10]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal11DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[11]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotal12DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[12]);
end;
procedure TTas450_01Form.dxDBTreeList1FTotalDrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
inherited;
AText:=FormatFloat(',0.00',ATotal[13]);
end;
procedure TTas450_01Form.ActOpenExecute(Sender: TObject);
begin
inherited;
//查看
if ADODataSet1.IsEmpty then Exit;
Screen.Cursor:=crHourGlass;
Tas510_01Form:=TTas510_01Form.Create(Application);
Tas510_01Form.edtFromDate.Date:=EncodeDate(StrToInt(cbYear.Text),1,1);
Tas510_01Form.edtToDate.Date:=EncodeDate(StrToInt(cbYear.Text),12,31);
Tas510_01Form.cbClass.ItemIndex:=Tas510_01Form.cbClass.Items.IndexOf(ADODataSet1FName.Value);
Tas510_01Form.AField:=AByTotal;
Tas510_01Form.sbSearch.Click;
Tas510_01Form.ARecordCount:=GetDataSetCount(Tas510_01Form.ADOQuery1);
Screen.Cursor:=crDefault;
Tas510_01Form.ShowModal;
end;
procedure TTas450_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
inherited;
if ParName='AYear' then ParValue:=lblYear.Caption //年度
else if ParName='AYearValue' then ParValue:=cbYear.Text //
else if ParName='FName' then ParValue:=ADODataSet1FName.DisplayLabel //名称
else if ParName='FTotal1' then ParValue:=ADODataSet1FTotal1.DisplayLabel //一月
else if ParName='FTotal2' then ParValue:=ADODataSet1FTotal2.DisplayLabel //二月
else if ParName='FTotal3' then ParValue:=ADODataSet1FTotal3.DisplayLabel //三月
else if ParName='FTotal4' then ParValue:=ADODataSet1FTotal4.DisplayLabel //四月
else if ParName='FTotal5' then ParValue:=ADODataSet1FTotal5.DisplayLabel //五月
else if ParName='FTotal6' then ParValue:=ADODataSet1FTotal6.DisplayLabel //六月
else if ParName='FTotal7' then ParValue:=ADODataSet1FTotal7.DisplayLabel //七月
else if ParName='FTotal8' then ParValue:=ADODataSet1FTotal8.DisplayLabel //八月
else if ParName='FTotal9' then ParValue:=ADODataSet1FTotal9.DisplayLabel //九月
else if ParName='FTotal10' then ParValue:=ADODataSet1FTotal10.DisplayLabel //十月
else if ParName='FTotal11' then ParValue:=ADODataSet1FTotal11.DisplayLabel //十一月
else if ParName='FTotal12' then ParValue:=ADODataSet1FTotal12.DisplayLabel //十二月
else if ParName='FTotal' then ParValue:=ADODataSet1FTotal.DisplayLabel //小计
else if ParName='FSum' then ParValue:=GetDBString('TAS45001020') //合计
end;
procedure TTas450_01Form.ActPrintExecute(Sender: TObject);
var
AfrReport:TfrReport;
begin
//inherited;
with TBitmap.Create do
try
DBChart1.bevelOuter:=bvNone;
Width:=DBChart1.Width;
Height:=DBChart1.Height;
DBChart1.BufferedDisplay:=False;
DBChart1.Draw(Canvas,Rect(0,0,Width,Height));
DBChart1.BufferedDisplay:=True;
SaveToFile(ASystemPath+'Report\TAS450.bmp');
DBChart1.bevelOuter:=bvLowered;
finally
Free;
end;
AfrReport:=TfrReport.Create(nil);
try
PreparedReport(ADODataSet1,AReportName,AfrReport);
SYSDM.frDBDataSet1.DataSet:=ADODataSet1;
ADODataSet1.DisableControls;
SYSDM.frReport2.OnGetValue:=ReportGetValue;
TfrPictureView(SYSDM.frReport2.FindObject('Picture2')).Picture.LoadFromFile(ASystemPath+'Report\TAS450.bmp');
SYSDM.frReport2.ShowPreparedReport;
SYSDM.frReport2.ShowReport;
ADODataSet1.EnableControls;
finally
ADODataSet1.EnableControls;
SYSDM.frReport2.Clear;
// AfrReport.Free;
if FileExists(ASystemPath+'Report\TAS450.bmp') then DeleteFile(ASystemPath+'Report\TAS450.bmp');
end;
end;
procedure TTas450_01Form.RefreshEvent;
begin
inherited;
sbSearch.Click;
end;
initialization
RegisterClass(TTas450_01Form);
finalization
UnRegisterClass(TTas450_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -