unit U_MLOrderInPut; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxCurrencyEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxDropDownEdit; type TfrmMLOrderInPut = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; Label1: TLabel; MLOrderNo: TEdit; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; v1MLColor: TcxGridDBColumn; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; ADOQuery1: TADOQuery; v1Qty: TcxGridDBColumn; Label10: TLabel; v1XHNo: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1MLColorNo: TcxGridDBColumn; ToolButton3: TToolButton; Label3: TLabel; Label14: TLabel; Label12: TLabel; Label13: TLabel; OrdDate: TDateTimePicker; KHName: TBtnEditC; JGLXR: TBtnEditC; JGLXFS: TBtnEditC; Label2: TLabel; JGDanWei: TBtnEditC; Label6: TLabel; JGAdd: TBtnEditC; Label41: TLabel; GenDan: TBtnEditC; Label43: TLabel; YWY: TBtnEditC; v1MXNote: TcxGridDBColumn; SGYang: TMemo; Label23: TLabel; CDS_CON: TClientDataSet; DSCON: TDataSource; JGtype: TBtnEditC; Label53: TLabel; cxGridPopupMenu1: TcxGridPopupMenu; MLConNo: TBtnEditC; v1MLCode: TcxGridDBColumn; v1MLCodeName: TcxGridDBColumn; ADOQueryCmd: TADOQuery; CYID: TEdit; ADOQueryTmp: TADOQuery; ADOQuery2: TADOQuery; v1TrueSe: TcxGridDBColumn; Label61: TLabel; SHName: TEdit; Label25: TLabel; SHAdd: TBtnEditC; Label59: TLabel; SHLXFS: TEdit; Label60: TLabel; GenDanLXR: TBtnEditC; Label19: TLabel; GYNote: TBtnEditC; Label42: TLabel; BZNote: TBtnEditC; Label58: TLabel; ZLNote: TBtnEditC; Label62: TLabel; QtyNote: TBtnEditC; Label63: TLabel; QTnote: TBtnEditC; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure KHNameBtnUpClick(Sender: TObject); procedure KHNameBtnDnClick(Sender: TObject); procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OrdDefStr2BtnUpClick(Sender: TObject); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure ToolButton3Click(Sender: TObject); procedure YCLFactoryBtnUpClick(Sender: TObject); procedure MPRTSCTeBieNoteBtnUpClick(Sender: TObject); procedure v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure MLConNoBtnUpClick(Sender: TObject); procedure CYIDKeyPress(Sender: TObject; var Key: Char); procedure v1PRTCodePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private procedure InitData(); function SaveData():Boolean; function getOrderNo(fconNo:string):string; procedure CFSaveData(); { Private declarations } public PState,CopyInt,PriceFlag:Integer; FMainId,FFMainId,FOrderNo:String; FXS:Integer; canshu1,canshu2:string; fFlileFlag:string; { Public declarations } end; var frmMLOrderInPut: TfrmMLOrderInPut; newh:hwnd; implementation uses U_DataLink,U_ZDYHelp,U_Fun,U_ZDYHelpSel, U_ZdyAttachment, U_ZdyAttachGYS, U_CPManageSel, getpic, U_ZdyAttachCP_HX_sel,U_ContractList_CX; {$R *.dfm} procedure TfrmMLOrderInPut.CFSaveData(); var fCFID:string; begin with ADOQuery2 do begin Close; SQL.Clear; sql.Add('select * from JYOrder_Sub_CF where subID='''+Trim(Order_Sub.fieldbyname('subID').asstring)+''''); open; end; if ADOQuery2.IsEmpty then begin with ADOQuery1 do begin Close; sql.Clear; SQL.Add('select A.CengJI,A.MLName,A.MLSeHao,A.MLID '); sql.Add(',HXNo=(select Top 1 B.HXNo from CP_YDang_JG B where B.CengJi=A.CengJi and B.CYID=A.CYID and B.IFZY=1)'); sql.Add(',GYDM=(select Top 1 B.GYDM from CP_YDang_JG B where B.CengJi=A.CengJi and B.CYID=A.CYID and B.IFZY=1)'); sql.Add(' from CP_YDang_ML A '); SQL.Add('where A.CYID='''+trim(Order_Sub.fieldbyname('PRTCode').AsString)+''''); sql.Add(' and A.IFSel=1 '); sql.Add(' order by A.Cengji,A.MLID'); open; end; while not ADOQuery1.Eof do begin IF GetLSNo(ADOQueryCmd,fCFID,'JC','JYOrder_Sub_CF',4,1)=False then begin Application.MessageBox('取子流水号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from JYOrder_Sub_CF where CFID='''+Trim(fCFID)+''''); Open; IF IsEmpty then Append else edit; fieldbyname('CFID').Value:=trim(fCFID); fieldbyname('PRTCode').Value:=trim(Order_Sub.fieldbyname('PRTCode').AsString); fieldbyname('PrtCodeName').Value:=trim(ADOQuery1.fieldbyname('MLName').AsString); fieldbyname('PrtSpec').Value:=trim(Order_Sub.fieldbyname('PrtSpec').AsString); fieldbyname('SOrddefstr1').Value:=trim(ADOQuery1.fieldbyname('MLSeHao').AsString); fieldbyname('PRTColor').Value:=trim(ADOQuery1.fieldbyname('MLColor').AsString); fieldbyname('PRTHX').Value:=trim(ADOQuery1.fieldbyname('HXName').AsString); fieldbyname('PRTOrderRollNum').Value:=Order_Sub.fieldbyname('PRTOrderRollNum').AsFloat; fieldbyname('PrtOrderQty').Value:=Order_Sub.fieldbyname('PRTOrderQty').AsFloat; fieldbyname('OrderUnit').Value:=trim(Order_Sub.fieldbyname('OrderUnit').AsString); FieldByName('PRTType').Value:=trim(ADOQuery1.fieldbyname('CengJi').AsString)+'层'; fieldbyname('MainID').Value:=trim(Order_Sub.fieldbyname('MainID').AsString); fieldbyname('SubID').Value:=trim(Order_Sub.fieldbyname('SubID').AsString); post; end; ADOQuery1.Next; end; end else begin with ADOQuery1 do begin Close; sql.Clear; sql.Add('update JYOrder_Sub_CF set '); sql.Add('PRTCode='''+trim(Order_Sub.fieldbyname('PRTCode').AsString)+''''); sql.Add(',PrtSpec='''+trim(Order_Sub.fieldbyname('PrtSpec').AsString)+''''); {if Order_Sub.fieldbyname('PRTOrderRollNum').AsFloat=0 then sql.Add(',PRTOrderRollNum=0') else sql.Add(',PRTOrderRollNum='''+trim(Order_Sub.fieldbyname('PRTOrderRollNum').AsString)+''''); if Order_Sub.fieldbyname('PrtOrderQty').AsFloat=0 then sql.Add(',PrtOrderQty=0') else sql.Add(',PrtOrderQty='''+trim(Order_Sub.fieldbyname('PrtOrderQty').AsString)+'''');} sql.Add(',OrderUnit='''+trim(Order_Sub.fieldbyname('OrderUnit').AsString)+''''); sql.Add(' where Subid='''+trim(Order_Sub.fieldbyname('Subid').AsString)+''''); ExecSQL; end; end; end; function TfrmMLOrderInPut.getOrderNo(fconNo:string):string; var str1:string; i:integer; begin str1:=trim(fconNo)+'01'; with ADOTemp do begin close; sql.Clear; sql.Add('select MainID from JYOrder_Main where orderNo='+quotedstr(trim(str1))); open; end; IF not ADOTemp.IsEmpty then begin for i:=1 to 99 do begin str1:=trim(fconNo)+rightstr(inttostr(100+i),2); with ADOCmd do begin close; sql.Clear; sql.Add('select MainID from JYOrder_Main where orderNo='+quotedstr(trim(str1))); open; end; IF ADOCmd.IsEmpty then break; end; end; result:=str1; end; procedure TfrmMLOrderInPut.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('面料染色计划单',Tv1,'生产指示单管理'); end; procedure TfrmMLOrderInPut.InitData(); begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' select * from ML_OrderSubid where 1=1 '); if PState=1 then begin sql.Add(' and MLID='''+Trim(FMainId)+''''); end; if PState=0 then begin sql.Add(' and 1<>1'); end; Open; end; SCreateCDS20(ADOQuery1,Order_Sub); SInitCDSData20(ADOQuery1,Order_Sub); with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * from ML_OrderMain where MLID='''+Trim(FMainId)+''''); Open; end; SCSHDataNew(ADOQuery1,ScrollBox1,2); if PState=0 then begin OrdDate.DateTime:=SGetServerDateTime(ADOTemp); YWY.Text:=Trim(DName); end else begin end; if CopyInt=99 then begin PState:=0; FMainId:=''; OrdDate.DateTime:=SGetServerDateTime(ADOTemp); YWY.Text:=Trim(DName); with Order_Sub do begin First; while not Eof do begin Edit; FieldByName('MLID').Value:=''; FieldByName('MLSubid').Value:=''; Post; Next; end; end; end; end; procedure TfrmMLOrderInPut.FormShow(Sender: TObject); begin readCxGrid('面料染色计划单',Tv1,'生产指示单管理'); MLOrderNo.Text:='自动生成'; InitData(); end; function TfrmMLOrderInPut.SaveData():Boolean; var maxno,forderNo:String; begin try ADOCmd.Connection.BeginTrans; ///保存主表 if Trim(FMainId)='' then begin if GetLSNo(ADOCmd,maxno,'ML','ML_OrderMain',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; if GetLSNo(ADOCmd,forderNo,'','ML_OrderMain',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; MLorderNo.Text:=forderNo; end else begin maxno:=Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from ML_OrderMain where MLID='''+Trim(FMainId)+''''); Open; end; with ADOCmd do begin if Trim(FMainId)='' then begin Append; end else begin Edit; end; FieldByName('MLID').Value:=Trim(maxno); SSetsaveSqlNew(ADOCmd,'ML_OrderMain',ScrollBox1,2); FieldByName('Status').Value:='0'; if Trim(FMainId)='' then begin FieldByName('Filler').Value:=Trim(DName); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; Post; end; FMainId:=Trim(maxno); ///保存子表 with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('MLSubid').AsString)='' then begin if GetLSNo(ADOCmd,maxno,'MS','ML_OrderSubid',4,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_Sub.fieldbyname('MLSubid').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from ML_OrderSubid where MLID='''+Trim(FMainId)+''''); sql.Add(' and MLSubid='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_Sub.fieldbyname('MLSubid').AsString)='' then Append else Edit; FieldByName('MLID').Value:=Trim(FMainId); FieldByName('MLSubid').Value:=Trim(maxno); RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'ML_OrderSubid',0); fieldbyname('Qty').Value:=Order_Sub.FieldByName('Qty').AsFloat; Post; end; Order_Sub.Edit; Order_Sub.FieldByName('MLSubid').Value:=Trim(maxno); Order_Sub.FieldByName('MLID').Value:=Trim(FMainId); Next; end; end; ADOCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmMLOrderInPut.TBSaveClick(Sender: TObject); begin OrdDate.SetFocus; if Order_Sub.IsEmpty then begin Application.MessageBox('明细不能为空!','提示',0); Exit; end; {if Order_Sub.Locate('SOrddefstr7',null,[]) then begin Application.MessageBox('面料正反面不能为空!','提示',0); Exit; end; } if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmMLOrderInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrdColor'; flagname:='颜色'; V1Name.Caption:='中文名称'; V1Note.Caption:='英文名称'; fnote:=True; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('MLColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.Order_Sub.FieldByName('MLColorNo').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMLOrderInPut.ToolButton1Click(Sender: TObject); var i:Integer; begin i:=Order_Sub.RecordCount; CopyAddRow(Tv1,Order_Sub); with Order_Sub do begin Edit; FieldByName('XHNO').Value:=IntToStr(i+1); Post; end; end; procedure TfrmMLOrderInPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('MLSubid').AsString)<>'' then begin if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete ML_OrderSubid where MLSubid='''+Trim(Order_Sub.fieldbyname('MLSubid').AsString)+''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmMLOrderInPut.KHNameBtnUpClick(Sender: TObject); begin try frmZdyAttachment:=TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin IF self.canshu1<>'高权限' then canshu1:='业务员'; if ShowModal=1 then begin KHName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmMLOrderInPut.KHNameBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text:=''; TBtnEditC(Sender).TxtCode:=''; end; procedure TfrmMLOrderInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var mvalues:string; begin mvalues:=tv1.Columns[tv1.Controller.FocusedColumn.index].DataBinding.FieldName; try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrderUnit'; flagname:='数量单位'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName(mvalues).Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMLOrderInPut.v1PriceUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PriceUnit'; flagname:='价格单位'; if Trim(DParameters1)<>'高权限' then begin TBAdd.Visible:=False; TBEdit.Visible:=False; TBDel.Visible:=False; end; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMLOrderInPut.OrdDefStr2BtnUpClick(Sender: TObject); var fsj:string; FWZ:Integer; begin fsj:=Trim(TEdit(Sender).Hint); FWZ:=Pos('/',fsj); try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Copy(fsj,1,FWZ-1); flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); if ShowModal=1 then begin TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMLOrderInPut.ConNoKeyPress(Sender: TObject; var Key: Char); var ConMainId:string; begin if Key=#13 then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from JYOrderCon_Main where ConNo like '''+'%'+Trim(MLConNo.Text)+'%'+''''); Open; end; if ADOTemp.RecordCount>1 then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select Top 1* from JYOrderCon_Main where ConNo='''+Trim(MLConNo.Text)+''''); Open; end; if ADOTemp.IsEmpty then Exit; end else if ADOTemp.RecordCount=1 then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from JYOrderCon_Main where ConNo like '''+'%'+Trim(MLConNo.Text)+'%'+''''); Open; end; end; begin MLConNo.Text:=Trim(ADOTemp.fieldbyname('ConNo').AsString); with ADOTemp do begin Close; sql.Clear; sql.Add('select A.*,ColorName=(select ZdyName from KH_Zdy B where B.Note=A.PRTColor and B.Type=''OrdColor'' ) '); SQL.Add(' from JYOrderCon_Sub A where MainId='''+Trim(ConMainId)+''''); Open; end; with ADOTemp do begin First; while not Eof do begin with Order_Sub do begin Append; FieldByName('PRTColor').Value:=Trim(ADOTemp.fieldbyname('PRTColor').AsString); FieldByName('SOrdDefStr4').Value:=Trim(ADOTemp.fieldbyname('SOrdDefStr4').AsString); FieldByName('SOrdDefStr3').Value:=Trim(ADOTemp.fieldbyname('SOrdDefStr3').AsString); FieldByName('PRTOrderQty').Value:=Trim(ADOTemp.fieldbyname('PRTOrderQty').AsString); FieldByName('OrderUnit').Value:=Trim(ADOTemp.fieldbyname('OrderUnit').AsString); FieldByName('PRTPrice').Value:=Trim(ADOTemp.fieldbyname('PRTPrice').AsString); FieldByName('PriceUnit').Value:=Trim(ADOTemp.fieldbyname('PriceUnit').AsString); FieldByName('PRTHX').Value:=Trim(ADOTemp.fieldbyname('PRTHX').AsString); FieldByName('XHNO').Value:=Trim(ADOTemp.fieldbyname('XHNO').AsString); FieldByName('Sorddefstr10').Value:=Trim(ADOTemp.fieldbyname('SUBID').AsString); Post; end; Next; end; end; end; end; end; procedure TfrmMLOrderInPut.ToolButton3Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; OneKeyPost(Tv1,Order_Sub); end; procedure TfrmMLOrderInPut.YCLFactoryBtnUpClick(Sender: TObject); var fsj:string; FWZ:Integer; begin fsj:=Trim(TEdit(Sender).Hint); FWZ:=Pos('/',fsj); try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Copy(fsj,1,FWZ-1); flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); //MainType:=TEdit(Sender).Name; if ShowModal=1 then begin TEdit(Sender).Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmMLOrderInPut.MPRTSCTeBieNoteBtnUpClick(Sender: TObject); var fsj:string; FWZ:Integer; begin fsj:=Trim(TEdit(Sender).Hint); FWZ:=Pos('/',fsj); try frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag:=Copy(fsj,1,FWZ-1); flagname:=Copy(fsj,FWZ+1,Length(fsj)-fwz); if ShowModal=1 then begin TEdit(Sender).Text:=ReturnStr; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmMLOrderInPut.v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin frmZdyAttachCP_HX_Sel:=TfrmZdyAttachCP_HX_Sel.create(self); with frmZdyAttachCP_HX_Sel do begin IF showmodal=1 then begin Order_Sub.Edit; Order_Sub.FieldByName('PRTHX').Value:=trim(cds_Hz.FieldByName('ZdyName').asstring); Order_Sub.Post; end; frmZdyAttachCP_HX_Sel.Free; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmMLOrderInPut.MLConNoBtnUpClick(Sender: TObject); begin frmContractList_CX:=TfrmContractList_CX.create(self); with frmContractList_CX do begin if showmodal=1 then begin self.mlconNo.Text:=Order_Main.fieldbyname('conNO').AsString; with Order_SubCX do begin First; while not Eof do begin if FieldByName('Ssel').AsBoolean=true then begin with Order_Sub do begin Append; FieldByName('MLCode').Value:=Trim(Order_SubCX.fieldbyname('prtCode').AsString); FieldByName('MLCodeName').Value:=Trim(Order_SubCX.fieldbyname('prtCodeName').AsString); FieldByName('MLColor').Value:=Trim(Order_SubCX.fieldbyname('PRTColor').AsString); FieldByName('MLColornO').Value:=Trim(Order_SubCX.fieldbyname('SOrdDefStr1').AsString); FieldByName('Qty').Value:=Order_SubCX.fieldbyname('PRTOrderQty').AsFloat; FieldByName('QtyUnit').Value:=Trim(Order_SubCX.fieldbyname('OrderUnit').AsString); Post; end; end; Next; end; end; end; Free; end; end; procedure TfrmMLOrderInPut.CYIDKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin with ADOQueryTmp do begin close; sql.Clear; sql.Add('select B.* '); sql.Add('from CP_YDang B where B.CYID='''+trim(CYID.Text)+''' '); open; end; IF not ADOQueryTmp.IsEmpty then begin Order_Sub.append; Order_Sub.FieldByName('MLCode').Value:=trim(ADOQueryTmp.fieldbyname('CYNo').AsString); Order_Sub.FieldByName('XTNo').Value:=trim(ADOQueryTmp.fieldbyname('XTNo').AsString); Order_Sub.FieldByName('MLCodeName').Value:=trim(ADOQueryTmp.fieldbyname('CYEName').AsString); Order_Sub.FieldByName('CYID').Value:=trim(ADOQueryTmp.fieldbyname('CYID').AsString); Order_Sub.FieldByName('MLColor').Value:=trim(ADOQueryTmp.fieldbyname('ColorName').AsString); Order_Sub.FieldByName('MLColorNO').Value:=trim(ADOQueryTmp.fieldbyname('ColorNO').AsString); Order_Sub.Post; CYID.Text:=''; end else begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('select A.*,B.ColorNo,B.ColorName,B.ColorEName'); sql.Add(',PRTHX=(select Top 1 C.HXName from CP_YDang_JG C where C.CYID=B.CYID and C.IFZY=1 and isnull(C.HXName,'''')<>'''''); SQL.Add(' order by (case when C.cengji=6 then 1 else 2 end))'); SQL.Add(' from CP_YDang_Color B inner join CP_YDang A on A.CYID=B.CYID'); sql.Add(' where B.CLRID='''+trim(CYID.Text)+''' '); open; end; IF not ADOQueryCmd.IsEmpty then begin Order_Sub.append; Order_Sub.FieldByName('MLCode').Value:=trim(ADOQueryTmp.fieldbyname('CYNo').AsString); Order_Sub.FieldByName('XTNo').Value:=trim(ADOQueryTmp.fieldbyname('XTNo').AsString); Order_Sub.FieldByName('MLCodeName').Value:=trim(ADOQueryTmp.fieldbyname('CYEName').AsString); Order_Sub.FieldByName('CYID').Value:=trim(ADOQueryTmp.fieldbyname('CYID').AsString); Order_Sub.FieldByName('MLColor').Value:=trim(ADOQueryTmp.fieldbyname('ColorName').AsString); Order_Sub.FieldByName('MLColorNO').Value:=trim(ADOQueryTmp.fieldbyname('ColorNO').AsString); Order_Sub.Post; CYID.Text:=''; end else application.MessageBox('此条码错误!','提示信息',MB_ICONERROR); CYID.Text:=''; end; end; end; procedure TfrmMLOrderInPut.v1PRTCodePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin frmCPManageSel:=TfrmCPManageSel.Create(self); with frmCPManageSel do begin if showmodal=1 then begin Order_Sub.Edit; Order_Sub.fieldbyname('MLCode').Value:=CDS_Main.fieldbyname('CYNo').asstring; Order_Sub.fieldbyname('MLCodeName').Value:=CDS_Main.fieldbyname('CYEName').asstring; Order_Sub.fieldbyname('MLColor').Value:=CDS_Main.fieldbyname('CYColor').asstring; Order_Sub.fieldbyname('MLColorNo').Value:=CDS_Main.fieldbyname('CYColorNo').asstring; Order_Sub.fieldbyname('CYID').Value:=CDS_Main.fieldbyname('CYID').asstring; Order_Sub.Post; end; free; end; tv1.Controller.EditingController.ShowEdit(); end; end.