|
Тема |
Ами на DataSet.Fields[i].DisplayLabel [re: Beden] |
|
Автор |
NikB (любопитен) |
|
Публикувано | 29.03.05 12:44 |
|
|
Но трябва да са създадени филдовете в дизайн или да ги създадеш в рънтайм от филдсдефс, защото ако оставиш на автоматичното създаване - всеки път като отвориш датасета трябва да установяваш дисплей лейбъла.
Ба си как обичам българския език!
Ако ти се четат сорсове, аз така си създавам полетата рънтайм:
{}function CreateField(aTable: tTable; const aFieldName: string; aFieldType: tFieldType; aFieldSize: integer = 0; aFieldRequired: Boolean = false): integer;
// Button2.Caption:=IntToStr(CreateField(Table, Edit1.Text, ftInteger, 0));
// -2: ïîëåòî âå÷å ñúùåñòâóâà, íî ÍÅ ñúâïàäàò aFieldName, aFieldSize èëè aFieldRequired
// -1: ïîëåòî âå÷å ñúùåñòâóâà è ñúâïàäàò aFieldName, aFieldSize è aFieldRequired
// 0: ïîëåòî å ñúçäàäåíî OK;
// 1: exception ïðè ñúçäàâàíå íà ïîëåòî
// $80: íÿêàêâà äðóãà ãðåøêà (Íàïð. aTable=nil)
var
xRecNo : integer;
xFieldDef : tFieldDef;
k : integer;
begin
Result:=2;
if aTable<>nil then begin
xRecNo := -1;
with aTable do begin
try
try
if Active then begin
xRecNo := RecNo;
Active := false;
end;{}
{ Exclusive:=true;
if not Exclusive then begin
raise EDatabaseError.Create('TTable.Exclusive must be set to true in order to add an index to the table');
end;
Open;{}
with FieldDefs do begin
Update;
k:=0; xFieldDef:=nil;
while (k<FieldDefs.Count) and (xFieldDef=nil) do begin
if FieldDefs[k].Name=aFieldName then begin
xFieldDef:=FieldDefs[k];
end else begin
inc(k);
end;
end;
if xFieldDef<>nil then begin
if (xFieldDef.DataType=aFieldType) and (xFieldDef.Size=aFieldSize) and (xFieldDef.Required=aFieldRequired) then begin
Result:=-1;
end else begin
Result:=-2;
end;
end else begin
with AddFieldDef do begin
Name := aFieldName;
DataType := aFieldType;
Required := aFieldRequired;
if aFieldType in ftFixedSizeTypes then begin
Size := 0;
end else begin
Size := aFieldSize;
end;
end;
Result:=0;
end;
end;
{
Close;
Exclusive:=true;
if not Exclusive then begin
raise EDatabaseError.Create('TTable.Exclusive must be set to true in order to add an index to the table');
end;{}
CreateTable;
except
Result:=1;
end;
finally
if xRecNo>=0 then begin
Active := true;
RecNo := xRecNo;
end;
end;
end;
end;
end;
|
| |
|
|
|