⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ubaseinfo_e.pas

📁 这个程序软件很不错很不错的
💻 PAS
字号:
unit ubaseinfo_e;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Base, StdCtrls, wwcheckbox, Mask, wwdbedit,  DB, ADODB;

type
  TfrmBaseinfo_e = class(TfrmBase)
    GroupBox1: TGroupBox;
    editname: TwwDBEdit;
    Label2: TLabel;
    Label1: TLabel;
    editcode: TwwDBEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    wwCheckBox1: TwwCheckBox;
    iscopy: TwwCheckBox;
    editdesc: TwwDBEdit;
    Label3: TLabel;
    QIsUnique: TADOQuery;
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    function Getdataset: Tdataset;
    function GetISunique(pcode,pname:string): Boolean;
    { Private declarations }
  protected
    isaddedit:boolean;
    Maintable:string;
  public
    property Dataset:Tdataset Read Getdataset;
    { Public declarations }
  end;

var
  frmBaseinfo_e: TfrmBaseinfo_e;

implementation

uses Data, Global;

{$R *.dfm}

procedure TfrmBaseinfo_e.Button2Click(Sender: TObject);
begin
  inherited;
  if dataset.State in [dsEdit,dsInsert] then
    Dataset.Cancel; 
  close;
end;

procedure TfrmBaseinfo_e.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  frmBaseinfo_e:=nil;
end;

function TfrmBaseinfo_e.Getdataset: Tdataset;
begin
  if editcode.DataSource <> nil then
    Result:=Editcode.dataSource.DataSet
    else
    Result:=nil;
end;

procedure TfrmBaseinfo_e.Button1Click(Sender: TObject);
begin
  inherited;
  if Trim(editname.Text)='' then
    begin
      Messagedlg('名称不能为空 ! ',mtError,[mbok],0);
      Exit;
    end;

  if not isAddedit then
    begin
      if GetisUnique(editcode.Text,editname.Text) then
        begin
          Messagedlg('名称与说明对应的有重复记录 ! ',mtError,[mbok],0);
          Exit;
        end;
    end;
    
  Dataset.Post;
  close;
end;

procedure TfrmBaseinfo_e.Button3Click(Sender: TObject);
var
  s1,S2:String;
  cmdStr:String;
  Qexec:Tadoquery;
  i:integer;
begin
  inherited;
  if Trim(editname.Text)='' then
    begin
      Messagedlg('名称不能为空 ! ',mtError,[mbok],0);
      Exit;
    end;

  if not isAddedit then
    begin
      if GetisUnique(editcode.Text,editname.Text) then
        begin
          Messagedlg('名称与说明对应的有重复记录 ! ',mtError,[mbok],0);
          Exit;
        end;
    end;
    
  if dataset.State in [dsinsert,dsedit] then
     Dataset.Post;

  if iscopy.Checked then
    begin
     isaddEdit:=False;
     Dataset.Last;
     s1:='';
     s2:='';
      for i:=2 to Dataset.FieldCount do     //Because Field Fid Can not insert
        begin
          if s1='' then
            begin
              s1:=Trim(Dataset.Fields[i-1].FieldName);
              s2:=VartoSql(Dataset.Fields[i-1].Value);
            end
            else
            begin
              s1:=s1+','+Trim(Dataset.Fields[i-1].FieldName);
              s2:=s2+','+VartoSql(Dataset.Fields[i-1].Value);
            end;
        end;
        if s1<>'' then
          cmdStr:='Insert into '+Maintable+'('+s1+') Values('+s2+')';
        try
          Qexec:=Tadoquery.Create(nil);
          Qexec.Connection:=datam.AdoConnection;
          with Qexec do
            begin
              close;
              sql.Clear;
              sql.Add(cmdStr);
              ExecSQL;
            end;
        finally
          Qexec.Free;
        end;
    Dataset.Edit;
    end
    else
      begin
         Dataset.Append;
      end;
end;

function TfrmBaseinfo_e.GetISunique(pcode, pname: string): Boolean;
begin
  Result:=False;
  with Qisunique do
    Begin
      close;
      sql.Clear;
      sql.Add('Select fcode,fname from '+MainTable+' where fcode='+vartosql(pcode)+' and fname='+vartosql(pname));
      open;
    end;
  if Qisunique.RecordCount > 0 then
    Result:=True;
end;

procedure TfrmBaseinfo_e.FormCreate(Sender: TObject);
begin
  inherited;
  isaddedit:=false;
  if Dataset.State = dsEdit then
    Isaddedit:=True;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -