📄 ubaseinfo_e.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 + -