![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Fields
Ormada © (2003-11-21 14:16:00)
Как сделать в run time "добавить все поля" (Ctrl+A) в Query
Это делается только для того чтобы колонки создаваемые в run time DBGrid имели привязку к полям, или возможно сделать это как нить проще ?
riland (2003-11-22 20:25:00) [1]
Вот процедурка, которая добавляет в пустой dataset новые поля:
procedure TdmDisel.Modif_Table(var mDataSet:TTable; sName_table : string);
begin
if taModif_fieldTYPE_FIELD.AsString = "Строковый" then
begin
with TStringField.Create(mDataSet) do
begin
FieldName := taModif_fieldNAME_FIELD.AsString;
DataSet := mDataSet;
Name := mDataSet.Name + taModif_fieldNAME_FIELD.AsString;
DisplayLabel:=taModif_fieldDISPLAY_LABEL.AsString;
mDataSet.FieldDefs.Add(name, ftString, taModif_fieldSIZE_FIELD.AsInteger, false);
end;
end;
if taModif_fieldTYPE_FIELD.AsString = "Числовой (целый)" then
begin
with TIntegerField.Create(mDataSet) do
begin
FieldName := taModif_fieldNAME_FIELD.AsString;
DataSet := mDataSet;
Name := mDataSet.Name + taModif_fieldNAME_FIELD.AsString;
DisplayLabel:=taModif_fieldDISPLAY_LABEL.AsString;
mDataSet.FieldDefs.Add(name, ftInteger, 0, false);
end;
end;
if taModif_fieldTYPE_FIELD.AsString = "Числовой (дробный)" then
begin
with TFloatField.Create(mDataSet) do
begin
FieldName := taModif_fieldNAME_FIELD.AsString;
DataSet := mDataSet;
Name := mDataSet.Name + taModif_fieldNAME_FIELD.AsString;
DisplayLabel:=taModif_fieldDISPLAY_LABEL.AsString;
mDataSet.FieldDefs.Add(name, ftFloat, 0, false);
end;
end;
if taModif_fieldTYPE_FIELD.AsString = "Дата" then
begin
with TDateField.Create(mDataSet) do
begin
FieldName := taModif_fieldNAME_FIELD.AsString;
DataSet := mDataSet;
Name := mDataSet.Name + taModif_fieldNAME_FIELD.AsString;
DisplayLabel:=taModif_fieldDISPLAY_LABEL.AsString;
mDataSet.FieldDefs.Add(name, ftDate, 0, false);
end;
end;
end;
Для Tquery выглядит так
if taModif_fieldTYPE_FIELD.AsString = "Дата" then
begin
with TDateField.Create(mDataSet) do
begin
FieldName := taModif_fieldNAME_FIELD.AsString;
DataSet := mDataSet;
Name := mDataSet.Name + taModif_fieldNAME_FIELD.AsString;
DisplayLabel:=taModif_fieldDISPLAY_LABEL.AsString;
Origin:="""+sName_table+".db"."+taModif_fieldNAME_FIELD.AsString;
mDataSet.FieldDefs.Add(name, ftDate, 0, false);
end;
end;
Пояснений не даю, надеюсь все понятно
ЮЮ (2003-11-22 08:07:00) [2]
>вот для этого мне и надо дёрнуть поля чтоб потом правильно поделить их на группы
После открытия запроса они сами "надергаются"
Карелин Артем (2003-11-21 15:29:00) [3]
ORMADA © (21.11.03 14:54) [2]
???? Что-то не вкуриваю связи между MultiTitle и запросом???? Видимо пятница.
Если надо связать столбец TDBGridEh c полем из набора данных есть св-во FieldName у столбца. Если надо в ран-тайме менять заголовок столбца, есть св-во Title.Caption у столбца...
ORMADA (2003-11-21 14:54:00) [4]
блин так это понятно! вопрос то не в этом. мне надо их добавить так я потом буду ручками создавать DBGrid столбцы в Ehlib а так как известно есть понятие MultiTitle т.е. если пишеш в названиии столбца1 123|qqq столбца2 123|www то получается шапка одну у обоих, вот для этого мне и надо дёрнуть поля чтоб потом правильно поделить их на группы.
Anatoly Podgoretsky (2003-11-21 14:21:00) [5]
Не делай "добавить все поля" и все будет автоматом.