unit U_TZBCKList; 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, RM_BarCode; type TfrmTZBCKList = 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; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label12: TLabel; Label6: TLabel; Label7: TLabel; SPName: TEdit; FactoryName: TEdit; SPID: TEdit; SPSpec: TEdit; CRType: TComboBox; SPCF: TEdit; QCorderNo: TEdit; Label10: TLabel; CKorderNo: TEdit; Label11: TLabel; FromFactoryName: TEdit; Label13: TLabel; ToFactoryName: TEdit; Label9: TLabel; Label14: TLabel; RCGangNo: TEdit; GangNo: TEdit; v1Column15: TcxGridDBColumn; v1Column20: TcxGridDBColumn; ADOQueryPrint: TADOQuery; Label15: TLabel; PRTColor: TEdit; Label16: TLabel; SOrddefstr1: TEdit; Label17: TLabel; PRTHX: TEdit; RM1: TRMGridReport; RMBarCodeObject1: TRMBarCodeObject; v1Column22: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column25: TcxGridDBColumn; LBGANG: TComboBox; v1Column26: TcxGridDBColumn; prtkuanNo: TEdit; Label18: TLabel; v1Column27: TcxGridDBColumn; v1Column28: TcxGridDBColumn; v1Column29: TcxGridDBColumn; ToolButton1: 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 SPNameChange(Sender: TObject); procedure SPIDChange(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure PRTColorChange(Sender: TObject); procedure SOrddefstr1Change(Sender: TObject); procedure PRTHXChange(Sender: TObject); procedure QCorderNoKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); private canshu1,canshu2:string; procedure InitGrid(); procedure GetGangLb(); { Private declarations } public { Public declarations } end; var frmTZBCKList: TfrmTZBCKList; implementation uses U_DataLink,U_RTFun,U_DJBCKOutPut, U_TZBCKPut; {$R *.dfm} procedure TfrmTZBCKList.GetGangLb(); begin LBGANG.Items.Clear; ADOQueryTemp.DisableControls; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from KH_Zdy where Type=''LBGANGFLAG'' '); open; If not isEmpty then begin while not eof do begin LBGANG.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; LBGANG.ItemIndex:=0; end; end; ADOQueryTemp.EnableControls; end; procedure TfrmTZBCKList.FormDestroy(Sender: TObject); begin frmTZBCKList:=nil; end; procedure TfrmTZBCKList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmTZBCKList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-1; end; procedure TfrmTZBCKList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* ,B.SOrddefstr1,B.PRTColor,B.PRTHX,B.PrtkuanNo'); sql.Add(' from CK_SXPB_CR A'); sql.Add(' left join JYOrder_Sub B on A.ORDSubIdRK=B.SubId'); sql.add(' where A.CRTime>=:begdate and A.CRTime<:enddate'); SQL.Add(' and CRFlag=''出库'' '); SQL.Add(' and isnull(CKName,'''')=''头子布'' '); Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime)); Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmTZBCKList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmTZBCKList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmTZBCKList.TBCloseClick(Sender: TObject); begin WriteCxGrid('外加工出库列表PMD',Tv1,'外加工仓库'); Close; end; procedure TfrmTZBCKList.FormShow(Sender: TObject); begin 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; GetGangLb(); ReadCxGrid('外加工出库列表PMD',Tv1,'外加工仓库'); //InitGrid(); end; procedure TfrmTZBCKList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('外加工出库列表',cxGrid2); end; procedure TfrmTZBCKList.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 TfrmTZBCKList.SPNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTZBCKList.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text))<4 then begin if Trim(SPID.Text)<>'' then Exit; end; TBFind.Click; end; procedure TfrmTZBCKList.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(' 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 TfrmTZBCKList.N1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; CDS_Main.DisableControls; with CDS_Main do begin First; while not eof do begin if Trim(CDS_Main.fieldbyname('CRType').AsString)='检验出库' then begin Edit; FieldByName('SSel').Value:=True; Post; end; Next; end; end; CDS_Main.EnableControls; end; procedure TfrmTZBCKList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmTZBCKList.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 with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID='); sql.Add('(select SPID from CK_SXPB_CR where PYID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); sql.Add(' and isnull(CRType,'''')=''平移入库'')'); sql.Add(' and CRQtyFlag=-1'); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已有出库记录,不能删除!','提示',0); Exit; end; 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)+''''); sql.Add(' Update CK_SXPB_CR Set MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(' where SPID='''+Trim(CDS_Main.fieldbyname('FZSPID').AsString)+''''); if Trim(CDS_Main.fieldbyname('CRType').AsString)='平移出库' then begin sql.Add(' delete CK_SXPB_CR where isnull(PYID,'''')='''+Trim(CDS_Main.fieldbyname('PYID').AsString)+''''); end; ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!','提示',0); end; end; CDS_Main.Delete; end; procedure TfrmTZBCKList.TBAddClick(Sender: TObject); begin try frmTZBCKPut:=TfrmTZBCKPut.Create(Application); with frmTZBCKPut do begin FBCId:=''; if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmTZBCKPut.Free; end; end; procedure TfrmTZBCKList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmTZBCKPut:=TfrmTZBCKPut.Create(Application); with frmTZBCKPut 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 frmTZBCKPut.Free; end; end; procedure TfrmTZBCKList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then begin Tv1.OptionsSelection.CellSelect:=False; end else begin Tv1.OptionsSelection.CellSelect:=True; end; end; procedure TfrmTZBCKList.PRTColorChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTZBCKList.SOrddefstr1Change(Sender: TObject); begin TBFind.Click; end; procedure TfrmTZBCKList.PRTHXChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTZBCKList.QCorderNoKeyPress(Sender: TObject; var Key: Char); begin IF trim(QCorderNo.Text)='' then exit; IF Key=#13 then begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; Filtered:=False; sql.Clear; sql.Add(' select A.* ,B.SOrddefstr1,B.PRTColor,B.PRTHX,B.PrtkuanNo'); sql.Add(' from CK_SXPB_CR A'); sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId'); sql.add(' where A.QCorderNo like '+quotedstr('%'+trim(QCorderNo.text)+'%')); SQL.Add(' and CRFlag=''出库'' '); SQL.Add(' and isnull(CKName,'''')=''头子布'' '); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmTZBCKList.ToolButton1Click(Sender: TObject); var fPrintFile:string; Txt,fImagePath:string; Moudle: THandle; Makebar:TMakebar; Mixtext:TMixtext; begin if CDS_Main.IsEmpty then Exit; //if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then Exit; if CDS_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; IF Trim(LBGANG.Text)='' then begin Application.MessageBox('选择要打印的缸标签!','提示',0); Exit; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LBGANG.Text)+'.rmf' ; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel',True,[]) do begin with ADOQueryPrint do begin Close; sql.Clear; sql.Add(' select A.* ,OrderNoM=B.OrderNo,B.OrderNo,B.conNO,B.CustomerNoName,B.OrdPerson1,B.MPRTCodeName,B.MPrtkuanNO,C.prtkuanNo,C.PRTColor,C.PRTHX,B.MPRTBZNote,B.MPRTKaiJian, '); sql.Add('khConNo=(select top 1 khConNo from JYOrderCon_Main X where X.ConNO=B.conNO), '); sql.Add('B.MPRTYaoFeng,B.MPRTTangJin,B.MPRTJiBenNote,B.MPRTTeBieNote,C.SOrddefstr1,C.SOrddefstr4'); sql.Add(' from CK_SXPB_CR A'); sql.Add(' left join JYOrder_Main B on A.ORDmainIdCK=B.mainID'); sql.Add(' left join JYOrder_Sub C on A.ORDSubIdCK=C.subID'); sql.Add(' where A.SPId='''+Trim(CDS_Main.fieldbyname('SPId').AsString)+''''); Open; end; SCreateCDS20(ADOQueryPrint,CDS_PRT); SInitCDSData20(ADOQueryPrint,CDS_PRT); try Moudle:=LoadLibrary('MakeQRBarcode.dll'); @Makebar:=GetProcAddress(Moudle,'Make'); @Mixtext:=GetProcAddress(Moudle,'MixText'); Txt:=Trim(CDS_PRT.fieldbyname('SPID').AsString); fImagePath:=ExtractFilePath(Application.ExeName)+'image\temp.bmp' ; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName)+'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName)+'image'),nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt),Length(Txt),3,3,0,PChar(fImagePath),3); except CDS_Main.EnableControls; application.MessageBox('条形码生成失败!','提示信息',MB_ICONERROR); exit; end; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE']:=fImagePath; RM1.LoadFromFile(fPrintFile); //RM1.ShowReport; RM1.PrintReport; end else begin CDS_Main.EnableControls; Application.MessageBox(PChar('没有找'+fPrintFile),'提示',0); Exit; end; Edit; FieldByName('SSel').Value:=False; Post; end; end; CDS_Main.EnableControls; end; end.