unit U_TCLIST; 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, cxButtonEdit, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxDropDownEdit; type TfrmTCLIST = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; OrderNo: TEdit; v1OrderNo: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; Label4: TLabel; CustomerNoName: TEdit; PopupMenu1: TPopupMenu; N2: TMenuItem; Label8: TLabel; MPRTCodeName: TEdit; Label9: TLabel; ConNo: TEdit; Label10: TLabel; MPRTSpec: TEdit; Label11: TLabel; MPRTCode: TEdit; Label12: TLabel; MPRTKZ: TEdit; Label13: TLabel; MPRTMF: TEdit; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column1: TcxGridDBColumn; Label2: TLabel; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; RMDBsub: TRMDBDataSet; CDS_sub: TClientDataSet; v1ISFJ: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column6: TcxGridDBColumn; Label5: TLabel; OrdPerson1: TEdit; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxSplitter1: TcxSplitter; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; DataSource2: TDataSource; ToolButton1: TToolButton; cxTabControl1: TcxTabControl; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; CheckBox1: TCheckBox; TV2Column3: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBTPClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); private DQdate: TDateTime; procedure InitGrid(); procedure InitSub(); procedure InitForm(); function DelData(): Boolean; { Private declarations } public canshu1: string; { Public declarations } end; var frmTCLIST: TfrmTCLIST; implementation uses U_DataLink, U_Fun; {$R *.dfm} procedure TfrmTCLIST.InitSub(); begin ADOQueryCmd.Close; if Order_Main.IsEmpty then exit; ADOQueryCmd.DisableControls; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select *,ZJYPS=(SELECT COUNT(MJID) FROM WFB_MJJY B WHERE A.SUBID=B.SUBID ) '); SQL.Add(',FJYPS=ISNULL((SELECT SUM(PIQTY) FROM CK_SXPB_cR D WHERE D.OrdSubIdRK=A.SUBID AND SFJY=''否''),0)'); SQL.Add('+ISNULL((SELECT COUNT(E.MJID) FROM CK_BanCP_CR D inner join CK_BanCP_kc e on d.mjid=e.mjid WHERE CRFLAG=''入库'' and e.c_code=a.prtcode and c_color=a.prtcolor AND RKOrdID=A.MAINID),0)'); SQL.Add(',FJYQTY=isnull((SELECT SUM(QTY) FROM CK_SXPB_cR D WHERE D.OrdSubIdRK=A.SUBID and SFJY=''否''),0)'); SQL.Add('+ISNULL((SELECT sum(qty) FROM CK_BanCP_CR D inner join CK_BanCP_kc e on d.mjid=e.mjid WHERE CRFLAG=''入库'' and e.c_code=a.prtcode and c_color=a.prtcolor AND RKOrdID=A.MAINID),0)'); SQL.Add(',ZJYQTY=(CASE WHEN OrderUnit=''KG'' OR OrderUnit=''公斤'' then (SELECT SUM(mjmaoz) FROM WFB_MJJY B WHERE A.SUBID=B.SUBID ) else (SELECT SUM(MJLEN) FROM WFB_MJJY B WHERE A.SUBID=B.SUBID )END )'); SQL.Add('from ORDER_TC_MX A'); sql.Add('where mainID =' + quotedstr((Order_Main.fieldbyname('mainID').AsString))); open; end; SCreateCDS20(ADOQueryCmd, CDS_sub); SInitCDSData20(ADOQueryCmd, CDS_sub); ADOQueryCmd.EnableControls; end; procedure TfrmTCLIST.FormDestroy(Sender: TObject); begin frmTCLIST := nil; end; procedure TfrmTCLIST.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmTCLIST.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; canshu1 := trim(DParameters1); //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate := SGetServerDate(ADOQueryTemp); end; procedure TfrmTCLIST.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('退货选择', Tv1, '财务退货申请'); end; procedure TfrmTCLIST.InitGrid(); var fwsql: string; begin fwsql := ''; fwsql := fwsql + ' and isnull(A.status,''0'')=''2'' '; if cxTabControl1.TabIndex = 0 then fwsql := fwsql + ' and not exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.mainid ) ' else fwsql := fwsql + ' and exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.MAINID )'; // ShowMessage(fwsql); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.add('exec P_View_Order_TC :begdate,:enddate,:WSql'); if CheckBox1.Checked = True then begin Parameters.ParamByName('begdate').Value := FormatDateTime('yyyy-MM-dd', BegDate.DateTime); Parameters.ParamByName('enddate').Value := FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1); end else begin Parameters.ParamByName('begdate').Value := FormatDateTime('2000-01-01', BegDate.DateTime); Parameters.ParamByName('enddate').Value := FormatDateTime('2099-12-31', enddate.DateTime + 1); end; Parameters.ParamByName('WSql').Value := fwsql; Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmTCLIST.InitForm(); begin ReadCxGrid('退货选择', Tv1, '财务退货申请'); BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 7; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmTCLIST.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; function TfrmTCLIST.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete Order_TC where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); sql.Add('delete Order_TC_mx where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('退货单删除'))); sql.Add(',' + quotedstr(trim('退货单号:' + trim(Order_Main.FieldByName('OrderNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmTCLIST.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmTCLIST.OrderNoChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmTCLIST.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmTCLIST.TBTPClick(Sender: TObject); var FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string; begin end; procedure TfrmTCLIST.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmTCLIST.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmTCLIST.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var id, id10: Integer; begin end; procedure TfrmTCLIST.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSub(); end; procedure TfrmTCLIST.ToolButton1Click(Sender: TObject); begin if cxTabControl1.TabIndex <> 0 then exit; ModalResult := 1; end; procedure TfrmTCLIST.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.