unit U_SJLBInspection; 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, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter, cxNavigator; {function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; IntTime:integer):integer;stdcall;external 'JCYData.DLL'; function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL'; function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; IntTime:integer;IsMessage:integer):integer;stdcall;external 'JCYData.DLL'; function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JCYData.DLL'; function CommOpen(fhandle:hwnd;sCommName:PAnsiChar; IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS323C.DLL'; function CommClose(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS323C.DLL'; function GetCommData(fhandle:hwnd;var defnum1,defnum2:double;var fisjz:integer):integer;stdcall;external 'JZCRS323C.DLL'; function CommOpen1301(fhandle:hwnd;sCommName:PAnsiChar; IntTime:integer;IsMessage:integer):integer;stdcall;external 'JZCRS323C.DLL'; function CommClose1301(sCommName:PAnsiChar):integer;stdcall;external 'JZCRS323C.DLL'; function GetCommData1301(fhandle:hwnd;var defnum1,defnum2:double;var fisjz:integer):integer;stdcall;external 'JZCRS323C.DLL'; } type TfrmSJLBnspection = 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; cxGridPopupMenu2: TcxGridPopupMenu; ADOQueryMainDSC: TADOQuery; Panel2: TPanel; Label9: TLabel; MJLen: TEdit; Label4: TLabel; MJMaoZ: TEdit; Label5: TLabel; Label11: TLabel; BTPrint: TButton; 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; RM3: TRMGridReport; ADOTmp: TADOQuery; Panel5: TPanel; Panel6: TPanel; Label1: TLabel; Label35: TLabel; Label39: TLabel; APID: TEdit; Edit7: TEdit; Edit8: TEdit; ToolBar1: TToolBar; ToolButton1: TToolButton; TBCD: TToolButton; TBClose: TToolButton; Label36: TLabel; mjxh: TEdit; Label2: TLabel; lblOrderNo: TLabel; Label3: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label10: TLabel; Button1: TButton; Button2: TButton; Tv3Column1: TcxGridDBColumn; Label12: TLabel; gx: TComboBox; Button3: TButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure MJMaoZClick(Sender: TObject); procedure MJLenClick(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Tv3CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure FormClick(Sender: TObject); procedure BTPrintClick(Sender: TObject); procedure Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton12Click(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure cxGridDBColumn2PropertiesChange(Sender: TObject); procedure SpeedButton49Click(Sender: TObject); procedure APIDKeyPress(Sender: TObject; var Key: Char); procedure Edit1Click(Sender: TObject); procedure MJstr3KeyPress(Sender: TObject; var Key: Char); procedure APIDClick(Sender: TObject); procedure Edit7Click(Sender: TObject); procedure MJQty4KeyPress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject); procedure MJQty2Change(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } FInt, PState, PrintInt, SCInitGrid, FState, FCK: Integer; FColumn, FAPID, FMainId, FSubId, FFFMJID, FYXJL, FMBMXID: string; MValue, FCDName: string; FDBKCID, FDB, FMBKCID, FMB: string; isCommopen, IsJsMessage: boolean; fxsType, fRollType: string; procedure InitCDGrid(); procedure InitCDGridID(); function SaveData(MMJType: string): Boolean; procedure InitLCK(); //加载流程卡 procedure InitDB(); //加载底布 procedure InitMB(); //加载面布 procedure InitDBMX(); //加载底布明细 procedure ClearGlobal(); //清除全局ID function CheckData(CKType: string): Boolean; 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; fFlileFlag: string; { Public declarations } end; var frmSJLBnspection: TfrmSJLBnspection; newh, newh1: hwnd; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_iniParam, U_ProductOrderListSel, getpic2; // {$R *.dfm} procedure TfrmSJLBnspection.ClearGlobal(); begin FAPID := ''; FMainId := ''; FSubId := ''; lblOrderNo.Caption := '流程卡号'; APID.SetFocus; end; function TfrmSJLBnspection.CheckData(CKType: string): Boolean; var mvalue: Double; begin try if Trim(FAPID) = '' then raise Exception.Create('请扫描流程卡!'); if Trim(CKType) = '提交' then begin if trim(Label9.Caption) = '' then raise Exception.Create('长度单位不能为空!'); if Trim(MJMaoZ.Text) <> '' then begin if strtofloatdef(trim(MJMaoZ.Text), 0) > 80 then raise Exception.Create('重量不能大于80!'); if strtofloatdef(trim(MJMaoZ.Text), 0) < 0 then raise Exception.Create('重量不能小于0!'); end; if Trim(MJLen.Text) <> '' then begin if TryStrToFloat(MJLen.Text, mvalue) = False then raise Exception.Create('长度录入错误!'); if strtofloatdef(trim(MJLen.Text), 0) > 400 then raise Exception.Create('长度不能大于400!'); if strtofloatdef(trim(MJLen.Text), 0) < 0.00 then raise Exception.Create('长度不能小于0!'); end; if (strtofloatdef(trim(MJLen.Text), 0) = 0) and (strtofloatdef(trim(MJMaoZ.Text), 0) = 0) then raise Exception.Create('长度和重量不能都为0!!'); end; Result := True; except Result := false; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmSJLBnspection.InitDBMX(); begin //记得改10 with ADOTmp do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(',maxRoll=1+isnull((select cast (max(XH) as int) from JYOrder_DBKC_MX X where ISNULL(X.DBKCID,'''')=ISNULL(A.DBKCID,'''') AND X.CARNO=A.CARNO ),0)'); SQL.Add(' FROM JYOrder_DBKC_MX A WHERE DBKCID= ''' + Trim(FDBKCID) + ''''); SQL.Add('AND CARNO= ''' + Trim(FAPID) + ''''); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOTmp, CDS_MJID); SInitCDSData20(ADOTmp, CDS_MJID); if ADOTmp.IsEmpty then begin MJXH.Text := '1'; end else begin MJXH.Text := ADOTmp.FIELDBYNAME('maxRoll').AsString; end; end; procedure TfrmSJLBnspection.InitLCK(); begin with ADOTmp do begin Close; sql.Clear; sql.Add('select A.* FROM JYORDER_CAR A WHERE CARNO= ''' + Trim(APID.Text) + ''''); Open; end; if ADOTmp.IsEmpty = False then begin FAPID := Trim(ADOTmp.FIELDBYNAME('CARNO').AsString); FMainId := Trim(ADOTmp.FIELDBYNAME('MAINID').AsString); FSUBId := Trim(ADOTmp.FIELDBYNAME('SUBID').AsString); APID.Text := ''; FDBKCID := ''; FDB := ''; LABEL8.Caption := ''; LABEL7.Caption := Trim(ADOTmp.fieldbyname('CARNO').AsString); APID.SetFocus; end else begin ClearGlobal(); end; end; procedure TfrmSJLBnspection.InitDB(); begin if FAPID = '' then begin Application.MessageBox('请先扫描流程卡!', '提示', 0); Exit; end; with ADOTmp do begin Close; sql.Clear; sql.Add('select * from CK_PB_CR A INNER JOIN JYOrder_DBKC B ON A.CRID=B.KCID WHERE MAINID= ''' + Trim(FMAINID) + ''''); SQL.Add('AND CRID=''' + Trim(APID.Text) + ''''); Open; end; if ADOTmp.IsEmpty = False then begin // FAPID := Trim(ADOTmp.FIELDBYNAME('CARNO').AsString); // FMainId := Trim(ADOTmp.FIELDBYNAME('MAINID').AsString); FDBKCID := Trim(ADOTmp.FIELDBYNAME('DBKCID').AsString); FDB := Trim(ADOTmp.FIELDBYNAME('KCID').AsString); APID.Text := ''; LABEL8.Caption := Trim(ADOTmp.fieldbyname('CRID').AsString); APID.SetFocus; InitDBMX(); end else begin Application.MessageBox('与绑定底布不符!', '提示', 0); APID.Text := ''; Exit; end; end; procedure TfrmSJLBnspection.InitMB(); begin if FAPID = '' then begin Application.MessageBox('请先扫描流程卡!', '提示', 0); APID.Text := ''; Exit; end; if FDBKCID = '' then begin Application.MessageBox('请先扫描底布卡!', '提示', 0); APID.Text := ''; Exit; end; if LABEL10.Caption <> '' then begin Button1.Click(); end; with ADOTmp do begin Close; sql.Clear; sql.Add('select * from CK_PB_CR A INNER JOIN JYOrder_PBKC B ON A.CRID=B.KCID INNER JOIN CK_SXPB_CRMX C ON A.CRID=C.CRNO '); SQL.ADD(' WHERE MAINID= ''' + Trim(FMAINID) + ''''); SQL.Add('AND MJID=''' + Trim(APID.Text) + ''''); Open; end; if ADOTmp.IsEmpty = False then begin // FAPID := Trim(ADOTmp.FIELDBYNAME('CARNO').AsString); // FMainId := Trim(ADOTmp.FIELDBYNAME('MAINID').AsString); FMBKCID := Trim(ADOTmp.FIELDBYNAME('PBKCID').AsString); FMB := Trim(ADOTmp.FIELDBYNAME('KCID').AsString); FMBMXID := Trim(ADOTmp.FIELDBYNAME('MJID').AsString); APID.Text := ''; LABEL10.Caption := Trim(ADOTmp.fieldbyname('MJID').AsString); APID.SetFocus; // / // InitDBMX(); end else begin Application.MessageBox('与绑定面布不符!', '提示', 0); APID.Text := ''; Exit; end; end; procedure TfrmSJLBnspection.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 TfrmSJLBnspection.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 TfrmSJLBnspection.FormDestroy(Sender: TObject); begin frmSJLBnspection := nil; end; procedure TfrmSJLBnspection.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('%.f', [i1 / 100000]); if i2 = 0 then Label9.Caption := 'M' else Label9.Caption := 'Y'; // edit1.Text := format('%.1f', [i1 / 100000]); end; end; end; procedure TfrmSJLBnspection.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 TfrmSJLBnspection.FormClose(Sender: TObject; var Action: TCloseAction); begin //DataLink_WFBProducttion.ADOLink.Connected:=False; if isCommopen then begin closeCom(DllName); closeCom(JCYDLL); end; Action := caFree; end; procedure TfrmSJLBnspection.InitCDGrid(); begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select * from CK_SXPB_CRMX_CD where MJID='''' '); Open; end; SCreateCDS20(ADOQueryMain, CDS_MJCD); SInitCDSData20(ADOQueryMain, CDS_MJCD); end; procedure TfrmSJLBnspection.InitCDGridID(); begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select A.*'); sql.Add('from CK_SXPB_CRMX A where CRNO=''' + Trim(FAPID) + ''''); Open; end; SCreateCDS20(ADOQueryMain, CDS_MJID); SInitCDSData20(ADOQueryMain, CDS_MJID); end; procedure TfrmSJLBnspection.FormShow(Sender: TObject); begin fFlileFlag := UserDataFlag + 'HX'; if IsINIFile() then ReadINIFile() else WriteINIFile; if trim(Edit7.Text) = '√' then IsJsMessage := true; if trim(fmanage) <> '高权限' then begin if trim(DllName) <> '' then OpenCom(DllName); if trim(JCYDLL) <> '' then OpenCom(JCYDLL); Edit7.Visible := true; Label35.Visible := true; end; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from SY_User where username=' + QuotedStr(Trim(dname))); Open; end; if ADOTmp.fieldbyname('UDEPT').asstring <> '' then begin gx.ItemIndex := gx.Items.IndexOf(trim(ADOTmp.fieldbyname('UDEPT').asstring)); end; end; procedure TfrmSJLBnspection.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; CDS_MJCD.Delete; end; end; procedure TfrmSJLBnspection.MJMaoZClick(Sender: TObject); begin FInt := 1; FColumn := ''; panel3.Visible := True; end; procedure TfrmSJLBnspection.MJLenClick(Sender: TObject); begin FInt := 2; FColumn := ''; panel3.Visible := True; end; procedure TfrmSJLBnspection.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin InitCDGridID(); end; procedure TfrmSJLBnspection.Tv3CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin exit; if CDS_MJCD.IsEmpty = False then begin if Trim(CDS_MJCD.fieldbyname('MJID').AsString) = '' then begin Application.MessageBox('数据未保存,不能浏览数据!', '提示', 0); Exit; end; end; InitCDGrid(); with ADOTmp do begin close; sql.Clear; sql.Add('select * from WFB_MJJY where MJID=''' + Trim(CDS_MJID.fieldbyname('MJID').AsString) + ''''); Open; end; MJMaoZ.Text := Trim(ADOTmp.fieldbyname('MJMaoZ').AsString); MJLen.Text := Trim(ADOTmp.fieldbyname('MJLen').AsString); end; procedure TfrmSJLBnspection.FormClick(Sender: TObject); begin FInt := 4; end; function TfrmSJLBnspection.SaveData(MMJType: string): Boolean; var maxno, FMJID, BZID, strsql: string; FMJLen: Double; FOrder: Integer; begin try ADOCmd.Connection.BeginTrans; ///保存主表 with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from CK_SXPB_CRMX where 1=2'); Open; end; with ADOCmd do begin Append; if GetLSNo(ADOTmp, maxno, 'MX', 'CK_SXPB_CRMX', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('生成流水号异常!', '提示', 0); exit; end; FieldByName('CRNO').value := Trim(FAPID); FieldByName('MJID').Value := Trim(maxno); FieldByName('MJXH').Value := mjxh.Text; FieldByName('MXQty2').Value := StrToFloatdef(trim(MJLen.Text), 0); //毛重 FieldByName('MXQty').Value := StrToFloatdef(trim(MJMaoZ.Text), 0); FieldByName('MF').Value := StrToFloatdef(trim(MJMaoZ.Text), 0); FieldByName('KZ').Value := StrToFloatdef(trim(MJMaoZ.Text), 0); if Trim(FMJID) = '' then begin FieldByName('Filler').Value := Trim(DName); FieldByName('FILLTIME').Value := SGetServerDateTime(ADOTmp); end else begin end; Post; 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', 'CK_SXPB_CRMX_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 CK_SXPB_CRMX_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, 'CK_SXPB_CRMX_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('exec P_UPdate_LCKJY @APID=''' + trim(FAPID) + ''''); // execsql; // end; ADOCmd.Connection.CommitTrans; Result := True; PState := 0; except Result := False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmSJLBnspection.BTPrintClick(Sender: TObject); var fPrintFile: string; mvalue: Double; i: Integer; begin APID.SetFocus; if CheckData('提交') = False then exit; if SaveData('') then begin MJLen.Text := ''; MJMaoZ.Text := ''; MJXH.Text := inttostr(strTointdef(trim(MJXH.Text), 0) + 1); // if Trim(Edit6.Text) = '√' then // begin // PrtData(FFFMJID); // end; end; InitCDGridID(); InitCDGrid(); // if FYXJL = '米数' then // begin MJLen.SetFocus; Edit1Click(MJLen); // end // else // begin // MJMaoZ.SetFocus; // Edit1Click(MJMaoZ); // end; end; procedure TfrmSJLBnspection.Tv2CDQtyPropertiesEditValueChanged(Sender: TObject); var mvalue: string; begin try mvalue := TcxTextEdit(Sender).EditingText; if Trim(mvalue) <> '' then begin CDS_MJCD.Edit; CDS_MJCD.FieldByName('CDQty').Value := mvalue; CDS_MJCD.Post; end else begin CDS_MJCD.Edit; CDS_MJCD.FieldByName('CDQty').Value := 0; CDS_MJCD.Post; end; CDS_MJCD.Edit; CDS_MJCD.FieldByName('CDQtyS').Value := mvalue; except Application.MessageBox('非法数字!', '提示', 0); end; end; procedure TfrmSJLBnspection.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 TfrmSJLBnspection.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 TfrmSJLBnspection.SpeedButton13Click(Sender: TObject); var i: Integer; begin if CheckData('疵点') = False then exit; //显示疵点录入界面 FCDName := Trim(TSpeedButton(Sender).Hint); // MovePanel1.Visible := True; //显示数字键盘 // 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 TfrmSJLBnspection.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 TfrmSJLBnspection.SpeedButton49Click(Sender: TObject); begin Panel3.Visible := False; end; procedure TfrmSJLBnspection.APIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if (Pos('CZ', APID.Text) > 0) or (Pos('YK', APID.Text) > 0) then begin if FDBKCID <> '' then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select ZZ=ISNULL(SJKC,0) from JYOrder_DBKC where DBKCID=' + QuotedStr(Trim(FDBKCID))); Open; end; if ADOTmp.FieldByName('ZZ').ASFLOAT = 0 then begin if Application.MessageBox('该底布长度仍未保存,是否保存?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; SQL.Add('UPDATE JYOrder_DBKC SET SJKC=' + (Trim(MJLen.Text))); SQL.Add('WHERE DBKCID=' + QuotedStr(FDBKCID)); ExecSQL; end; end; InitLCK(); InitDBMX(); end else begin InitLCK(); InitDBMX(); end; end; if Pos('PR', APID.Text) > 0 then begin if FDBKCID <> '' then begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select ZZ=ISNULL(SJKC,0) from JYOrder_DBKC where DBKCID=' + QuotedStr(Trim(FDBKCID))); Open; end; if ADOTmp.FieldByName('ZZ').ASFLOAT = 0 then begin if Application.MessageBox('该底布长度仍未保存,是否保存?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; SQL.Add('UPDATE JYOrder_DBKC SET SJKC=' + (Trim(MJLen.Text))); SQL.Add('WHERE DBKCID=' + QuotedStr(FDBKCID)); ExecSQL; end; end; InitDB(); end else begin InitDB(); end; end; if Pos('MX', APID.Text) > 0 then begin InitMB(); end; end; end; procedure TfrmSJLBnspection.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 TfrmSJLBnspection.MJstr3KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure TfrmSJLBnspection.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 TfrmSJLBnspection.Edit7Click(Sender: TObject); begin if Trim(Edit7.Text) = '' then begin Edit7.Text := '√'; end else begin Edit7.Text := ''; end; end; procedure TfrmSJLBnspection.MJQty4KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin BTPrint.Click; end; end; procedure TfrmSJLBnspection.FormCreate(Sender: TObject); begin IsCommopen := false; IsJsMessage := false; end; procedure TfrmSJLBnspection.MJQty2Change(Sender: TObject); var FReal: double; begin // MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]); { IF trim(MKXS.Text)<>'' then begin if TryStrToFloat(MKXS.Text,FReal)=true then begin // MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJQty4.Text),0)* StrToFloatdef(trim(MKXS.Text),0)]); MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]); end; end else begin if Trim(MJSJKZ.Text)='' then Exit; if TryStrToFloat(MJSJKZ.Text,FReal)=False then begin Application.MessageBox('克重录入错误!','提示',0); Exit; end; if Trim(MJFK.Text)='' then Exit; if TryStrToFloat(MJFK.Text,FReal)=False then begin Application.MessageBox('幅宽录入错误!','提示',0); Exit; end; if StrToFloat(MJSJKZ.Text)*StrToFloat(MJFK.Text)=0 then Exit; if Trim(Label9.Caption)='M' then begin //MJLen.Text:=FloatToStr(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)); MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)]); MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]); end else begin MJLen.Text:=format('%.1f',[StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936]); MJLen.Text:=format('%.1f',[StrToFloatdef(trim(MJLen.Text),0)- StrToFloatdef(trim(MJQty2.Text),0)]); //MJLen.Text:=FloatToStr(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936); // MJLen.Text:=floatToStr(Round(StrToFloat(MJQty4.Text)*1000*100/StrToFloat(MJSJKZ.Text)/StrToFloat(MJFK.Text)*1.0936)); end; end; } end; procedure TfrmSJLBnspection.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmSJLBnspection.Button1Click(Sender: TObject); var maxno, FMJID, BZID, strsql: string; FMJLen: Double; FOrder: Integer; begin if gx.Text = '' then begin Application.MessageBox('请先选择工序!', '提示', 0); exit; end; if (gx.Text = '复合') and (Label8.Caption = '') then begin Application.MessageBox('复合工序需刷底布卡!', '提示', 0); exit; end; try ADOCmd.Connection.BeginTrans; ///保存主表 with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from JYOrder_DBKC_MX where 1=2'); Open; end; with ADOCmd do begin Append; if GetLSNo(ADOTmp, maxno, 'DMX', 'JYOrder_DBKC_MX', 4, 1) = False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('生成流水号异常!', '提示', 0); exit; end; FieldByName('DBKCMXID').value := Trim(maxno); FieldByName('DBKCID').value := Trim(FDBKCID); FieldByName('MainId').value := Trim(FMainId); FieldByName('SubId').value := Trim(FSubId); FieldByName('KCId').value := Trim(FDB); FieldByName('MBMXID').value := Trim(FMBMXID); FieldByName('MBKCID').value := Trim(FMBKCID); FieldByName('MBKC').value := Trim(FMB); FieldByName('QTY').value := StrToFloatDef(MJLEN.TEXT, 0); FieldByName('CARNO').value := FAPID; FieldByName('GLIDENAME').value := gx.Text; FieldByName('XH').Value := mjxh.Text; if Trim(FMJID) = '' then begin FieldByName('Filler').Value := Trim(DName); FieldByName('FILLTIME').Value := SGetServerDateTime(ADOTmp); end else begin end; Post; end; with ADOCmd do begin Close; sql.Clear; //记得复制给10 SQL.Add('UPDATE JYOrder_DBKC_MX SET SJQTY=QTY-ISNULL((SELECT ISNULL(QTY,0) FROM JYOrder_DBKC_MX E WHERE E.KCID=JYOrder_DBKC_MX.KCID AND E.CARNO=JYOrder_DBKC_MX.CARNO AND E.XH=(JYOrder_DBKC_MX.XH-1) ),0)'); SQL.Add('WHERE DBKCMXID=' + QuotedStr(Trim(maxno))); ExecSQL; end; InitDBMX(); ADOCmd.Connection.CommitTrans; Label10.Caption := ''; FMB := ''; FMBMXID := ''; FMBKCID := ''; PState := 0; except ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmSJLBnspection.Button2Click(Sender: TObject); begin if FDBKCID <> '' then begin // Button1.Click(); with ADOCmd do begin Close; sql.Clear; SQL.Add('UPDATE JYOrder_DBKC SET SJKC=' + (Trim(MJLen.Text))); SQL.Add('WHERE DBKCID=' + QuotedStr(FDBKCID)); ExecSQL; end; end else begin Application.MessageBox('未扫描底布!', '提示', 0); exit; end; end; procedure TfrmSJLBnspection.Button3Click(Sender: TObject); begin // FormGetPic2 := TFormGetPic2.create(self); // with FormGetPic2 do // begin // fFlileFlag := self.fFlileFlag; // FMainId := self.FAPID; // fkeyNo := self.FAPID; // FTFType := 'YP'; // pat1 := 'FileName'; // pic1 := 'FilesOther'; // if showmodal = 1 then // begin //// IMG_SLT.Text := trim(fkeyNo); // end; // free; // end; end; end.