unit U_CarEdit; 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, cxContainer, Menus, cxButtons; {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 Tfrmcaredit = class(TForm) cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyle2: TcxStyle; cxGridPopupMenu1: TcxGridPopupMenu; DataSource1: TDataSource; Order_MJ: TClientDataSet; ADOQueryMain: TADOQuery; ADOCmd: TADOQuery; RMDB_Main: TRMDBDataSet; RM2: TRMGridReport; DataSource2: TDataSource; CDS_MJCD: TClientDataSet; DataSource3: TDataSource; CDS_MJID: TClientDataSet; Timer1: TTimer; ADOQueryPrint: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; ADOQueryMainDSC: TADOQuery; RM3: TRMGridReport; ADOTmp: TADOQuery; Panel2: TPanel; Panel1: TPanel; Label1: TLabel; edit_smNo: TcxTextEdit; cxButton1: TcxButton; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label14: TLabel; Label15: TLabel; Label17: TLabel; carNo: TcxTextEdit; customerNoName: TcxTextEdit; MprtCodeName: TcxTextEdit; ywy: TcxTextEdit; MPRTSPEC: TcxTextEdit; PRTColor: TcxTextEdit; Qty: TcxTextEdit; RollNum: TcxTextEdit; machIneNo: TcxTextEdit; chehao: TcxTextEdit; GLIDENAME: TComboBox; BZNAME: TComboBox; Panel_JP: 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; SpeedButton13: TSpeedButton; SpeedButton14: TSpeedButton; SpeedButton15: TSpeedButton; SpeedButton16: TSpeedButton; SpeedButton17: TSpeedButton; SpeedButton18: TSpeedButton; SpeedButton19: TSpeedButton; SpeedButton20: TSpeedButton; ADO_Tmp: TADOQuery; ADO_Car: TADOQuery; ADO_Cmd: TADOQuery; Label16: TLabel; YGNO: TcxTextEdit; YGName: TComboBox; ADOQuery2: TADOQuery; Label10: TLabel; GlideRate: TcxTextEdit; Label11: TLabel; N_GlideRate: TcxTextEdit; Label25: TLabel; Edit10: TEdit; Panel3: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; tv2CDType: TcxGridDBColumn; tv2CDWZ: TcxGridDBColumn; v2Column2: TcxGridDBColumn; Tv2CDQty: TcxGridDBColumn; Tv2CDReason: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Tv2Column1: TcxGridDBColumn; Label13: TLabel; KKPS: TcxTextEdit; Label18: TLabel; kkqty: TcxTextEdit; Label19: TLabel; Edit1: TEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton12Click(Sender: TObject); procedure SpeedButton49Click(Sender: TObject); procedure GlideRateClick(Sender: TObject); procedure edit_smNoKeyPress(Sender: TObject; var Key: Char); procedure cxButton1Click(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure Sel1Click(Sender: TObject); procedure SpeedButton14Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure YGNOPropertiesEditValueChanged(Sender: TObject); procedure BZNAMEChange(Sender: TObject); procedure edit_smNoClick(Sender: TObject); procedure On1301(var Message: Tmessage); message 1301; procedure OpenCom(DllName: string); procedure CloseCom(DllName: string); procedure clearCom(DllName: string); procedure Edit10Click(Sender: TObject); procedure GLIDENAMEChange(Sender: TObject); procedure Edit1Click(Sender: TObject); private fGlideName, fSCunit, fJPUnit: string; isCommopen, IsJsMessage: boolean; procedure InitCar(fCarNo: string); procedure InitYG(fYGNo: string); procedure INITGX(); procedure INITCL(); function SaveData(): boolean; { Private declarations } public fflag: Integer; fKeyNo: string; { Public declarations } end; var frmCarEdit: TfrmCarEdit; newh, newh1, newh2: hwnd; implementation uses U_DataLink, U_RTFun, U_iniParam; {$R *.dfm} procedure TfrmCarEdit.clearCom(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, 'CommClear'); if Tp1 <> nil then begin Tf1 := TMyFunc(Tp1); newh2 := Tf1('Comm1'); end else begin end; finally // FreeLibrary(Th1); end; end else begin application.MessageBox(Pchar('找不到 ' + trim(DllName) + ' 文件!'), '提示'); end; end; procedure TfrmCarEdit.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 TfrmCarEdit.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 TfrmCarEdit.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(Edit10.Text) = '√') then begin qty.Text := format('%.1f', [i1 / 100000]); // if i2 = 0 then // Label9.Caption := 'M' // else // Label9.Caption := 'Y'; // edit1.Text := format('%.' + fcdws + 'f', [i1 / 100000]); end; end; end; procedure TfrmCarEdit.INITGX(); var FSJ, fsj2: string; begin // sql.Add('select top 1 A.GlideIdx,A.GlideName AS name from JYOrder_Glide A '); // sql.Add('where CarNo =' + quotedstr(carNo.Text)); FSJ := 'select A.GlideName AS name from JYOrder_Glide A where CarNo = ' + quotedstr(Edit_smNo.Text); //FSJ := FSJ + 'and NOT EXISTS(select X.GLIDEIDX from CL_Group X where X.GLIDEIDX=A.GLIDEIDX AND A.CarNo=X.CARNO) '; FSJ := FSJ + 'AND (select RollNum from JYOrder_Car E WHERE E.CARNO=A.CARNO) > ISNULL((SELECT SUM( RollNum) FROM CL_Group X WHERE X.GLIDEIDX = A.GLIDEIDX AND X.CARNO = A.CarNo) ,0) ORDER BY GlideIdx'; SInitComBoxBySql(ADO_Tmp, GLIDENAME, False, FSJ); end; procedure TfrmCarEdit.INITCL(); begin with ADOTmp do begin Close; sql.Clear; Filtered := False; sql.Add('select AA.* from ( '); //,car_idx=dbo.F_Get_Car_idx(AA.carNo) sql.Add('select A.* '); sql.Add(',B.PRTHX,C.OrderNo,C.customerNOName,C.ywy,C.MPRTCodeName,C.MPRTSpec,mxgangno=(select BatchNO from CK_PB_CR h WHERE H.CRID=(SELECT KCID FROM JYOrder_PBKC J WHERE J.PBKCID=d.CARNO))'); SQL.Add(',jyxh=(select top 1 jyxh from WFB_MJJY F WHERE F.APID=D.CARNO),jycolor=(select top 1 jycolor from WFB_MJJY F WHERE F.APID=D.CARNO)'); sql.Add(',PRTColor ,MPRTMF,MPRTKZ from CL_staff A '); sql.Add('inner join JYorder_Car D on D.CarNo=A.CarNo '); sql.Add('inner join JYorder_sub B on B.subiD=A.subID '); sql.Add('inner join JYOrder_Main C on C.mainID=A.mainID '); sql.add('where CONVERT(VARCHAR(10),GETDATE(),120)=CONVERT(VARCHAR(10),A.FILLTIME,120) '); SQL.ADD('AND A.FILLER=' + QUOTEDSTR(TRIM(DNAME))); sql.Add(')AA ORDER BY FILLTIME DESC '); // showmessage(sql.Text); Open; end; SCreateCDS20(ADOTmp, CDS_MJID); SInitCDSData20(ADOTmp, CDS_MJID); end; procedure TfrmCarEdit.BZNAMEChange(Sender: TObject); var fbzname: string; begin with ADO_Tmp do begin close; sql.Clear; sql.Add(' select A.GlideName AS name from JYOrder_Glide A where CarNo =' + quotedstr(trim(carno.Text))); sql.Add(' and NOT EXISTS(select X.GLIDEIDX from CL_Group X where X.GLIDEIDX=A.GLIDEIDX AND A.CarNo=X.CARNO)'); sql.Add('and GlideName in (select rtvalue from [dbo].[F_Tool_SplitString]((select gxname from OA_YG_BZ b where b.bzname=' + QuotedStr(Trim(bzname.text))); sql.Add(' ),''/'') )'); sql.Add(' ORDER BY GlideIdx'); // sql.Add('select * from OA_YG_BZ where BZName=' + QuotedStr(Trim(BZNAME.Text))); // ShowMessage(SQL.Text); open; end; if ADO_Tmp.IsEmpty = false then begin GLIDENAME.Items.Clear; while not ADO_Tmp.eof do begin GLIDENAME.Items.Add(ADO_Tmp.fieldbyname('name').AsString); ADO_Tmp.next; end; GlideName.ItemIndex := 0; end else begin // GlideName.ItemIndex := GlideName.Items.IndexOf(trim(ADO_Tmp.fieldbyname('name').AsString)); Application.MessageBox('该流程卡未存在该组负责流程或已完成!', '提示信息', 0); exit; end; end; procedure SOutData(mParent: TWinControl; FTag: Integer); var i, idx: integer; begin with mParent do begin for i := 0 to ControlCount - 1 do begin if Controls[i] is TLabel then continue; if Controls[i].Tag <> FTag then continue; if Controls[i] is TEdit then begin TEdit(Controls[i]).Text := ''; end else if Controls[i] is TcxTextEdit then begin TcxTextEdit(Controls[i]).Text := ''; end; end; end; end; procedure SInData(ADOQueryTmp: TADOQuery; mParent: TWinControl; FTag: Integer); var i, idx: integer; mfield, mfieldCode: string; begin with ADOQueryTmp do begin if isEmpty then exit; with mParent do begin for i := 0 to ControlCount - 1 do begin if Controls[i] is TLabel then continue; if Controls[i].Tag <> FTag then continue; mfield := Controls[i].Name; if Controls[i] is TEdit then begin if Trim(fieldByName(mfield).AsString) <> '' then TEdit(Controls[i]).Text := trim(fieldByName(mfield).AsString) else TEdit(Controls[i]).Text := ''; end else if Controls[i] is TcxTextEdit then begin if Trim(fieldByName(mfield).AsString) <> '' then TcxTextEdit(Controls[i]).Text := trim(fieldByName(mfield).AsString) else TcxTextEdit(Controls[i]).Text := ''; end; end; // end for end; // end with end; //end for with end; procedure TfrmCarEdit.InitCar(fCarNo: string); begin try with ADO_Car do begin close; sql.Clear; sql.Add(' exec P_Qry_Car_GlideName '); sql.Add(' @CarNo=' + quotedstr(trim(fCarNo))); // showmessage(sql.Text); open; end; if trim(ADO_Car.fieldbyname('ShowMsg').AsString) <> '' then begin edit_smNo.text := ''; Application.MessageBox(pchar(trim(ADO_Car.fieldbyname('ShowMsg').AsString)), '提示信息', MB_ICONERROR); ADO_Car.Close; exit; end else SInData(ADO_Car, Panel2, 2); Qty.Enabled := false; RollNum.Enabled := false; { IF ADO_Car.fieldbyName('Glideidx').AsInteger=0 then begin Qty.Enabled:=true; RollNum.Enabled:=True; end; } Qty.Enabled := true; RollNum.Enabled := True; MPRTSPEC.Text := ADO_Car.FIELDBYNAME('mxgangno').ASSTRING; PRTColor.Text := ADO_Car.FIELDBYNAME('mxcolor').ASSTRING; edit_smNo.text := ''; edit_smNo.OnClick(edit_smNo); except edit_smNo.text := ''; edit_smNo.OnClick(edit_smNo); end; end; procedure TfrmCarEdit.InitYG(fYGNo: string); var fstr1: string; begin // try // with ADO_YG do // begin // close; // sql.Clear; // sql.Add(' exec P_Qry_Car_YG '); // sql.Add(' @YGNo=' + quotedstr(trim(fYGNo))); // open; // end; // if trim(ADO_YG.fieldbyname('ShowMsg').AsString) <> '' then // begin // edit_smNo.text := ''; // edit_smNo.SetFocus; // Application.MessageBox(pchar(trim(ADO_YG.fieldbyname('ShowMsg').AsString)), '提示信息', MB_ICONERROR); // exit; // end // else // begin // YGNO.Text := ADO_YG.fieldbyName('YGNO').AsString; // YGName.Text := ADO_YG.fieldbyName('YGName').AsString; // InitYGGlide(carNo.Text, YGNO.Text); // edit_smNo.text := ''; // edit_smNo.SetFocus; // { fstr1:='<班组:'+trim(ADO_YG.fieldbyname('BZName').AsString)+' 员工:'+trim(ADO_YG.fieldbyname('YGName').AsString)+'> 是否要提交产量?'; // if Application.MessageBox(Pchar(fstr1),'提示信息',32+4)<>IDYES then Exit; // SaveData(); // edit_smNo.Text:=''; // edit_smNo.SetFocus; } // end; // except // end; end; function TfrmCarEdit.SaveData(): boolean; var i: integer; begin result := false; if fflag = 0 then begin if GetLSNo(ADO_Tmp, fkeyNo, 'CL', 'CL_Group', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示信息', 0); Exit; end; end; try with ADO_Cmd do begin close; sql.Clear; sql.Add(' exec P_Do_Sc_CL_Group '); sql.Add(' @Flag=' + quotedstr(inttostr(fflag))); sql.Add(',@CLID=' + quotedstr(trim(fkeyNo))); sql.Add(',@CarNo=' + quotedstr(trim(carNo.text))); sql.Add(',@GlideNo=' + quotedstr(trim(''''))); sql.Add(',@GlideName=' + quotedstr(trim(GlideName.text))); sql.Add(',@YGNo=' + quotedstr(trim(YGNo.text))); sql.Add(',@YGName=' + quotedstr(trim(YGName.text))); sql.Add(',@RollNum=' + quotedstr(trim(RollNum.text))); sql.Add(',@Qty=' + quotedstr(trim(Qty.Text))); sql.Add(',@SCUnit=' + quotedstr(trim(fscUnit))); sql.Add(',@JPUnit=' + quotedstr(trim(fJPUnit))); sql.Add(',@GlideRate=' + quotedstr(trim('100'))); sql.Add(',@machIneNo=' + quotedstr(trim(machIneNo.Text))); sql.Add(',@chehao=' + quotedstr(trim(chehao.Text))); sql.Add(',@Filler=' + quotedstr(trim(DName))); sql.Add(',@bzname=' + quotedstr(trim(bzname.Text))); // showmessage(sql.text); open; end; if ADO_Cmd.fieldbyname('intReturn').AsInteger <> 0 then begin end else result := true; if ((GLIDENAME.text = '压花') or (GLIDENAME.text = '刷花')) and (edit1.text <> '') then begin with ADO_Cmd do begin close; sql.Clear; sql.add('exec P_Do_YHJY @clid=' + quotedstr(trim(fkeyNo))); sql.Add('exec P_Do_JYCRK @MJID=''' + trim(fkeyNo) + ''''); execsql; end; end; except result := false; end; end; procedure TfrmCarEdit.FormClose(Sender: TObject; var Action: TCloseAction); begin if isCommopen then begin closeCom(DllName); closeCom(JCYDLL); end; Action := cafree; end; procedure TfrmCarEdit.FormDestroy(Sender: TObject); begin frmCarEdit := nil; end; procedure TfrmCarEdit.FormCreate(Sender: TObject); begin inherited; Panel2.Align := alclient; SOutData(Panel2, 2); SOutData(Panel2, 0); end; procedure TfrmCarEdit.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); TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := fsj + Trim(TSpeedButton(Sender).Caption); TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelStart := length(TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); // TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; // TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelLength:=length(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text) end; procedure TfrmCarEdit.SpeedButton12Click(Sender: TObject); var fsj: string; begin fsj := Trim(TEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); if Trim(fsj) = '' then Exit; TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text := Copy(fsj, 1, Length(fsj) - 1); TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelStart := length(TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).Text); // TcxTextEdit(FindComponent(Trim(TSpeedButton(Sender).Hint))).SelectAll; end; procedure TfrmCarEdit.SpeedButton49Click(Sender: TObject); begin Panel_JP.Visible := false; end; procedure TfrmCarEdit.YGNOPropertiesEditValueChanged(Sender: TObject); var fsj: string; str: string; begin with ADO_Tmp do begin close; sql.Clear; sql.Add('select * from OA_YG_DangAn '); sql.Add('where YGCarNo =' + quotedstr(YGNO.Text)); open; end; YGName.Text := trim(ADO_Tmp.fieldbyname('YGName').AsString); // str := trim(ADO_Tmp.fieldbyname('GlideName').AsString); // fsj := 'SELECT distinct(ResultsTable) name FROM [dbo].[F_SplitStringType](' + quotedstr(str) + ','','')'; // // if Pos(',', str) = 0 then // begin // GlideName.Clear; // GlideName.Text := str; // end // else // begin // SInitComBoxBySql(ADO_Cmd, GlideName, False, fsj); // end; end; procedure TfrmCarEdit.GlideRateClick(Sender: TObject); var i: Integer; begin Panel_JP.Visible := True; with Panel_JP 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; with ADO_Tmp do begin close; sql.Clear; SQL.Add('select tt=dbo.fn_setColon(' + QuotedStr(Trim(chehao.text))); sql.Add(')'); open; end; chehao.Text := ADO_Tmp.FieldByName('tt').AsString; end; procedure TfrmCarEdit.edit_smNoKeyPress(Sender: TObject; var Key: Char); var fsj: string; str: string; begin if trim(edit_smNo.Text) = '' then exit; if Key = #13 then begin INITGX(); with ADO_Tmp do begin close; sql.Clear; SQL.Add('SELECT MAX=MAX(GlideIdx+1) FROM CL_Group '); sql.Add('where CarNo =' + quotedstr(Edit_smNo.Text)); open; end; if StrToIntDef(ADO_Tmp.FieldByName('MAX').AsString, 0) = 0 then begin GLIDENAME.ItemIndex := 0; end else begin with ADOQuery2 do begin close; sql.Clear; SQL.Add('SELECT * FROM JYOrder_Glide '); sql.Add('where CarNo =' + quotedstr(Edit_smNo.Text)); SQL.Add('AND GlideIdx=' + ADO_Tmp.FieldByName('MAX').AsSTRING); // ShowMessage(SQL.Text); open; end; if ADOQuery2.IsEmpty = FALSE then begin GlideName.ItemIndex := GlideName.Items.IndexOf(trim(ADOQuery2.fieldbyname('GlideName').AsString)); end; end; with ADO_Tmp do begin Close; sql.Clear; SQL.Add('select * from SY_User where username=' + QuotedStr(Trim(dname))); Open; end; if ADO_Tmp.fieldbyname('UDEPT').asstring <> '' then begin GlideName.ItemIndex := GlideName.Items.IndexOf(trim(ADO_Tmp.fieldbyname('UDEPT').asstring)); end; // with ADO_Tmp do // begin // Close; // sql.Clear; // SQL.Add('select * from SY_User where username=' + QuotedStr(Trim(dname))); // Open; // end; // bzname.ItemIndex := bzname.Items.IndexOf(trim(DName)); // with ADO_Tmp do // begin // close; // sql.Clear; // // sql.Add(' select A.GlideName AS name from JYOrder_Glide A where CarNo =' + quotedstr(trim(Edit_smNo.Text))); // sql.Add(' and NOT EXISTS(select X.GLIDEIDX from CL_Group X where X.GLIDEIDX=A.GLIDEIDX AND A.CarNo=X.CARNO '); // SQL.Add(' and (SELECT SUM(ROLLNUM) FROM CL_Staff E WHERE E.CARNO=A.CarNo )>=(select RollNum from JYOrder_Car F where F.carno=A.CARNO ) )'); // // sql.Add('and GlideName in (select rtvalue from [dbo].[F_Tool_SplitString]((select gxname from OA_YG_BZ b where b.bzname=' + QuotedStr(Trim(bzname.text))); // sql.Add(' ),''/'') )'); // sql.Add(' ORDER BY GlideIdx'); //// sql.Add('select * from OA_YG_BZ where BZName=' + QuotedStr(Trim(BZNAME.Text))); //// ShowMessage(SQL.Text); // open; // end; // // if ADO_Tmp.IsEmpty = false then // begin // GLIDENAME.Items.Clear; // while not ADO_Tmp.eof do // begin // GLIDENAME.Items.Add(ADO_Tmp.fieldbyname('name').AsString); // ADO_Tmp.next; // end; // GlideName.ItemIndex := 0; // end // else // begin //// GlideName.ItemIndex := GlideName.Items.IndexOf(trim(ADO_Tmp.fieldbyname('name').AsString)); // // Application.MessageBox('该流程卡未存在该组负责流程或已完成!', '提示信息', 0); // edit_smNo.Text := ''; // exit; // end; InitCar(Edit_smNo.Text); INITCL(); // with ADOQuery2 do // begin // close; // sql.Clear; // SQL.Add('SELECT TOP 1 BZNAME FROM OA_YG_SB WHERE SBSTATUS=''已上班'' '); // // open; // end; // BZNAME.ItemIndex := BZNAME.Items.IndexOf(trim(ADOQuery2.fieldbyname('BZNAME').AsString)); // GlideName.Text := trim(ADO_Tmp.fieldbyname('name').AsString); // GlideName.ItemIndex:=CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('ckname').AsString)); // fsj := 'select A.YGName AS name,A.BZName,B.GXName from OA_YG_DangAn A INNER JOIN OA_YG_BZ B ON A.BZID=B.BZID where A.LiZhiFlag=0 and B.GXName =' + quotedstr(GlideName.Text) + ' '; // SInitComBoxBySql(ADO_Cmd, YGName, False, fsj); // YGName.ItemIndex := 0; end; end; procedure TfrmCarEdit.cxButton1Click(Sender: TObject); begin if trim(carNo.Text) = '' then begin edit_smNo.text := ''; Application.MessageBox('没有扫描流程卡!', '提示信息', MB_ICONERROR); edit_smNo.SetFocus; exit; end; InitYG(trim(edit_smNo.Text)); end; procedure TfrmCarEdit.SpeedButton13Click(Sender: TObject); begin cxButton1.Click; end; procedure TfrmCarEdit.Sel1Click(Sender: TObject); begin if trim(TcxTextEdit(Sender).Text) = '√' then begin TcxTextEdit(Sender).Text := ''; end else begin TcxTextEdit(Sender).Text := '√'; end; end; procedure TfrmCarEdit.SpeedButton14Click(Sender: TObject); var i, j, f1, f2: integer; begin // if strtofloatdef(trim(Qty.Text), 0) = 0 then // begin // Application.MessageBox('产出数量不能为空或者零!', '提示信息', 0); // Exit; // end; if carno.Text = '' then begin Application.MessageBox('卡号不能为空,请重新刷卡', '提示信息', 0); Exit; end; if strtofloatdef(trim(RollNum.Text), 0) = 0 then begin Application.MessageBox('产出匹数不能为空或者零!', '提示信息', 0); Exit; end; if strtofloatdef(trim(GlideRate.Text), 0) = 0 then begin Application.MessageBox('已完工产量为空或者零!', '提示信息', 0); Exit; end; if strtofloatdef(trim(GlideRate.Text), 0) > 100 then begin Application.MessageBox('已完工产量不能大于100!', '提示信息', 0); Exit; end; if strtofloatdef(trim(N_GlideRate.Text), 0) > 0 then begin if strtofloatdef(trim(GlideRate.Text), 0) > strtofloatdef(trim(N_GlideRate.Text), 0) then begin Application.MessageBox('已完工产量不能大于剩余产量!', '提示信息', 0); Exit; end; end; with ADO_Tmp do begin close; sql.Clear; sql.Add('select f1=isnull(sum(rollnum),0)'); sql.Add(' from CL_Staff b where carno=' + QuotedStr(trim(carno.text))); sql.Add('and b.glidename=' + QuotedStr(Trim(glidename.Text))); // sql.Add('group by carno'); // ShowMessage(sql.Text); open; end; f1 := StrTointdef(ADO_Tmp.FieldByName('f1').AsString, 0); with ADO_Tmp do begin close; sql.Clear; sql.Add(' select f2=rollnum from JYOrder_Car g where g.carno=' + QuotedStr(trim(carno.text))); // ShowMessage(sql.Text); open; end; f2 := StrTointdef(ADO_Tmp.FieldByName('f2').AsString, 0); // if f2 - f1 - strTointdef(RollNum.Text, 0) < 0 then // begin // Application.MessageBox('刷卡匹数大于开卡匹数', '提示信息', 0); // Exit; // end; // if BZNAME.Text = '' then // begin // Application.MessageBox('班组不能为空', '提示信息', 0); // Exit; // end; // j := 0; // with Panel_G do // begin // for i := 0 to ControlCount - 1 do // begin // if Controls[i] is TEdit then // begin // if TEdit(Controls[i]).Text = '√' then // begin // j := 1; // end; // end; // end; // end; // if j = 0 then // begin // Application.MessageBox('没有选择刷卡工序!', '提示信息', 0); // Exit; // end; // ADO_Cmd.Connection.BeginTrans; // try // for i := 1 to 6 do // begin // fGlideName := ''; // fScUnit := ''; // fJPunit := ''; // if (TEdit(FindComponent('Sel' + inttostr(i))).Visible) and (TEdit(FindComponent('Sel' + inttostr(i))).Text = '√') then // begin // fGlideName := trim(Tlabel(FindComponent('G' + inttostr(i))).Caption); // fScUnit := trim(Tlabel(FindComponent('G' + inttostr(i))).Hint); // fJPunit := ''; // if savedata() = false then // begin // ADO_Cmd.Connection.RollbackTrans; // Application.MessageBox('刷卡错误!', '提示信息', 0); // exit; // end; // end; // end; // ADO_Cmd.Connection.CommitTrans; // SOutData(Panel2, 2); // SOutData(Panel2, 0); // ClearGlide(); if savedata() = false then begin ADO_Cmd.Connection.RollbackTrans; Application.MessageBox('刷卡错误!', '提示信息', 0); exit; end; INITCL(); edit_smNo.SetFocus; Application.MessageBox('刷卡成功!', '提示信息'); if (glidename.text = '压花') or (glidename.text = '刷花') then begin end else begin carno.Text := ''; end; // except // ADO_Cmd.Connection.RollbackTrans; // end; end; procedure TfrmCarEdit.FormShow(Sender: TObject); var fsj2: string; begin inherited; edit_smNo.OnClick(edit_smNo); fsj2 := 'select DISTINCT NAME=BZNAME from OA_YG_BZ ORDER BY NAME '; SInitComBoxBySql(ADO_Tmp, BZNAME, False, fsj2); bzname.ItemIndex := bzname.Items.IndexOf(trim(DName)); if trim(Edit10.Text) = '√' then IsJsMessage := true; if trim(DllName) <> '' then OpenCom(DllName); if trim(JCYDLL) <> '' then OpenCom(JCYDLL); end; procedure Tfrmcaredit.edit_smNoClick(Sender: TObject); var i: Integer; begin Panel_JP.Visible := True; with Panel_JP 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 Tfrmcaredit.Edit10Click(Sender: TObject); begin if Trim(Edit10.Text) = '' then begin Edit10.Text := '√'; end else begin Edit10.Text := ''; end; end; procedure Tfrmcaredit.GLIDENAMEChange(Sender: TObject); begin if (glidename.text = '压花') or (glidename.text = '刷花') then begin rollnum.text := '1'; qty.Text := floattostr(strtofloatdef(kkqty.Text, 0) / strtofloatdef(kkps.Text, 0)); end else begin rollnum.text := kkps.text; qty.text := kkqty.text; end; end; procedure Tfrmcaredit.Edit1Click(Sender: TObject); begin if Trim(Edit1.Text) = '' then begin Edit1.Text := '√'; end else begin Edit1.Text := ''; end; end; end.