📄 tas435_01.pas.svn-base
字号:
ADODataSet1.FieldByName('FName').Value:=ADOQuery1.FieldByName('T100_002').Value;
ADODataSet1.FieldByName('FParent').Value:=ADOQuery1.FieldByName('T100_003').Value;
AValue:=ADOQuery1.FieldByName('FTotal').AsInteger;
ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat); //按日
case cbType.ItemIndex of
0:ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat); //按日
1:ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat/5); //按周
2:ADays:=RoundB(ADOQuery1.FieldByName('FDays').AsFloat/22); //按月
end;
SetFieldValue(ADays,AValue);
ADODataSet1.Post;
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('FTotal').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal');
end;
ADODataSet1.GotoBookmark(ABookmark);
ADODataSet1.FreeBookmark(ABookmark);
ADODataSet1.Next;
end;
end;
procedure TTas435_01Form.ADODataSet1AfterScroll(DataSet: TDataSet);
var
I:Integer;
begin
inherited;
// if ABusy then Exit;
if not ADODataSet1.Active then Exit;
if ADODataSet1.IsEmpty then Exit;
ADODataSet3.Close;
ADODataSet3.FieldDefs.Clear;
ADODataSet3.FieldDefs.Add('FName',ftString,50);
ADODataSet3.FieldDefs.Add('FSum',ftInteger,0);
ADODataSet3.CreateDataSet;
for I:=3 to ADODataSet1.FieldCount-2 do
begin
ADODataSet3.Append;
ADODataSet3.FieldByName('FName').Value:=ADODataSet1.Fields[I].DisplayLabel;
ADODataSet3.FieldByName('FSum').Value:=ADODataSet1.Fields[I].Value;
ADODataSet3.Post;
end;
DBChart2.RefreshData;
end;
procedure TTas435_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',ATotal[1]);
end;
procedure TTas435_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',ATotal[2]);
end;
procedure TTas435_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',ATotal[3]);
end;
procedure TTas435_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',ATotal[4]);
end;
procedure TTas435_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',ATotal[5]);
end;
procedure TTas435_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',ATotal[6]);
end;
procedure TTas435_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',ATotal[7]);
end;
function GetStatusName(AStatus:string):string;
var
S:string;
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select T120_003 from TAS120 where T120_001 in ('+AStatus+')');
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
S:=S+' or '+SYSDM.qryQuery.Fields[0].AsString;
SYSDM.qryQuery.Next;
end;
Delete(S,1,4);
Result:=S;
end;
function GetClassName(AClass:string):string;
var
S:string;
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select T100_002 from TAS100 where T100_001 in ('+AClass+')');
SYSDM.qryQuery.Open;
while not SYSDM.qryQuery.Eof do
begin
S:=S+' or '+SYSDM.qryQuery.Fields[0].AsString;
SYSDM.qryQuery.Next;
end;
Delete(S,1,4);
Result:=S;
end;
procedure TTas435_01Form.ActOpenExecute(Sender: TObject);
var
AFieldInfo1,AFieldInfo2:TwwFieldInfo;
ACode,AClassNo,AClassName:string;
AStringList:TStringList;
I:Integer;
begin
inherited;
//查看
if ADODataSet1.IsEmpty then Exit;
Screen.Cursor:=crHourGlass;
Tas520_01Form:=TTas520_01Form.Create(Application);
Tas520_01Form.edtFromDate.Date:=edtFromDate.Date;
Tas520_01Form.edtToDate.Date:=edtToDate.Date;
Tas520_01Form.AField:=AByFinish;
Tas520_01Form.sbSearch.Click;
FilterDialog(Tas520_01Form.DataSource1,False);
//取得任务类别下所有子類別
AStringList:=TStringList.Create;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select * from TAS100 where T100_002='+''''+ADODataSet1FName.Value+'''');
SYSDM.qryQuery.Open;
if SYSDM.qryQuery.IsEmpty then AClassNo:='0' else AClassNo:=SYSDM.qryQuery.FieldByName('T100_001').AsString;
if AClassNo<>'0' then
begin
AStringList.Add(AClassNo);
if HasChild(AClassNo,'TAS100','T100_003') then GetChild(AClassNo,'TAS100','T100_003','T100_001',AStringList);
end;
AClassNo:='';
for I:=0 to AStringList.Count-1 do AClassNo:=AClassNo+','+AStringList[I];
Delete(AClassNo,1,1);
AStringList.Free;
//任务类别
AFieldInfo1:=TwwFieldInfo.create;
AFieldInfo1.FieldName:='T100_002';
AFieldInfo1.DisplayLabel:=Tas520_01Form.ADOQuery1T100_002.DisplayLabel;
AFieldInfo1.MatchType:=fdMatchStart;
AFieldInfo1.CaseSensitive:=False;
AFieldInfo1.NonMatching:=False;
AClassName:=GetClassName(AClassNo);
AFieldInfo1.FilterValue:=AClassName;
SYSDM.wwFilterDialog1.FieldInfo.Add(AFieldInfo1);
//状态
AFieldInfo2:=TwwFieldInfo.create;
AFieldInfo2.FieldName:='T120_003';
AFieldInfo2.DisplayLabel:=Tas520_01Form.ADOQuery1T120_003.DisplayLabel;
AFieldInfo2.MatchType:=fdMatchStart;
AFieldInfo2.CaseSensitive:=False;
AFieldInfo2.NonMatching:=False;
ACode:=GetStatusName(AStatusNo);
AFieldInfo2.FilterValue:=ACode;
SYSDM.wwFilterDialog1.FieldInfo.Add(AFieldInfo2);
SYSDM.wwFilterDialog1.ApplyFilter;
Tas520_01Form.ARecordCount:=GetDataSetCount(Tas520_01Form.ADOQuery1);
Screen.Cursor:=crDefault;
Tas520_01Form.ShowModal;
end;
procedure TTas435_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
inherited;
if ParName='ADate' then ParValue:=lblDate.Caption //起止日期
else if ParName='AFromDate' then ParValue:=edtFromDate.Text //
else if ParName='AToDate' then ParValue:=edtToDate.Text //
else if ParName='AType' then ParValue:=lblType.Caption //类型
else if ParName='ATypeValue' then ParValue:=cbType.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:=ADODataSet1FTotal3.DisplayLabel //四天
else if ParName='FTotal5' then ParValue:=ADODataSet1FTotal4.DisplayLabel //五天
else if ParName='FTotal6' then ParValue:=ADODataSet1FTotal5.DisplayLabel //起过五天
else if ParName='FTotal' then ParValue:=ADODataSet1FTotal.DisplayLabel //小计
else if ParName='FSum' then ParValue:=GetDBString('TAS43001020') //合计
end;
procedure TTas435_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\TAS435A.bmp');
DBChart1.bevelOuter:=bvLowered;
DBChart2.bevelOuter:=bvNone;
Width:=DBChart2.Width;
Height:=DBChart2.Height;
DBChart2.BufferedDisplay:=False;
DBChart2.Draw(Canvas,Rect(0,0,Width,Height));
DBChart2.BufferedDisplay:=True;
SaveToFile(ASystemPath+'Report\TAS435B.bmp');
DBChart2.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\TAS435A.bmp');
TfrPictureView(SYSDM.frReport2.FindObject('Picture3')).Picture.LoadFromFile(ASystemPath+'Report\TAS435B.bmp');
SYSDM.frReport2.ShowPreparedReport;
SYSDM.frReport2.ShowReport;
ADODataSet1.EnableControls;
finally
ADODataSet1.EnableControls;
SYSDM.frReport2.Clear;
// AfrReport.Free;
if FileExists(ASystemPath+'Report\TAS435A.bmp') then DeleteFile(ASystemPath+'Report\TAS435A.bmp');
if FileExists(ASystemPath+'Report\TAS435B.bmp') then DeleteFile(ASystemPath+'Report\TAS435B.bmp');
end;
end;
procedure TTas435_01Form.RefreshEvent;
begin
inherited;
sbSearch.Click;
end;
initialization
RegisterClass(TTas435_01Form);
finalization
UnRegisterClass(TTas435_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -