unit U_FrmProduct_CX; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, DBClient, StdCtrls, ExtCtrls, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, cxButtonEdit, cxSplitter, cxCheckBox; type TFrmProduct = class(TForm) ToolBar2: TToolBar; TINIT: TToolButton; Tglv: TToolButton; TSel: TToolButton; Tclose: TToolButton; ADOQueryTmp: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1OrderNo: TcxGridDBColumn; v1OrdPerson2: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1DlyDate: TcxGridDBColumn; v1CustomerNo: TcxGridDBColumn; v1MPRTCodeName: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; v1MPRTKZ: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; v1orddefnote1: TcxGridDBColumn; v1MPRTTangJin: TcxGridDBColumn; v1MPRTKQiQiu: TcxGridDBColumn; v1MPRTChuanY: TcxGridDBColumn; v1MPRTDingPoLv: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Panel1: TPanel; Label1: TLabel; Label3: TLabel; Label4: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; OrderNo: TEdit; CustomerNoName: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTSpec: TEdit; OrdPerson2: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; Order_Main: TClientDataSet; Tchoose: TToolButton; ADOQuerymain: TADOQuery; DataSource1: TDataSource; v1PRTOrderQty: TcxGridDBColumn; v1Ssel: TcxGridDBColumn; Qsel: TCheckBox; v1ConNo: TcxGridDBColumn; v1CustomerNoName: TcxGridDBColumn; procedure FormCreate(Sender: TObject); procedure TcloseClick(Sender: TObject); procedure TINITClick(Sender: TObject); procedure TSelClick(Sender: TObject); procedure TglvClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TchooseClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure TV2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure QselClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); private procedure initdata(); { Private declarations } public { Public declarations } end; var FrmProduct: TFrmProduct; implementation uses U_OrderInPut,U_DataLink,U_fun; {$R *.dfm} procedure TFrmProduct.initdata(); begin try with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.add('select B.Mainid,B.OrderNo,B.OrdPerSon2,B.OrdDate,B.DlyDate,B.CustomerNoname,b.ConNo,B.MPRTCodeName, '); sql.Add('B.MPRTSpec,B.MPRTKZ,B.MPRTMF,B.OrddefNote1,B.MPRTTangJin,B.MPRTKQIQIU,B.MPRTChuanY,B.MPRTDingPoLv,'); sql.add('A.OrderUnit,ZSQty=sum(A.PRTOrderQty) '); sql.add('from JYOrder_sub A'); sql.add('inner join JYorder_main B on B.mainID=A.mainID'); sql.add('where b.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); sql.add('and b.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); sql.add('group by B.Mainid,B.OrderNo,B.OrdPerSon2,B.OrdDate,B.DlyDate,B.CustomerNoname,b.ConNo,B.MPRTCodeName, '); sql.Add('B.MPRTSpec,B.MPRTKZ,B.MPRTMF,B.OrddefNote1,B.MPRTTangJin,B.MPRTKQIQIU,B.MPRTChuanY,B.MPRTDingPoLv,'); sql.add('A.OrderUnit'); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TFrmProduct.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; end; procedure TFrmProduct.TcloseClick(Sender: TObject); begin close; WriteCxGrid(self.Caption+tv1.Name,Tv1); end; procedure TFrmProduct.TINITClick(Sender: TObject); begin with order_Main do begin first; while not Eof do begin edit; fieldbyname('Ssel').AsBoolean:=False; next; end; end; initdata(); Qsel.Checked:=False; end; procedure TFrmProduct.TSelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmOrderInPut:=TfrmOrderInPut.Create(Application); with frmOrderInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); ToolBar2.Visible:=False; TBSave.Visible:=False; ScrollBox1.Enabled:=False; Tv1.OptionsSelection.CellSelect:=False; if ShowModal=1 then begin initdata(); end; end; finally frmOrderInPut.Free; end; end; procedure TFrmProduct.TglvClick(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TFrmProduct.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption+tv1.Name,Tv1); BegDate.DateTime:=SGetServerDate10(ADOQueryTmp)-15; EndDate.DateTime:=SGetServerDate10(ADOQueryTmp); initdata(); end; procedure TFrmProduct.TchooseClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; ModalResult:=1; end; procedure TFrmProduct.OrderNoChange(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TFrmProduct.TV2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin Tchoose.Click; end; procedure TFrmProduct.QselClick(Sender: TObject); begin with order_Main do begin DisableControls; first; while not Eof do begin edit; fieldbyname('Ssel').AsBoolean:=Qsel.Checked; post; next; end; first; EnableControls; end; end; procedure TFrmProduct.FormClose(Sender: TObject; var Action: TCloseAction); begin action:=cafree; end; procedure TFrmProduct.FormDestroy(Sender: TObject); begin FrmProduct:=nil; end; procedure TFrmProduct.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin Tsel.Click; end; procedure TFrmProduct.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin IF trim(OrderNo.Text)='' then exit; with ADOQueryMain do begin Close; sql.Clear; sql.add('select B.*,A.*,B.orderNo '); sql.add('from JYOrder_sub A'); sql.add('inner join jyorder_main B on B.mainID=A.mainID '); sql.Add('where B.OrderNo like '+quotedstr('%'+trim(OrderNo.Text)+'%')); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; end; end.