Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавление столбцов к гриду в On-Line [D6, IB6.x]


me2 ©   (2003-01-29 12:33:00) 

Есть грид. Я хочу в On-Linе добавить к нему поля, а затем привязать к ним поля SQL-запроса. Делаю так:
for i := 1 to MaterialFieldCount do
grdDetails.Columns.Add;

DM.MainDM.qryGoods.Close;
DM.MainDM.qryGoods.Params[0].AsString := Node.Text;
DM.MainDM.DataSource.DataSet := DM.MainDM.qryGoods;
DM.MainDM.qryGoods.Open;

grdDetails.Columns[0].FieldName := grdDetails.DataSource.DataSet["Good_Name"];
grdDetails.Columns[1].FieldName := grdDetails.DataSource.DataSet["Serial_Num"];
grdDetails.Columns[2].FieldName := grdDetails.DataSource.DataSet["Quantity"];
grdDetails.Columns[3].FieldName := grdDetails.DataSource.DataSet["Count_Descr"];
grdDetails.Columns[4].FieldName := grdDetails.DataSource.DataSet["Price"];
grdDetails.Columns[5].FieldName := grdDetails.DataSource.DataSet["Firm_Name"];


Но в результате данные отображаются в заголовке полей таблицы. Подскажите, как мне правильно поступить?


me2   (2003-01-29 16:26:00) [1]

2 MsGuns © (29.01.03 13:17)
Я именно так уже сделал. Спасибо.


MsGuns   (2003-01-29 13:17:00) [2]

Screen.Cursor := crHourGlass;
- Выполнение запроса

- У датасета выставить нужные св-ва всем филдам (в частности, DisplayLabel и DisplayFormat для сумм, дробных чисел и т.д.

- Grid1.DataSource.DataSet := nil;
- Grid1.RebuildColumns; // Чистит все колонки
- Grid1.DataSource.DataSet := Query1;
- Grid1.RebuildColumns; // Создает все колонки
- прятанье в гриде не нужных колонок (Visible := false)
- присвоение нужных свойств заголовкам (цвет,шрифт)
- присвоение нужных значений ширины колонкам
Screen.Cursor := crDefault;

и делов-то куча;))


me2   (2003-01-29 13:16:00) [3]

У меня в зависимости от опций срабатывают разные запросы, отображая результат в один и тот же грид.
В принципе я уже сделал то, что хотел при помощи Visible, так что хочу получить ответ только ради интереса. Если у кого-то есть время, то можете ответить. Спасибо.


Соловьев   (2003-01-29 12:58:00) [4]

2 me2
У тебя запрос всегда разное кол-во полей возвращает?


me2   (2003-01-29 12:56:00) [5]

2 Delirium^.Tremens © (29.01.03 12:53)
:-)))


stone   (2003-01-29 12:53:00) [6]


> Во-первых, он автоматически показывает все столбцы DataSet-а,
> а для отображения они мне все не нужны;

Не все, а только те у которых Visible=true

> во-вторых, мне нужно настраивать ширину столбца, его заголовок
> и т.д.

У TField этих свойств пока никто не отменял


Delirium^.Tremens   (2003-01-29 12:53:00) [7]

Ты, наверно, забыл выйти в On-line, вот и не получается :-)


me2   (2003-01-29 12:50:00) [8]

Можно, конечно, отобразить все столбцы, затем удалить не нужные и выставить нужную ширину и заголовок, но хочеться пойти другим путем.


me2   (2003-01-29 12:46:00) [9]

Во-первых, он автоматически показывает все столбцы DataSet-а, а для отображения они мне все не нужны; во-вторых, мне нужно настраивать ширину столбца, его заголовок и т.д.


stone   (2003-01-29 12:36:00) [10]

В гриде вообще не устанавливай никаких столбцов. Он автоматически покажет все поля твоего датасета.


Наверх

Титульная страница Поиск, карта сайта Написать письмо