unit U_DSZSD; 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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxPC, MovePanel; type TfrmDSZSDlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; CheckBox1: TCheckBox; Label4: TLabel; Label5: TLabel; Label10: TLabel; Label11: TLabel; FactoryName: TEdit; SPID: TEdit; SPCode: TEdit; pihao: TEdit; cxTabControl1: TcxTabControl; ToolButton1: TToolButton; ToolButton2: TToolButton; ComboBox1: TComboBox; Label3: TLabel; Label6: TLabel; khname: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column9: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column17: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column7: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; v1Column16: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column19: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; ToolButton3: TToolButton; ToolButton4: TToolButton; Tv1Column2: TcxGridDBColumn; ToolButton5: TToolButton; ADOQueryPrint: TADOQuery; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Label1: TLabel; YWY: TEdit; Panel2: TPanel; cxGrid1: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn13: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DS_MX: TDataSource; CDS_MX: TClientDataSet; Tv1Column12: TcxGridDBColumn; ToolButton6: TToolButton; 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 TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure SPCodeKeyPress(Sender: TObject; var Key: Char); procedure CRTypeChange(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton6Click(Sender: TObject); private canshu2, canshu3: string; procedure InitGrid(); procedure Initsub(); procedure SetStatus(); { Private declarations } public canshu1: string; { Public declarations } end; var frmDSZSDlist: TfrmDSZSDlist; implementation uses U_DataLink, U_RTFun, U_Fun, U_DSZSDInPut; {$R *.dfm} procedure TfrmDSZSDlist.SetStatus(); begin TBAdd.Visible := False; ToolButton1.Visible := False; ToolButton2.Visible := False; TBEdit.Visible := False; TBDel.Visible := False; case cxTabControl1.TabIndex of 0: begin TBAdd.Visible := True; TBEdit.Visible := true; TBDel.Visible := true; if canshu1 = '管理' then begin ToolButton1.Visible := True; end; end; 1: begin if canshu1 = '管理' then begin ToolButton2.Visible := True; end; end; 2: begin end; end; end; procedure TfrmDSZSDlist.FormDestroy(Sender: TObject); begin frmdszsdlist := nil; end; procedure TfrmDSZSDlist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmDSZSDlist.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); canshu3 := Trim(DParameters3); end; procedure TfrmDSZSDlist.Initsub(); var pwhere: string; begin try ADOQueryCmd.DisableControls; with ADOQueryCmd do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CK_DSZSD_mx a where spid=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPID').AsString))); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryCmd, CDS_mx); SInitCDSData20(ADOQueryCmd, CDS_mx); finally ADOQueryCmd.EnableControls; end; end; procedure TfrmDSZSDlist.InitGrid(); var pwhere: string; begin if SGetFilters(Panel1, 1, 2) <> '' then pwhere := ' and ' + SGetFilters(Panel1, 1, 2); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); SQL.Add(',ZQTY=(SELECT SUM(ISNULL(MXQTY,0)) FROM CK_DSZSD_MX B WHERE B.SPID=A.SPID)'); sql.Add(' from CK_DSZSD A where 1=1'); if CheckBox1.Checked = true then begin sql.add(' and A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); end; if cxTabControl1.TabIndex = 0 then begin sql.Add('and isnull(status,'''')='''''); end else if cxTabControl1.TabIndex = 1 then begin sql.Add('and isnull(status,'''')=''1'''); end; if ComboBox1.Text <> '' then begin sql.Add('and ISNULL(wcstatus,''未完成'')=' + QuotedStr(ComboBox1.Text)); end; sql.Add(' and isnull(CKName,'''')=''打色指示单'''); SQL.Add(' and CRFlag=''入库'' '); sql.Add(pwhere); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmDSZSDlist.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmDSZSDlist.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmDSZSDlist.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption, Tv1, self.Caption + '1'); WriteCxGrid(self.Caption, Tv2, self.Caption + '2'); Close; end; procedure TfrmDSZSDlist.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption, Tv1, self.Caption + '1'); ReadCxGrid(self.Caption, Tv2, self.Caption + '2'); if Trim(canshu2) = '查看' then begin TBAdd.Visible := False; TBDel.Visible := False; TBEdit.Visible := False; end else begin TBAdd.Visible := True; TBDel.Visible := True; TBEdit.Visible := True; end; SetStatus(); //InitGrid(); end; procedure TfrmDSZSDlist.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('打色指示单', cxGrid2); end; procedure TfrmDSZSDlist.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 TfrmDSZSDlist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmDSZSDlist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmDSZSDlist.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if trim(CDS_Main.FieldByName('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人数据!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_dszsd where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' and CRQtyFlag=-1'); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已有出库记录,不能删除!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_dszsd where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' delete CK_dszsd_mx where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end else begin CDS_Main.Delete; end; end; procedure TfrmDSZSDlist.TBAddClick(Sender: TObject); begin try frmDSDINPUT := TfrmDSDINPUT.Create(Application); with frmDSDINPUT do begin FBCId := ''; frmDSDINPUT.canshu3 := Trim(Self.canshu3); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDSDINPUT.Free; end; end; procedure TfrmDSZSDlist.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; // if trim(CDS_Main.FieldByName('Filler').AsString) <> Trim(DName) then // begin // Application.MessageBox('不能操作他人数据!', '提示', 0); // Exit; // end; try frmDSDINPUT := TfrmDSDINPUT.Create(Application); with frmDSDINPUT do begin FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible := False; TBAdd.Visible := False; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDSDINPUT.Free; end; end; procedure TfrmDSZSDlist.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmDSZSDlist.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmDSZSDlist.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDSZSDlist.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDSZSDlist.SPCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmDSZSDlist.CRTypeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmDSZSDlist.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmDSZSDlist.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET status=''1'',chker=''' + trim(DName) + ''',Chktime=getdate() '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('订单审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('订单审核失败!', '提示信息', 0); end; end; procedure TfrmDSZSDlist.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET status=NULL,chker=NULL,Chktime=NULL '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('撤销成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmDSZSDlist.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmDSZSDlist.ToolButton4Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET wcstatus=''未完成'' '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('操作成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmDSZSDlist.ToolButton5Click(Sender: TObject); var fPrintFile: string; Porderno, LBName, SYRName: string; i, j: Integer; OrderKg: Double; begin if CDS_Main.IsEmpty then Exit; LBName := '打色单'; ExportFtErpFile(Trim(LBName) + '.rmf', ADOQueryTemp); with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select *,B.MXQTY,B.MXCOLOR,B.MXQTYUNIT '); SQL.Add(',ZQTY=(SELECT SUM(ISNULL(MXQTY,0)) FROM CK_DSZSD_MX B WHERE B.SPID=A.SPID)'); sql.add('from CK_DSZSD A LEFT JOIN CK_DSZSD_MX B ON A.SPID=B.SPID WHERE A.SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryPrint, CDS_PRT); SInitCDSData20(ADOQueryPrint, CDS_PRT); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RMVariables['SYRName'] := Trim(SYRName); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf'), '提示', 0); end; end; procedure TfrmDSZSDlist.ComboBox1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmDSZSDlist.ToolButton3Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_DSZSD SET wcstatus=''已完成'' '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('操作成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmDSZSDlist.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if CDS_Main.IsEmpty then Exit; Initsub(); end; procedure TfrmDSZSDlist.ToolButton6Click(Sender: TObject); var fPrintFile: string; Porderno, LBName, SYRName: string; i, j: Integer; OrderKg: Double; begin if CDS_Main.IsEmpty then Exit; LBName := '捞色单'; ExportFtErpFile(Trim(LBName) + '.rmf', ADOQueryTemp); with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select *,B.MXQTY,B.MXCOLOR,B.MXQTYUNIT '); SQL.Add(',ZQTY=(SELECT SUM(ISNULL(MXQTY,0)) FROM CK_DSZSD_MX B WHERE B.SPID=A.SPID)'); sql.add('from CK_DSZSD A LEFT JOIN CK_DSZSD_MX B ON A.SPID=B.SPID WHERE A.SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryPrint, CDS_PRT); SInitCDSData20(ADOQueryPrint, CDS_PRT); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RMVariables['SYRName'] := Trim(SYRName); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf'), '提示', 0); end; end; end.