unit U_OrderSelRK; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ADODB, DBClient, ComCtrls, ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox; type TfrmOrderSelRK = class(TForm) Panel1: TPanel; Label2: TLabel; OrderNo: TEdit; Label3: TLabel; PRTColor: TEdit; CDS_OrderSel: TClientDataSet; DataSource1: TDataSource; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; Button1: TButton; Button2: TButton; Button3: TButton; cxGridPopupMenu1: TcxGridPopupMenu; Label8: TLabel; CustomerNoName: TEdit; cxGrid1: TcxGrid; Tv2: TcxGridDBTableView; v2Column3: TcxGridDBColumn; v1OrderNo: TcxGridDBColumn; v2Column2: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column14: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1PRTMF: TcxGridDBColumn; v1PRTKZ: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; cxStyleRepository3: TcxStyleRepository; cxStyle3: TcxStyle; v2Column7: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2KHConNO: TcxGridDBColumn; v2PRTColorEng: TcxGridDBColumn; v2ZPJZ: TcxGridDBColumn; v2CPJZ: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button3Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button1Click(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure InitGrid(); public { Public declarations } end; var frmOrderSelRK: TfrmOrderSelRK; implementation uses U_DataLink,U_Fun ; {$R *.dfm} procedure TfrmOrderSelRK.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmOrderSelRK.Button2Click(Sender: TObject); var KHName:String; begin if CDS_OrderSel.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; CDS_OrderSel.DisableControls; KHName:=''; with CDS_OrderSel do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean=True then begin if Trim(KHName)='' then begin KHName:=Trim(fieldbyname('CustomerNoName').AsString); end else begin if Trim(fieldbyname('CustomerNoName').AsString)<>KHName then begin Application.MessageBox('不能选择不同客户!','提示',0); Exit; end; end; end; Next; end; end; CDS_OrderSel.EnableControls; ModalResult:=1; end; procedure TfrmOrderSelRK.FormDestroy(Sender: TObject); begin frmOrderSelRK:=nil; end; procedure TfrmOrderSelRK.Button3Click(Sender: TObject); begin ModalResult:=-1; WriteCxGrid('订单选择1',Tv2,'成品仓库'); Close; end; procedure TfrmOrderSelRK.FormShow(Sender: TObject); begin ReadCxGrid('订单选择1',Tv2,'成品仓库'); InitGrid(); end; procedure TfrmOrderSelRK.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,Sum(ZPPS) ZPPS,AA.Mainid,AA.Subid,'); sql.add('Sum(ZPQty) ZPQty,Sum(CPPS) CPPS,Sum(CPQty) CPQty,Sum(ZPJZ) ZPJZ,Sum(CPJZ) CPJZ'); Sql.add(' from (select A.KHConNO,A.ConNO OrderNo,A.CustomerNoName,A.CustomerNo,B.PrtCodeName MPrtCodeName,A.MainId ConMainid,B.SubId ConSubid,B.PRTColor,B.SOrdDefStr4 PRTColorEng,B.OrderUnit,B.PRTOrderQty'); sql.Add(',b.PRTMF MPRTMF,b.PRTKZ MPRTKZ,B.PRTHX,B.PRTColorNO SOrddefstr1,cast('''' as varchar(50)) Mainid,cast('''' as varchar(50)) Subid'); sql.Add(',ZPPS=(select Count(MJID) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''正品'' ) '); sql.Add(',ZPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''正品'' ) '); sql.Add(',ZPQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''正品'' ) '); sql.Add(',CPPS=(select Count(MJID) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''次品'' ) '); sql.Add(',CPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''次品'') '); sql.Add(',CPQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''次品'' ) '); sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.Mainid'); sql.Add(' where exists (select Q.APID from WFB_MJJY Q '); sql.Add(' where Q.Conid=B.Subid and isnull(Q.MJStr2,'''')=''未入库'' ))AA'); //and Q.MJType=''正品'' sql.Add('Group by AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,AA.Mainid,AA.Subid'); Open; end; SCreateCDS20(ADOQueryMain,CDS_OrderSel); SInitCDSData20(ADOQueryMain,CDS_OrderSel); finally; ADOQueryMain.EnableControls; end; end; procedure TfrmOrderSelRK.Button1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmOrderSelRK.OrderNoChange(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_OrderSel); SInitCDSData20(ADOQueryMain,CDS_OrderSel); end; procedure TfrmOrderSelRK.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ModalResult:=1; end; procedure TfrmOrderSelRK.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,Sum(ZPPS) ZPPS,AA.Mainid,AA.Subid,'); sql.add('Sum(ZPQty) ZPQty,Sum(CPPS) CPPS,Sum(CPQty) CPQty,Sum(ZPJZ) ZPJZ,Sum(CPJZ) CPJZ'); Sql.add(' from (select A.KHConNO,A.ConNO OrderNo,A.CustomerNoName,A.CustomerNo,B.PrtCodeName MPrtCodeName,A.MainId ConMainid,B.SubId ConSubid,B.PRTColor,B.SOrdDefStr4 PRTColorEng,B.OrderUnit,B.PRTOrderQty'); sql.Add(',b.PRTMF MPRTMF,b.PRTKZ MPRTKZ,B.PRTHX,B.PRTColorNO SOrddefstr1,cast('''' as varchar(50)) Mainid,cast('''' as varchar(50)) Subid'); sql.Add(',ZPPS=(select Count(MJID) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''正品'') '); sql.Add(',ZPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''正品'') '); sql.Add(',ZPQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''正品'') '); sql.Add(',CPPS=(select Count(MJID) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''次品'') '); sql.Add(',CPJZ=(select sum(isnull(WY.MJQty4,0)) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''次品'') '); sql.Add(',CPQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.Conid=B.Subid and isnull(WY.MJStr2,'''')=''未入库'' and WY.MJType=''次品'') '); sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.Mainid'); sql.Add(' where exists (select Q.APID from WFB_MJJY Q '); sql.Add(' where Q.Conid=B.Subid and isnull(Q.MJStr2,'''')=''未入库'') and A.conNo like '''+'%'+trim(OrderNo.Text)+'%'+''')AA '); sql.Add('Group by AA.KHConNO,AA.OrderNo,AA.CustomerNoName,AA.CustomerNo,AA.MPrtCodeName,AA.ConMainid,AA.ConSubid,AA.PRTColor,AA.PRTColorEng,AA.OrderUnit,AA.PRTOrderQty'); sql.Add(',AA.MPRTMF,AA.MPRTKZ,AA.PRTHX,AA.SOrddefstr1,AA.Mainid,AA.Subid'); Open; end; SCreateCDS20(ADOQueryMain,CDS_OrderSel); SInitCDSData20(ADOQueryMain,CDS_OrderSel); finally ADOQueryMain.EnableControls; end; end; end; end.