unit U_KcRollCaiFen2; interface uses Windows, Messages, strutils, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, cxContainer, cxTextEdit, cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB, MovePanel, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, RM_Preview; type TfrmKcRollCaiFen2 = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; Panel2: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; CDSOrder: TClientDataSet; CDSMJID: TClientDataSet; DataSource1: TDataSource; DataSource2: TDataSource; SmNO: TEdit; ADOQueryTmp: TADOQuery; V2Column1: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxStyle_gridRow: TcxStyle; cxStyle_gridFoot: TcxStyle; cxStyle_gridHead: TcxStyle; cxStyle_gridGroupBox: TcxStyle; cxStyle_yellow: TcxStyle; cxStyle_Red: TcxStyle; cxStyle_fontBlack: TcxStyle; cxStyle_fontclFuchsia: TcxStyle; cxStyle_fontclPurple: TcxStyle; cxStyle_fontclGreen: TcxStyle; cxStyle_fontclBlue: TcxStyle; cxStyle_fontclTeal: TcxStyle; cxStyle_fontclOlive: TcxStyle; CheckBox3: TCheckBox; Panel3: TPanel; MJLen: TEdit; Label5: TLabel; Label9: TLabel; Edit7: TEdit; Label32: TLabel; Label33: TLabel; Edit8: TEdit; Edit6: TEdit; Label26: TLabel; BTPrint: TButton; Button5: TButton; ADOQueryPrint: TADOQuery; RM2: TRMGridReport; RMDB_Main: TRMDBDataSet; MJQty4: TEdit; Label3: TLabel; Label4: TLabel; MJQty3: TEdit; Label6: TLabel; Label7: TLabel; V2Column2: TcxGridDBColumn; V2Column3: TcxGridDBColumn; V2Column4: TcxGridDBColumn; V2Column5: TcxGridDBColumn; Label8: TLabel; MKXS: TEdit; Panel5: TPanel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1MJID: TcxGridDBColumn; v1P_Code: TcxGridDBColumn; v1P_Color: TcxGridDBColumn; v1RollNum: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Button1: TButton; Edit1: TEdit; Label10: TLabel; ComboBox1: TComboBox; Label11: TLabel; kuwei: TEdit; ADOQuery1: TADOQuery; MovePanel1: TMovePanel; Label2: TLabel; Edit2: TEdit; Button4: TButton; Label12: TLabel; Label13: TLabel; KJ: TEdit; Button2: TButton; ADOQueryXH: TADOQuery; cxStyleRepository2: TcxStyleRepository; cxStyle3: TcxStyle; Button3: TButton; Button6: TButton; Edit3: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SmNOKeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Edit7Click(Sender: TObject); procedure Edit8Click(Sender: TObject); procedure Edit6Click(Sender: TObject); procedure BTPrintClick(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure Button5Click(Sender: TObject); procedure MJLenChange(Sender: TObject); procedure MKXSExit(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Label13Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button6Click(Sender: TObject); private procedure InitGrid(); procedure InitMJID(); function Savedata1(): boolean; function Savedata2(): boolean; procedure Printdata(FMJID: string); procedure Printdata2(FMJID: string; FnewMJID: string); procedure On1301(var Message: Tmessage); message 1301; procedure CloseCom(DllName: string); procedure OpenCom(DllName: string); procedure QuantityConversion(); { Private declarations } public iscom: boolean; isCommopen: boolean; { Public declarations } end; var frmKcRollCaiFen2: TfrmKcRollCaiFen2; newh, newh1: hwnd; implementation uses U_DataLink, U_Fun, U_iniParam, U_ZDYHelp, U_LabelList, U_CKProductBCPKCListSel; {$R *.dfm} procedure TfrmKcRollCaiFen2.QuantityConversion(); var MLen, MNWet, MGWet, MPWet, MCC, FYJZQty: Double; begin MLen := StrToFloatdef(trim(MJLen.Text), 0); MNWet := StrToFloatdef(trim(MJQty4.Text), 0); MPWet := StrToFloatdef(trim(MJQty3.Text), 0); MCC := StrToFloatdef(trim(MKXS.Text), 0); //长度 与 减去长度 if TV2.DataController.Summary.FooterSummaryValues[2] <> NULL then begin FYJZQty := StrToFloatdef(TV2.DataController.Summary.FooterSummaryValues[2], 0); end else begin FYJZQty := 0; end; if MCC > 0 then begin MGWet := StrToFloat(format('%.1f', [(MLen - FYJZQty) * MCC])); MNWet := MGWet - MPWet; MJQty4.Text := FloatToStr(MNWet); end; MNWet := MGWet - MPWet; MJQty4.Text := FloatToStr(MNWet); end; procedure TfrmKcRollCaiFen2.CloseCom(DllName: string); type TMyFunc = function(sCommName: PAnsiChar): HWND; stdcall; var Tf1: TMyFunc; Tp1: TFarProc; Th1: Thandle; begin Th1 := LoadLibrary(Pchar(trim(DllName))); if Th1 > 0 then begin try Tp1 := GetProcAddress(Th1, 'CommClose'); if Tp1 <> nil then begin Tf1 := TMyFunc(Tp1); newh1 := Tf1('Comm1'); end else begin end; finally // FreeLibrary(Th1); end; end else begin application.MessageBox(Pchar('找不到 ' + trim(DllName) + ' 文件!'), '提示'); end; end; procedure TfrmKcRollCaiFen2.OpenCom(DllName: string); type TMyFunc = function(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): HWND; stdcall; var Tf: TMyFunc; Tp: TFarProc; Th: Thandle; begin // closeCom(FComFile); Th := LoadLibrary(Pchar(trim(DllName))); if Th > 0 then begin try Tp := GetProcAddress(Th, 'CommOpen'); if Tp <> nil then begin Tf := TMyFunc(Tp); newh := Tf(self.Handle, 'Comm1', 500, 1); if newh < 1 then begin application.MessageBox(Pchar('打开串口失败!'), '提示'); end else IsCommOpen := true; end else begin IsCommOpen := false; end; finally // FreeLibrary(Th); end; end else begin IsCommOpen := false; application.MessageBox(Pchar('找不到 ' + trim(DllName) + ' 文件!'), '提示'); end; end; procedure TfrmKcRollCaiFen2.On1301(var Message: Tmessage); var i1, i2: integer; unitname: string; fdata: double; begin i1 := Message.WParam; i2 := Message.LParam; if not CheckBox3.Checked then exit; MJLen.Text := format('%.1f', [i1 / 100000]); if i2 = 0 then Label9.Caption := 'M' else Label9.Caption := 'Y'; end; procedure TfrmKcRollCaiFen2.Printdata2(FMJID: string; FnewMJID: string); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin with ADOQueryPrint do begin close; sql.Clear; SQL.Add('select A.*,D.MPRTCodeName,d.mprtcode,C.MJTypeOther,D.SALESCLASS,E.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ,c.mjlen,C.KPNO from CK_BanCP_CR A'); sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID '); sql.Add('inner join JYOrder_main D on D.MainID=C.MainID '); sql.Add('inner join JYOrder_sub E on E.subID=C.subID '); sql.Add('where C.MJID in (' + quotedstr(trim(FnewMJID)) + ',' + quotedstr(trim(FMJID)) + ')'); SQL.Add('AND A.CRFLAG=''入库'''); // SQL.Add('order by ') // ShowMessage(SQL.Text); open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; // if Edit1.Text <> '' then // begin fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\开坯码单.rmf'; ExportFtErpFile('开坯码单.rmf', ADOQueryTmp); // ExportFtErpFile(trim(Edit1.Text) + '.rmf', ADOQueryTemp); // end // else // fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\通用英文标签.rmf'; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RMVariables['ZDR'] := TRIM(DName); RM2.LoadFromFile(fPrintFile); // Rm2.DefaultCopies := StrToIntDef(ComboBox1.Text, 0); RM2.ShowReport; // RM2.PrintReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\' + trim(Edit1.Text)), '提示', 0); end; end; procedure TfrmKcRollCaiFen2.Printdata(FMJID: string); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin with ADOQueryPrint do begin Close; SQL.Clear; SQL.Add('exec P_Print_JYLab ' + quotedstr(Trim(FMJID))); Open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; if Edit1.Text <> '' then begin fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(Edit1.Text) + '.rmf'; ExportFtErpFile(Trim(Edit1.Text) + '.rmf', ADOQueryTmp); // ExportFtErpFile(trim(Edit1.Text) + '.rmf', ADOQueryTemp); end else fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\通用英文标签.rmf'; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RM2.LoadFromFile(fPrintFile); Rm2.DefaultCopies := StrToIntDef(ComboBox1.Text, 0); RM2.ShowReport; // RM2.PrintReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\' + trim(Edit1.Text)), '提示', 0); end; end; function TfrmKcRollCaiFen2.Savedata2(): boolean; var i, FCRID: integer; fconNo, FC_CodeName, FC_Color, fMJID: string; fRollNum, FQty, fMJQty2, FMJQty3, fMJQty4, FMJQty5, fMJMaoZ: double; begin result := false; if CDSOrder.RecordCount <= 1 then begin application.MessageBox('被合并的匹数不能小于或者等于一匹,请检查扫描到的匹数!', '提示信息', MB_ICONERROR); exit; end; i := 0; {with CDSOrder do begin DisableControls; First; while not eof do begin if i=0 then begin // fconNo:= trim(Fieldbyname('ConNo').AsString); FC_CodeName:= trim(Fieldbyname('CodeName').AsString); FC_Color:= trim(Fieldbyname('C_Color').AsString); end else begin { if trim(fconNo)<>trim(Fieldbyname('ConNo').AsString) then begin EnableControls; application.MessageBox('任务单号不同,不能合并!','提示信息',0); exit; end; if trim(FC_CodeName)<>trim(Fieldbyname('C_CodeName').AsString) then begin EnableControls; application.MessageBox('产品名称不同,不能合并!','提示信息',0); exit; end; if trim(FC_Color)<>trim(Fieldbyname('C_Color').AsString) then begin EnableControls; application.MessageBox('颜色不同,不能合并!','提示信息',0); exit; end; end; i:=i+1; next; end; EnableControls; First; end; if i<2 then exit; } ADOQueryCmd.Connection.BeginTrans; try fRollNum := 0; FQty := 0; i := 0; fMJQty2 := 0; FMJQty3 := 0; fMJQty4 := 0; FMJQty5 := 0; fMJMaoZ := 0; with CDSOrder do begin DisableControls; First; while not eof do begin // if Fieldbyname('Ssel').AsBoolean then // begin if i = 0 then begin FCRID := Fieldbyname('CRID').AsInteger; fMJID := Fieldbyname('MJID').asstring; end; fRollNum := 1; FQty := strtofloatdef(trim(MJLen.Text), 0); fMJQty2 := fMJQty2 + Fieldbyname('MJQty2').AsFloat; FMJQty3 := strtofloatdef(trim(mjQty3.Text), 0); fMJQty4 := strtofloatdef(trim(mjQty4.Text), 0); FMJQty5 := FMJQty5 + Fieldbyname('MJQty5').AsFloat; fMJMaoZ := FMJQty3 + fMJQty4; with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from CK_BanCP_KC '); sql.Add('where CRID=' + quotedstr(trim(CDSOrder.Fieldbyname('CRID').AsString))); open; edit; fieldbyname('ZDYstr1').Value := '检验库存合并'; fieldbyname('ZDYFlote1').Value := fieldbyname('kcQty').AsFloat; // fieldbyname('KCROllNum').Value:=0; fieldbyname('kcQty').Value := 0; fieldbyname('kcKGQty').Value := 0; post; end; i := i + 1; //end; next; end; EnableControls; First; end; with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from CK_BanCP_KC '); sql.Add('where CRID=' + quotedstr(inttostr(FCRID))); open; edit; // fieldbyname('KCROllNum').Value:=1; fieldbyname('kcQty').Value := FQty; fieldbyname('kckgQty').Value := fMJMaoZ; post; end; with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from WFB_MJJY '); sql.Add('where MJID=' + quotedstr(trim(fMJID))); open; edit; fieldbyname('MJLen').Value := FQty; fieldbyname('MJQty2').Value := fMJQty2; fieldbyname('MJQty3').Value := FMJQty3; fieldbyname('MJQty4').Value := fMJQty4; fieldbyname('MJQty5').Value := FMJQty5; fieldbyname('MJMaoZ').Value := fMJMaoZ; post; end; with adoqueryCmd do begin close; sql.Clear; SQL.Add('select A.*,D.PRTCodeName,D.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ from CK_BanCP_KC A'); sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID '); sql.Add('inner join JYOrder_sub D on D.MainID=C.MainID and D.subID=C.subID '); sql.Add('where CRID=' + quotedstr(inttostr(FCRID))); open; SInitCDSData20(adoqueryCmd, CDSMJID); end; ADOQueryCmd.Connection.CommitTrans; CDSOrder.EmptyDataSet; if Trim(Edit6.Text) = '√' then begin printdata(fMJID); end; ModalResult := 1; // application.MessageBox('数据合并成功!','提示信息'); // TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; // application.MessageBox('数据合并失败!','提示信息',0); end; end; function TfrmKcRollCaiFen2.Savedata1(): boolean; var fbcID, FCRID, fAPTM, FMJID, fNewMJID, fnewbcid: string; CRID: integer; i: integer; fKGQty1, fKGQty2: double; begin result := false; if CDSOrder.RecordCount > 1 then begin application.MessageBox('被拆分的匹数不能大于一匹,请检查扫描到的匹数!', '提示信息', MB_ICONERROR); exit; end; if CDSOrder.FieldByName('KCqty').AsFloat > 0 then begin if strtofloatdef(trim(mjlen.Text), 0) > CDSOrder.FieldByName('KCqty').AsFloat then begin application.MessageBox('拆分数量不能大于原数量!', '提示信息', MB_ICONERROR); exit; end; end; if GetLSNo(ADOQueryCmd, fAPTM, 'KPS', 'APTM', 4, 1) = False then begin Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; fbcID := CDSOrder.fieldbyname('BCID').AsString; FCRID := CDSOrder.fieldbyname('CRID').AsString; FMJID := CDSOrder.fieldbyname('MJID').AsString; ADOQueryCmd.Connection.BeginTrans; try //保存新卷 with ADOQueryXH do begin close; sql.Clear; sql.Add('select * from WFB_MJJY A'); sql.Add('where MJID=' + quotedstr(trim(CDSOrder.fieldbyname('MJID').asstring))); open; end; if GetLSNo(ADOQueryCmd, fNewMJID, 'C', 'WFB_MJJY', 4, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('生成流水号异常!', '提示', 0); exit; end; with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from WFB_MJJY '); sql.Add('where MJID=' + quotedstr(trim(FMJID))); open; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from WFB_MJJY A'); sql.Add('where 1=2 '); open; end; ADOQueryCmd.Append; for i := 0 to ADOQueryCmd.FieldCount - 1 do begin ADOQueryCmd.fields[i].value := ADOQueryXH.Fields[i].Value; end; ADOQueryCmd.FieldByName('MJID').Value := fNewMJID; ADOQueryCmd.FieldByName('MJQty2').Value := 0; ADOQueryCmd.FieldByName('MJQty5').Value := 0; ADOQueryCmd.FieldByName('MJStr2').Value := '已入库'; ADOQueryCmd.FieldByName('MJQty3').Value := strtofloatdef(MJQty3.Text, 0); if Label13.Caption = 'M' then begin ADOQueryCmd.FieldByName('MJLen').Value := strtofloatdef(MJLen.Text, 0) + strtofloatdef(KJ.Text, 0); end else begin ADOQueryCmd.FieldByName('MJLen').Value := strtofloatdef(MJLen.Text, 0); end; if Label13.Caption = 'M' then begin ADOQueryCmd.FieldByName('MJQty4').Value := strtofloatdef(MJQty4.Text, 0); ADOQueryCmd.FieldByName('MJmaoz').Value := strtofloatdef(MJQty4.Text, 0) + strtofloatdef(MJQty3.Text, 0); end else begin ADOQueryCmd.FieldByName('MJQty4').Value := strtofloatdef(MJQty4.Text, 0) + strtofloatdef(KJ.Text, 0); ADOQueryCmd.FieldByName('MJmaoz').Value := strtofloatdef(MJQty4.Text, 0) + strtofloatdef(MJQty3.Text, 0) + strtofloatdef(KJ.Text, 0); end; ADOQueryCmd.FieldByName('kj').Value := strtofloatdef(KJ.Text, 0); ADOQueryCmd.FieldByName('MJXH').VALUE := 30; // ADOQueryCmd.FieldByName('KPSNO').VALUE := fAPTM; ADOQueryCmd.FieldByName('ZDMJID').Value := FMJID; ADOQueryCmd.Post; //修改原匹数量 with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from WFB_MJJY '); sql.Add('where MJID=' + quotedstr(trim(FMJID))); open; edit; ADOQueryCmd.FieldByName('KPSNO').VALUE := fAPTM; if CDSOrder.FieldByName('KCqty').AsFloat <= 0 then begin ADOQueryCmd.fieldbyname('MJLen').Value := 0; end else begin ADOQueryCmd.fieldbyname('MJLen').Value := ADOQuery1.fieldbyname('MJLen').AsFloat - strtofloatdef(MJLen.Text, 0); end; ADOQueryCmd.fieldbyname('MJQty4').Value := ADOQuery1.fieldbyname('MJQty4').AsFloat - strtofloatdef(MJQty4.Text, 0); ADOQueryCmd.fieldbyname('MJMaoZ').Value := ADOQuery1.fieldbyname('MJMaoZ').AsFloat - strtofloatdef(MJQty4.Text, 0) - strtofloatdef(MJQty3.Text, 0); post; end; //更新出入库数据 with ADOQueryCmd do begin Close; sql.Clear; sql.Add('exec P_Do_CFCRK @MJID=' + quotedstr(trim(fNewMJID)) + ',@OldMJID=' + quotedstr(trim(FMJID))); execsql; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('UPDATE CK_BanCP_CR SET RKPlaCE=' + QuotedStr(Trim(kuwei.Text))); SQL.Add(',ganghao=' + QuotedStr(Trim(ADOQuery1.FieldByName('MJSTR4').AsString))); sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID))); SQL.Add('UPDATE CK_BanCP_CR SET RKPlaCE=' + QuotedStr(Trim(kuwei.Text))); sql.Add(' where MJID=' + QuotedStr(Trim(FMJID))); SQL.Add('UPDATE WFB_MJJY SET MJSTR4=' + QuotedStr(Trim(ADOQuery1.FieldByName('MJSTR4').AsString))); sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID))); SQL.Add('UPDATE CK_BanCP_kc SET C_KUWEI=' + QuotedStr(Trim(kuwei.Text))); sql.Add(' where MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')'); SQL.Add('UPDATE WFB_MJJY SET KPNO=' + QuotedStr(Trim(edit3.text))); sql.Add(' where MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')'); // ShowMessage(SQL.Text); execsql; end; //更新检验进度 // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('exec P_Update_Order_JD_ByOther @MainType=''检验信息编辑'', @MJId= ' + quotedstr(Trim(fNewMJID))); // execsql; // end; ADOQueryCmd.Connection.CommitTrans; with adoqueryCmd do begin close; sql.Clear; SQL.Add('select A.*,D.MPRTCodeName,E.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ,C.MJTypeOther from CK_BanCP_KC A'); sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID '); sql.Add('inner join JYOrder_main D on D.MainID=C.MainID '); sql.Add('inner join JYOrder_sub E on E.subID=C.subID '); sql.Add('where C.MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')'); open; SInitCDSData20(adoqueryCmd, CDSMJID); end; CDSOrder.EmptyDataSet; if Trim(Edit6.Text) = '√' then begin printdata2(fNewMJID, FMJID); // printdata(FMJID); end; ModalResult := 1; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure TfrmKcRollCaiFen2.InitGrid(); begin with ADOQueryMain do begin Close; sql.Clear; SQL.Add('select A.*,ISNULL(C_CODENAME,D.MPRTCodeName)MPRTCodeName,ISNULL(C_COLOR,E.PrtColor)PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ,MJTypeOther from CK_BanCP_KC A'); sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID '); sql.Add('LEFT join JYOrder_Main D on D.MainID=C.MainID '); sql.Add('LEFT join JYOrder_sub E on E.subID=C.subID '); SQL.Add('where 1=2 '); Open; end; SCreateCDS20(ADOQueryMain, CDSOrder); SInitCDSData20(ADOQueryMain, CDSOrder); SCreateCDS20(ADOQueryMain, CDSMJID); SInitCDSData20(ADOQueryMain, CDSMJID); end; procedure TfrmKcRollCaiFen2.InitMJID(); var fP_No: string; begin MovePanel1.Visible := false; with ADOQueryTmp do begin Close; sql.Clear; SQL.Add('select B.MJID from CK_BanCP_CR B where B.CRFlag=''出库'' '); SQL.Add('and B.MJID=' + quotedstr(trim(SmNO.text))); Open; end; if ADOQueryTmp.IsEmpty = false then begin MovePanel1.Visible := true; Edit2.Text := SmNO.Text; Label2.Caption := '此条码已出库'; exit; end; with ADOQueryMain do begin Close; sql.Clear; SQL.Add('select A.*,ISNULL(C_CODENAME,D.MPRTCodeName)MPRTCodeName,ISNULL(C_COLOR,E.PrtColor)PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ, MJTypeOther '); SQL.Add(',RKPLACE=(SELECT TOP 1 RKPLACE FROM CK_BanCP_CR B WHERE B.MJID=A.MJID AND B.CRFLAG=''入库'' )'); sql.Add('from CK_BanCP_KC A inner join WFB_MJJY C on C.MJID=A.MJID '); sql.Add('left join JYOrder_main D on D.MainID=C.MainID '); sql.Add('left join JYOrder_sub E on E.SubId=C.SubId '); SQL.Add('where A.MJID=' + quotedstr(trim(SmNO.text))); SQL.Add(' and A.Cycle=(select max(e.Cycle) from CK_BanCP_CR e where e.mjid=a.mjid) '); Open; if not IsEmpty then begin if ((Fieldbyname('KCQty').AsFloat <= 0) and (Fieldbyname('KCKGQty').AsFloat <= 0)) then begin MovePanel1.Visible := true; Edit2.Text := SmNO.Text; Label2.Caption := '此条码已出库'; end else begin SInitCDSData20(ADOQueryMain, CDSOrder); kuwei.Text := Fieldbyname('rkplace').AsString; end; end else begin MovePanel1.Visible := true; Edit2.Text := SmNO.Text; Label2.Caption := '此条码不存在'; end; end; end; procedure TfrmKcRollCaiFen2.FormDestroy(Sender: TObject); begin wRITECxGrid(self.Caption + tV1.Name, Tv1, '成品仓库1'); wRITECxGrid(self.Caption + TV2.Name, Tv2, '成品仓库2'); frmKcRollCaiFen2 := nil; end; procedure TfrmKcRollCaiFen2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmKcRollCaiFen2.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmKcRollCaiFen2.FormCreate(Sender: TObject); begin Panel2.Align := alClient; end; procedure TfrmKcRollCaiFen2.SmNOKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin MovePanel1.Visible := false; if not CDSOrder.Locate('MJID', trim(smNo.Text), []) then initMjid(); smno.Text := ''; smno.SetFocus; if trim(Edit8.Text) = '√' then begin if not CDSOrder.IsEmpty then MJLen.Text := floattostr(tv1.DataController.Summary.FooterSummaryValues[1]); end; end; end; procedure TfrmKcRollCaiFen2.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption + tV1.Name, Tv1, '成品仓库1'); ReadCxGrid(self.Caption + TV2.Name, Tv2, '成品仓库2'); MovePanel1.Left := (Width - MovePanel1.Width) div 2; MovePanel1.top := (Height - MovePanel1.Height - 200) div 2; InitGrid(); SmNO.SetFocus; end; procedure TfrmKcRollCaiFen2.Button4Click(Sender: TObject); begin MovePanel1.Visible := false; end; procedure TfrmKcRollCaiFen2.Edit7Click(Sender: TObject); begin if Trim(Edit7.Text) = '' then begin Edit7.Text := '√'; Edit8.Text := ''; // Edit9.Text:=''; end else begin Edit7.Text := ''; Edit8.Text := ''; // Edit9.Text:=''; end; end; procedure TfrmKcRollCaiFen2.Edit8Click(Sender: TObject); begin if Trim(Edit8.Text) = '' then begin Edit7.Text := ''; Edit8.Text := '√'; // Edit9.Text:=''; end else begin Edit7.Text := ''; Edit8.Text := ''; // Edit9.Text:=''; end; if trim(Edit8.Text) = '√' then begin // IF not CDSOrder.IsEmpty then // MJLen.Text:=floattostr(tv1.DataController.Summary.FooterSummaryValues[1]); end; end; procedure TfrmKcRollCaiFen2.Edit6Click(Sender: TObject); begin if Trim(Edit6.Text) = '' then begin Edit6.Text := '√'; end else begin Edit6.Text := ''; end; end; procedure TfrmKcRollCaiFen2.BTPrintClick(Sender: TObject); begin if Edit3.Text = '' then begin application.MessageBox('请先取号!', '提示信息', MB_ICONERROR); exit; end; if Trim(Edit7.Text) = '√' then begin savedata1(); end; if Trim(Edit8.Text) = '√' then begin savedata2(); end; SmNO.SetFocus; end; procedure TfrmKcRollCaiFen2.Tv1DblClick(Sender: TObject); begin if CDSOrder.IsEmpty then exit; CDSOrder.Delete; end; procedure TfrmKcRollCaiFen2.Button5Click(Sender: TObject); begin if CDSMJID.IsEmpty then exit; printdata(CDSMJID.fieldbyname('MJID').AsString); SmNO.SetFocus; end; procedure TfrmKcRollCaiFen2.MJLenChange(Sender: TObject); begin QuantityConversion(); end; procedure TfrmKcRollCaiFen2.MKXSExit(Sender: TObject); begin QuantityConversion(); end; procedure TfrmKcRollCaiFen2.Button1Click(Sender: TObject); begin try frmLabelList := TfrmLabelList.Create(Application); with frmLabelList do begin if ShowModal = 1 then begin Edit1.Text := Trim(ADOQueryLabel.fieldbyname('labelCaption').AsString); end; end; finally frmLabelList.Free; end; end; procedure TfrmKcRollCaiFen2.Label13Click(Sender: TObject); begin if Label13.Caption = 'M' then begin Label13.Caption := 'KG' end else begin Label13.Caption := 'M' end; end; procedure TfrmKcRollCaiFen2.Button2Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDSMJID.IsEmpty then Exit; with ADOQueryPrint do begin close; sql.Clear; SQL.Add('select A.*,D.MPRTCodeName,d.mprtcode,D.SALESCLASS,E.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ,c.mjlen,C.KPNO from CK_BanCP_CR A'); sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID '); sql.Add('inner join JYOrder_main D on D.MainID=C.MainID '); sql.Add('inner join JYOrder_sub E on E.subID=C.subID '); sql.Add('where C.kpno=(select kpno from wfb_mjjy G WHERE G.MJID=' + QuotedStr(Trim(CDSMJID.fieldbyname('MJID').AsString))); SQL.Add(')'); SQL.Add('AND A.CRFLAG=''入库'''); // ShowMessage(SQL.Text); open; end; // if Edit1.Text <> '' then // begin fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\开坯码单.rmf'; ExportFtErpFile('开坯码单.rmf', ADOQueryTmp); // ExportFtErpFile(trim(Edit1.Text) + '.rmf', ADOQueryTemp); // end // else // fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\通用英文标签.rmf'; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('MJID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RMVariables['ZDR'] := TRIM(DName); RM2.LoadFromFile(fPrintFile); // Rm2.DefaultCopies := StrToIntDef(ComboBox1.Text, 0); RM2.ShowReport; // RM2.PrintReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\开坯码单'), '提示', 0); end; end; procedure TfrmKcRollCaiFen2.Button3Click(Sender: TObject); begin try frmCKProductBCPKCListSel := TfrmCKProductBCPKCListSel.Create(Application); with frmCKProductBCPKCListSel do begin if ShowModal = 1 then begin SmNO.Text := Trim(CDS_MAIN.fieldbyname('MJID').ASSTRING); MovePanel1.Visible := false; if not CDSOrder.Locate('MJID', trim(smNo.Text), []) then initMjid(); smno.Text := ''; smno.SetFocus; if trim(Edit8.Text) = '√' then begin if not CDSOrder.IsEmpty then MJLen.Text := floattostr(tv1.DataController.Summary.FooterSummaryValues[1]); end; end; end; finally frmCKProductBCPKCListSel.Free; end; end; procedure TfrmKcRollCaiFen2.Button6Click(Sender: TObject); var fAPNO: string; begin if GetLSNo(ADOQueryCmd, fAPNO, 'KP', 'WFB_MJJY', 4, 1) = False then begin Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; edit3.Text := Trim(fAPNO); end; end.