unit U_CPAddPN; 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, BtnEdit, U_BaseList, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges; type TfrmCPAddPN = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryTemp: TADOQuery; ScrollBox1: TScrollBox; Label1: TLabel; Label5: TLabel; Label11: TLabel; Label15: TLabel; Label22: TLabel; Label14: TLabel; Label16: TLabel; Label19: TLabel; CYNo: TEdit; CYName: TEdit; CYSpec: TEdit; PBLength: TEdit; CYPUnit: TEdit; ToolButton2: TToolButton; Label2: TLabel; KaiPiaoName: TEdit; CYMF: TBtnEditC; CYKZ: TBtnEditC; CYCF: TBtnEditC; Label3: TLabel; LaiYuan: TBtnEditC; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CYColorKeyPress(Sender: TObject; var Key: Char); procedure CYKZExit(Sender: TObject); procedure CYMFExit(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CYNoKeyPress(Sender: TObject; var Key: Char); procedure CYMFBtnDnClick(Sender: TObject); procedure CYKZBtnDnClick(Sender: TObject); procedure CYMFBtnUpClick(Sender: TObject); private canshu1: string; Fint: Integer; procedure InitSubGrid(); function SaveData(): Boolean; { Private declarations } public FCYID, FCYCode, FCPID, FCPNO, FCYNO, FCPName, FCYPUnit: string; CopyInt: Integer; { Public declarations } end; var frmCPAddPN: TfrmCPAddPN; implementation uses U_DataLink, U_RTFun, U_iniParam, U_ZDYHelp, U_ZdyAttachGYS, U_FileUp, U_CPManageFMSel; {$R *.dfm} procedure TfrmCPAddPN.InitSubGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add('select * from CP_YDang where CYID=''' + Trim(FCYID) + ''''); Open; end; SCSHData(ADOQueryMain, ScrollBox1, 2); SCSHData(ADOQueryMain, ScrollBox1, 0); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCPAddPN.FormShow(Sender: TObject); begin InitSubGrid(); if CopyInt = 1 then begin FCYID := ''; // CYID.text := ''; // LaYangDate.DateTime := SGetServerDateTime(ADOQueryTemp); CYNo.text := ''; end; if CYNo.text = '' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' exec P_YP_Get_CPBH '); sql.Add('@CPID=' + quotedstr(Trim(FCPID))); Open; end; // CYNo.text := Trim(Self.ADOQueryTemp.fieldbyname('NewCYNo').AsString); end; if FCPName = '针织' then begin CYPUnit.text := 'KG'; end; if FCPName = '梭织' then begin CYPUnit.text := 'M'; end; if trim(CYNo.Text) = '' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' exec P_YP_Get_No @Str=''PB'' '); Open; end; CYNo.Text := trim(ADOQueryTemp.FieldByName('NewCyno').asstring); end; end; procedure TfrmCPAddPN.TBCloseClick(Sender: TObject); begin Close; end; function TfrmCPAddPN.SaveData(): Boolean; var maxId, FCYNo, maxno: string; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FCYID) = '' then begin if GetLSNo(ADOQueryCmd, maxId, 'Y', 'CP_YDang', 4, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; // if trim(CYNo.Text) = '自动生成' then // begin // if GetLSNo(ADOQueryCmd, fCYNo, 'PB', 'SalesContract_Main', 4, 0) = False then // begin // ADOQueryCmd.Connection.RollbackTrans; // Application.MessageBox('取坯布编号失败!', '提示', 0); // Exit; // end; // CYNo.Text := fCYNo; // end; // CYID.Text := trim(maxId); 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('FILLER').Value := Trim(DName); FieldByName('FILLTIME').Value := SGetServerDateTime(ADOQueryTemp); end else begin Edit; FieldByName('EDITER').Value := Trim(DName); FieldByName('EDITTIME').Value := SGetServerDateTime(ADOQueryTemp); end; FieldByName('CYID').Value := Trim(maxId); if trim(CYNo.Text) = '' then CYNo.Text := Trim(maxId); RTSetsavedata(ADOQueryCmd, 'CP_YDang', ScrollBox1, 2); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select count(*) 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 := maxId; Result := True; except Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end; end; procedure TfrmCPAddPN.ToolButton1Click(Sender: TObject); begin if CYName.Text = '' then begin Application.MessageBox('产品名称不能为空!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmCPAddPN.CYColorKeyPress(Sender: TObject; var Key: Char); var c: Integer; begin if Key = '.' then begin for c := 1 to length(TEdit(Sender).text) do begin if Tedit(Sender).text[c] = '.' then Key := #0; end; end else if Key = #13 then PerForm(WM_NEXTDLGCTL, 0, 0) else if Key = #8 then Key := #8 else if (Key < '0') or (Key > '9') then Key := #0; end; procedure TfrmCPAddPN.CYKZBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmCPAddPN.CYKZExit(Sender: TObject); begin // if pos('G/M2', trim(CYKZ.Text)) = 0 then // begin // if pos('G/M', trim(CYKZ.Text)) = 0 then // begin // CYKZ.Text := trim(CYKZ.Text) + 'G/M2'; // end; // end; end; procedure TfrmCPAddPN.CYMFBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmCPAddPN.CYMFBtnUpClick(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 TfrmCPAddPN.CYMFExit(Sender: TObject); begin // if pos('"', trim(CYMF.Text)) = 0 then // begin // if pos('CM', trim(CYMF.Text)) = 0 then // CYMF.Text := trim(CYMF.Text) + 'CM'; // end; end; procedure TfrmCPAddPN.CYNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure TfrmCPAddPN.FormCreate(Sender: TObject); begin // LaYangDate.DateTime := SGetServerDateTime(ADOQueryTemp); end; procedure TfrmCPAddPN.ToolButton2Click(Sender: TObject); begin if pos('CM', trim(CYMF.Text)) > 0 then begin CYMF.Text := StringReplace(trim(CYMF.Text), 'CM', '"', []); end else begin CYMF.Text := StringReplace(trim(CYMF.Text), '"', 'CM', []); end; end; end.