📄 egprojectcoststt.pas
字号:
unit EGProjectCostSTT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WSVoucherBrowse, DB, ActnList, Grids,WSEdit, DBGrids, QLDBGrid,
ComCtrls, ExtCtrls, ToolWin,DateUtils, ADODB, StdCtrls, Buttons, GEdit,
DBCtrls, Menus, WNADOCQuery,TypInfo, scExcelExport;
type
TEGProjectCostSTTForm = class(TWSVoucherBrowseForm)
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
adsMaster: TADODataSet;
Panel2: TPanel;
ADOQuery: TADOQuery;
ADOQuery2: TADOQuery;
Panel3: TPanel;
Panel5: TPanel;
Button3: TButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
TempAds: TADODataSet;
StringField1: TStringField;
StringField2: TStringField;
BCDField1: TBCDField;
BCDField2: TBCDField;
BCDField3: TBCDField;
BCDField4: TBCDField;
BCDField5: TBCDField;
BCDField6: TBCDField;
BCDField7: TBCDField;
BCDField8: TBCDField;
IntegerField1: TIntegerField;
WNADOCQuery1: TWNADOCQuery;
Button1: TButton;
Panel4: TPanel;
GroupBox3: TGroupBox;
Memo1: TMemo;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
Button2: TButton;
Panel6: TPanel;
CheckBox4: TCheckBox;
AdsProjectList: TADODataSet;
dsProjectList: TDataSource;
ProCostPanel7: TPanel;
ProCostPanel8: TPanel;
Label1: TLabel;
SpeedButton1: TSpeedButton;
DBGrid1: TQLDBGrid;
CheckBox5: TCheckBox;
procedure UpdateDBGrid;
procedure DBGridTitleClick(Column: TColumn);
procedure FormActivate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure DBGridDblClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure adsMasterBeforeOpen(DataSet: TDataSet);
procedure ExportActionExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
WhereStr :string;
public
{ Public declarations }
protected
function CreateEditForm: TWSEditForm; override;
end;
var
EGProjectCostSTTForm: TEGProjectCostSTTForm;
implementation
uses CommonDM,QLDBFlt,WSUtils;
{$R *.dfm}
function TEGProjectCostSTTForm.CreateEditForm: TWSEditForm;
begin
// Result := TSLEdClearBillAForm.Create(Self);
end;
procedure TEGProjectCostSTTForm.UpdateDBGrid;
var I: Integer;
begin
with DBGrid do
begin
FooterRowCount := 0;
Columns[0].Footer.ValueType := fvtStaticText;
Columns[0].Footer.Value := '合计:';
Columns[0].Footer.Alignment := taCenter;
Columns[0].Title.Alignment:= taCenter;
Columns[0].Width :=90;
if Pos('日',Columns[0].FieldName)>0 then Columns[0].Width :=70;
for I := 1 to Columns.Count - 1 do
begin
Columns[i].Title.Alignment:= taCenter;
Columns[i].Width :=90;
if Pos('日',Columns[I].FieldName)>0 then Columns[i].Width :=70;
if Pos('编',Columns[I].FieldName)>0 then Columns[i].Width :=70;
if Columns[I].Field is TNumericField then
begin
SetStrProp(Fields[I], 'DisplayFormat','#,#.00') ;
if Pos('单',Columns[I].FieldName)<=0 then Columns[I].Footer.ValueType := fvtSum;
end;
end;
FooterRowCount := 1;
end;
with DBGrid1 do
begin
FooterRowCount := 0;
Columns[0].Footer.ValueType := fvtStaticText;
Columns[0].Footer.Value := '总计:';
Columns[0].Footer.Alignment := taCenter;
Columns[0].Title.Alignment:= taCenter;
Columns[0].Width :=90;
for I := 1 to Columns.Count - 1 do
begin
Columns[I].Width :=90;
Columns[I].Title.Alignment:= taCenter;
if Columns[I].Field is TNumericField then
begin
SetStrProp(Fields[I], 'DisplayFormat','#,#.00') ;
if Pos('Price',Columns[I].FieldName)<=0 then Columns[I].Footer.ValueType := fvtSum;
end;
end;
FooterRowCount := 1;
end;
end;
procedure TEGProjectCostSTTForm.DBGridTitleClick(Column: TColumn);
begin
inherited;
UpdateDBGrid;
end;
procedure TEGProjectCostSTTForm.FormActivate(Sender: TObject);
begin
inherited;
AdsProjectList.Close;
AdsProjectList.CommandText :=' select Client [项目名称], '
+' Sum(Isnull(Amount,0)) [材料金额],'
+' Sum(Isnull(ExpenseAmount,0)) [费用金额],'
+' ( Sum(Isnull(Amount,0))+Sum(Isnull(ExpenseAmount,0)) ) [项目合计]'
+' from #EGProjectCostDM Group by Client';
AdsProjectList.Open;
if AdsProjectList.IsEmpty then
begin
AdsProjectList.Close;
AdsProjectList.CommandText :=' select Name as [项目名称],'
+QuotedStr(' - ')+' as [材料金额], '
+QuotedStr(' - ')+' as [费用金额], '
+QuotedStr(' - ')+' as [项目合计]'
+' from DAProject where id IN (Select Distinct ClientID '
+' from EGExpenseMaster where RecordState<>'+Quotedstr('删除')
+' UNION ALL '
+' select Distinct ClientID from EGMaterialOutMaster '
+' where RecordState<>'+Quotedstr('删除') +' )';
AdsProjectList.Open;
end;
Button1Click(sender);
Button1.SetFocus;
end;
procedure TEGProjectCostSTTForm.N1Click(Sender: TObject);
var E:string;
begin
if adsMaster.IsEmpty then exit;
end;
procedure TEGProjectCostSTTForm.DBGridDblClick(Sender: TObject);
begin
// inherited;
end;
procedure TEGProjectCostSTTForm.Button3Click(Sender: TObject);
begin
inherited;
WNADOCQuery1.TabName :='TempSaleMD';
WNADOCQuery1.ConnectionString :=CommonData.acnConnection.ConnectionString;
WNADOCQuery1.Execute(False);
// showmessage(WNADOCQuery1.QueryTerm);
if trim(WNADOCQuery1.QueryTerm)<>'' then
WhereStr :=' where ' + trim(WNADOCQuery1.QueryTerm)
else WhereStr :=' Where 1=1 ' ;
Memo1.ReadOnly :=False;
Memo1.Clear;
if ( copy(trim(WNADOCQuery1.QueryTerm),1,3) ='not' ) or
( copy(trim(WNADOCQuery1.QueryTerm),1,3) ='NOT' )then
Memo1.Text :='全部不满足条件: ' +Copy(trim(WNADOCQuery1.ShowTerm.Text),5,800)
else Memo1.Text :=Copy(trim(WNADOCQuery1.ShowTerm.Text),5,800);
if WhereStr =' Where 1=1 ' then
begin
Memo1.Clear;
Memo1.Text :='不限制条件!';
end;
Memo1.ReadOnly :=True;
if Button1.Tag=1 then Button1Click(sender)
else Button2Click(sender);
end;
procedure TEGProjectCostSTTForm.CheckBox1Click(Sender: TObject);
begin
inherited;
if not CheckBox1.Checked and
not CheckBox2.Checked and not CheckBox3.Checked
and not CheckBox4.Checked and not CheckBox5.Checked
then CheckBox1.Checked:=not CheckBox1.Checked;
end;
procedure TEGProjectCostSTTForm.Button1Click(Sender: TObject);
var I :integer;
begin
inherited;
Button1.Tag :=1;
Panel6.Visible :=True;
Panel6.Repaint;
adsMaster.Close;
adsMaster.CommandText:=' select date [日期],'
+' code [编号],BillMode [业务类型], '
+' Client [项目名称],GoodsClass [材料类别],Goods [项目材料], '
+' GoalQuantity [数量], Amount/isnull(GoalQuantity,0) [单价], '
+' Unit [单位], '
+' Amount [材料金额], '
+' Expense [项目费用], '
+' ExpenseAmount [费用金额], '
+' WareHouse [出料仓库], '
+' Employee [业务经办] from #EGProjectCostDM '
+WhereStr ;
adsMaster.open;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -