unit U_CPAdd; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit, cxButtonEdit, StdCtrls, ExtCtrls, cxCurrencyEdit, cxDropDownEdit, cxCalendar; type TfrmCPAdd = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; Panel1: TPanel; CheckBox1: TCheckBox; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label9: TLabel; Label11: TLabel; Label13: TLabel; Label17: TLabel; Label18: TLabel; Label20: TLabel; CYNo: TEdit; CYSpec: TEdit; CYKZ: TEdit; CYHX: TEdit; CYName: TEdit; CYEName: TEdit; CYECF: TEdit; CYMF: TEdit; CYColorEng: TEdit; CYNote: TEdit; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; DefStr2: TEdit; Label6: TLabel; Label7: TLabel; DefStr4: TEdit; DefStr3: TEdit; Label8: TLabel; ZDBJ: TEdit; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CheckBox1Click(Sender: TObject); procedure v1Column46PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CYMFExit(Sender: TObject); procedure CYKZExit(Sender: TObject); procedure CYNoKeyPress(Sender: TObject; var Key: Char); procedure CYNameKeyPress(Sender: TObject; var Key: Char); procedure CYENameKeyPress(Sender: TObject; var Key: Char); procedure CYSpecKeyPress(Sender: TObject; var Key: Char); procedure CYCFKeyPress(Sender: TObject; var Key: Char); procedure CYECFKeyPress(Sender: TObject; var Key: Char); procedure CYKZKeyPress(Sender: TObject; var Key: Char); procedure CYMFKeyPress(Sender: TObject; var Key: Char); procedure DefStr2KeyPress(Sender: TObject; var Key: Char); procedure CYHXKeyPress(Sender: TObject; var Key: Char); procedure CYColorKeyPress(Sender: TObject; var Key: Char); procedure price1KeyPress(Sender: TObject; var Key: Char); procedure CYColorEngKeyPress(Sender: TObject; var Key: Char); procedure DefStr4KeyPress(Sender: TObject; var Key: Char); private canshu1:string; Fint:Integer; procedure InitSubGrid(); function SaveData():Boolean; { Private declarations } public FCYID,FCPID:String; CopyInt:Integer; { Public declarations } end; var frmCPAdd: TfrmCPAdd; implementation uses U_DataLink,U_Fun,U_iniParam,U_ZDYHelp; {$R *.dfm} procedure TfrmCPAdd.InitSubGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add(' select * from CP_YDang where CYID='''+Trim(FCYID)+''' '); Open; end; SCSHDataNew(ADOQueryMain,Panel2,0); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCPAdd.FormShow(Sender: TObject); begin InitSubGrid(); if CopyInt=1 then begin FCYID:=''; end; if CheckBox1.Checked=True then begin canshu1:='英寸'; end else begin canshu1:=''; end; end; procedure TfrmCPAdd.TBCloseClick(Sender: TObject); begin Close; end; function TfrmCPAdd.SaveData():Boolean; var maxId:String; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FCYID)='' then begin if GetLSNo(ADOQueryCmd,maxId,'','CP_YDang',3,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; end else begin maxId:=Trim(FCYID); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from CP_YDang where CYID='''+Trim(FCYID)+''''); Open; end; with ADOQueryCmd do begin if Trim(FCYID)='' then begin Append; FieldByName('CYType').Value:=Trim(FCPID); FieldByName('CYID').Value:=Trim(maxId); FieldByName('Filler').Value:=Trim(DName); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); end; SSetsavedataNew(ADOQueryCmd,'CP_YDang',Panel2,0); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select count(CYNO) as AA from CP_YDang where CYNo='''+Trim(CYNo.Text)+''' '); Open; if FieldByName('AA').AsInteger>1 then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('产品编号重复!','提示',0); Exit; end; end; ADOQueryCmd.Connection.CommitTrans; FCYID:=Trim(maxId); Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmCPAdd.ToolButton1Click(Sender: TObject); begin if ( Trim(CYNo.Text)='' ) then begin Application.MessageBox('产品编号不能为空!','提示',0); Exit; end; if ( Trim(CYName.Text)='' ) then begin Application.MessageBox('中文品名不能为空!','提示',0); Exit; end; ToolBar1.SetFocus; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmCPAdd.v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin { try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='YPName'; flagname:='样品名称'; if ShowModal=1 then begin with CDS_Sub do begin Edit; FieldByName('CYName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end;} end; procedure TfrmCPAdd.CheckBox1Click(Sender: TObject); begin if CheckBox1.Checked=True then begin canshu1:='英寸'; end else begin canshu1:=''; end; end; procedure TfrmCPAdd.v1Column46PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin { try frmZdyAttachGYS:=TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal=1 then begin with CDS_Sub do begin Edit; FieldByName('defstr19').Value:=Trim(CDS_HZ.fieldbyname('ZdyName').AsString); end; end; end; finally frmZdyAttachGYS.Free; end; } end; procedure TfrmCPAdd.CYMFExit(Sender: TObject); var mvalue:string; FReal:Double; begin mvalue:=Trim(TcxTextEdit(Sender).EditingText); if ( TryStrToFloat(mvalue,FReal) ) then begin if Trim(canshu1)='英寸' then mvalue:=mvalue+'"' else mvalue:=mvalue+'CM'; end; TEdit(Sender).Text:=mvalue; end; procedure TfrmCPAdd.CYKZExit(Sender: TObject); var mvalue:string; FReal:Double; begin mvalue:=Trim(TcxTextEdit(Sender).EditingText); if ( TryStrToFloat(mvalue,FReal) ) then begin mvalue:=mvalue+'GSM'; end; TEdit(Sender).Text:=mvalue; end; procedure TfrmCPAdd.CYNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYName.SetFocus; end; end; procedure TfrmCPAdd.CYNameKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYEName.SetFocus; end; end; procedure TfrmCPAdd.CYENameKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYSpec.SetFocus; end; end; procedure TfrmCPAdd.CYSpecKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYECF.SetFocus; end; end; procedure TfrmCPAdd.CYCFKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYECF.SetFocus; end; end; procedure TfrmCPAdd.CYECFKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYColorEng.SetFocus; end; end; procedure TfrmCPAdd.CYKZKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYMF.SetFocus; end; end; procedure TfrmCPAdd.CYMFKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin DefStr2.SetFocus; end; end; procedure TfrmCPAdd.DefStr2KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYHX.SetFocus; end; end; procedure TfrmCPAdd.CYHXKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin DefStr3.SetFocus; end; end; procedure TfrmCPAdd.CYColorKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin DefStr4.SetFocus; end; end; procedure TfrmCPAdd.price1KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYNote.SetFocus; end; end; procedure TfrmCPAdd.CYColorEngKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYKZ.SetFocus; end; end; procedure TfrmCPAdd.DefStr4KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin CYNote.SetFocus; end; end; end.