unit U_OrderSunSelList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC; type TfrmOrderSunSelList = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryMain: TADOQuery; DataSource1: TDataSource; v1ConNo: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; Order_Main: TClientDataSet; v1CustomerNoName: TcxGridDBColumn; v1MPRTCodeName: TcxGridDBColumn; PopupMenu1: TPopupMenu; N2: TMenuItem; v1Column1: TcxGridDBColumn; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label9: TLabel; OrderNo: TEdit; v1Column7: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; ToolButton2: TToolButton; v1Column13: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; N1: TMenuItem; v1Column5: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column6: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure ToolButton2Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); private procedure InitForm(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmOrderSunSelList: TfrmOrderSunSelList; implementation uses U_DataLink,U_ConInPut,U_RTFun; {$R *.dfm} procedure TfrmOrderSunSelList.FormDestroy(Sender: TObject); begin frmOrderSunSelList:=nil; end; procedure TfrmOrderSunSelList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmOrderSunSelList.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; end; procedure TfrmOrderSunSelList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('订单明细列表选择',Tv1,'生产指示单管理'); end; procedure TfrmOrderSunSelList.InitForm(); begin ReadCxGrid('订单明细列表选择',Tv1,'生产指示单管理'); end; procedure TfrmOrderSunSelList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmOrderSunSelList.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Length(OrderNo.Text)<3 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' select AAA.*,KCPS=AAA.ZPPS-AAA.CKPS,KCQty=AAA.ZPQty-AAA.CKQty '); sql.Add(' from ('); sql.Add(' select AA.* '); sql.Add(' ,Case when isnull(OrderUnit,'''')=''M'' then ZPMQty'); sql.Add(' when isnull(OrderUnit,'''')=''Y'' then ZPYQty'); sql.Add(' else ZPKgQty end as ZPQty'); sql.Add(' ,Case when isnull(OrderUnit,'''')=''M'' then CPMQty'); sql.Add(' when isnull(OrderUnit,'''')=''Y'' then CPYQty'); sql.Add(' else CPKgQty end as CPQty'); sql.Add(' ,CKPS=(select isnull(Sum(FHPS),0) from JYOrder_FH FH where FH.SubId=AA.SubId)'); sql.Add(' ,CKQty=(select Cast(isnull(Sum(FHQty),0) as decimal(18,2)) from JYOrder_FH FH where FH.SubId=AA.SubId)'); sql.Add('from ('); sql.Add('select A.*,B.SubId,B.PRTHX,B.OrderUnit,B.PRTOrdQty '); sql.Add(',PRTColor=isnull(B.PRTColorNo,'''')+'' ''+isnull(B.PRTColor,'''')+'' ''+isnull(B.PRTColorEng,'''')'); sql.Add(',ZPPS=(select Count(*) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''正品'')'); sql.Add(',ZPKgQty=(select Cast(isnull(sum(MJQty4),0) as decimal(18,2)) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''正品'' )'); sql.Add(',ZPMQty=(select Cast(isnull(sum(MJLen),0) as decimal(18,2)) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''正品'')'); sql.Add(',ZPYQty=(select Cast(isnull(sum(MJLenMa),0) as decimal(18,2)) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''正品'')'); sql.Add(',CPPS=(select Count(*) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''次品'')'); sql.Add(',CPKgQty=(select Cast(isnull(sum(MJQty4),0) as decimal(18,2)) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''次品'' )'); sql.Add(',CPMQty=(select Cast(isnull(sum(MJLen),0) as decimal(18,2)) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''次品'')'); sql.Add(',CPYQty=(select Cast(isnull(sum(MJLenMa),0) as decimal(18,2)) from WFB_MJJY WM where WM.SubId=B.SubId and MJType=''次品'')'); sql.Add(' from JYOrder_Main A '); sql.Add(' inner join JYOrder_Sub B on A.MainId=B.MainId'); SQL.Add(' where A.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''')AA)AAA'); //ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmOrderSunSelList.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; OrderNo.SetFocus; ModalResult:=1; end; procedure TfrmOrderSunSelList.N2Click(Sender: TObject); begin SelOKNo(Order_Main,True); end; procedure TfrmOrderSunSelList.N1Click(Sender: TObject); begin SelOKNo(Order_Main,False); end; end.