unit U_TradePackClothInList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList; type TfrmTradePackClothInList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; Label3: TLabel; C_name: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column10: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; ToolButton1: TToolButton; Tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column2: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn12: TcxGridDBColumn; cxGridDBColumn14: TcxGridDBColumn; cxGridDBColumn21: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; CDS_HZ: TClientDataSet; DataSource2: TDataSource; ADOQuerysub: TADOQuery; Label4: TLabel; C_Code: TEdit; Label5: TLabel; Yardstick: TEdit; Tv1Column3: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure BCIOIDChange(Sender: TObject); procedure C_specChange(Sender: TObject); procedure FromCoNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); private canshu1, canshu2, canshu3: string; procedure InitHZ(); procedure InitGrid(); procedure setStatus(); { Private declarations } public FSTKName: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_LabelPrint, U_TradePackClothInEdit; {$R *.dfm} procedure TfrmTradePackClothInList.setStatus(); begin end; procedure TfrmTradePackClothInList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmTradePackClothInList.FormCreate(Sender: TObject); begin inherited; EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 30; canshu1 := Trim(self.fParameters1); canshu2 := Trim(self.fParameters2); canshu3 := Trim(self.fParameters3); end; procedure TfrmTradePackClothInList.InitHZ(); begin try ADOQuerysub.DisableControls; with ADOQuerysub do begin Filtered := False; Close; sql.Clear; sql.Add(' select convert(varchar(20),A.IOTime,23) as IOTime,C_Name,C_Code,Yardstick,Count(*) as Qty '); sql.Add(' from BS_Cloth_IO A'); sql.add(' where A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); sql.Add(' and isnull(STKNAME,'''')=''' + Trim(FSTKNAME) + ''''); SQL.Add(' and IOFlag=''入库'' '); sql.Add(' group by convert(varchar(20),A.IOTime,23),C_Name,C_Code,Yardstick '); SQL.Add(' order by IOTime desc'); // ShowMessage(sql.Text); Open; end; SDofilter(ADOQuerysub, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQuerysub, cds_hz); SInitCDSData(ADOQuerysub, cds_hz); finally ADOQuerysub.EnableControls; end; end; procedure TfrmTradePackClothInList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from BS_Cloth_IO A'); // sql.add(' where A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); // sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); sql.Add(' where isnull(STKNAME,'''')=''' + Trim(FSTKNAME) + ''''); SQL.Add(' and IOFlag=''入库'' '); sql.add(' and convert(varchar(20),A.IOTime,23)=''' + cds_hz.FieldByName('iotime').AsString + ''' '); sql.Add(' and isnull(C_Name,'''')=''' + cds_hz.FieldByName('C_Name').AsString + ''' '); sql.Add(' and isnull(C_Code,'''')=''' + cds_hz.FieldByName('C_Code').AsString + ''' '); sql.Add(' and isnull(Yardstick,'''')=''' + cds_hz.FieldByName('Yardstick').AsString + ''' '); SQL.Add(' order by IOTime desc'); Open; end; // SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmTradePackClothInList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; initHZ(); InitGrid(); end; procedure TfrmTradePackClothInList.ToolButton1Click(Sender: TObject); begin WriteCxGrid(Self.Caption, Tv1, '贸易汇总仓库'); end; procedure TfrmTradePackClothInList.ToolButton2Click(Sender: TObject); var MBCIOID: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + QuotedStr(Trim(CDS_Main.fieldbyname('BCIOID').AsString)); Edit; FieldByName('SSel').Value := False; Post; end; end; CDS_Main.EnableControls; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'TradeFinishClothInPrt1'; FFiltration1 := MBCIOID; if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; procedure TfrmTradePackClothInList.TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin inherited; InitGrid(); end; procedure TfrmTradePackClothInList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmTradePackClothInList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradePackClothInList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Self.Caption, Tv1, '贸易汇总仓库'); setStatus(); InitHZ(); InitGrid(); end; procedure TfrmTradePackClothInList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(FSTKName + '入库列表', cxGrid1); end; procedure TfrmTradePackClothInList.TBFindClick(Sender: TObject); begin if ADOQuerysub.Active then begin SDofilter(ADOQuerysub, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQuerysub, CDS_HZ); SInitCDSData(ADOQuerysub, CDS_HZ); end; end; procedure TfrmTradePackClothInList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmTradePackClothInList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmTradePackClothInList.TBDelClick(Sender: TObject); var MBCIOID: string; begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); CDS_Main.Delete; end; end; CDS_Main.EnableControls; // with ADOQueryTemp do // begin // Close; // sql.Clear; // sql.Add('exec P_Fin_Flow_Judge '); // Sql.Add(' @FFIDS=' + quotedstr(MBCIOID)); // Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); // Sql.Add(',@DName=' + quotedstr(Trim(DName))); // Open; // end; // if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then // begin // Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); // exit; // end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) '); sql.Add('values(''贸易成品入库'' '); sql.Add(',' + quotedstr(MBCIOID)); sql.Add(',''删除'' '); sql.Add(',' + quotedstr(DName)); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(MBCIOID)); sql.Add(') '); Sql.Add('exec P_BS_Cloth_In_Del '); Sql.Add(' @BCIOIDS=' + quotedstr(MBCIOID)); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); InitGrid(); end; end; procedure TfrmTradePackClothInList.TBAddClick(Sender: TObject); begin try frmTradePackClothInEdit := TfrmTradePackClothInEdit.Create(Application); with frmTradePackClothInEdit do begin FBCId := ''; frmTradePackClothInEdit.canshu3 := Trim(Self.canshu3); FSTKName := Self.FSTKName; if ShowModal = 1 then begin Self.TBRafresh.click; end; end; finally frmTradePackClothInEdit.Free; end; end; procedure TfrmTradePackClothInList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('exec P_Fin_Flow_Judge '); Sql.Add(' @FFIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BCIOID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; with ADOQueryTemp do begin Close; Sql.Clear; Sql.Add('exec P_BS_Cloth_In_Edit '); Sql.Add(' @BCIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BCIOID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; try frmTradePackClothInEdit := TfrmTradePackClothInEdit.Create(Application); with frmTradePackClothInEdit do begin FBCId := Trim(CDS_Main.fieldbyname('BCIOID').AsString); TBDel.Visible := False; TBAdd.Visible := False; FSTKName := Self.FSTKName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmTradePackClothInEdit.Free; end; end; procedure TfrmTradePackClothInList.BCIOIDChange(Sender: TObject); begin // if Length(Trim(BCIOID.Text)) < 4 then // begin // if Trim(BCIOID.Text) <> '' then // Exit; // end; TBFind.Click; end; procedure TfrmTradePackClothInList.C_specChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradePackClothInList.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradePackClothInList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.