📄 baseinfo_m.pas
字号:
unit BaseInfo_M;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base_DLL, StdCtrls, Mask, wwdbedit, ExtCtrls, DB, DBClient,
ComCtrls, wwcheckbox, Wwdotdot, wwdblook, Wwdbcomb, DBCtrls,
DBCtrlsEh;
type
TfrmBaseInfo_M = class(TfrmBase_DLL)
Panel1: TPanel;
Bevel1: TBevel;
btnExit: TButton;
btnSave: TButton;
btnsaveadd: TButton;
pnedit: TPanel;
Label1: TLabel;
Label2: TLabel;
DBEDITcode: TwwDBEdit;
wwDBEdit1: TwwDBEdit;
procedure btnExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnsaveaddClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
isEdit:boolean;
function GetDataSet:Tdataset;
function ISunique:Boolean;
protected
Maintable:String;
MasterField:String;
ParentForm:TForm;
{ Private declarations }
public
property DataSet:Tdataset Read GetDataSet;
{ Public declarations }
end;
var
frmBaseInfo_M: TfrmBaseInfo_M;
implementation
uses DataProcess, Global;
{$R *.dfm}
procedure TfrmBaseInfo_M.btnExitClick(Sender: TObject);
begin
inherited;
if Dataset.State in [dsInsert,dsEdit] then
Dataset.Cancel;
close;
end;
procedure TfrmBaseInfo_M.FormShow(Sender: TObject);
var
I:integer;
ParentC:Tcomponent;
TMPCDS:TclientDataset;
begin
inherited;
ParentC:=ParentForm.FindComponent('DSbaseinfo');
try
TMPCDS:=Tclientdataset.Create(nil);
TMPCDS.FetchOnDemand:=False;
GetsqlData(TMPCDS,'TTablefield','fid','ftableName='+vartosql(Maintable),20);
if TMPCDS.RecordCount > 0 then
begin
TMPCDS.First;
while not TMPCDS.Eof do
begin
for i:=0 to pnEdit.ControlCount - 1 do
begin
if (pnedit.Controls[i] is TwwDBEdit) then
begin
if Trim(UpperCase((pnedit.Controls[i] as TwwDBEdit).Hint))=Trim(UpperCase(TMPCDS.fieldbyname('fname').AsString)) then
begin
(pnEdit.Controls[i] as TwwDBEdit).DataSource:=Tdatasource(ParentC);
(pnedit.Controls[i] as TwwDBEdit).DataField:=Trim(TMPCDS.fieldbyname('fname').AsString);
(pnedit.Controls[i] as TwwDBEdit).MaxLength:=TMPCDS.fieldbyname('flength').AsInteger;
end;
end;
if (pnedit.Controls[i] is TwwDBComboBox) then
begin
if Trim(UpperCase((pnedit.Controls[i] as TwwDBComboBox).Hint))=Trim(UpperCase(TMPCDS.fieldbyname('fname').AsString)) then
begin
(pnEdit.Controls[i] as TwwDBComboBox).DataSource:=Tdatasource(ParentC);
(pnedit.Controls[i] as TwwDBComboBox).DataField:=Trim(TMPCDS.fieldbyname('fname').AsString);
(pnedit.Controls[i] as TwwDBComboBox).MaxLength:=TMPCDS.fieldbyname('flength').AsInteger;
end;
end;
if (pnedit.Controls[i] is TwwCheckBox) then
begin
if Trim(UpperCase((pnedit.Controls[i] as TwwCheckBox).Hint))=Trim(UpperCase(TMPCDS.fieldbyname('fname').AsString)) then
begin
(pnEdit.Controls[i] as TwwCheckBox).DataSource:=Tdatasource(ParentC);
(pnedit.Controls[i] as TwwCheckBox).DataField:=Trim(TMPCDS.fieldbyname('fname').AsString);
end;
end;
if (pnedit.Controls[i] is TwwDBLookupCombo) then
begin
if Trim(UpperCase((pnedit.Controls[i] as TwwDBLookupCombo).Hint))=Trim(UpperCase(TMPCDS.fieldbyname('fname').AsString)) then
begin
(pnEdit.Controls[i] as TwwDBLookupCombo).DataSource:=Tdatasource(ParentC);
(pnedit.Controls[i] as TwwDBLookupCombo).DataField:=Trim(TMPCDS.fieldbyname('fname').AsString);
(pnedit.Controls[i] as TwwDBLookupCombo).MaxLength:=TMPCDS.fieldbyname('flength').AsInteger;
end;
end;
if (pnedit.Controls[i] is TDBMemo) then
begin
if Trim(UpperCase((pnedit.Controls[i] as TDBmemo).Hint))=Trim(UpperCase(TMPCDS.fieldbyname('fname').AsString)) then
begin
(pnEdit.Controls[i] as TdBMemo).DataSource:=Tdatasource(ParentC);
(pnedit.Controls[i] as TDBMemo).DataField:=Trim(TMPCDS.fieldbyname('fname').AsString);
(pnedit.Controls[i] as TDBmemo).MaxLength:=TMPCDS.fieldbyname('flength').AsInteger;
(pnedit.Controls[i] as TDBmemo).ScrollBars:=ssVertical;
end;
end;
if (pnedit.Controls[i] is TDBDateTimeEditEh) then
begin
if Trim(UpperCase((pnedit.Controls[i] as TDBDateTimeEditEh).Hint))=Trim(UpperCase(TMPCDS.fieldbyname('fname').AsString)) then
begin
(pnEdit.Controls[i] as TDBDateTimeEditEh).DataSource:=Tdatasource(ParentC);
(pnedit.Controls[i] as TDBDateTimeEditEh).DataField:=Trim(TMPCDS.fieldbyname('fname').AsString);
end;
end;
end;
TMPCDS.Next;
end;
end;
finally
TMPCDS.Close;
TMPCDS.Free;
end;
if Dataset.State = dsEdit then
IsEdit:=True;
end;
function TfrmBaseInfo_M.GetDataSet: Tdataset;
begin
if DBEditCode.DataSource <> nil then
Result:=DBEditCode.DataSource.DataSet
Else
Result:=nil;
end;
function TfrmBaseInfo_M.ISunique: Boolean;
begin
if Dataset.State = dsInsert then
begin
If CISunique(Maintable,MasterField,DBEditCode.Text) then
Result:=True
else
Result:=False;
end
else
Result:=False;
end;
procedure TfrmBaseInfo_M.btnSaveClick(Sender: TObject);
begin
inherited;
if Trim(DBEDITCode.Text)='' then
begin
Messagedlg('代码不可以为空 ! ',mtError,[mbok],0);
Exit;
end;
if not isEdit then
begin
if isUnique then
begin
Messagedlg('重复编号 ! ',mtError,[mbok],0);
Exit;
end;
end;
Dataset.Post;
close;
end;
procedure TfrmBaseInfo_M.btnsaveaddClick(Sender: TObject);
begin
inherited;
if Trim(DBEDITCode.Text)='' then
begin
Messagedlg('代码不可以为空 ! ',mtError,[mbok],0);
Exit;
end;
if not isEdit then
begin
if isUnique then
begin
Messagedlg('编号重复 ! ',mtError,[mbok],0);
Exit;
end;
end;
Dataset.Post;
Dataset.Append;
Isedit:=False;
DBEDITCode.SetFocus;
end;
procedure TfrmBaseInfo_M.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
frmBaseinfo_m:=nil;
end;
procedure TfrmBaseInfo_M.FormCreate(Sender: TObject);
begin
inherited;
IsEdit:=False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -