unit U_mlmx; 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, BtnEdit, cxContainer, dxCore, cxDateUtils, cxMaskEdit, dxSkinOffice2013White, // Plus, dxSkinWXI, dxScrollbarAnnotations; type Tfrmmlmx = 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; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label12: TLabel; C_name: TEdit; FromCoName: TEdit; BCIOID: TEdit; C_spec: TEdit; IOType: TComboBox; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column10: TcxGridDBColumn; Label10: TLabel; BatchNo: TEdit; v1Column11: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; ToolButton1: TToolButton; Tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column2: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; Tv1Column15: TcxGridDBColumn; Tv1Column16: TcxGridDBColumn; Tv1Column17: TcxGridDBColumn; ToolButton3: TToolButton; ToolButton4: TToolButton; Tv1Column18: TcxGridDBColumn; Tv1Column19: TcxGridDBColumn; Tv1Column20: TcxGridDBColumn; Tv1Column21: TcxGridDBColumn; Tv1Column22: TcxGridDBColumn; Tv1Column23: TcxGridDBColumn; Label6: TLabel; Label7: TLabel; Label9: TLabel; FromC_ConNo: TEdit; FromcontractNO: TEdit; FromoperationNO: TEdit; Label11: TLabel; CKflag: TComboBox; ToolButton5: TToolButton; Tv1Column24: TcxGridDBColumn; Edit1: TEdit; Label13: TLabel; ToolButton6: TToolButton; Tv1Column25: TcxGridDBColumn; Label14: TLabel; C_goods: TEdit; Tv1Column26: TcxGridDBColumn; Tv1Column27: TcxGridDBColumn; Panel2: TPanel; Label15: TLabel; Button1: TButton; Button2: TButton; ComboBox1: TComboBox; Label16: TLabel; BuyConNo: TBtnEditA; Tv1Column28: TcxGridDBColumn; Tv1Column29: TcxGridDBColumn; Label17: TLabel; CKTime: TcxDateEdit; 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 ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure BuyConNoBtnClick(Sender: TObject); private canshu1, canshu2, canshu3: string; procedure InitGrid(); procedure setStatus(); { Private declarations } public FSTKName: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_LabelPrint, U_TradeFinishClothInEdit, U_TradePlanSel; {$R *.dfm} procedure Tfrmmlmx.setStatus(); begin end; procedure Tfrmmlmx.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure Tfrmmlmx.FormCreate(Sender: TObject); begin inherited; EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 30; // CKTime.DateTime := SGetServerDateTime(ADOQueryTemp); CKTime.TEXT:=FormatDateTime('yyyy-MM-dd HH:mm:ss', SGetServerDateTime(ADOQueryTemp)); canshu1 := Trim(self.fParameters1); canshu2 := Trim(self.fParameters2); canshu3 := Trim(self.fParameters3); end; procedure Tfrmmlmx.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* ,B.*,B.IoType as IoType1'); sql.Add(' from BS_Cloth_IO A'); sql.Add(' INNER JOIN WFB_MJJY B On A.BCIOID=B.BCIOID'); 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(' and A.CHIOType=''明细'''); // sql.Add('and isnull(B.MXZC,''0'')=''0'' '); sql.Add(' order by IOTime desc ,B.MJXH '); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure Tfrmmlmx.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure Tfrmmlmx.ToolButton1Click(Sender: TObject); begin WriteCxGrid(Self.Caption, Tv1, '贸易汇总仓库'); end; procedure Tfrmmlmx.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 Tfrmmlmx.ToolButton3Click(Sender: TObject); begin // inherited; Panel2.Left := (self.Width - Panel2.Width) div 2; Panel2.Visible := true; // with CDS_Main do // begin // DisableControls; // First; // while not eof do // begin // if fieldbyname('SSel').AsBoolean then // begin // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.add('update WFB_MJJY set CKflag=''出库'' where mjid=''' + trim(CDS_Main.fieldbyname('mjid').AsString) + ''' '); // ExecSQL; // end; // end; // next; // end; // EnableControls; // end; // Application.MessageBox('出库成功!', '提示', 0); // TBRafresh.Click; // Exit; end; procedure Tfrmmlmx.ToolButton4Click(Sender: TObject); begin // inherited; if CDS_Main.IsEmpty then exit; if not CDS_Main.Locate('SSel', True, []) then begin application.MessageBox('请选择数据', '提示'); Exit; end; // if Application.MessageBox('确定要删除数据吗?删除后数据不能恢复。', '提示', 32 + 4) <> IDYES then // Exit; with CDS_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin Close; sql.Clear; // sql.add('update WFB_MJJY set CKflag=''入库'' where mjid=''' + trim(CDS_Main.fieldbyname('mjid').AsString) + ''' '); sql.add('update WFB_MJJY set CKflag=''入库'' '); sql.add(',Iotype='''' '); sql.add(',BuyConNo='''' '); sql.add(',CKtime=null'); sql.add('where mjid=''' + trim(CDS_Main.fieldbyname('mjid').AsString) + ''' '); ExecSQL; end; end; next; end; EnableControls; end; Application.MessageBox('撤销出库成功!', '提示', 0); TBRafresh.Click; end; procedure Tfrmmlmx.ToolButton5Click(Sender: TObject); var WSql: string; begin // inherited; WSql := ''; if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; with CDS_Main do begin DisableControls; First; while not Eof do begin if Fieldbyname('Ssel').AsBoolean then begin if WSql <> '' then begin WSql := WSql + ',' + quotedstr(Trim(CDS_Main.fieldbyname('MJID').AsString)); end else begin WSql := quotedstr(Trim(CDS_Main.fieldbyname('MJID').AsString)); end; end; Next; end; EnableControls; end; // showmessage(WSql); try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'bqPrint'; FFiltration1 := WSql; if ShowModal = 1 then begin // with ADOQueryCmd do // begin // close; // sql.Clear; // sql.Add('update Trade_Plan_Card SET status=''9'' ,chker=''' + trim(DName) + ''',Chktime=getdate() '); // sql.Add(' where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + quotedstr(WSql) + ','','') X where X.RTValue=Trade_Plan_Card.PCID ) '); // execsql; // end; end; end; finally frmLabelPrint.Free; end; end; procedure Tfrmmlmx.ToolButton6Click(Sender: TObject); begin // inherited; if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from WFB_MJJY where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''' and CKflag=''出库'' '); Open; end; if ADOQueryTemp.IsEmpty = False then begin CDS_Main.EnableControls; Application.MessageBox('已出库不能删除!', '提示', 0); Exit; end else begin //begin with ADOQueryCmd do begin Close; sql.Clear; sql.add('insert into WFB_MJJY_Del select * from WFB_MJJY where mjid=''' + trim(CDS_Main.fieldbyname('MJID').AsString) + ''' '); sql.Add('delete WFB_MJJY where MJID=''' + Trim(CDS_Main.fieldbyname('MJID').AsString) + ''''); ExecSQL; end; // end; end; CDS_Main.Delete; end else Next; end; end; CDS_Main.EnableControls; end; procedure Tfrmmlmx.Button1Click(Sender: TObject); begin // inherited; if CDS_Main.IsEmpty then exit; if not CDS_Main.Locate('SSel', True, []) then begin application.MessageBox('请选择数据', '提示'); Exit; end; if BuyConNo.text = '' then begin application.MessageBox('出到计划单号不能为空!', '提示'); Exit; end; // if Application.MessageBox('确定要删除数据吗?删除后数据不能恢复。', '提示', 32 + 4) <> IDYES then // Exit; with CDS_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin Close; sql.Clear; sql.add('update WFB_MJJY set IoType=''' + trim(ComboBox1.text) + ''' '); sql.add(',BuyConNo =''' + trim(BuyConNo.text) + ''''); sql.add(',CKflag=''出库'''); sql.add(' ,CKtime=''' + Trim(CKTime.text) + ''''); // FormatDateTime('yyyy-MM-dd HH:mm', CKTime.DateTime) // sql.add(',CKtime=getdate()'); sql.add('where mjid=''' + trim(CDS_Main.fieldbyname('mjid').AsString) + ''' '); ExecSQL; end; end; next; end; EnableControls; end; // // try // frmTradePlanSel := TfrmTradePlanSel.Create(Application); // with frmTradePlanSel do // begin // // if ShowModal = 1 then // begin //// Self.InitGrid(); // // with Self.CDS_Main do // begin // DisableControls; // First; // while not eof do // begin // if fieldbyname('SSel').AsBoolean then // begin // with Self.ADOQueryCmd do // begin // Close; // sql.Clear; // sql.add('update WFB_MJJY set CKflag=''出库'' '); // sql.add(',CDOrderNo=''' + trim(frmTradePlanSel.CDS_1.fieldbyname('OrderNo').AsString) + ''' '); // sql.add(',CDConNo=''' + trim(frmTradePlanSel.CDS_1.fieldbyname('ConNo').AsString) + ''' '); // sql.add(',CDoperationNO=''' + trim(frmTradePlanSel.CDS_1.fieldbyname('operationNO').AsString) + ''' '); // sql.add('where mjid=''' + trim(CDS_Main.fieldbyname('mjid').AsString) + ''' '); // ExecSQL; // end; // end; // next; // end; // EnableControls; // end; // Application.MessageBox('出库成功!', '提示', 0); // end; // end; // finally // frmTradePlanSel.Free; // end; TBRafresh.Click; Panel2.Visible := False; end; procedure Tfrmmlmx.Button2Click(Sender: TObject); begin // inherited; Panel2.Visible := False; end; procedure Tfrmmlmx.BuyConNoBtnClick(Sender: TObject); begin // inherited; if BuyConNo.text = '' then begin try frmTradePlanSel := TfrmTradePlanSel.Create(Application); with frmTradePlanSel do begin if ShowModal = 1 then begin // Self.InitGrid(); with Self.CDS_Main do begin if fieldbyname('SSel').AsBoolean then begin self.BuyConNo.text := trim(frmTradePlanSel.CDS_1.fieldbyname('BuyConNo').AsString); // self.CDConNo.text := trim(frmTradePlanSel.CDS_1.fieldbyname('ConNo').AsString); // self.CDoperationNO.text := trim(frmTradePlanSel.CDS_1.fieldbyname('operationNO').AsString); end; end; end; end; finally frmTradePlanSel.Free; end; end; end; procedure Tfrmmlmx.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure Tfrmmlmx.TBCloseClick(Sender: TObject); begin Close; end; procedure Tfrmmlmx.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Self.Caption, Tv1, '贸易汇总仓库'); setStatus(); InitGrid(); end; procedure Tfrmmlmx.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(FSTKName + '入库列表', cxGrid1); end; procedure Tfrmmlmx.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; end; procedure Tfrmmlmx.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure Tfrmmlmx.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure Tfrmmlmx.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 Tfrmmlmx.TBAddClick(Sender: TObject); begin try frmTradeFinishClothInEdit := TfrmTradeFinishClothInEdit.Create(Application); with frmTradeFinishClothInEdit do begin FBCId := ''; frmTradeFinishClothInEdit.canshu3 := Trim(Self.canshu3); FSTKName := Self.FSTKName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmTradeFinishClothInEdit.Free; end; end; procedure Tfrmmlmx.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 frmTradeFinishClothInEdit := TfrmTradeFinishClothInEdit.Create(Application); with frmTradeFinishClothInEdit 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 frmTradeFinishClothInEdit.Free; end; end; procedure Tfrmmlmx.BCIOIDChange(Sender: TObject); begin if Length(Trim(BCIOID.Text)) < 4 then begin if Trim(BCIOID.Text) <> '' then Exit; end; TBFind.Click; end; procedure Tfrmmlmx.C_specChange(Sender: TObject); begin TBFind.Click; end; procedure Tfrmmlmx.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure Tfrmmlmx.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.