unit U_WageList_PZ; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDBLookupComboBox, cxPC, cxDropDownEdit, Menus, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, DateUtils; type TfrmWageList_PZ = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; v2Column2: TcxGridDBColumn; v2Column5: TcxGridDBColumn; Label1: TLabel; CP_Code: TEdit; Label2: TLabel; v2Column17: TcxGridDBColumn; v2Column19: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column7: TcxGridDBColumn; ToolButton6: TToolButton; Label5: TLabel; PopupMenu2: TPopupMenu; ToolButton4: TToolButton; v2Column8: TcxGridDBColumn; N1: TMenuItem; N2: TMenuItem; v2Column15: TcxGridDBColumn; v2Column16: TcxGridDBColumn; v2Column20: TcxGridDBColumn; v2Column21: TcxGridDBColumn; ToolButton5: TToolButton; YGName: TEdit; YGType: TEdit; v2Column1: TcxGridDBColumn; Label3: TLabel; ComboBox1: TComboBox; DateTimePicker1: TDateTimePicker; Label6: TLabel; Button1: TButton; Panel2: TPanel; dtpYear: TDateTimePicker; Label7: TLabel; cxTabControl1: TcxTabControl; v2Column4: TcxGridDBColumn; Label4: TLabel; Edit1: TEdit; Button3: TButton; Tv2Column1: TcxGridDBColumn; Label8: TLabel; isSJ: TComboBox; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure C_CodeNameChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure v2Column4PropertiesEditValueChanged(Sender: TObject); procedure v2Column7PropertiesEditValueChanged(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure v2Column19PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure v2Column5PropertiesEditValueChanged(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure DateTimePicker1Change(Sender: TObject); private canshu1: string; procedure InitGrid(); function SaveData(): Boolean; { Private declarations } public fkhType: string; Fmanage: string; end; var frmWageList_PZ: TfrmWageList_PZ; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_WageListInput, U_InspectionInfo, U_WorkDetail, U_JTList; {$R *.dfm} function TfrmWageList_PZ.SaveData(): Boolean; var maxId, CRID, FXHNOPZ, FXHNO: string; begin Result := False; try if Trim(CDS_HZ.fieldbyname('GZID').AsString) = '' then begin if GetLSNo(ADOQueryCmd, maxId, 'GZ', 'DCGMoney', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin maxId := Trim(CDS_HZ.fieldbyname('GZID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from DCGMoney where GZID=' + Quotedstr(Trim(maxId))); Open; end; with ADOQueryCmd do begin if Trim(CDS_HZ.fieldbyname('GZID').AsString) = '' then begin Append; FieldByName('GZID').Value := maxId; // FieldByName('GZType').Value := '员工'; FieldByName('Filler').Value := Trim(DName); FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp); end else begin Edit; FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp); end; RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_HZ, 'DCGMoney', 0); Post; end; with CDS_HZ do begin Edit; FieldByName('GZID').Value := Trim(maxId); Post; end; Result := True; except Result := Result; end; end; procedure TfrmWageList_PZ.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select GZDate,YGtype,YGName,SUM(JLMoney) JLMoney,SUM(CFMoney) CFMoney,SUM(GZQty) GZQty,SUM(GZMoney) GZMoney from DCGMoney '); if cxTabControl1.TabIndex = 12 then begin sql.Add(' where year(GZDate)= ' + quotedstr(trim(FormatDateTime('yyyy', dtpYear.DateTime)))); DateTimePicker1.DateTime := dtpYear.DateTime; end else begin if cxTabControl1.TabIndex < 9 then begin sql.Add(' where GZDate= ' + quotedstr(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + '0' + inttostr(cxTabControl1.TabIndex + 1))); DateTimePicker1.DateTime := StrToDate(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + '0' + inttostr(cxTabControl1.TabIndex + 1) + '-01'); end else begin sql.Add(' where GZDate= ' + quotedstr(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + inttostr(cxTabControl1.TabIndex + 1))); DateTimePicker1.DateTime := StrToDate(trim(FormatDateTime('yyyy-', dtpYear.DateTime)) + inttostr(cxTabControl1.TabIndex + 1) + '-01'); end; end; sql.Add(' group by GZDate,YGtype,YGName '); // ShowMessage(SQL.Text); // sql.Add(' where GZDate>= ' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); // sql.Add(' and GZDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)))); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); CDS_HZ.Last; finally ADOQueryMain.EnableControls; end; end; procedure TfrmWageList_PZ.FormDestroy(Sender: TObject); begin frmWageList_PZ := nil; end; procedure TfrmWageList_PZ.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmWageList_PZ.TBCloseClick(Sender: TObject); begin WriteCxGrid('客户资料22', Tv2, '客户自定义'); Close; end; procedure TfrmWageList_PZ.FormShow(Sender: TObject); begin ReadCxGrid('客户资料22', Tv2, '客户自定义'); InitGrid(); end; procedure TfrmWageList_PZ.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmWageList_PZ.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; end; procedure TfrmWageList_PZ.C_CodeNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmWageList_PZ.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid2); // SelExportData(Tv2,ADOQueryMain,'客户资料列表'); end; procedure TfrmWageList_PZ.FormCreate(Sender: TObject); begin dtpYear.DateTime := SGetServerDate10(ADOQueryTemp); DateTimePicker1.DateTime := SGetServerDate10(ADOQueryTemp); canshu1 := Trim(DParameters1); end; procedure TfrmWageList_PZ.v2Column4PropertiesEditValueChanged(Sender: TObject); var FFieldName, mvalue: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update DCGMoney set GZMoney=' + mvalue); sql.Add(' where GZID=' + trim(Self.CDS_HZ.FieldByName('GZID').AsString)); EXECSQL; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmWageList_PZ.v2Column7PropertiesEditValueChanged(Sender: TObject); var FFieldName, mvalue: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update DCGMoney set ' + FFieldName + '=' + QuotedStr(Trim(mvalue))); sql.Add(' where GZID=' + trim(Self.CDS_HZ.FieldByName('GZID').AsString)); EXECSQL; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmWageList_PZ.ToolButton6Click(Sender: TObject); begin with Self.CDS_HZ do begin Append; FieldByName('GZDate').Value := SGetServerDate(ADOQueryTemp); Post; end; end; procedure TfrmWageList_PZ.v2Column19PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'SCPerson'; flagname := '挡车工'; fnote := True; V1Name.Caption := '工号'; V1Note.Caption := '姓名'; // V1Note1.Caption := '班组'; // fnote1 := True; TBAdd.Visible := False; TBDel.Visible := False; TBEdit.Visible := False; TBSave.Visible := False; if ShowModal = 1 then begin with CDS_HZ do begin Edit; FieldByName('DName').Value := Trim(ClientDataSet1.FieldByName('ZDYName').AsString); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update DCGMoney set DName=' + QuotedStr(Trim(ClientDataSet1.FieldByName('ZDYName').AsString))); sql.Add(' where GZID=' + trim(Self.CDS_HZ.FieldByName('GZID').AsString)); EXECSQL; end; tv2.Controller.EditingController.ShowEdit(); end; end; finally frmZDYHelp.free; end; end; procedure TfrmWageList_PZ.N1Click(Sender: TObject); begin SelOKNo(CDS_HZ, True); end; procedure TfrmWageList_PZ.N2Click(Sender: TObject); begin SelOKNo(CDS_HZ, false); end; procedure TfrmWageList_PZ.ToolButton4Click(Sender: TObject); begin try CDS_HZ.DisableControls; ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin while CDS_HZ.Locate('SSel', True, []) do begin if Trim(CDS_HZ.fieldbyname('GZID').AsString) <> '' then begin with Self.ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete DCGMoney where GZID=' + quotedstr(Trim(CDS_HZ.fieldbyname('GZID').AsString))); ExecSQL; end; end; CDS_HZ.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_HZ.EnableControls; except ADOQueryCmd.Connection.RollbackTrans; CDS_HZ.EnableControls; application.MessageBox('数据生成失败!', '提示信息', 0); end; end; procedure TfrmWageList_PZ.ToolButton5Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; ToolBar1.SetFocus; if not CDS_HZ.Locate('SSel', True, []) then begin Application.MessageBox('请选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; CDS_HZ.DisableControls; with CDS_HZ do begin while CDS_HZ.Locate('SSel', True, []) do begin if not SaveData() then begin CDS_HZ.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); Exit; end; with CDS_HZ do begin Edit; FieldByName('SSel').Value := False; Post; end; Next; end; end; CDS_HZ.EnableControls; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('保存成功!', '提示', 0); except CDS_HZ.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmWageList_PZ.v2Column5PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; FGZQty, FGZPrice, FCLMoney, FJLMoney, FCFMoney, FGZMoney: Double; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; FGZQty := CDS_HZ.fieldbyname('GZQty').AsFloat; FGZPrice := CDS_HZ.fieldbyname('GZPrice').AsFloat; FJLMoney := CDS_HZ.fieldbyname('JLMoney').AsFloat; FCFMoney := CDS_HZ.fieldbyname('CFMoney').AsFloat; FCLMoney := RoundFloat(FGZQty * FGZPrice, 1); FGZMoney := FCLMoney + FJLMoney - FCFMoney; end; with CDS_HZ do begin Edit; FieldByName('GZMoney').Value := FGZMoney; Post; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmWageList_PZ.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmWageList_PZ.Button1Click(Sender: TObject); begin with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' exec P_GZ_All_PZ '); sql.Add(' @FGZDate= ' + quotedstr(trim(FormatDateTime('yyyy-MM', DateTimePicker1.DateTime)))); sql.Add(' ,@GZType=' + quotedstr(trim(ComboBox1.Text))); // ShowMessage(sql.text); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; procedure TfrmWageList_PZ.Button3Click(Sender: TObject); var mvalue, FFieldName: string; FGZQty, FGZPrice, FCLMoney, FJLMoney, FCFMoney, FGZMoney: Double; begin FGZPrice := StrToFloatDef(Edit1.Text, 0); with CDS_HZ do begin First; while not Eof do begin if CDS_HZ.fieldbyname('SSel').AsBoolean then begin FGZQty := CDS_HZ.fieldbyname('GZQty').AsFloat; FJLMoney := CDS_HZ.fieldbyname('JLMoney').AsFloat; FCFMoney := CDS_HZ.fieldbyname('CFMoney').AsFloat; FCLMoney := RoundFloat(FGZQty * FGZPrice, 1); FGZMoney := FCLMoney + FJLMoney - FCFMoney; with CDS_HZ do begin Edit; FieldByName('GZPrice').Value := FGZPrice; FieldByName('GZMoney').Value := FGZMoney; Post; end; end; Next; end; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmWageList_PZ.DateTimePicker1Change(Sender: TObject); begin dtpYear.DateTime := DateTimePicker1.DateTime; cxTabControl1.TabIndex := MonthOf(dtpYear.DateTime) - 1; end; end.