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; 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); 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('CustomerNo').AsString); end else begin if Trim(fieldbyname('CustomerNo').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('����ѡ��',Tv2,'��Ʒ�ֿ�'); Close; end; procedure TfrmOrderSelRK.FormShow(Sender: TObject); begin ReadCxGrid('����ѡ��',Tv2,'��Ʒ�ֿ�'); InitGrid(); end; procedure TfrmOrderSelRK.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.OrderNo,A.CustomerNoName,A.CustomerNo,A.MPRTCodeName,A.MainId,B.SubId,B.PRTColor,B.OrderUnit,B.PRTOrderQty'); sql.Add(',A.MPRTMF,A.MPRTKZ'); sql.Add(',ZPPS=(select Count(*) from WFB_MJJY WY '); sql.Add(' where WY.SubId=B.SubId and isnull(WY.MJStr2,'''')<>''�����'' and WY.MJType=''��Ʒ'') '); sql.Add(',ZPQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.SubId=B.SubId and isnull(WY.MJStr2,'''')<>''�����'' and WY.MJType=''��Ʒ'') '); sql.Add(',CPPS=(select Count(*) from WFB_MJJY WY '); sql.Add(' where WY.SubId=B.SubId and isnull(WY.MJStr2,'''')<>''�����'' and WY.MJType=''��Ʒ'') '); sql.Add(',CPQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.SubId=B.SubId and isnull(WY.MJStr2,'''')<>''�����'' and WY.MJType=''��Ʒ'') '); sql.Add(',LYPS=(select Count(*) from WFB_MJJY WY '); sql.Add(' where WY.SubId=B.SubId and isnull(WY.MJStr2,'''')<>''�����'' and WY.MJType=''����'') '); sql.Add(',LYQty=(select sum(MJLen) from WFB_MJJY WY '); sql.Add(' where WY.SubId=B.SubId and isnull(WY.MJStr2,'''')<>''�����'' and WY.MJType=''����'') '); sql.Add(' from JYOrder_Main A inner join JYOrder_Sub B on A.MainId=B.Mainid'); sql.Add(' where exists(select * from WFB_MJJY AA '); sql.Add(' where AA.MainId=A.MainId and AA.SubId=B.SubId and isnull(AA.MJStr2,'''')<>''�����'' )'); 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; end.