unit U_DJBNZJList; 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, cxContainer, cxImage, cxDBEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxPC; type TfrmDJBNZJList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: 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; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Label3: TLabel; Label4: TLabel; SPCODE: TEdit; FactoryName: TEdit; Label6: TLabel; SPCF: TEdit; Label7: TLabel; spid: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column19: TcxGridDBColumn; Label11: TLabel; RCGangNo: TEdit; Panel2: TPanel; Picture4: TcxDBImage; ADOQueryImage: TADOQuery; DSImage: TDataSource; Label16: TLabel; CustomerNOName2: TEdit; cxGrid1: TcxGrid; TvMX: TcxGridDBTableView; cxGridDBColumn8: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; CDS_MX: TClientDataSet; DS_MX: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; Tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; TBExport: TToolButton; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; cxTabControl1: TcxTabControl; ToolButton3: TToolButton; ToolButton4: TToolButton; Tv1Column15: TcxGridDBColumn; Label12: TLabel; CRType: TComboBox; Tv1Column16: TcxGridDBColumn; CheckBox1: TCheckBox; Tv1Column17: TcxGridDBColumn; Tv1Column18: TcxGridDBColumn; Label1: TLabel; SPColor: TEdit; Tv1Column19: 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 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 Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure FormResize(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton2Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure SPCODEKeyPress(Sender: TObject; var Key: Char); procedure CRTypeChange(Sender: TObject); private canshu2: string; procedure InitGrid(); procedure InitImage(fsubID: string); procedure InitMXGrid(MCRNO: string); { Private declarations } public { Public declarations } canshu1: string; end; var frmDJBNZJList: TfrmDJBNZJList; implementation uses U_DataLink, U_RTFun, U_DJBCKInPut, U_ZdyAttachGYS, U_NJLISTINPUT, U_Fun; {$R *.dfm} procedure TfrmDJBNZJList.InitMXGrid(MCRNO: string); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CRMX where CRNO=' + quotedstr(Trim(MCRNO))); sql.Add(' order by MXID'); Open; end; SCreateCDS20(ADOQueryTemp, CDS_MX); SInitCDSData20(ADOQueryTemp, CDS_MX); end; procedure TfrmDJBNZJList.InitImage(fsubID: string); begin ADOQueryImage.close; // IF fwbid='' then exit; with ADOQueryImage do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('inner join JYOrder_Sub B on B.HXFile=A.WBID'); sql.Add('where B.SubID=' + quotedstr(trim(fsubID))); open; end; end; procedure TfrmDJBNZJList.FormDestroy(Sender: TObject); begin frmDJBNZJList := nil; end; procedure TfrmDJBNZJList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmDJBNZJList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 180; end; procedure TfrmDJBNZJList.InitGrid(); var WSql: string; begin WSql := SGetFilters(Panel1, 1, 2); if Trim(WSql) <> '' then WSql := ' and ' + WSql; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select * from ('); sql.Add(' select A.*,b.CustomerNOName as CustomerNOName2,b.SalesClass '); sql.Add(' from CK_SXPB_CR A left join jyorder_main b on a.ORDMainIdRK=b.mainid'); sql.add(' where 1=1 '); if CheckBox1.Checked 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; sql.Add(' and isnull(CKName,'''')=''待检布'''); SQL.Add(' and CRFlag=''入库'' '); sql.Add('and CRType<>''客户退货'''); if cxTabControl1.TabIndex = 0 then begin SQL.Add('and ISNULL(njhf,0)=''0'''); end else if cxTabControl1.TabIndex = 1 then begin SQL.Add('and njhf=''1'''); end; sql.Add(')aa where 1=1'); SQL.Add(WSql); // InitGrid(); // ShowMessage(SQL.Text); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmDJBNZJList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmDJBNZJList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmDJBNZJList.TBCloseClick(Sender: TObject); begin WriteCxGrid('待检布入库列表', Tv1, '待检布仓库99'); WriteCxGrid('待检布入库列表2', TvMX, '待检布仓库'); Close; end; procedure TfrmDJBNZJList.FormShow(Sender: TObject); begin ReadCxGrid('待检布入库列表', Tv1, '待检布仓库99'); ReadCxGrid('待检布入库列表2', TvMX, '待检布仓库'); ToolButton2.Visible := False; ToolButton4.Visible := False; if Trim(CANSHU1) = '录入' then begin ToolButton2.Visible := False; end else begin ToolButton2.Visible := True; ToolButton4.Visible := True; end; InitGrid(); end; procedure TfrmDJBNZJList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('内质检列表', cxGrid2); end; procedure TfrmDJBNZJList.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 TfrmDJBNZJList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmDJBNZJList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmDJBNZJList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then begin if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能删除!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR 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_SXPB_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; // if UpdateSXPB(ADOQueryCmd, Trim(CDS_Main.fieldbyname('ORDMainIdRK').AsString), Trim(CDS_Main.fieldbyname('ORDSubIdRK').AsString)) = False then // begin // ADOQueryCmd.Connection.RollbackTrans; // Application.MessageBox('更新进度失败!', '提示', 0); // Exit; // end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end else begin CDS_Main.Delete; end; end; procedure TfrmDJBNZJList.TBAddClick(Sender: TObject); begin try frmDJBCKInPut := TfrmDJBCKInPut.Create(Application); with frmDJBCKInPut do begin FBCId := ''; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDJBCKInPut.Free; end; end; procedure TfrmDJBNZJList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能修改!', '提示', 0); Exit; end; try frmDJBCKInPut := TfrmDJBCKInPut.Create(Application); with frmDJBCKInPut 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 frmDJBCKInPut.Free; end; end; procedure TfrmDJBNZJList.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin {if Length(Trim(SPID.Text))<4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)'); //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where SPID like :SXID'); Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%'; Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; } end; end; procedure TfrmDJBNZJList.SPIDChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDJBNZJList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDJBNZJList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDJBNZJList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // ADOQueryImage.Close; // IF CDS_Main.IsEmpty then exit; // InitImage(CDS_Main.fieldbyname('OrdSubIdRK').AsString); end; procedure TfrmDJBNZJList.FormResize(Sender: TObject); begin Panel2.Left := self.Width - Panel2.Width - 30; Panel2.Top := self.Height - Panel2.Height - 80; end; procedure TfrmDJBNZJList.ToolButton1Click(Sender: TObject); var fPrintFile: string; WSql: string; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile('理化测试报告.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\理化测试报告.rmf'; with ADOQueryPrint do begin Close; sql.Clear; sql.Add(' SELECT *,NJ_FS2=B.NJ_FS FROM CK_SXPB_CR A left join JYOrder_Main B on a.ORDMainIdRK=b.mainid '); Sql.add(' left join JYOrder_Sub C on a.ORDSubIdRK=c.subid '); SQL.ADD('WHERE SPID=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPID').AsString))); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryPrint, CDS_PRT); SInitCDSData20(ADOQueryPrint, CDS_PRT); if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; // RM1.PrintReport; end else begin CDS_Main.EnableControls; Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\检验指示单标签A4.rmf'), '提示', 0); Exit; end; InitGrid(); end; procedure TfrmDJBNZJList.TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin // FBounds := AViewInfo.Bounds; // if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then // begin // ACanvas.FillRect(FBounds); // ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); // FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1); // InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux. // ACanvas.Font.Color := clBlack; // ACanvas.Brush.Style := bsClear; // ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); // ADone := True; // end; end; procedure TfrmDJBNZJList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin // InitMXGrid(Trim(CDS_Main.fieldbyname('SPID').AsString)); end; procedure TfrmDJBNZJList.ToolButton2Click(Sender: TObject); begin try frmnzjnPut := TfrmnzjnPut.Create(Application); with frmnzjnPut do begin if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmnzjnPut.Free; end; end; procedure TfrmDJBNZJList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmDJBNZJList.ToolButton3Click(Sender: TObject); begin try frmnzjnPut := TfrmnzjnPut.Create(Application); with frmnzjnPut do begin FMainId := CDS_Main.fieldbyname('SPID').AsString; fstatus := Self.cxTabControl1.TabIndex; fbegdate := Self.BegDate.DateTime; fenddate := Self.endDate.DateTime; TBSave.Visible := False; // Panel2.Enabled := False; Panel1.Enabled := False; canshu1 := '查看'; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmnzjnPut.Free; end; end; procedure TfrmDJBNZJList.ToolButton4Click(Sender: TObject); begin try frmnzjnPut := TfrmnzjnPut.Create(Application); with frmnzjnPut do begin FMainId := CDS_Main.fieldbyname('SPID').AsString; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmnzjnPut.Free; end; end; procedure TfrmDJBNZJList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmDJBNZJList.Tv1DblClick(Sender: TObject); begin try frmnzjnPut := TfrmnzjnPut.Create(Application); with frmnzjnPut do begin FMainId := CDS_Main.fieldbyname('SPID').AsString; TBSave.Visible := False; // Panel2.Enabled := False; Panel1.Enabled := False; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmnzjnPut.Free; end; end; procedure TfrmDJBNZJList.SPCODEKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmDJBNZJList.CRTypeChange(Sender: TObject); begin InitGrid(); end; end.