unit U_TradeFinishClothInList; 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, dxSkinOffice2013White, // Plus, dxSkinWXI, dxScrollbarAnnotations; type TfrmTradeFinishClothInList = 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; Label6: TLabel; FromC_ConNo: TEdit; Tv1Column12: TcxGridDBColumn; Label7: TLabel; FromcontractNO: TEdit; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; FromoperationNO: TEdit; Label9: TLabel; Tv1Column15: TcxGridDBColumn; Label11: TLabel; FromBuyConNoHZ: TEdit; ToolButton3: TToolButton; Tv1Column16: TcxGridDBColumn; Tv1Column17: TcxGridDBColumn; Edit1: TEdit; Tv1Column18: TcxGridDBColumn; Label13: TLabel; C_goods: TEdit; Tv1Column19: TcxGridDBColumn; ToolButton4: TToolButton; Panel2: TPanel; MJXH: TEdit; MJLen: TEdit; Label14: TLabel; Label15: TLabel; Button1: TButton; Button2: TButton; ADOTmp: TADOQuery; ADOCmd: TADOQuery; ADOTmp1: TADOQuery; ADOTmp2: TADOQuery; Label16: TLabel; Label17: TLabel; Label18: TLabel; BuyConNo: TBtnEditA; CDConNo: TEdit; CDoperationNO: TEdit; Tv1Column20: TcxGridDBColumn; Tv1Column21: TcxGridDBColumn; Label19: TLabel; ComboBox1: TComboBox; Tv1Column22: 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 ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(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 TfrmTradeFinishClothInList.setStatus(); begin end; procedure TfrmTradeFinishClothInList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmTradeFinishClothInList.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 TfrmTradeFinishClothInList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' ,case when CHIOType=''整出'' then KCPS else (select count(B.mjid) from WFB_MJJY B where B.BCIOID=A.BCIOID and B.CKflag=''入库'') end as KCROLL '); sql.Add(' ,case when CHIOType=''整出'' then KCSL else (select sum(B.mjlen) from WFB_MJJY B where B.BCIOID=A.BCIOID and B.CKflag=''入库'') end as KCM '); 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(' order by IOTime desc'); // showmessage(sql.text); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmTradeFinishClothInList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmTradeFinishClothInList.ToolButton1Click(Sender: TObject); begin WriteCxGrid(Self.Caption, Tv1, '贸易汇总仓库'); end; procedure TfrmTradeFinishClothInList.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 TfrmTradeFinishClothInList.ToolButton3Click(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 trim(Edit1.text) = '' then begin Application.MessageBox('次品数量不能为空!', '提示', 0); Exit; end; if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryTemp do begin Close; sql.Clear; Filtered := False; sql.Add('select SL=(select Qty from BS_Cloth_IO where BCIOID=''' + Trim(CDS_Main.fieldbyname('BCIOID').AsString) + ''' )'); // showmessage(sql.Text); Open; end; if strtofloat(trim(Edit1.text)) > strtofloat(ADOQueryTemp.FieldByName('SL').AsString) then begin Application.MessageBox('次品数量大于面料总数量!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update BS_Cloth_IO Set defectiveQty=''' + trim(Edit1.Text) + ''' '); sql.Add(',GenuineQty=cast(''' + ADOQueryTemp.FieldByName('SL').AsString + '''as float) - cast( ''' + trim(Edit1.Text) + ''' as float)'); sql.Add('where BCIOID=''' + Trim(CDS_Main.fieldbyname('BCIOID').AsString) + ''''); // showmessage(sql.text); ExecSQL; end; end; Edit1.text := ''; TBRafresh.Click; end; procedure TfrmTradeFinishClothInList.ToolButton4Click(Sender: TObject); begin // inherited; Panel2.Left := (self.Width - Panel2.Width) div 2; Panel2.Visible := true; end; procedure TfrmTradeFinishClothInList.Button1Click(Sender: TObject); var maxno, FMJID: string; begin // inherited; if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOCmd.Connection.BeginTrans; // ADOCmd.DisableControls; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY where MJId=''' + Trim(FMJID) + ''''); // showmessage(sql.text); Open; end; with ADOTmp1 do begin Close; sql.Clear; SQL.Add('select * from Bs_Cloth_IO where BCIOID=''' + Trim(CDS_Main.fieldbyname('BCIOID').AsString) + ''''); // showmessage(sql.text); Open; end; with ADOCmd do begin Edit; if GetLSNo(ADOQueryTemp, maxno, 'MJ', 'WFB_MJJY', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('生成流水号异常!', '提示', 0); exit; end; FieldByName('MJID').Value := Trim(maxno); FieldByName('BCIOID').Value := Trim(CDS_Main.fieldbyname('BCIOID').AsString); FieldByName('MJXH').Value := Trim(MJXH.Text); // FieldByName('MJQty4').Value := Trim(MJQty4.Text); FieldByName('MJLen').Value := strtofloatdef(Trim(MJLen.Text), 0); // FieldByName('MJMaoZ').Value := strtofloatdef(Trim(MJMaoZ.Text), 0); FieldByName('CKflag').Value := '出库'; FieldByName('FillTime').Value := SGetServerDateTime(ADOTmp); FieldByName('MXZC').Value := '1'; // FieldByName('KCPSZC').Value := ADOTmp1.fieldbyname('KCPS').AsFloat - strtofloatdef(Trim(MJXH.Text), 0); // FieldByName('KCSLZC').Value := ADOTmp1.fieldbyname('KCSL').AsFloat - strtofloatdef(Trim(MJLen.Text), 0); // FieldByName('CDOrderNo').Value := Trim(CDOrderNo.Text); FieldByName('BuyConNo').Value := Trim(BuyConNo.Text); FieldByName('IoType').Value := Trim(IoType.Text); // FieldByName('CDoperationNO').Value := Trim(CDoperationNO.Text); Post; end; // FFFMJID := Trim(maxno); ADOCmd.Connection.CommitTrans; // Result := True; Application.MessageBox('保存成功!', '提示', 0); except // Result := False; ADOCmd.Connection.RollbackTrans; // ADOCmd.EnableControls; Application.MessageBox('保存失败!', '提示', 0); end; with ADOTmp2 do begin Close; sql.Clear; sql.Add('UPDATE Bs_Cloth_IO SET KCPS =KCPS - ''' + Trim(MJXH.Text) + ''' '); sql.Add(',KCSL =KCSL-''' + Trim(MJLen.Text) + ''' '); sql.Add('where BCIOID=''' + Trim(CDS_Main.fieldbyname('BCIOID').AsString) + ''''); ExecSQL; end; end; procedure TfrmTradeFinishClothInList.Button2Click(Sender: TObject); begin inherited; Panel2.Visible := False; end; procedure TfrmTradeFinishClothInList.BuyConNoBtnClick(Sender: TObject); begin // inherited; 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; procedure TfrmTradeFinishClothInList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmTradeFinishClothInList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeFinishClothInList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Self.Caption, Tv1, '贸易汇总仓库'); setStatus(); InitGrid(); end; procedure TfrmTradeFinishClothInList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(FSTKName + '入库列表', cxGrid1); end; procedure TfrmTradeFinishClothInList.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 TfrmTradeFinishClothInList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmTradeFinishClothInList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmTradeFinishClothInList.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 if MBCIOID <> '' then begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); end else begin MBCIOID := Trim(CDS_Main.fieldbyname('BCIOID').AsString); end; // MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('BCIOID').AsString); CDS_Main.Delete; end; end; CDS_Main.EnableControls; with ADOTmp do begin close; sql.clear; sql.Add('select * from WFB_MJJY where BCIOID in (' + quotedstr(MBCIOID)); sql.add(')'); open; if not ISEmpty then begin application.MessageBox('已入库不能删除', '提示'); exit; end; end; 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 TfrmTradeFinishClothInList.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 TfrmTradeFinishClothInList.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 TfrmTradeFinishClothInList.BCIOIDChange(Sender: TObject); begin if Length(Trim(BCIOID.Text)) < 4 then begin if Trim(BCIOID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmTradeFinishClothInList.C_specChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeFinishClothInList.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeFinishClothInList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.