unit U_NJLISTINPUT; 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, cxCurrencyEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxDropDownEdit, RM_Common, RM_Preview, RM_System, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxCheckBox, cxSplitter; type TfrmnzjnPut = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryLabel: TADOQuery; RMGridReport1: TRMGridReport; Panel1: TPanel; ScrollBox1: TScrollBox; Label1: TLabel; Label3: TLabel; Label12: TLabel; Label13: TLabel; Label2: TLabel; Label25: TLabel; Label23: TLabel; Label60: TLabel; Label4: TLabel; Label5: TLabel; Label20: TLabel; Label39: TLabel; Label7: TLabel; Label40: TLabel; Label43: TLabel; Label11: TLabel; Label14: TLabel; Label16: TLabel; OrderNo: TEdit; OrdDate: TDateTimePicker; Chktime: TDateTimePicker; Note: TMemo; SPcode: TEdit; PiHao: TEdit; spmf: TEdit; SPcolor: TEdit; FILLER: TEdit; SalesClass: TEdit; chker: TEdit; FactoryNo: TBtnEditC; piqty: TEdit; qty: TEdit; SPSECHA: TEdit; SPWEIXIE: TEdit; SPSHOUGAN: TEdit; RCGangNo: TEdit; Panel2: TPanel; Panel3: TPanel; Label6: TLabel; Label22: TLabel; Label42: TLabel; rcgangno1: TEdit; ADOQuery1: TADOQuery; FactoryName: TBtnEditC; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column2: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; SPCODE1: TEdit; SPID1: TEdit; ADOQUERYMAIN: TADOQuery; Panel4: TPanel; ScrollBox3: TScrollBox; ScrollBox4: TScrollBox; Label41: TLabel; Label46: TLabel; Label47: TLabel; Label48: TLabel; Label49: TLabel; Label50: TLabel; Label51: TLabel; Label52: TLabel; Label53: TLabel; Label54: TLabel; Label55: TLabel; Label56: TLabel; Label57: TLabel; Label58: TLabel; NJ_NS: TBtnEditC; NJ_NX: TBtnEditC; NJ_FS2: TBtnEditC; NJ_NH: TBtnEditC; NJ_NMG: TBtnEditC; NJ_NMS: TBtnEditC; WL_SPQL: TBtnEditC; WL_SPQLB: TBtnEditC; WL_JFPL: TBtnEditC; WL_QMQQ: TBtnEditC; WL_YTSS: TBtnEditC; WL_SXSS: TBtnEditC; WL_SXSSB: TBtnEditC; WL_WX: TBtnEditC; WL_WXB: TBtnEditC; cxSplitter1: TcxSplitter; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label15: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; Label32: TLabel; Label33: TLabel; Label34: TLabel; Label35: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; NJ_KZ: TEdit; NJ_KZB: TEdit; NJ_WTJX: TEdit; NJ_WTWX: TEdit; NJ_MF: TEdit; NJ_SXJX: TEdit; NJ_SXWX: TEdit; NJ_QMQQ: TEdit; NJ_GM: TEdit; NJ_SM: TEdit; NJ_FS: TEdit; NJ_AL: TEdit; NJ_JZ: TEdit; NJ_JL: TEdit; NJ_M: TEdit; DDHF: TCheckBox; NJHF: TCheckBox; NJ_CX: TEdit; Label17: TLabel; Label18: TLabel; Label21: TLabel; Label26: TLabel; Label44: TLabel; Label45: TLabel; QT_BQGS: TEdit; QT_JCYQ: TEdit; QT_KHBQ: TEdit; QT_BZYQ: TEdit; QT_TBYQ: TEdit; QT_KHNAME: TEdit; Label19: TLabel; NJ_YM: TEdit; Label24: TLabel; Label59: TLabel; Label61: TLabel; NJ_NGZLD: TBtnEditC; NJ_jcbz: TBtnEditC; NJ_GC: TBtnEditC; Label62: TLabel; NJ_bzc: TBtnEditC; Label63: TLabel; CRTIME: TDateTimePicker; Label64: TLabel; NJ_SQL: TEdit; Label65: TLabel; NJ_JF: TEdit; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure JGFactoryNameBtnUpClick(Sender: TObject); procedure CustomerNoNameBtnDnClick(Sender: TObject); procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure YCLFactoryBtnUpClick(Sender: TObject); procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); procedure MPRTBZNoteDblClick(Sender: TObject); procedure MPRTChuanYDblClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure rcgangno1Change(Sender: TObject); procedure NJ_KZKeyPress(Sender: TObject; var Key: Char); procedure QT_BQGSKeyPress(Sender: TObject; var Key: Char); procedure QT_KHNAMEKeyPress(Sender: TObject; var Key: Char); private procedure InitData(); procedure Initsub(); procedure ZDYHelp(FButn: TcxButtonEdit; LType: string); function SaveData(): Boolean; function getOrderNo(fconNo: string): string; { Private declarations } public PState, CopyInt, PriceFlag: Integer; FMainId, FFMainId, FOrderNo: string; FXS: Integer; canshu1, ForderType: string; fFlileFlag: string; fstatus: Integer; fbegdate, fenddate: TDateTime; { Public declarations } end; var frmnzjnPut: TfrmnzjnPut; newh: hwnd; implementation uses U_DataLink, U_ZDYHelp, U_Fun, U_ZDYHelpSel, U_ZdyAttachment, U_ZdyAttachGYS; {$R *.dfm} function TfrmnzjnPut.getOrderNo(fconNo: string): string; var str1: string; i: integer; begin str1 := trim(fconNo) + '01'; with ADOTemp do begin close; sql.Clear; sql.Add('select MainID from JYOrder_Main where orderNo=' + quotedstr(trim(str1))); open; end; if not ADOTemp.IsEmpty then begin for i := 1 to 99 do begin str1 := trim(fconNo) + rightstr(inttostr(100 + i), 2); with ADOCmd do begin close; sql.Clear; sql.Add('select MainID from JYOrder_Main where orderNo=' + quotedstr(trim(str1))); open; end; if ADOCmd.IsEmpty then break; end; end; result := str1; end; procedure TfrmnzjnPut.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid(Self.Caption, Tv1, '生产指示单管理88'); end; procedure TfrmnzjnPut.Initsub(); begin with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from jyorder_main where mainid=' + quotedstr(Trim(Order_Sub.fieldbyname('ORDMainIdRK').AsString))); open; end; SCSHDataNew(ADOQuery1, ScrollBox1, 0); SCSHDataNew(ADOQuery1, ScrollBox4, 2); if ADOQuery1.IsEmpty = False then begin NJ_FS2.Text := ADOQuery1.fieldbyname('nj_fs').AsString; QT_BQGS.Text := ADOQuery1.fieldbyname('LBName').AsString; QT_JCYQ.Text := ADOQuery1.fieldbyname('nj_fs').AsString; QT_BZYQ.Text := ADOQuery1.fieldbyname('MPRTBZNote').AsString; QT_KHBQ.Text := ADOQuery1.fieldbyname('nj_fs').AsString; QT_KHNAME.Text := ADOQuery1.fieldbyname('CustomerNoName').AsString; QT_TBYQ.Text := ADOQuery1.fieldbyname('nj_fs').AsString; end; with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=' + quotedstr(Trim(Order_Sub.fieldbyname('SPID').AsString))); open; end; SCSHDataNew(ADOQuery1, ScrollBox1, 1); SCSHDataNew(ADOQuery1, ScrollBox3, 2); if ADOQuery1.IsEmpty = false then begin CRTIME.DateTime := ADOQuery1.fieldbyname('CRTIME').VALUE; end; // SCSHDataNew(ADOQuery1, ScrollBox2, 2); if ADOQuery1.IsEmpty = False then begin SalesClass.Text := ADOQuery1.fieldbyname('BM').AsString; end; end; procedure TfrmnzjnPut.InitData(); begin with ADOQUERYMAIN do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.*,spid1=a.spid,spcode1=spcode,rcgangno1=rcgangno,spname1=spname,b.CustomerNOName,b.SalesClass '); sql.Add(' from CK_SXPB_CR A left join jyorder_main b on a.ORDMainIdRK=b.mainid'); sql.Add(' where isnull(CKName,'''')=''待检布'''); SQL.Add(' and CRFlag=''入库'' '); sql.Add('and CRType<>''客户退货'''); if canshu1 = '查看' then begin sql.Add('and isnull(njhf,0)=' + IntToStr(fstatus)); sql.Add(' AND A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', fbegdate)) + ''''); sql.Add(' and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', fenddate + 1)) + ''''); end else begin if FMainId <> '' then begin sql.Add('and SPID=' + QuotedStr(FMainId)); end else begin sql.Add('and isnull(njhf,0)=0'); end; end; // ShowMessage(SQL.Text); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQUERYMAIN, Order_Sub); SInitCDSData20(ADOQUERYMAIN, Order_Sub); Order_Sub.locate('spid', FMainId, []); end; procedure TfrmnzjnPut.ZDYHelp(FButn: TcxButtonEdit; LType: string); var FType, ZDYName, FText: string; begin end; procedure TfrmnzjnPut.FormShow(Sender: TObject); begin readCxGrid(Self.Caption, Tv1, '生产指示单管理88'); InitData(); end; function TfrmnzjnPut.SaveData(): Boolean; var FCRID, Maxno, FFSPID: string; begin try ADOCmd.Connection.BeginTrans; Order_Sub.DisableControls; with Order_Sub do begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=''' + Trim(Order_Sub.fieldbyname('SPID').AsString) + ''''); open; end; FFSPID := Trim(ADOTemp.fieldbyname('SPID').AsString); if Trim(FFSPID) = '' then begin Maxno := Trim(Order_Sub.fieldbyname('SPID').AsString); end else begin Maxno := Trim(FFSPID); end; with ADOCmd do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=''' + Trim(Maxno) + ''''); Open; end; with ADOCmd do begin if Trim(FFSPID) = '' then begin Append; end else begin Edit; end; // SSetsaveSqlNew(ADOCmd, 'CK_SXPB_CR', ScrollBox1, 1); // SSetsaveSqlNew(ADOCmd, 'CK_SXPB_CR', ScrollBox2, 2); SSetsaveSqlNew(ADOCmd, 'CK_SXPB_CR', ScrollBox3, 2); Post; end; with ADOCmd do begin Close; sql.Clear; sql.Add('Update CK_SXPB_CR Set MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(' where SPID=''' + Trim(Maxno) + ''''); ExecSQL; end; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=''' + Trim(Maxno) + ''''); Open; end; if ADOTemp.FieldByName('MXKCQty').Value < 0 then begin Order_Sub.DisableControls; ADOCmd.Connection.RollbackTrans; Application.MessageBox('入库数小于出库数不能保存!', '提示', 0); Exit; end; Edit; FieldByName('SPID').Value := Trim(Maxno); //FieldByName('CRID').Value:=Trim(FCRID); Post; end; Order_Sub.EnableControls; ADOCmd.Connection.CommitTrans; Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!', '提示', 0); end; end; procedure TfrmnzjnPut.TBSaveClick(Sender: TObject); begin ToolBar1.SetFocus; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); InitData(); // ModalResult := 1; end; end; procedure TfrmnzjnPut.v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrdColor'; flagname := '颜色'; V1Name.Caption := '中文名称'; V1Note.Caption := '英文名称'; fnote := True; if ShowModal = 1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PRTColor').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.Order_Sub.FieldByName('PRTColorNo').Value := Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmnzjnPut.ToolButton1Click(Sender: TObject); var i: Integer; begin // if Trim(OrderNo.Text)='' then // begin // Application.MessageBox('订单号不能为空!','提示',0); // Exit; // end; CopyAddRow(Tv1, Order_Sub); with Order_Sub do begin Edit; FieldByName('PRTColor').Value := ''; FieldByName('PRTOrderQty').Value := null; FieldByName('PRTColorNo').Value := null; FieldByName('hxFile').Value := ''; FieldByName('PRTOrderQty').Value := 0; FieldByName('PRTPs').Value := 0; FieldByName('OrderUnit').Value := 'Kg'; Post; end; end; procedure TfrmnzjnPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from WFB_MJJY where SubId=''' + Trim(Order_Sub.fieldbyname('SubId').AsString) + ''''); Open; end; if ADOTemp.IsEmpty = False then begin Application.MessageBox('已检验不能删除数据!', '提示', 0); Exit; end; if Trim(Order_Sub.fieldbyname('SubId').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete JYOrder_Sub where SubId=''' + Trim(Order_Sub.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmnzjnPut.JGFactoryNameBtnUpClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin // frmZdyAttachGYS.FactType.ItemIndex:=FactType.Items.IndexOf('加工厂'); if ShowModal = 1 then begin FactoryNo.Text := Trim(CDS_HZ.fieldbyname('CoCODE').AsString); FactoryName.Text := Trim(CDS_HZ.fieldbyname('CONAME').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmnzjnPut.CustomerNoNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmnzjnPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var mvalues: string; begin mvalues := tv1.Columns[tv1.Controller.FocusedColumn.index].DataBinding.FieldName; try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'OrderUnit'; flagname := '数量单位'; if ShowModal = 1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName(mvalues).Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmnzjnPut.v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'PriceUnit'; flagname := '价格单位'; if Trim(DParameters1) <> '高权限' then begin TBAdd.Visible := False; TBEdit.Visible := False; TBDel.Visible := False; end; if ShowModal = 1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PriceUnit').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmnzjnPut.YCLFactoryBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmnzjnPut.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := ReturnStr; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmnzjnPut.MPRTBZNoteDblClick(Sender: TObject); var fsj: string; FWZ: Integer; i: integer; begin fsj := Trim(TMemo(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TMemo(Sender).Lines.Clear; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; TMemo(Sender).Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString) end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmnzjnPut.MPRTChuanYDblClick(Sender: TObject); var fsj: string; FWZ: Integer; i: integer; begin fsj := Trim(TMemo(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TMemo(Sender).Lines.Clear; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; TMemo(Sender).Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString) end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmnzjnPut.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if Order_Sub.IsEmpty = false then begin initsub(); end; end; procedure TfrmnzjnPut.rcgangno1Change(Sender: TObject); begin if ADOQUERYMAIN.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel3, 1, 2)); SCreateCDS20(ADOQueryMain, ORDER_SUB); SInitCDSData20(ADOQueryMain, ORDER_SUB); end; end; procedure TfrmnzjnPut.NJ_KZKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure TfrmnzjnPut.QT_BQGSKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure TfrmnzjnPut.QT_KHNAMEKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; NJ_KZ.SetFocus(); end; end; end.