unit U_PBRKListHD; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, IniFiles, jpeg, U_SLT, cxLookAndFeels, cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator; type TfrmPBRKListHD = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBEdit: TToolButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; CPName: TEdit; SupplierName: TEdit; SPID: TEdit; BatchNo: TEdit; cxTabControl1: TcxTabControl; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1FactoryName: TcxGridDBColumn; v2SPName: TcxGridDBColumn; v1SPSpec: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1SPCF: TcxGridDBColumn; v1BatchNo: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; CheckBox2: TCheckBox; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure SPIDChange(Sender: TObject); procedure BatchNoChange(Sender: TObject); procedure SupplierNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure TBEditClick(Sender: TObject); private canshu1, canshu2, canshu3: string; procedure InitGrid(); procedure ReadINIFile(); { Private declarations } public { Public declarations } end; var frmPBRKListHD: TfrmPBRKListHD; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_RTFun, U_PBRKInPut, U_FileUp, U_WechatAuthority; {$R *.dfm} procedure TfrmPBRKListHD.FormDestroy(Sender: TObject); begin frmPBRKListHD:=nil; end; procedure TfrmPBRKListHD.FormClose(Sender: TObject; var Action: TCloseAction); var i, j: integer; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); Action := caFree; end; procedure TfrmPBRKListHD.ReadINIFile(); var programIni: Tinifile; //配置文件名 FileName: string; begin FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI'; programIni := Tinifile.create(FileName); server := programIni.ReadString('SERVER', '服务器地址', '127.0.0.1'); programIni.Free; end; procedure TfrmPBRKListHD.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime-60; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); canshu3 := Trim(DParameters3); end; procedure TfrmPBRKListHD.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' exec P_View_RCPBFH_HD '); sql.add(' ' + Quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)))); sql.Add(' ,' + Quotedstr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)))); sql.add(' ,' + Quotedstr(Trim(IntToStr(cxTabControl1.TabIndex)))); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmPBRKListHD.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmPBRKListHD.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmPBRKListHD.TBCloseClick(Sender: TObject); begin if Trim(DName)='ADMIN' then begin WriteCxGridAll(trim(self.Caption), Tv1,ADOQueryCmd,ADOQueryTemp); end; Close; end; procedure TfrmPBRKListHD.FormShow(Sender: TObject); begin ReadCxGridAll(trim(self.Caption), Tv1); InitGrid(); end; procedure TfrmPBRKListHD.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(self.Caption, cxGrid2); end; procedure TfrmPBRKListHD.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; procedure TfrmPBRKListHD.N1Click(Sender: TObject); begin SelOKNoFilter(Tv1, True); end; procedure TfrmPBRKListHD.N2Click(Sender: TObject); begin SelOKNoFilter(Tv1, False); end; procedure TfrmPBRKListHD.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>1 then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要进行数据核对撤销吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update SupplierDeliver set HDFlag=0,HDTime=getdate(),HDPerson='''+Trim(DName)+''''); sql.Add(' where FHID=''' + Trim(CDS_Main.fieldbyname('FHID').AsString) + ''' '); ExecSQL; end; CDS_Main.Delete; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmPBRKListHD.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmPBRKListHD.BatchNoChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmPBRKListHD.SupplierNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmPBRKListHD.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmPBRKListHD.CheckBox2Click(Sender: TObject); var FTag, i: Integer; begin if CheckBox2.Checked then begin FTag := 1; end else begin FTag := 2; end; with Panel1 do begin for i := 0 to ControlCount - 1 do begin if Controls[i] is TLabel then continue; if Controls[i] is TEdit then begin TEdit(Controls[i]).Tag := FTag; end else if Controls[i] is TComboBox then begin TComboBox(Controls[i]).Tag := FTag; end; end; end; TBFind.Click; end; procedure TfrmPBRKListHD.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要进行数据核对吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update SupplierDeliver set HDFlag=1,HDTime=getdate(),HDPerson='''+Trim(DName)+''''); sql.Add(' where FHID=''' + Trim(CDS_Main.fieldbyname('FHID').AsString) + ''' '); ExecSQL; end; CDS_Main.Delete; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; end.