unit U_CXJY; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, RM_Common, RM_Class, RM_GridReport, RM_System, RM_Dataset, ADODB, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu, ExtCtrls, ComCtrls, ToolWin, cxTextEdit, Buttons, cxSplitter, cxCheckBox, MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type Tfrmcxjy = class(TForm) cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxGridPopupMenu1: TcxGridPopupMenu; DataSource1: TDataSource; Order_MJ: TClientDataSet; ADOQueryMain: TADOQuery; ADOCmd: TADOQuery; RMDB_Main: TRMDBDataSet; RM2: TRMGridReport; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; DataSource2: TDataSource; CDS_MJCD: TClientDataSet; DataSource3: TDataSource; CDS_MJID: TClientDataSet; Timer1: TTimer; ADOQueryPrint: TADOQuery; ScrollBox1: TScrollBox; SpeedButton13: TSpeedButton; SpeedButton14: TSpeedButton; SpeedButton15: TSpeedButton; SpeedButton16: TSpeedButton; SpeedButton17: TSpeedButton; SpeedButton18: TSpeedButton; SpeedButton22: TSpeedButton; SpeedButton23: TSpeedButton; SpeedButton24: TSpeedButton; SpeedButton25: TSpeedButton; SpeedButton26: TSpeedButton; SpeedButton29: TSpeedButton; SpeedButton31: TSpeedButton; SpeedButton32: TSpeedButton; SpeedButton33: TSpeedButton; SpeedButton34: TSpeedButton; SpeedButton37: TSpeedButton; SpeedButton38: TSpeedButton; SpeedButton40: TSpeedButton; SpeedButton41: TSpeedButton; SpeedButton42: TSpeedButton; cxGridPopupMenu2: TcxGridPopupMenu; ADOQueryMainDSC: TADOQuery; SpeedButton45: TSpeedButton; SpeedButton46: TSpeedButton; SpeedButton47: TSpeedButton; SpeedButton50: TSpeedButton; SpeedButton51: TSpeedButton; SpeedButton54: TSpeedButton; SpeedButton55: TSpeedButton; SpeedButton56: TSpeedButton; SpeedButton57: TSpeedButton; SpeedButton59: TSpeedButton; SpeedButton62: TSpeedButton; SpeedButton63: TSpeedButton; SpeedButton64: TSpeedButton; SpeedButton65: TSpeedButton; SpeedButton66: TSpeedButton; SpeedButton70: TSpeedButton; SpeedButton71: TSpeedButton; SpeedButton72: TSpeedButton; SpeedButton73: TSpeedButton; SpeedButton74: TSpeedButton; SpeedButton75: TSpeedButton; Panel2: TPanel; Label9: TLabel; MJLen: TEdit; Label4: TLabel; MJMaoZ: TEdit; Label5: TLabel; Label11: TLabel; BTPrint: TButton; Button5: TButton; Label10: TLabel; Panel3: TPanel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton; SpeedButton9: TSpeedButton; SpeedButton10: TSpeedButton; SpeedButton11: TSpeedButton; SpeedButton12: TSpeedButton; SpeedButton49: TSpeedButton; v3Column1: TcxGridDBColumn; v3Column2: TcxGridDBColumn; v3Column3: TcxGridDBColumn; Label26: TLabel; Edit6: TEdit; Label30: TLabel; MJQty3: TEdit; Label31: TLabel; Label32: TLabel; MJQty4: TEdit; Label33: TLabel; MovePanel1: TMovePanel; Label17: TLabel; Label18: TLabel; Label20: TLabel; Label21: TLabel; Label7: TLabel; Label8: TLabel; Edit1: TEdit; Button1: TButton; Button4: TButton; Edit2: TEdit; CDQty: TEdit; RadioGroup1: TRadioGroup; Button2: TButton; Panel7: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; tv2CDType: TcxGridDBColumn; tv2CDWZ: TcxGridDBColumn; v2Column2: TcxGridDBColumn; Tv2CDQty: TcxGridDBColumn; Tv2CDReason: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Panel8: TPanel; AOrdDefNote1: TRichEdit; Label34: TLabel; ComboBox1: TComboBox; SpeedButton20: TSpeedButton; SpeedButton27: TSpeedButton; SpeedButton28: TSpeedButton; SpeedButton35: TSpeedButton; SpeedButton36: TSpeedButton; SpeedButton43: TSpeedButton; SpeedButton52: TSpeedButton; SpeedButton53: TSpeedButton; SpeedButton60: TSpeedButton; SpeedButton61: TSpeedButton; SpeedButton68: TSpeedButton; SpeedButton69: TSpeedButton; SpeedButton77: TSpeedButton; SpeedButton78: TSpeedButton; SpeedButton79: TSpeedButton; SpeedButton80: TSpeedButton; SpeedButton81: TSpeedButton; SpeedButton82: TSpeedButton; v3Column4: TcxGridDBColumn; Label36: TLabel; MJStr4: TEdit; Label37: TLabel; v3Column5: TcxGridDBColumn; Label38: TLabel; RM3: TRMGridReport; mjxh: TEdit; MKXS: TEdit; Panel5: TPanel; Panel6: TPanel; Label1: TLabel; lblOrderNo: TLabel; Label35: TLabel; Label39: TLabel; APID: TEdit; Edit7: TEdit; Edit8: TEdit; ToolBar1: TToolBar; ToolButton1: TToolButton; TBCD: TToolButton; TBClose: TToolButton; lblMPRTCodeName: TLabel; ToolButton3: TToolButton; lblcolor: TLabel; Label13: TLabel; v3Column6: TcxGridDBColumn; Label14: TLabel; edtYJ: TEdit; Label2: TLabel; v2Column4: TcxGridDBColumn; ADOTmp: TADOQuery; Label3: TLabel; Label6: TLabel; MJFMLen: TEdit; Label15: TLabel; YPS: TEdit; v3Column7: TcxGridDBColumn; MJType: TComboBox; ToolButton2: TToolButton; Label12: TLabel; kj: TEdit; Label16: TLabel; kjj: TEdit; Label19: TLabel; Edit3: TEdit; SpeedButton19: TSpeedButton; ToolButton4: TToolButton; Button3: TButton; Label23: TLabel; JYMF: TEdit; Label22: TLabel; JYKZ: TEdit; Label24: TLabel; JYKH: TEdit; ToolButton5: TToolButton; ToolButton6: TToolButton; CDS_CKCD: TClientDataSet; DataSource4: TDataSource; Panel1: TPanel; cxGrid1: TcxGrid; TV6: TcxGridDBTableView; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; Panel4: TPanel; JYNOTE: TEdit; ToolButton7: TToolButton; ADOQUERYCMD: TADOQuery; ADOQuery1: TADOQuery; Button6: TButton; Label25: TLabel; Edit4: TEdit; Label27: TLabel; WLCODE: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBCDClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure BTPrintClick(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton12Click(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure cxGridDBColumn2PropertiesChange(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure SpeedButton49Click(Sender: TObject); procedure APIDKeyPress(Sender: TObject; var Key: Char); procedure Edit1Click(Sender: TObject); procedure Edit2Change(Sender: TObject); procedure Edit6Click(Sender: TObject); procedure MJstr3KeyPress(Sender: TObject; var Key: Char); procedure Label9Click(Sender: TObject); procedure MJQty4Exit(Sender: TObject); procedure Button2Click(Sender: TObject); procedure MJMaoZChange(Sender: TObject); procedure APIDClick(Sender: TObject); procedure Edit7Click(Sender: TObject); procedure MJQty4KeyPress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject); procedure Edit8Click(Sender: TObject); procedure MJLenChange(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure Button4Click(Sender: TObject); procedure edtYJClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Edit3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Tv3DblClick(Sender: TObject); procedure Panel4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Tv3FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton7Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Edit4Click(Sender: TObject); private { Private declarations } FColumn, FAPID, FMainId, FSubId, FFFMJID, FOperationStatus, FYXJL, FJHGZ, FPiHao, FTCNO, Flabname: string; FCDName, FCJLB: string; fnote: string; isCommopen, IsJsMessage: boolean; fxsType, fRollType: string; function Savedata1(): boolean; procedure InitJP(); //刷新疵点选项 procedure InitCDGrid(); //刷新疵点信息 procedure InitCDGridID(); //刷新检验信息 function CheckData(CKType: string): Boolean; //校验数据 function SaveData(): Boolean; //保存数据 procedure InitLCK(); //扫描流程卡 procedure InitDDB(); //扫描待定布 procedure ClearGlobal(); //清除全局ID procedure PrintCKMDG(MRKOrdID: string); //打印入库单 procedure PrtData(FMJID: string); //打印卷标签 procedure QuantityConversion(); //数量换算 procedure OpenCom(DllName: string); procedure CloseCom(DllName: string); procedure On1201(var Message: Tmessage); message 1201; procedure On1301(var Message: Tmessage); message 1301; public fmanage: string; fxiugai: string; { Public declarations } end; var frmcxjy: Tfrmcxjy; newh, newh1: hwnd; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_iniParam, U_ProductOrderListSel, U_ZdyMapSel; {$R *.dfm} procedure Tfrmcxjy.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); MGWet := StrToFloatdef(trim(MJMaoZ.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; MJMaoZ.Text := FloatToStr(MGWet); MJQty4.Text := FloatToStr(MNWet); end; MNWet := MGWet - MPWet; MJQty4.Text := FloatToStr(MNWet); end; function Tfrmcxjy.Savedata1(): boolean; var fbcID, FCRID, fAPTM, FMJID, fNewMJID, fnewbcid: string; CRID: integer; i: integer; fKGQty1, fKGQty2: double; begin result := false; if CDS_MJID.FieldByName('MJLEN').AsFloat > 0 then begin if strtofloatdef(trim(mjlen.Text), 0) > CDS_MJID.FieldByName('MJLEN').AsFloat then begin application.MessageBox('拆分数量不能大于原数量!', '提示信息', MB_ICONERROR); exit; end; end; if GetLSNo(ADOQUERYCMD, fAPTM, 'C', 'APTM', 4, 1) = False then begin Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; // fbcID := CDSOrder.fieldbyname('BCID').AsString; // FCRID := CDSOrder.fieldbyname('CRID').AsString; FMJID := CDS_MJID.fieldbyname('MJID').AsString; ADOQueryCmd.Connection.BeginTrans; try //保存新卷 with ADOTmp do begin close; sql.Clear; sql.Add('select * from WFB_MJJY A'); sql.Add('where MJID=' + quotedstr(trim(CDS_MJID.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 := ADOTmp.Fields[i].Value; end; ADOQueryCmd.FieldByName('MJID').Value := fNewMJID; ADOQueryCmd.FieldByName('mjxh').Value := ADOQuery1.fieldbyname('mjxh').value; ADOQueryCmd.FieldByName('MJQty2').Value := 0; ADOQueryCmd.FieldByName('MJQty5').Value := 0; ADOQueryCmd.FieldByName('MJStr2').Value := '已入库'; ADOQueryCmd.FieldByName('MJQty3').Value := strtofloatdef(MJQty3.Text, 0); if CDS_MJID.FieldByName('MJLen').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); ADOQueryCmd.FieldByName('ZDMJID').Value := FMJID; ADOQueryCmd.Post; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('update WFB_MJJY SET MJXH=(SELECT ISNULL(MJXH,0)+1 FROM WFB_MJJY WHERE MJID=' + QuotedStr(Trim(FMJID))); // SQL.Add(')'); // sql.Add('where MJID=''' + Trim(fNewMJID) + ''''); // execsql; // end; // with ADOQueryCmd do // begin // Close; // sql.Clear; // sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=WFB_MJJY.subID and X.MJstr4=WFB_MJJY.Mjstr4 and X.MJID<>WFB_MJJY.MJID ),0)'); // sql.Add('where MJID=''' + Trim(fNewMJID) + ''''); // execsql; // end; //修改原匹数量 with adoqueryCmd do begin close; sql.Clear; sql.Add('select * from WFB_MJJY '); sql.Add('where MJID=' + quotedstr(trim(FMJID))); open; edit; 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('mjstr4').Value := Trim(kuwei.Text); ADOQueryCmd.FieldByName('MJXH').Value := 30; // ADOQueryCmd.FieldByName('jbs').Value:= strtofloatdef(KJ.Text, 0) // ADOQueryCmd.FieldByName('MJQty4').Value := strtofloatdef(MJQty4.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))); // ShowMessage(SQL.Text); execsql; end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('UPDATE CK_BanCP_CR SET '); SQL.Add('ganghao=' + QuotedStr(Trim(ADOQuery1.FieldByName('MJSTR4').AsString))); sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID))); SQL.Add('UPDATE WFB_MJJY SET MJSTR4=' + QuotedStr(Trim(ADOQuery1.FieldByName('MJSTR4').AsString))); sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID))); SQL.Add('UPDATE WFB_MJJY SET CJKP=''1'''); sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID))); SQL.Add('UPDATE FHSQ_SUB SET SFKP=''否'''); SQL.Add('where MJID=' + QuotedStr(Trim(FMJID))); execsql; end; ADOQueryCmd.Connection.CommitTrans; if Trim(Edit6.Text) = '√' then begin PrtData(fNewMJID); PrtData(FMJID); end; ModalResult := 1; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; function Tfrmcxjy.CheckData(CKType: string): Boolean; var mvalue: Double; begin try if Trim(FAPID) = '' then raise Exception.Create('请扫描流程卡!'); // if Trim(FMainId) = '' then // raise Exception.Create('请扫描流程卡!'); // if Trim(FSubId) = '' then // raise Exception.Create('请扫描流程卡!'); if Trim(CKType) = '提交' then begin if trim(Label9.Caption) = '' then raise Exception.Create('长度单位不能为空!'); if trim(MJTYPE.Text) = '' then raise Exception.Create('等级不能为空!'); if trim(JYMF.Text) = '' then raise Exception.Create('门幅不能为空!'); if trim(YPS.Text) = '' then raise Exception.Create('原坯数不能为空!'); if Trim(MJMaoZ.Text) <> '' then begin if TryStrToFloat(MJMaoZ.Text, mvalue) = False then raise Exception.Create('重量录入错误!'); if strtofloatdef(trim(MJMaoZ.Text), 0) > 80 then raise Exception.Create('重量不能大于80!'); end; if strtofloatdef(trim(MJQty4.Text), 0) < 0.00 then raise Exception.Create('重量不能小于0!'); if strtofloatdef(trim(MJLen.Text), 0) < 0.00 then raise Exception.Create('长度不能小于0!'); if Trim(MJLen.Text) <> '' then begin if strtofloatdef(trim(MJLen.Text), 0) > 400 then raise Exception.Create('长度不能大于400!'); end; if (strtofloatdef(trim(MJLen.Text), 0) = 0) and (strtofloatdef(trim(MJQty4.Text), 0) = 0) then raise Exception.Create('长度和重量不能都为0!!'); end; Result := True; except Result := false; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure Tfrmcxjy.ClearGlobal(); begin FAPID := ''; FJHGZ := ''; Flabname := ''; FMainId := ''; FSubId := ''; FFFMJID := ''; FTCNO := ''; FPiHao := ''; lblOrderNo.Caption := '申请类型'; lblMPRTCodeName.Caption := '品名'; lblcolor.Caption := '颜色'; MJXH.Text := ''; MJstr4.Text := ''; JYMF.Text := ''; MKXS.Text := ''; AOrdDefNote1.Text := ''; MJQty3.Text := ''; MJQty4.Text := ''; WLCODE.Text := ''; Label13.Caption := '实际平均系数:'; Label14.Caption := '理论系数:'; end; procedure Tfrmcxjy.PrintCKMDG(MRKOrdID: 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_RKMDGangNo '); SQL.Add(' @RKOrdID=''' + Trim(MRKOrdID) + ''''); Open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('RKOrdID').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; ExportFtErpFile('验布工仓库码单.rmf', ADOTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\验布工仓库码单.rmf'; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RM2.LoadFromFile(fPrintFile); Rm2.DefaultCopies := 1; RM2.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Exit; end; end; procedure Tfrmcxjy.InitDDB(); begin with ADOTmp do begin Close; sql.Clear; sql.Add('select * from CK_BanCP_CR where MJID=''' + Trim(APID.Text) + ''' and CRFlag=''入库'''); Open; end; if ADOTmp.IsEmpty = False then begin APID.Text := ''; Application.MessageBox('已产生入库数据检验!', '提示', 0); Exit; end; with ADOTmp do begin Close; sql.Clear; sql.Add('select A.*,B.*,C.*,D.MJID,D.MJXH,D.MKXS,D.MJMaoZ,D.MJQty3,D. MJQty4,D.MJLen '); sql.Add('from CK_SXPB_CR A'); sql.Add('inner join JYOrder_Main B on A.ORDMainIdCK=B.MainId'); sql.Add('inner join JYOrder_Sub C on A.ORDSubIdCK=C.SubId'); sql.Add('inner join WFB_MJJY D on D.APID=A.SPID'); sql.Add('where MJType=''待定'' and MJID=''' + Trim(APID.Text) + ''''); Open; end; if ADOTmp.IsEmpty then begin ClearGlobal(); Application.MessageBox('此条码不是待定状态无法重新检验!', '提示', 0); end else begin FAPID := Trim(ADOTmp.fieldbyname('SPID').AsString); FMainId := Trim(ADOTmp.fieldbyname('ORDMainIdRK').AsString); FSubId := Trim(ADOTmp.fieldbyname('ORDSubIdRK').AsString); FFFMJID := Trim(ADOTmp.fieldbyname('MJID').AsString); lblOrderNo.Caption := Trim(ADOTmp.fieldbyname('crtype').AsString); lblMPRTCodeName.Caption := Trim(ADOTmp.fieldbyname('MPRTCodeName').AsString); lblcolor.Caption := trim(ADOTmp.fieldbyname('PRTColor').AsString); MJXH.Text := Trim(ADOTmp.fieldbyname('MJXH').AsString); MJstr4.Text := Trim(ADOTmp.fieldbyname('rcgangNo').AsString); MKXS.Text := Trim(ADOTmp.fieldbyname('Xs').AsString); AOrdDefNote1.Text := '包装要求:' + Trim(ADOTmp.fieldbyname('MPRTBZNote').AsString) + #13 + '门幅:' + Trim(ADOTmp.fieldbyname('MPRTMF').AsString) + #13 + '克重:' + Trim(ADOTmp.fieldbyname('MPRTKZ').AsString) + #13 + '特别提示:' + Trim(ADOTmp.fieldbyname('Note').AsString); // MJQty3.Text := Trim(ADOTmp.fieldbyname('PiZhong').AsString); MKXS.Text := Trim(ADOTmp.fieldbyname('MKXS').AsString); MJMaoZ.Text := Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); MJQty3.Text := Trim(ADOTmp.fieldbyname('MJQty3').AsString); MJQty4.Text := Trim(ADOTmp.fieldbyname('MJQty4').AsString); MJLen.Text := Trim(ADOTmp.fieldbyname('MJLen').AsString); if Trim(ADOTmp.fieldbyname('OrderUnit').AsString) <> '' then begin Label20.Caption := Label9.Caption; Label7.Caption := Label9.Caption; end; end; with ADOCmd do begin Close; sql.Clear; 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('卷号:' + trim(APID.Text)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; InitCDGridID(); InitCDGrid(); APID.Text := ''; end; procedure Tfrmcxjy.InitLCK(); begin with ADOTmp do begin Close; sql.Clear; sql.Add('select A.*,B.*,C.*,A.Note DJBNote,D.SCSKX '); sql.Add(',maxRoll=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.APID=A.SPID ),0)'); sql.Add('from CK_SXPB_CR A'); sql.Add('left join JYOrder_Main B on A.ORDMainIdCK=B.MainId'); sql.Add('left join JYOrder_Sub C on A.ORDSubIdCK=C.SubId'); sql.Add('left join SalesContract_Sub D on A.ORDSubIdCK=D.SubId'); sql.Add('where SPID=''' + Trim(APID.Text) + ''''); SQL.Add('AND CKNAME=''重检'''); sql.Add('and crtype in(''拼缸及重检出库'',''客户检验'')'); Open; end; if ADOTmp.IsEmpty = False then begin FAPID := Trim(APID.Text); FTCNO := Trim(ADOTmp.fieldbyname('TCNO').AsString); Flabname := Trim(ADOTmp.fieldbyname('thbq').AsString); FCJLB := Trim(ADOTmp.fieldbyname('CRTYPE').AsString); FMainId := Trim(ADOTmp.fieldbyname('ORDMainIdCK').AsString); FSubId := Trim(ADOTmp.fieldbyname('ORDSubIdCK').AsString); FPiHao := Trim(ADOTmp.fieldbyname('PiHao').AsString); FYXJL := Trim(ADOTmp.fieldbyname('YXJL').AsString); FJHGZ := Trim(ADOTmp.fieldbyname('JHGZ').AsString); if FJHGZ = '手动输入' then begin mjxh.ReadOnly := False; end else begin mjxh.ReadOnly := True; end; MJXH.Text := Trim(ADOTmp.fieldbyname('maxRoll').AsString); MJstr4.Text := Trim(ADOTmp.fieldbyname('rcgangno').AsString); lblOrderNo.Caption := Trim(ADOTmp.fieldbyname('crtype').AsString); // lblMPRTCodeName.Caption := Trim(ADOTmp.fieldbyname('MPRTCodeName').AsString); MKXS.Text := Trim(ADOTmp.fieldbyname('Xs').AsString); kj.Text := Trim(ADOTmp.fieldbyname('KJXs').AsString); kjj.Text := Trim(ADOTmp.fieldbyname('kjjXs').AsString); fnote := '出库备注:' + Trim(ADOTmp.fieldbyname('DJBNote').AsString); AOrdDefNote1.Text := '品名:' + Trim(ADOTmp.fieldbyname('SPCode').AsString) + #13; AOrdDefNote1.Text := AOrdDefNote1.Text + '颜色:' + Trim(ADOTmp.fieldbyname('SPColor').AsString) + #13; AOrdDefNote1.Text := AOrdDefNote1.Text + '款号:' + Trim(ADOTmp.fieldbyname('SCSKX').AsString) + #13; AOrdDefNote1.Text := AOrdDefNote1.Text + '包装要求:' + Trim(ADOTmp.fieldbyname('MPRTBZNote').AsString) + #13 + '门幅:' + Trim(ADOTmp.fieldbyname('SPMF').AsString) + #13 + '克重:' + Trim(ADOTmp.fieldbyname('SPKZ').AsString) + #13 + '出库备注:' + Trim(ADOTmp.fieldbyname('DJBNote').AsString); if Trim(ADOTmp.fieldbyname('crtype').AsString) = '客户检验' then begin AOrdDefNote1.Text := Trim(ADOTmp.fieldbyname('DJBNote').AsString); end; MJQty3.Text := Trim(ADOTmp.fieldbyname('PiZhong').AsString); WLCODE.Text := Trim(ADOTmp.fieldbyname('WLCODE').AsString); // lblcolor.Caption := trim(ADOTmp.fieldbyname('PRTColor').AsString); if Trim(ADOTmp.fieldbyname('OrderUnit').AsString) <> '' then begin Label20.Caption := Label9.Caption; Label7.Caption := Label9.Caption; end; if FYXJL = '米数' then begin MJLen.SetFocus; Edit1Click(MJLen); end else begin MJMaoZ.SetFocus; Edit1Click(MJMaoZ); end; Label14.Caption := '理论系数:' + trim(ADOTmp.fieldbyname('LLXS').AsString); InitCDGridID(); InitCDGrid(); end else begin ClearGlobal(); end; // if Trim(lblOrderNo.Caption) = '' then // Exit; APID.Text := ''; end; procedure Tfrmcxjy.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 Tfrmcxjy.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 Tfrmcxjy.FormDestroy(Sender: TObject); begin frmcxjy := nil; end; procedure Tfrmcxjy.On1301(var Message: Tmessage); var i1, i2: integer; unitname: string; fdata: double; begin i1 := Message.WParam; i2 := Message.LParam; if IsJsMessage then begin if (trim(Edit7.Text) = '√') then begin MJLen.Text := format('%.1f', [i1 / 100000]); // if i2 = 0 then // Label9.Caption := 'M' // else // Label9.Caption := 'Y'; edit1.Text := format('%.1f', [i1 / 100000]); end; end; end; procedure Tfrmcxjy.On1201(var Message: Tmessage); var i1, i2: integer; unitname: string; fdata: double; begin i1 := Message.WParam; i2 := Message.LParam; if IsJsMessage then begin if trim(Edit7.Text) = '√' then begin MJMaoZ.Text := format('%.1f', [i1 / 100000]); end; end; end; procedure Tfrmcxjy.FormClose(Sender: TObject; var Action: TCloseAction); begin //DataLink_WFBProducttion.ADOLink.Connected:=False; if isCommopen then begin closeCom(DZCDYDllName); closeCom(MBDYDllName); end; Action := caFree; end; procedure Tfrmcxjy.InitCDGrid(); begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select * from WFB_MJJY_CD where MJID=' + quotedstr(Trim(FFFMJID))); Open; end; SCreateCDS20(ADOQueryMain, CDS_MJCD); SInitCDSData20(ADOQueryMain, CDS_MJCD); end; procedure Tfrmcxjy.InitCDGridID(); var MMJQty4, MMJLen: double; begin if FCJLB = '客户检验' then begin if Edit4.Text <> '' then begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select A.*'); sql.Add(',JXXS=(case when MJQty4>0 then round(MJLen/MJQty4,2) else 0 end)'); sql.Add('from WFB_MJJY A where mjid in (select mjid from ck_sxpb_cr_mx where fsid=''' + Trim(FAPID) + ''''); sql.Add('AND ISNULL(YCJ,'''')<>''1'') '); SQL.Add('UNION ALL'); sql.Add('select B.*'); sql.Add(',JXXS=(case when MJQty4>0 then round(MJLen/MJQty4,2) else 0 end)'); sql.Add('from WFB_MJJY B where ZDmjid in (select mjid from ck_sxpb_cr_mx where fsid=''' + Trim(FAPID) + ''''); sql.Add(' AND ISNULL(YCJ,'''')<>''1'') AND CJKP=''1'''); Open; end; end else begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select A.*'); sql.Add(',JXXS=(case when MJQty4>0 then round(MJLen/MJQty4,2) else 0 end)'); sql.Add('from WFB_MJJY A where mjid in (select mjid from ck_sxpb_cr_mx where fsid=''' + Trim(FAPID) + ''''); sql.Add(') '); SQL.Add('UNION ALL'); sql.Add('select B.*'); sql.Add(',JXXS=(case when MJQty4>0 then round(MJLen/MJQty4,2) else 0 end)'); sql.Add('from WFB_MJJY B where ZDmjid in (select mjid from ck_sxpb_cr_mx where fsid=''' + Trim(FAPID) + ''''); sql.Add(') AND CJKP=''1'''); Open; end; end; end else begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select A.*'); sql.Add(',JXXS=(case when MJQty4>0 then round(MJLen/MJQty4,2) else 0 end)'); sql.Add('from WFB_MJJY A where apid=''' + Trim(FAPID) + ''''); Open; end; end; SCreateCDS20(ADOQueryMain, CDS_MJID); SInitCDSData20(ADOQueryMain, CDS_MJID); if TV3.DataController.Summary.FooterSummaryValues[1] <> NULL then MMJLen := TV3.DataController.Summary.FooterSummaryValues[1] else MMJLen := 0; if TV3.DataController.Summary.FooterSummaryValues[3] <> NULL then MMJQty4 := TV3.DataController.Summary.FooterSummaryValues[3] else MMJQty4 := 0; if MMJQty4 > 0 then Label13.Caption := '实际平均系数:' + floattostr(RoundFloat(MMJLen / MMJQty4, 2)) else Label13.Caption := '实际平均系数:'; end; procedure Tfrmcxjy.TBCloseClick(Sender: TObject); begin Close; end; procedure Tfrmcxjy.TBCDClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'WFBCD'; flagname := '疵点'; fnote := True; V1Note.Caption := '英文名称'; if ShowModal = 1 then begin Self.InitJP(); end; end; finally frmZDYHelp.Free; end; end; procedure Tfrmcxjy.FormShow(Sender: TObject); begin SInitComBoxBySql(ADOTmp, MJType, False, 'select ZDYName name from KH_Zdy where Type=''MJType'' '); MJType.ItemIndex := MJType.Items.IndexOf('AA'); InitJP(); InitCDGrid(); if trim(Edit7.Text) = '√' then IsJsMessage := true; if IsINIFile() then ReadINIFile() else WriteINIFile; if trim(fmanage) <> '高权限' then begin if trim(DZCDYDllName) <> '' then OpenCom(DZCDYDllName); if trim(MBDYDllName) <> '' then OpenCom(MBDYDllName); Edit7.Visible := true; Label35.Visible := true; end; APID.SetFocus(); end; procedure Tfrmcxjy.InitJP(); var AA: array[0..100] of string; i, j: Integer; begin with ADOTmp do begin Close; sql.Clear; sql.Add('select ZDYName from KH_Zdy where Type=''WFBCD'' order by ZDYNO '); Open; end; if ADOTmp.IsEmpty then begin Application.MessageBox('没有定义疵点!', '提示', 0); Exit; end; with ADOTmp do begin First; i := 0; while not Eof do begin AA[i] := Trim(fieldbyname('ZDYName').AsString); i := i + 1; Next; end; end; i := i - 1; if i > 69 then begin i := 69; end; for j := 0 to i do begin with ScrollBox1 do begin TSpeedButton(Controls[j]).Visible := True; TSpeedButton(Controls[j]).Hint := AA[j]; if Length(AA[j]) > 4 then begin TSpeedButton(Controls[j]).Caption := Copy(Trim(AA[j]), 1, 4) + #13 + Copy(Trim(AA[j]), 5, Length(AA[j]) - 4); end else TSpeedButton(Controls[j]).Caption := AA[j]; end; end; end; procedure Tfrmcxjy.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if CDS_MJCD.IsEmpty then Exit; // if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then // begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if Trim(cds_mjcd.fieldbyname('MCID').AsString) <> '' then begin with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFB_MJJY_CD where MCID=''' + Trim(cds_mjcd.fieldbyname('MCID').AsString) + ''''); ExecSQL; end; end; CDS_MJCD.Delete; // end; end; function Tfrmcxjy.SaveData(): Boolean; var maxno, FMJID, BZID, strsql: string; FMJLen, FYJZQty: Double; begin // SCXFlag := '02'; if FOperationStatus = '翻布重检' then begin FMJID := FFFMJID; end else begin FMJID := ''; end; if fxiugai <> '' then begin FMJID := cds_mjid.fieldbyname('mjid').AsString; end; try ADOCmd.Connection.BeginTrans; ///保存主表 with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY where MJId=''' + Trim(FMJID) + ''''); Open; end; //Trim(SCXFlag) with ADOCmd do begin if Trim(FMJID) = '' then begin Append; if GetLSNo(ADOTmp, maxno, Trim(SCXFlag), 'WFB_MJJY', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('生成流水号异常!', '提示', 0); exit; end; end else begin maxno := Trim(FMJID); Edit; end; if FTCNO <> '' then begin FieldByName('MainId').value := Trim(FTCNO); FieldByName('SubId').value := Trim(FTCNO); FieldByName('FromMainId').value := Trim(FTCNO); FieldByName('FromSubId').value := Trim(FTCNO); end else begin if lblOrderNo.Caption <> '客户检验' then begin FieldByName('MainId').value := Trim(FMainId); FieldByName('SubId').value := Trim(FSubId); FieldByName('FromMainId').value := Trim(FMainId); FieldByName('FromSubId').value := Trim(FSubId); end; end; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY where MJId=''' + Trim(FMJID) + ''''); Open; end; if (lblOrderNo.Caption = '拼缸及重检出库') or (ADOTmp.FieldByName('APID').AsString = '') then begin FieldByName('APId').value := Trim(FAPID); end; if lblOrderNo.Caption = '客户检验' then begin FieldByName('baoid').value := ''; FieldByName('FILLTIME').value := SGetServerDateTime(ADOTmp); end; FieldByName('PiHao').value := Trim(FPiHao); FieldByName('MJID').Value := Trim(maxno); FieldByName('MJStr2').Value := '未入库'; FieldByName('MJstr4').Value := Trim(MJstr4.Text); //本厂缸号 FieldByName('mjxh').Value := strtointdef(trim(mjxh.Text), 0); FieldByName('MJTypeOther').Value := Trim(Label9.Caption); if WLCODE.Text <> '' then begin FieldByName('wlcode').Value := Trim(wlcode.Text); end; //长度 与 减去长度 if TV2.DataController.Summary.FooterSummaryValues[2] <> NULL then begin FYJZQty := StrToFloatdef(TV2.DataController.Summary.FooterSummaryValues[2], 0); end else begin FYJZQty := 0; end; //放码 FieldByName('YPS').Value := StrToFloatDef(YPS.Text, 0); FieldByName('MJFMLen').Value := StrToFloatDef(MJFMLen.Text, 0); FieldByName('YJZQty').Value := FYJZQty; FieldByName('KJJ').Value := StrToFloatDef(KJJ.Text, 0); FieldByName('KJ').Value := StrToFloatDef(kj.Text, 0); FieldByName('MJLen').Value := StrToFloatdef(trim(MJLen.Text), 0) - FYJZQty - StrToFloatDef(MJFMLen.Text, 0) + StrToFloatDef(kj.Text, 0) - StrToFloatDef(kjJ.Text, 0); //皮重 FieldByName('MJQty3').Value := StrToFloatdef(trim(MJQty3.Text), 0); //毛重 FieldByName('MJMaoZ').Value := StrToFloatdef(trim(MJMaoZ.Text), 0); //净重 FieldByName('MJQty4').Value := StrToFloatdef(trim(MJMaoZ.Text), 0) - StrToFloatdef(trim(MJQty3.Text), 0); //系数 FieldByName('MKXS').Value := StrToFloatdef(trim(MKXS.Text), 0); FieldByName('MJType').Value := Trim(MJType.Text); FieldByName('JYNOTE').Value := Trim(JYNOTE.Text); FieldByName('JYMF').Value := Trim(JYMF.Text); FieldByName('JYKH').Value := Trim(JYKH.Text); // FieldByName('JYKZ').Value := Trim(JYKZ.Text); if Trim(FMJID) = '' then begin FieldByName('Filler').Value := Trim(DName); // FieldByName('filltime').Value := SGetServerDateTime(ADOTmp); end else begin FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOTmp); end; //检验机台号 if Trim(SCXFlag) <> '' then begin FieldByName('JTType').Value := Trim(SCXFlag); end; FieldByName('MJTypeOther').Value := Trim(Label9.Caption); Post; end; // if FJHGZ = '按缸排序' then // begin // with ADOCmd do // begin // Close; // sql.Clear; // sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=WFB_MJJY.subID and X.MJstr4=WFB_MJJY.Mjstr4 and X.APID=WFB_MJJY.APID and X.MJID<>WFB_MJJY.MJID),0)'); // sql.Add('where MJID=''' + Trim(maxno) + ''''); // execsql; // end; // // end; // if FJHGZ = '按颜色排序' then // begin // with ADOCmd do // begin // Close; // sql.Clear; // sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=WFB_MJJY.subID and X.MJID<>WFB_MJJY.MJID and X.MJType =''正品''),0)'); // sql.Add('where MJID=''' + Trim(maxno) + ''''); // execsql; // end; // end; // if FJHGZ = '按订单排序' then // begin // with ADOCmd do // begin // Close; // sql.Clear; // sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.mainid=WFB_MJJY.mainid and X.MJID<>WFB_MJJY.MJID and X.MJType =''正品''),0)'); // sql.Add('where MJID=''' + Trim(maxno) + ''''); // execsql; // end; // end; if fxiugai <> '修改' then begin if edit3.Text = '' then begin with ADOCmd do begin Close; sql.Clear; sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.APID=WFB_MJJY.APID and X.MJID<>WFB_MJJY.MJID ),0)'); sql.Add('where MJID=''' + Trim(maxno) + ''''); execsql; end; end; end; //将次品的卷号改为0 // with ADOCmd do // begin // Close; // sql.Clear; // sql.Add('update WFB_MJJY SET mjxh=0 '); // sql.Add('where MJType =''次品'' and MJID=''' + Trim(maxno) + ''''); // execsql; // end; //查询卷号修改界面 with ADOCmd do begin Close; sql.Clear; sql.Add('select MJXH from WFB_MJJY'); sql.Add('where MJID=''' + Trim(maxno) + ''''); open; if not IsEmpty then begin MJXH.Text := fieldbyname('mjxh').AsString; end; end; FMJID := Trim(maxno); FFFMJID := Trim(maxno); ///保存母卷疵点表 with CDS_MJCD do begin First; while not Eof do begin if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then begin if GetLSNo(ADOTmp, maxno, 'MC', 'WFB_MJJY_CD', 5, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!', '提示', 0); Exit; end; end else begin maxno := Trim(CDS_MJCD.fieldbyname('MCID').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFB_MJJY_CD '); sql.Add(' where MCID=''' + Trim(maxno) + ''''); Open; end; with ADOCmd do begin if Trim(CDS_MJCD.fieldbyname('MCID').AsString) = '' then Append else Edit; FieldByName('MJId').Value := Trim(FMJID); FieldByName('MCID').Value := Trim(maxno); SSetSaveDataCDSNew(ADOCmd, Tv2, CDS_MJCD, 'WFB_MJJY_CD', 0); FieldByName('KouFenType').Value := CDS_MJCD.fieldbyname('KouFenType').Value; Post; end; CDS_MJCD.Edit; CDS_MJCD.FieldByName('MCID').Value := Trim(maxno); Next; end; end; with ADOCmd do begin close; sql.Clear; sql.Add('update WFB_MJJY SET CDList= dbo.F_Get_Order_SubStr(MJID,''MJCDHZSL'')'); sql.Add('where MJID=''' + Trim(FMJID) + ''' '); execsql; end; //出入库及库存 if Trim(FCJLB) = '客户检验' then begin with ADOCmd do begin Close; sql.Clear; sql.Add('exec P_CPCK_Insert_JY2 @MJID=''' + trim(FMJID) + ''''); execsql; end; with ADOCmd do begin Close; sql.Clear; sql.Add('update CK_SXPB_CR_mx set cjdate=getdate(),ycj=''1'' where MJID=''' + trim(FMJID) + ''''); sql.Add('and fsid=''' + trim(FAPID) + ''''); execsql; end; end else begin with ADOCmd do begin Close; sql.Clear; sql.Add('exec P_CPCK_Insert_JY @MJID=''' + trim(FMJID) + ''''); execsql; end; end; //更新开卡 with ADOCmd do begin Close; sql.Clear; sql.Add('exec P_UPdate_LCKJY @APID=''' + trim(FAPID) + ''''); execsql; end; ADOCmd.Connection.CommitTrans; Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure Tfrmcxjy.BTPrintClick(Sender: TObject); var fPrintFile: string; mvalue: Double; i: Integer; FFMJID: string; begin APID.SetFocus; if CheckData('提交') = False then exit; if FCJLB = '客户检验' then begin if fxiugai = '' then Exit; end; if CDS_MJID.IsEmpty = False then begin FFMJID := Trim(CDS_MJID.fieldbyname('MJID').AsString); end; if FJHGZ = '手动输入' then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY where APID=' + quotedstr(Trim(FAPID))); SQL.Add(' and mjxh=' + Trim(mjxh.Text)); Open; end; if not ADOTmp.IsEmpty then begin Application.MessageBox('该卷号已存在!', '提示', 0); exit; end; end; if fxiugai <> '修改' then begin if Edit3.Text = '√' then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY where APID=' + quotedstr(Trim(FAPID))); SQL.Add(' and mjxh=' + Trim(mjxh.Text)); Open; end; if not ADOTmp.IsEmpty then begin Application.MessageBox('该卷号已存在!', '提示', 0); exit; end; end; end; if SaveData() then begin MJLen.Text := ''; MJFMLen.Text := ''; MJMaoZ.Text := ''; MJQty4.Text := ''; YPS.Text := ''; JYNOTE.Text := ''; edtYJ.Text := ''; MJType.ItemIndex := 1; MJType.ItemIndex := MJType.Items.IndexOf('AA'); MJXH.Text := inttostr(strTointdef(trim(MJXH.Text), 0) + 1); if Trim(Edit6.Text) = '√' then begin // if fxiugai <> '修改' then // begin PrtData(FFFMJID); // end; end; end; FOperationStatus := ''; FFFMJID := ''; fxiugai := ''; InitCDGridID(); InitCDGrid(); CDS_MJID.locate('MJID', FFMJID, []); if FYXJL = '米数' then begin MJLen.SetFocus; Edit1Click(MJLen); end else begin MJMaoZ.SetFocus; Edit1Click(MJMaoZ); end; if lblOrderNo.Caption = '客户检验' then begin if Edit4.Text = '' then begin CDS_MJID.Next; end; ToolButton6.Click(); end; end; procedure Tfrmcxjy.PrtData(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 '); SQL.Add(' @MJID=''' + Trim(FMJID) + ''''); Open; end; if ADOQueryPrint.IsEmpty then begin application.MessageBox('标签内容未找到!', '提示信息', MB_ICONERROR); exit; 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 Flabname <> '' then begin ExportFtErpFile(Trim(Flabname) + '.rmf', ADOTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(Flabname) + '.rmf' end else begin if Trim(ADOQueryPrint.fieldbyname('LBName').AsString) <> '' then begin ExportFtErpFile(Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf', ADOTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ADOQueryPrint.fieldbyname('LBName').AsString) + '.rmf' end else begin ExportFtErpFile('通用英文标签.rmf', ADOTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\通用英文标签.rmf'; end; end; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RM2.LoadFromFile(fPrintFile); Rm2.DefaultCopies := strtointdef(trim(ComboBox1.Text), 1); RM2.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure Tfrmcxjy.SpeedButton1Click(Sender: TObject); var fsj: string; begin fsj := Trim(TSpeedButton(Sender).Hint); if Trim(fsj) = '' then Exit; fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := fsj + Trim(TSpeedButton(Sender).Caption); TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; end; procedure Tfrmcxjy.SpeedButton12Click(Sender: TObject); var fsj: string; begin fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); if Trim(fsj) = '' then Exit; TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := Copy(fsj, 1, Length(fsj) - 1); TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; end; procedure Tfrmcxjy.SpeedButton13Click(Sender: TObject); var i: Integer; begin if CheckData('疵点') = False then exit; FCDName := Trim(TSpeedButton(Sender).Hint); MovePanel1.Visible := True; Label21.Caption := Trim(FCDName); //显示数字键盘 Edit1.SetFocus; Panel3.Visible := True; with Panel3 do begin for i := 0 to ControlCount - 1 do begin if Controls[i] is TSpeedButton then begin TSpeedButton(Controls[i]).Hint := Trim(Edit1.Name); end; end; end; end; procedure Tfrmcxjy.cxGridDBColumn2PropertiesChange(Sender: TObject); var fsj: string; begin fsj := Trim(Order_MJ.fieldbyname('SubId').AsString); Order_MJ.DisableControls; with Order_MJ do begin First; while not Eof do begin if Trim(Order_MJ.fieldbyname('SubId').AsString) <> fsj then begin Edit; FieldByName('SSel').Value := False; end; Next; end; end; Order_MJ.EnableControls; Order_MJ.Locate('SubId', fsj, []); end; procedure Tfrmcxjy.Button1Click(Sender: TObject); var mvalue: Double; begin if Trim(Edit1.Text) = '' then begin Application.MessageBox('起始位置不能为空!', '提示', 0); exit; end; if Trim(Edit1.Text) <> '' then begin if Trim(Edit2.Text) <> '' then begin if StrToFloat(Edit2.Text) < StrToFloat(Edit1.Text) then begin Application.MessageBox('疵点位置录入错误!', '提示', 0); Exit; end; end; end; if CDQty.Text <> '' then begin if TryStrToFloat(CDQty.Text, mvalue) = False then begin Application.MessageBox('非法数字!', '提示', 0); Exit; end; end; with CDS_MJCD do begin Append; FieldByName('cdname').Value := Trim(FCDName); FieldByName('CDbeg').Value := Trim(Edit1.Text); FieldByName('CDEnd').Value := Trim(Edit2.Text); FieldByName('KouFenQty').Value := 0; if RadioGroup1.ItemIndex > -1 then FieldByName('KouFenType').Value := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; if RadioGroup1.ItemIndex > -1 then begin if RadioGroup1.ItemIndex < 3 then begin FieldByName('KouFenQty').Value := RadioGroup1.ItemIndex + 1; end else begin FieldByName('KouFenQty').Value := 4; end; end; if Trim(FCDName) = '测幅宽' then FieldByName('KouFenQty').Value := 0; FieldByName('CDQty').Value := StrToFloatdef(trim(CDQty.Text), 0); if Trim(edtYJ.Text) <> '' then begin FieldByName('YJQty').Value := StrToFloatdef(trim(CDQty.Text), 0); end else begin FieldByName('YJQty').Value := 0; end; Post; end; Edit1.Text := ''; Edit2.Text := ''; CDQty.Text := ''; MovePanel1.Visible := False; Panel3.Visible := False; end; procedure Tfrmcxjy.ToolButton1Click(Sender: TObject); begin InitJP(); end; procedure Tfrmcxjy.Button5Click(Sender: TObject); var fPrintFile: string; i: Integer; mvalue: Double; begin if CDS_MJID.IsEmpty then Exit; PrtData(CDS_MJID.fieldbyname('MJID').AsString); end; procedure Tfrmcxjy.SpeedButton49Click(Sender: TObject); begin Panel3.Visible := False; end; procedure Tfrmcxjy.APIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin ClearGlobal(); FOperationStatus := '打卷检验'; InitLCK(); APID.Text := ''; if (CDS_MJID.IsEmpty = False) and (lblOrderNo.Caption = '客户检验') then begin CDS_MJID.First; // btprint.Visible := False; // ToolButton6.Visible := False; // ToolButton7.Visible := False; ToolButton6.Click; end; end; end; procedure Tfrmcxjy.Edit1Click(Sender: TObject); var i: Integer; begin Panel3.Visible := True; with Panel3 do begin for i := 0 to ControlCount - 1 do begin if Controls[i] is TSpeedButton then begin TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name); end; end; end; end; procedure Tfrmcxjy.Edit2Change(Sender: TObject); var mvalue: Double; begin if Trim(Edit1.Text) <> '' then begin if TryStrToFloat(Edit1.Text, mvalue) = False then begin Application.MessageBox('非法数字!', '提示', 0); Exit; end; end else begin Exit; end; if Trim(Edit2.Text) <> '' then begin if TryStrToFloat(Edit2.Text, mvalue) = False then begin Application.MessageBox('非法数字!', '提示', 0); Exit; end; end else begin Exit; end; CDQty.Text := FloatToStr(StrToFloat(Edit2.Text) - StrToFloat(Edit1.Text)); end; procedure Tfrmcxjy.Edit6Click(Sender: TObject); begin if Trim(Edit6.Text) = '' then begin Edit6.Text := '√'; end else begin Edit6.Text := ''; end; end; procedure Tfrmcxjy.MJstr3KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure Tfrmcxjy.Label9Click(Sender: TObject); begin if trim(Label9.Caption) = 'M' then begin Label9.Caption := 'Y'; Label3.Caption := 'Y'; Label20.Caption := 'Y'; Label7.Caption := 'Y'; end else begin Label9.Caption := 'M'; Label3.Caption := 'M'; Label20.Caption := 'M'; Label7.Caption := 'M'; end; end; procedure Tfrmcxjy.MJQty4Exit(Sender: TObject); begin if (trim(MJMaoZ.Text) = '') and (trim(MJQty4.Text) = '') then exit; if (trim(MJMaoZ.Text) = '') and (trim(MJQty3.Text) = '') then exit; if (trim(MJQty4.Text) = '') and (trim(MJQty3.Text) = '') then exit; if (trim(MJQty3.Text) = '') then exit; if (trim(MJQty4.Text) <> '') then begin MJMaoZ.Text := floattostr(strtofloatdef(trim(MJQty3.Text), 0) + strtofloatdef(trim(MJQty4.Text), 0)); exit; end; end; procedure Tfrmcxjy.Button2Click(Sender: TObject); begin RadioGroup1.ItemIndex := -1; end; procedure Tfrmcxjy.MJMaoZChange(Sender: TObject); begin QuantityConversion(); end; procedure Tfrmcxjy.APIDClick(Sender: TObject); var i: Integer; begin Panel3.Visible := True; with Panel3 do begin for i := 0 to ControlCount - 1 do begin if Controls[i] is TSpeedButton then begin TSpeedButton(Controls[i]).Hint := Trim(TEdit(Sender).Name); end; end; end; end; procedure Tfrmcxjy.Edit7Click(Sender: TObject); begin if Trim(Edit7.Text) = '' then begin Edit7.Text := '√'; end else begin Edit7.Text := ''; end; end; procedure Tfrmcxjy.MJQty4KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin BTPrint.Click; end; end; procedure Tfrmcxjy.FormCreate(Sender: TObject); begin IsCommopen := false; IsJsMessage := false; end; procedure Tfrmcxjy.Edit8Click(Sender: TObject); begin if Trim(Edit8.Text) = '' then begin Edit8.Text := '√'; Button5.Visible := true; end else begin Edit8.Text := ''; Button5.Visible := false; end; end; procedure Tfrmcxjy.MJLenChange(Sender: TObject); begin QuantityConversion(); end; procedure Tfrmcxjy.ToolButton3Click(Sender: TObject); var SRKOrdID, strsql: string; begin ToolButton3.Enabled := false; if Trim(MJStr4.Text) = '' then begin Application.MessageBox('请输入缸号!', '提示', 0); Exit; end; if Trim(FAPID) = '' then begin Application.MessageBox('请扫描流程卡!', '提示', 0); Exit; end; if Trim(FMainId) = '' then begin Application.MessageBox('请选择指示单!', '提示', 0); Exit; end; if Trim(FSubId) = '' then begin Application.MessageBox('请选择颜色!', '提示', 0); Exit; end; if Application.MessageBox('是否核实好数据', '提示', 32 + 4) <> IDYES then begin ToolButton3.Enabled := true; Exit; end; if GetLSNo(ADOTmp, SRKOrdID, 'RK', 'CK_BanCP_CR', 4, 1) = False then begin Application.MessageBox('生成流水号异常!', '提示', 0); exit; end; try ADOCmd.Connection.BeginTrans; with Self.ADOCmd do begin Close; sql.Clear; sql.Add('UPDATE CK_BanCP_CR Set '); sql.add('RKOrdID=' + quotedstr(trim(SRKOrdID))); sql.Add(' where CK_BanCP_CR.APID=' + quotedstr(trim(FAPID))); sql.Add(' and CK_BanCP_CR.MainId=' + quotedstr(trim(FMainId))); sql.Add(' and CK_BanCP_CR.SubId=' + quotedstr(trim(FSubId))); sql.Add(' and CK_BanCP_CR.ganghao=' + quotedstr(trim(MJStr4.Text))); sql.Add(' and CK_BanCP_CR.CRFlag=''待入库'' '); sql.Add('UPDATE CK_BanCP_CR Set '); sql.add(' CRTime=getdate(),CRType=''检验入库'',CRFlag=''入库'' '); sql.Add(' where CK_BanCP_CR.APID=' + quotedstr(trim(FAPID))); sql.Add(' and CK_BanCP_CR.MainId=' + quotedstr(trim(FMainId))); sql.Add(' and CK_BanCP_CR.SubId=' + quotedstr(trim(FSubId))); sql.Add(' and CK_BanCP_CR.ganghao=' + quotedstr(trim(MJStr4.Text))); sql.Add(' and CK_BanCP_CR.CRFlag=''待入库'' '); sql.Add('UPDATE WFB_MJJY Set '); sql.add('RKOrdID=' + quotedstr(trim(SRKOrdID)) + ' ,MJStr2=''已入库'' '); sql.Add(' where WFB_MJJY.APID=' + quotedstr(trim(FAPID))); sql.Add(' and WFB_MJJY.MainId=' + quotedstr(trim(FMainId))); sql.Add(' and WFB_MJJY.SubId=' + quotedstr(trim(FSubId))); sql.Add(' and WFB_MJJY.MJStr4=' + quotedstr(trim(MJStr4.Text))); SQL.Add('and WFB_MJJY.MJStr2=''未入库'' '); ExecSQL; end; ADOCmd.Connection.CommitTrans; PrintCKMDG(Trim(SRKOrdID)); except ADOCmd.Connection.RollbackTrans; ToolButton3.Enabled := true; application.MessageBox('数据撤销失败!', '提示信息', 0); end; ToolButton3.Enabled := true; end; procedure Tfrmcxjy.Tv3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var FMJLen, FMJMaoZ: Double; begin FMJLen := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('MJLen').Index]; FMJMaoZ := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('MJMaoZ').Index]; if (FMJLen < 10) or (FMJLen > 200) then begin ACanvas.Brush.Color := $B5E4FF; end; if (FMJMaoZ < 5) or (FMJMaoZ > 40) then begin ACanvas.Brush.Color := $B5E4FF; end end; procedure Tfrmcxjy.Button4Click(Sender: TObject); begin MovePanel1.Visible := false; end; procedure Tfrmcxjy.edtYJClick(Sender: TObject); begin if Trim(TEdit(Sender).Text) = '' then begin TEdit(Sender).Text := '√'; end else begin TEdit(Sender).Text := ''; end; end; procedure Tfrmcxjy.ToolButton2Click(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'MJType'; flagname := '等级'; if ShowModal = 1 then begin end; end; finally frmZDYHelp.Free; end; SInitComBoxBySql(ADOTmp, MJType, False, 'select ZDYName name from KH_Zdy where Type=''MJType'' '); end; procedure Tfrmcxjy.Edit3Click(Sender: TObject); begin if Trim(Edit3.Text) = '' then begin Edit3.Text := '√'; mjxh.ReadOnly := False; end else begin Edit3.Text := ''; mjxh.ReadOnly := True; end; end; procedure Tfrmcxjy.ToolButton4Click(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'JYNOTE'; flagname := '检验备注'; if ShowModal = 1 then begin Self.InitJP(); end; end; finally frmZDYHelp.Free; end; end; procedure Tfrmcxjy.Button3Click(Sender: TObject); begin try frmZdyMapSel := TfrmZdyMapSel.Create(self); with frmZdyMapSel do begin FlagStr := 'jynote'; if ShowModal = 1 then begin JYNOTE.Text := Trim(JYNOTE.Text) + frmZdyMapSel.FSDPerson; // self.KuangHao.Text := frmZdyMapSel.FSDPerson; end; end; finally frmZdyMapSel.Free; end; end; procedure Tfrmcxjy.ToolButton5Click(Sender: TObject); var FSCRZ: string; begin if CDS_MJID.IsEmpty then exit; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from fhsq_sub b inner join fhsq_main a on a.fsid=b.fsid where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); sql.Add('and a.sqtype<>''调样'''); // SQL.Add('select * from FHSQ_SUB A WHERE A.MJID=' + QuotedStr(trim(CDS_MJID.fieldbyName('MJID').AsString))); OPEN; end; if ADOTmp.IsEmpty = False then begin application.MessageBox('改条码已做出库申请,禁止删除!', '提示信息', 0); exit; end; if Application.MessageBox(PChar('确定将卷号《' + trim(CDS_MJID.fieldbyName('MJXH').AsString) + '》删除吗?'), '', 32 + 4) <> IDYES then Exit; FSCRZ := ''; FSCRZ := '卷条码:' + trim(CDS_MJID.fieldbyname('MJID').AsString); FSCRZ := FSCRZ + ' 卷号:' + trim(CDS_MJID.fieldbyname('MJXH').AsString); FSCRZ := FSCRZ + ' 卡号:' + trim(CDS_MJID.fieldbyname('apid').AsString); FSCRZ := FSCRZ + ' 毛重:' + trim(CDS_MJID.fieldbyname('MJMaoZ').AsString); FSCRZ := FSCRZ + ' 净重:' + trim(CDS_MJID.fieldbyname('MJQty4').AsString); FSCRZ := FSCRZ + ' 长度:' + trim(CDS_MJID.fieldbyname('MJLen').AsString); with ADOTmp do begin Close; sql.Clear; sql.Add('delete WFB_MJJY where MJID=''' + Trim(CDS_MJID.fieldbyname('MJID').AsString) + ''''); sql.Add('delete CK_BanCP_CR where MJID=''' + Trim(CDS_MJID.fieldbyname('MJID').AsString) + ''''); sql.Add('delete CK_BanCP_KC where MJID=''' + Trim(CDS_MJID.fieldbyname('MJID').AsString) + ''''); sql.Add('delete WFB_MJJY_CD where MJID=''' + Trim(CDS_MJID.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(FSCRZ)); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; InitCDGrid(); InitCDGridid(); end; procedure Tfrmcxjy.ToolButton6Click(Sender: TObject); begin if CDS_MJID.IsEmpty then exit; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from fhsq_sub b inner join fhsq_main a on a.fsid=b.fsid where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); sql.Add('and a.sqtype<>''调样'''); Open; end; if ADOCmd.IsEmpty = False then begin application.MessageBox('该条码已做发货申请,禁止修改!', '提示信息', 0); exit; end; if lblOrderNo.Caption <> '客户检验' then begin if Application.MessageBox(PChar('确定将卷号《' + trim(CDS_MJID.fieldbyName('MJXH').AsString) + '》修改吗?'), '', 32 + 4) <> IDYES then Exit; end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); Open; end; SCSHDataNew(ADOCmd, panel2, 0); WLCODE.Text := ADOCmd.fieldbyName('WLCODE').AsString; // MJType.ItemIndex:='1' // edit5.Text := ''; // edit9.Text := ''; // edit10.Text := ''; // edit11.Text := ''; // edit12.Text := ''; // edit13.Text := ''; // edit14.Text := ''; // edit15.Text := ''; jynote.Text := ADOCmd.FieldByName('JYNOTE').asstring; // if lblOrderNo.Caption = '客户检验' then // begin // with ADOCmd do // begin // Close; // sql.Clear; // sql.Add('delete WFB_MJJY_CD where mjid=''' + Trim(CDS_MJID.fieldbyname('mjid').AsString) + ''''); // SQL.Add('AND EXISTS(SELECT MJID FROM WFB_MJJY B WHERE B.MJID=WFB_MJJY_CD.MJID AND convert(varchar(10),getdate(),120)<>convert(varchar(10),B.FILLTIME,120) AND MJID=''' + Trim(CDS_MJID.fieldbyname('mjid').AsString) + ''''); // SQL.Add(')'); //// ShowMessage(SQL.Text); // ExecSQL; // end; // end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY_cd where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); Open; end; SCreateCDS20(ADOCmd, cds_mjcd); SInitCDSData20(ADOCmd, cds_mjcd); fxiugai := '修改'; end; procedure Tfrmcxjy.Tv3DblClick(Sender: TObject); begin panel1.Visible := True; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY_cd where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); Open; end; SCreateCDS20(ADOTmp, CDS_CKCD); SInitCDSData20(ADOTmp, CDS_CKCD); JYNOTE.Text := CDS_MJID.fieldbyName('JYNOTE').AsString; end; procedure Tfrmcxjy.Panel4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin panel1.Visible := False; JYNOTE.Text := ''; end; procedure Tfrmcxjy.Tv3FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin JYNOTE.Text := ''; if Panel1.Visible = True then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from WFB_MJJY_cd where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); Open; end; SCreateCDS20(ADOTmp, CDS_CKCD); SInitCDSData20(ADOTmp, CDS_CKCD); JYNOTE.Text := CDS_MJID.fieldbyName('JYNOTE').AsString; end; if lblOrderNo.Caption = '客户检验' then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from CK_BanCP_KC where MJId=''' + Trim(CDS_MJID.fieldbyName('mjid').AsString) + ''''); Open; end; AOrdDefNote1.Text := fnote + #13 + '编号:' + Trim(ADOTmp.fieldbyname('c_Code').AsString) + #13; AOrdDefNote1.Text := AOrdDefNote1.Text + '颜色:' + Trim(ADOTmp.fieldbyname('C_Color').AsString) + #13; AOrdDefNote1.Text := AOrdDefNote1.Text + '缸号:' + Trim(ADOTmp.fieldbyname('C_GANGNO').AsString) + #13 + '门幅:' + Trim(ADOTmp.fieldbyname('C_MF').AsString) + #13 + '克重:' + Trim(ADOTmp.fieldbyname('C_KZ').AsString); end; end; procedure Tfrmcxjy.ToolButton7Click(Sender: TObject); begin if (StrToFloatDef(MJMaoZ.Text, 0) <= 0) and (StrToFloatDef(mjlen.Text, 0) <= 0) then begin application.MessageBox('毛重和长度不能都为0!', '提示信息', 0); exit; end; if Application.MessageBox(PChar('确定将卷条码《' + trim(CDS_MJID.fieldbyName('mjid').AsString) + '》开匹吗?'), '', 32 + 4) <> IDYES then Exit; savedata1(); InitCDGridID(); end; procedure Tfrmcxjy.Button6Click(Sender: TObject); begin try ADOQueryCmd.Connection.BeginTrans; with CDS_MJID do begin with ADOTmp do begin Close; sql.Clear; sql.Add('UPDATE CK_SXPB_CR_mx SET YCJ=''1'' where convert(varchar(10),CJDATE,120)=convert(varchar(10),GETDATE(),120)'); SQL.Add('AND FSID=' + QuotedStr(Trim(FAPID))); // ShowMessage(SQL.Text); ExecSQL; end; EnableControls; end; if Application.MessageBox('操作成功是否刷新?', '提示', 32 + 4) = IDYES then begin InitCDGridID(); end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure Tfrmcxjy.Edit4Click(Sender: TObject); begin if Trim(Edit4.Text) = '' then begin Edit4.Text := '√'; end else begin Edit4.Text := ''; end; if FAPID <> '' then begin InitCDGridID(); CDS_MJID.First; ToolButton6.Click(); end else begin Exit; end; end; end.