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, BtnEdit; type TfrmCPAdd = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryTemp: TADOQuery; Panel1: TPanel; CheckBox1: TCheckBox; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; CYNo: TEdit; CYSpec: TEdit; CYKZ: TEdit; CYHX: TEdit; KuWei: TEdit; CYName: TEdit; CYEName: TEdit; CYECF: TEdit; CYMF: TEdit; CYQF: TEdit; CYColor: TEdit; CYEColor: TEdit; Note: TEdit; CYCF: TBtnEditC; 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 CYCFBtnDnClick(Sender: TObject); procedure CYCFBtnUpClick(Sender: TObject); procedure CYNoKeyPress(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,U_CFAdd; {$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,FCYNO: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; if Trim(CYNo.text)='' then begin if GetLSNo(ADOQueryCmd,FCYNO,'','CP_YDang',5,0)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; CYNO.Text:=Trim(FCYNO); // end else // begin // FCYNO:=Trim(FCYNO); 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); FieldByName('CYCF').Value:=Trim(CYCF.Text); 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.CYCFBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text:=''; TBtnEditC(Sender).TxtCode:=''; CYECF.Text:=''; end; procedure TfrmCPAdd.CYCFBtnUpClick(Sender: TObject); var i:Integer; FieldName:String; begin if Trim(CYNo.Text)='' then begin Application.MessageBox('请先输入产品编号!','提示',0); Exit; end; frmCFAdd:=TfrmCFAdd.Create(Application); with frmCFAdd do begin FCYID:=''; FCPID:=Trim(CYNo.Text); Label1.Caption:=trim(CYNo.Text); if ShowModal=1 then begin with ADOQueryTemp do begin Close; SQL.Clear; sql.add('exec P_Get_CF :mainid') ; Parameters.ParamByName('mainid').Value:=CYNo.Text; Open; end; CYCF.Text:=ADOQueryTemp.fieldbyname('CF').AsString; CYECF.Text:=ADOQueryTemp.fieldbyname('ECF').AsString; end; end; end; procedure TfrmCPAdd.CYNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin with ADOQueryTemp do begin Close; SQL.Clear; sql.add('select * from CP_YDang where CYNO ='''+cyno.Text+'''') ; Open; end; if ADOQueryTemp.IsEmpty then begin end else begin Application.MessageBox('产品编号重复!','提示',0); Exit; end; end; end; end.