unit U_CJSQInPut; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils, cxDropDownEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmCJSQInPut = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; ADOQuery1: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; Label1: TLabel; CRType: TComboBox; Note: TEdit; Label12: TLabel; cxStyleRepository1: TcxStyleRepository; dazi1: TcxStyle; lbl2: TLabel; CRTime: TDateTimePicker; RCGangNo: TEdit; Label5: TLabel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column7: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; v1Column1: TcxGridDBColumn; cv1Column6: TcxGridDBColumn; cv1Column2: TcxGridDBColumn; cv1Column3: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label10: TLabel; Label13: TLabel; YWY: TBtnEditC; Tv1Column11: TcxGridDBColumn; ToolButton3: TToolButton; Edit1: TEdit; Label8: TLabel; SPID: TEdit; Label4: TLabel; Label7: TLabel; SPCOLOR: TEdit; Label9: TLabel; SPMF: TEdit; Label11: TLabel; SPKZ: TEdit; Label2: TLabel; Label3: TLabel; FactoryName: TBtnEditC; ywzb: TBtnEditC; bm: TBtnEditC; Label17: TLabel; QTYUnit: TBtnEditC; Label6: TLabel; CustomerNoName: TBtnEditC; Label14: TLabel; pihao: TEdit; Label15: TLabel; thbq: TBtnEditC; SPCODE: TBtnEditC; Tv1Column2: TcxGridDBColumn; Label16: TLabel; Label18: TLabel; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Tv1Column2PropertiesEditValueChanged(Sender: TObject); procedure YWYBtnUpClick(Sender: TObject); procedure YWYBtnDnClick(Sender: TObject); procedure NoteKeyPress(Sender: TObject; var Key: Char); procedure ToolButton3Click(Sender: TObject); procedure FactoryNameBtnUpClick(Sender: TObject); procedure FactoryNameBtnDnClick(Sender: TObject); procedure bmBtnDnClick(Sender: TObject); procedure ywzbBtnDnClick(Sender: TObject); procedure ywzbBtnUpClick(Sender: TObject); procedure bmBtnUpClick(Sender: TObject); procedure QTYUnitBtnDnClick(Sender: TObject); procedure QTYUnitBtnUpClick(Sender: TObject); procedure CustomerNoNameBtnUpClick(Sender: TObject); procedure CustomerNoNameBtnDnClick(Sender: TObject); procedure thbqBtnUpClick(Sender: TObject); procedure thbqBtnDnClick(Sender: TObject); procedure SPCODEBtnDnClick(Sender: TObject); procedure SPCODEBtnUpClick(Sender: TObject); private fuserName: string; procedure InitData(); function SaveData(): Boolean; { Private declarations } public PState, CopyInt: Integer; FMainId, FFMainId, ChkStr, ConPriceStr: string; FXS: Integer; { Public declarations } end; var frmCJSQInPut: TfrmCJSQInPut; newh: hwnd; implementation uses U_DataLink, U_ZDYHelp, U_RTFun, U_CKProductBCPKCListSel, U_ZdyAttachGYS, U_ZdyAttachment, U_LabelList, U_CPManageSel; {$R *.dfm} procedure TfrmCJSQInPut.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('发货申请录入ZY', Tv1, '发货管理7'); end; procedure TfrmCJSQInPut.InitData(); var fsj: string; begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' select A.* '); sql.Add(' from CK_SXPB_CR_mx A'); if PState = 1 then begin sql.Add('where fsid=''' + Trim(FMainId) + ''''); end; if PState = 0 then begin sql.Add(' where 1<>1'); end; Open; end; SCreateCDS20(ADOQuery1, Order_Sub); SInitCDSData20(ADOQuery1, Order_Sub); with ADOQuery1 do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(' from CK_SXPB_CR A'); sql.Add(' where spid=''' + Trim(FMainId) + ''' '); Open; end; SCSHDataNew(ADOQuery1, ScrollBox1, 1); if ADOQuery1.IsEmpty = True then begin CRTime.DateTime := SGetServerDate(ADOTemp); end; end; procedure TfrmCJSQInPut.FormShow(Sender: TObject); var fsj: string; begin readCxGrid('发货申请录入ZY', Tv1, '发货管理7'); InitData(); end; function TfrmCJSQInPut.SaveData(): Boolean; var maxno, maxmnno, FSSId: string; fconNO, fmxType: string; begin try ADOCmd.Connection.BeginTrans; ///保存主表 if Trim(FMainId) = '' then begin if GetLSNo(ADOCmd, maxno, 'CJ', 'CK_SXPB_cR', 3, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin maxno := Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from CK_SXPB_cR where SPID=''' + Trim(FMainId) + ''''); Open; end; with ADOCmd do begin if Trim(FMainId) = '' then begin Append; SPID.Text := Trim(maxno); end else begin Edit; end; FieldByName('CRFlag').Value := '出库'; FieldByName('CRQtyFlag').Value := -1; FieldByName('piqty').Value := 0; FieldByName('qty').Value := 0; FieldByName('CKName').Value := '重检'; RTSetsavedata(ADOCmd, 'CK_SXPB_cR', ScrollBox1, 1); if Trim(FMainId) = '' then begin FieldByName('Filler').Value := Trim(DName); FieldByName('filltime').Value := SGetServerDate(ADOTemp); end else begin FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp); end; Post; end; FMainId := Trim(maxno); SPID.Text := Trim(maxno); ///保存子表 Order_Sub.DisableControls; with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('SSId').AsString) = '' then begin if GetLSNo(ADOCmd, maxno, 'SS', 'CK_SXPB_cR_mx', 4, 1) = False then begin Order_Sub.EnableControls; ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin maxno := Trim(Order_Sub.fieldbyname('SSId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from CK_SXPB_cR_mx '); sql.Add(' where SSId=''' + Trim(maxno) + ''''); Open; end; if ADOCmd.IsEmpty then begin FSSId := ''; end else begin FSSId := Trim(maxno); end; with ADOCmd do begin if Trim(FSSId) = '' then begin Append; FieldByName('Filler').Value := Trim(DName); end else begin Edit; FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp); end; FieldByName('FSID').Value := Trim(FMainId); FieldByName('SSID').Value := Trim(maxno); RTSetSaveDataCDS(ADOCmd, Tv1, Order_Sub, 'CK_SXPB_cR_mx', 0); // FieldByName('MainId').Value := Order_Sub.fieldbyname('MainId').Value; // FieldByName('SubId').Value := Order_Sub.fieldbyname('SubId').Value; FieldByName('mjid').Value := Order_Sub.fieldbyname('mjid').Value; // FieldByName('SSConMainId').Value := Order_Sub.fieldbyname('SSConMainId').Value; // FieldByName('SSConSubId').Value := Order_Sub.fieldbyname('SSConSubId').Value; Post; end; Order_Sub.Edit; Order_Sub.FieldByName('SSID').Value := Trim(maxno); if CRType.Text = '拼缸及重检出库' then begin with ADOTemp do begin Close; SQL.Clear; sql.Add('EXEC P_CPCK_Up_CK '); sql.Add(' @MJID=''' + Trim(Order_Sub.fieldbyname('mjid').Value) + ''''); sql.Add(' ,@CKOrdNo=''' + Trim(maxno) + ''''); sql.Add(' ,@dname=''' + Trim(dname) + ''''); sql.Add(' ,@crtype=''拼缸及重检出库'''); ExecSQL; end; end; Next; end; end; Order_Sub.EnableControls; ADOCmd.Connection.CommitTrans; Result := True; except ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); Result := False; end; end; procedure TfrmCJSQInPut.TBSaveClick(Sender: TObject); var Freal: Double; begin ToolBar1.SetFocus; if Trim(CRType.Text) = '' then begin Application.MessageBox('申请类型不能为空!', '提示', 0); Exit; end; if Trim(CRType.Text) = '拼缸及重检出库' then begin if Trim(thbq.Text) = '' then begin Application.MessageBox('拼缸及重检出库标签格式不能为空!', '提示', 0); Exit; end; end; if CRType.Text = '拼缸及重检出库' then begin if SPCODE.Text = '' then begin Application.MessageBox('品名不能为空!', '提示', 0); Exit; end; if SPCOLOR.Text = '' then begin Application.MessageBox('颜色不能为空!', '提示', 0); Exit; end; if RCGangNo.Text = '' then begin Application.MessageBox('缸号不能为空!', '提示', 0); Exit; end; if YWY.Text = '' then begin Application.MessageBox('业务员不能为空!', '提示', 0); Exit; end; if ywzb.Text = '' then begin Application.MessageBox('业务组别不能为空!', '提示', 0); Exit; end; if bm.Text = '' then begin Application.MessageBox('部门不能为空!', '提示', 0); Exit; end; if FactoryName.Text = '' then begin Application.MessageBox('加工厂不能为空!', '提示', 0); Exit; end; if SPCODE.Text = '' then begin Application.MessageBox('品名不能为空!', '提示', 0); Exit; end; end; if (Order_Sub.Locate('SQPS', null, [])) and (Order_Sub.Locate('SQqty', null, [])) = True then begin Application.MessageBox('细码申请匹数和数量不能全为空!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmCJSQInPut.ToolButton1Click(Sender: TObject); var FQtyUnit, FFSubid: string; begin if Trim(QTYUnit.Text) = '' then begin Application.MessageBox('数量单位不能为空!', '提示', 0); exit; end; if Trim(CRType.Text) = '' then begin Application.MessageBox('请先选择申请类型!', '提示', 0); exit; end; try frmCKProductBCPKCListSel := TfrmCKProductBCPKCListSel.Create(Application); with frmCKProductBCPKCListSel do begin if ShowModal = 1 then begin while CDS_Main.locate('SSel', true, []) do begin if (Self.Order_Sub.Locate('MJID', Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MJID').AsString), []) = False) then begin with Self.Order_Sub do begin Append; FieldByName('SCConNo').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('Orderno').AsString); FieldByName('MainId').Value := frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MainId').Value; FieldByName('SubId').Value := frmCKProductBCPKCListSel.CDS_Main.fieldbyname('SubId').Value; FieldByName('PRTColor').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('PRTColor').AsString); FieldByName('SPrtCode').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTCode').AsString); FieldByName('SPrtCodeName').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTCode').AsString); FieldByName('PRTHX').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('PRTHX').AsString); FieldByName('GANGHAO').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('GANGHAO').AsString); FieldByName('MJID').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MJID').AsString); FieldByName('SQQty').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('Qty').AsString); FieldByName('MJXH').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MJXH').AsString); FieldByName('SQPS').Value := 1; FieldByName('SFKP').Value := '否'; FieldByName('cangwei').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('rkplace').AsString); FieldByName('orderUnit').Value := Trim(QTYUnit.Text); if (Self.spcode.Text = '') and (CRType.Text = '拼缸及重检出库') then begin SPCODE.Text := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTCode').AsString); SPCOLOR.Text := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('PRTColor').AsString); RCGangNo.Text := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('GANGHAO').AsString); SPmf.Text := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTMF').AsString); SPKZ.Text := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('MPRTkz').AsString); pihao.Text := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('pihao').AsString); end; if (Trim(QTYUnit.Text) = 'KG') or (Trim(QTYUnit.Text) = '公斤') then begin FieldByName('SQQty').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('KGQty').AsString); end else begin FieldByName('SQQty').Value := Trim(frmCKProductBCPKCListSel.CDS_Main.fieldbyname('Qty').AsString); end; Post; end; end; CDS_Main.Delete; end; end; end; finally frmCKProductBCPKCListSel.Free; end; end; procedure TfrmCJSQInPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('SSId').AsString) <> '' then begin // with ADOTemp do // begin // Close; // sql.Clear; // sql.Add('select * from CK_BanCP_CR a where '); // sql.Add('A.CKORDNO=' + QuotedStr(Trim(Order_Sub.fieldbyname('SSId').AsString))); // SQL.ADD('AND ISNowCycle=''1'''); // Open; // end; // if ADOTemp.IsEmpty = false then // begin // Application.MessageBox('该重检单已生成数据,禁止删除!', '提示', 0); // Exit; // end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete CK_SXPB_CR_MX where SSId=''' + Trim(Order_Sub.fieldbyname('SSId').AsString) + ''''); sql.Add('Update CK_BanCP_CR Set CRFlag=''待出库'',CRType='''',CRTime=NULL,CRNote='''',CKOrdNo='''' '); sql.Add(' where ISNowCycle=1 and MJID=''' + Trim(Order_Sub.fieldbyname('MJID').AsString) + ''''); sql.Add(' and CRFlag=''出库'''); sql.Add(' UPdate CK_BanCP_KC Set KCValid=''Y'' '); SQL.Add(' where MJID=''' + Trim(Order_Sub.fieldbyname('MJID').AsString) + ''''); sql.Add(' Update WFB_MJJY Set MJStr2=''已入库'' where MJID=''' + Trim(Order_Sub.fieldbyname('MJID').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('条码号' + Order_Sub.fieldbyname('MJID').AsString))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmCJSQInPut.Tv1Column2PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) = '' then begin mvalue := '0'; end; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with Order_Sub do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); FieldbyName('Money').Value := format('%.2f', [FieldByName('sqqty').AsFloat * FieldByName('Price').AsFloat + FieldByName('BGFee').AsFloat]); Post; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmCJSQInPut.YWYBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'YWY'; flagname := '业务员'; if ShowModal = 1 then begin Self.ywy.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCJSQInPut.YWYBtnDnClick(Sender: TObject); begin ywy.Text := ''; end; procedure TfrmCJSQInPut.NoteKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #32; end; end; procedure TfrmCJSQInPut.ToolButton3Click(Sender: TObject); var FValue, FFValue, FColumn, FFColumn: string; begin if Order_sub.IsEmpty then Exit; if Application.MessageBox('确定要复制单价吗', '提示', 1) = 2 then exit; with Order_sub do begin DisableControls; First; while not Eof do begin Edit; FieldByName('Price').Value := StrToFloatDef(Edit1.Text, 0); FieldByName('money').Value := (StrToFloatDef(Edit1.Text, 0) * FieldByName('sqqty').AsFloat); tv1.Controller.EditingController.ShowEdit(); Post; Next; end; tv1.Controller.EditingController.ShowEdit(); // ToolBar5.SetFocus; // HJ(); EnableControls; end; end; procedure TfrmCJSQInPut.FactoryNameBtnUpClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin FactoryName.Text := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('coName').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmCJSQInPut.FactoryNameBtnDnClick(Sender: TObject); begin FactoryName.Text := ''; end; procedure TfrmCJSQInPut.bmBtnDnClick(Sender: TObject); begin bm.Text := ''; end; procedure TfrmCJSQInPut.ywzbBtnDnClick(Sender: TObject); begin ywzb.Text := ''; end; procedure TfrmCJSQInPut.ywzbBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'SalesClass'; flagname := '业务组别'; if ShowModal = 1 then begin YWZB.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCJSQInPut.bmBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'BM'; flagname := '部门'; if ShowModal = 1 then begin bm.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCJSQInPut.QTYUnitBtnDnClick(Sender: TObject); begin if not Order_Sub.IsEmpty then begin Application.MessageBox('明细数据已选择,不能修改!', '提示', 0); exit; end; QTYUnit.Text := ''; end; procedure TfrmCJSQInPut.QTYUnitBtnUpClick(Sender: TObject); begin if not Order_Sub.IsEmpty then begin Application.MessageBox('明细数据已选择,不能修改!', '提示', 0); exit; end; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'HZUnit'; flagname := '数量单位'; if ShowModal = 1 then begin Self.QTYUnit.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCJSQInPut.CustomerNoNameBtnUpClick(Sender: TObject); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal = 1 then begin self.CustomerNoName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmCJSQInPut.CustomerNoNameBtnDnClick(Sender: TObject); begin CustomerNoName.Text := ''; end; procedure TfrmCJSQInPut.thbqBtnUpClick(Sender: TObject); begin try frmLabelList := TfrmLabelList.Create(Application); with frmLabelList do begin if ShowModal = 1 then begin thbq.Text := Trim(ADOQueryLabel.fieldbyname('labelCaption').AsString); end; end; finally frmLabelList.Free; end; end; procedure TfrmCJSQInPut.thbqBtnDnClick(Sender: TObject); begin thbq.Text := ''; end; procedure TfrmCJSQInPut.SPCODEBtnDnClick(Sender: TObject); begin SPCODE.Text := ''; end; procedure TfrmCJSQInPut.SPCODEBtnUpClick(Sender: TObject); begin frmCPManageSel := TfrmCPManageSel.Create(self); with frmCPManageSel do begin if showmodal = 1 then begin SPCODE.Text := CDS_Main.fieldbyname('CYNo').asstring; // MPRTSpec.Text := CDS_Main.fieldbyname('CYSpec').asstring; // MPRTCF.Text := CDS_Main.fieldbyname('CYCF').asstring; SPMF.Text := CDS_Main.fieldbyname('CYyxmf').asstring; SPKZ.Text := CDS_Main.fieldbyname('CYkz').asstring; end; free; end; tv1.Controller.EditingController.ShowEdit(); end; end.