📄 tas440_01.pas.svn-base
字号:
AParentNo:=ADODataSet1.FieldByName('FParent').Value;
if AParentNo<>0 then
begin
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
AFieldName:='F'+ADOQuery1.FieldByName('T120_001').AsString;
AValue:=ADODataSet1.FieldByName(AFieldName).AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,AFieldName);
ADODataSet1.GotoBookmark(ABookmark);
ADOQuery1.Next;
end;
AValue:=ADODataSet1.FieldByName('FTotal').AsInteger;
UpdateParent(AParentNo,AValue,ADODataSet1,'FTotal');
end;
ADODataSet1.GotoBookmark(ABookmark);
ADODataSet1.FreeBookmark(ABookmark);
ADODataSet1.Next;
end;
end;
{
procedure TTas440_01Form.MenuItemClick(Sender: TObject);
begin
TMenuItem(Sender).Checked:=not TMenuItem(Sender).Checked;
dxDBTreeList1.ColumnByFieldName(TMenuItem(Sender).Name).Visible:=TMenuItem(Sender).Checked;
end;
procedure TTas440_01Form.CreatePopmeun(AGrid:TdxDBTreeList);
var
ADataSet:TDataSet;
I:Integer;
AMenuItem:TMenuItem;
begin
if AGrid.DataSource=nil then Exit;
if AGrid.DataSource.DataSet=nil then Exit;
if AGrid.PopupMenu=nil then Exit;
ADataSet:=AGrid.DataSource.DataSet;
for I:=0 to ADataSet.FieldCount-1 do
begin
if ADataSet.Fields[I].Visible then
begin
AMenuItem:=TMenuItem.Create(nil);
AMenuItem.Name:=ADataSet.Fields[I].FieldName;
AMenuItem.Caption:=ADataSet.Fields[I].DisplayLabel;
AMenuItem.Checked:=AGrid.ColumnByFieldName(ADataSet.Fields[I].FieldName).Visible;
AMenuItem.OnClick:=MenuItemClick;
AGrid.PopupMenu.Items.Add(AMenuItem);
end;
end;
end;
}
procedure TTas440_01Form.ADODataSet1AfterScroll(DataSet: TDataSet);
var
I:Integer;
begin
inherited;
if ABusy then Exit;
if not ADODataSet1.Active then Exit;
if ADODataSet1.IsEmpty then Exit;
ADODataSet2.Close;
ADODataSet2.FieldDefs.Clear;
ADODataSet2.FieldDefs.Add('FName',ftString,50);
ADODataSet2.FieldDefs.Add('FSum',ftInteger,0);
ADODataSet2.CreateDataSet;
for I:=3 to ADODataSet1.FieldCount-2 do
begin
ADODataSet2.Append;
ADODataSet2.FieldByName('FName').Value:=ADODataSet1.Fields[I].DisplayLabel;
ADODataSet2.FieldByName('FSum').Value:=ADODataSet1.Fields[I].Value;
ADODataSet2.Post;
end;
DBChart2.RefreshData;
end;
procedure TTas440_01Form.dxDBTreeList1DblClick(Sender: TObject);
begin
inherited;
if ADODataSet1.IsEmpty then Exit;
Tas510_01Form:=TTas510_01Form.Create(Application);
Tas510_01Form.cbClass.Text:=ADODataSet1.FieldByName('FName').Value;
Tas510_01Form.edtFromDate.Date:=edtFromDate.Date;
Tas510_01Form.edtToDate.Date:=edtToDate.Date;
Tas510_01Form.sbSearch.Click;
Tas510_01Form.ShowModal;
end;
procedure TTas440_01Form.DrawSummaryFooter(
Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
var
ANo:Integer;
begin
inherited;
ANo:=TdxDBTreeListColumn(Sender).Tag;
AText:=FormatFloat(',0.00',ATotal[ANo]);
end;
procedure TTas440_01Form.ActOpenExecute(Sender: TObject);
var
AFieldInfo1,AFieldInfo2:TwwFieldInfo;
ACode:string;
begin
inherited;
//查看
if ADODataSet1.IsEmpty then Exit;
Screen.Cursor:=crHourGlass;
Tas510_01Form:=TTas510_01Form.Create(Application);
Tas510_01Form.edtFromDate.Date:=edtFromDate.Date;
Tas510_01Form.edtToDate.Date:=edtToDate.Date;
Tas510_01Form.cbClass.ItemIndex:=Tas510_01Form.cbClass.Items.IndexOf(ADODataSet1.FieldByName('FName').Value);
Tas510_01Form.AField:=AByTotal;
Tas510_01Form.sbSearch.Click;
FilterDialog(Tas510_01Form.DataSource1,False);
//任务类别
AFieldInfo1:=TwwFieldInfo.create;
AFieldInfo1.FieldName:='T100_002';
AFieldInfo1.DisplayLabel:=Tas510_01Form.ADOQuery1T100_002.DisplayLabel;
AFieldInfo1.MatchType:=fdMatchStart;
AFieldInfo1.CaseSensitive:=False;
AFieldInfo1.NonMatching:=False;
AFieldInfo1.FilterValue:=ADODataSet1.FieldByName('FName').Value;
SYSDM.wwFilterDialog1.FieldInfo.Add(AFieldInfo1);
//状态
AFieldInfo2:=TwwFieldInfo.create;
AFieldInfo2.FieldName:='T120_003';
AFieldInfo2.DisplayLabel:=Tas510_01Form.ADOQuery1T120_003.DisplayLabel;
AFieldInfo2.MatchType:=fdMatchStart;
AFieldInfo2.CaseSensitive:=False;
AFieldInfo2.NonMatching:=True;
ACode:=GetValue('select T120_003 from TAS120 where T120_001=3');
AFieldInfo2.FilterValue:=ACode;
SYSDM.wwFilterDialog1.FieldInfo.Add(AFieldInfo2);
SYSDM.wwFilterDialog1.ApplyFilter;
Tas510_01Form.ARecordCount:=GetDataSetCount(Tas510_01Form.ADOQuery1);
Screen.Cursor:=crDefault;
Tas510_01Form.ShowModal;
end;
procedure TTas440_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='FName' then ParValue:=ADODataSet1.FieldByName('FName').DisplayLabel //任务类别
else if ParName='FSum' then ParValue:=GetDBString('TAS44001005') //合計
end;
procedure TTas440_01Form.BuildReport;
var
v:TfrView;
APage:TfrPage;
FLeft,FWidth:Integer;
AFieldName:string;
begin
APage:=SYSDM.frReport2.Pages[0];
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from TAS120 where T120_001 not in ('+AStatusNo+')');
ADOQuery1.Open;
FLeft:=280;
FWidth:=64;
while not ADOQuery1.Eof do
begin
v:=frCreateObject(gtMemo, '');
v.SetBounds(FLeft, 208, FWidth, 18);
TfrMemoView(v).Alignment := frtaCenter + frtaMiddle;
TfrMemoView(v).Font:=Font;
TfrMemoView(v).Font.Style:=[fsBold];
v.FrameTyp:=15;
v.Flags:=v.Flags or flWordWrap or flStretched;
v.Memo.Add(ADOQuery1.FieldByName('T120_003').AsString);
APage.Objects.Add(v);
AFieldName:='F'+ADOQuery1.FieldByName('T120_001').AsString;
v := frCreateObject(gtMemo, '');
v.SetBounds(FLeft, 259, FWidth, 18);
TfrMemoView(v).Font:=Font;
v.FrameTyp:=15;
v.Flags:=v.Flags or flWordWrap or flStretched;
v.Memo.Add('["'+AFieldName+'"]');
APage.Objects.Add(v);
AFieldName:='F'+ADOQuery1.FieldByName('T120_001').AsString;
v := frCreateObject(gtMemo, '');
v.SetBounds(FLeft, 320, FWidth, 18);
TfrMemoView(v).Font:=Font;
TfrMemoView(v).Font.Style:=[fsBold];
v.FrameTyp:=15;
v.Flags:=v.Flags or flWordWrap or flStretched;
v.Memo.Add('[SUM(["'+AFieldName+'"])/2]');
APage.Objects.Add(v);
FLeft:=FLeft+FWidth;
ADOQuery1.Next;
end;
v:=frCreateObject(gtMemo, '');
v.SetBounds(FLeft, 208, FWidth, 18);
TfrMemoView(v).Alignment := frtaCenter + frtaMiddle;
TfrMemoView(v).Font:=Font;
TfrMemoView(v).Font.Style:=[fsBold];
v.FrameTyp:=15;
v.Flags:=v.Flags or flWordWrap or flStretched;
v.Memo.Add(ADODataSet1.FieldByName('FTotal').DisplayLabel);
APage.Objects.Add(v);
v := frCreateObject(gtMemo, '');
v.SetBounds(FLeft, 259, FWidth, 18);
TfrMemoView(v).Font:=Font;
TfrMemoView(v).Font.Style:=[fsBold];
v.FrameTyp:=15;
v.Flags:=v.Flags or flWordWrap or flStretched;
v.Memo.Add('["FTotal"]');
APage.Objects.Add(v);
v := frCreateObject(gtMemo, '');
v.SetBounds(FLeft, 320, FWidth, 18);
TfrMemoView(v).Font:=Font;
TfrMemoView(v).Font.Style:=[fsBold];
v.FrameTyp:=15;
v.Flags:=v.Flags or flWordWrap or flStretched;
v.Memo.Add('[SUM(["FTotal"])/2]');
APage.Objects.Add(v);
end;
procedure TTas440_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\TAS440A.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\TAS440B.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\TAS440A.bmp');
TfrPictureView(SYSDM.frReport2.FindObject('Picture3')).Picture.LoadFromFile(ASystemPath+'Report\TAS440B.bmp');
BuildReport;
SYSDM.frReport2.ShowPreparedReport;
SYSDM.frReport2.ShowReport;
ADODataSet1.EnableControls;
finally
ADODataSet1.EnableControls;
SYSDM.frReport2.Clear;
// AfrReport.Free;
if FileExists(ASystemPath+'Report\TAS440A.bmp') then DeleteFile(ASystemPath+'Report\TAS440A.bmp');
if FileExists(ASystemPath+'Report\TAS440B.bmp') then DeleteFile(ASystemPath+'Report\TAS440B.bmp');
end;
end;
procedure TTas440_01Form.RefreshEvent;
begin
inherited;
sbSearch.Click;
end;
initialization
RegisterClass(TTas440_01Form);
finalization
UnRegisterClass(TTas440_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -