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

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

Если спрятать колонку в DBGrid, то она исчезнет из отчета... [D5]


iat ©   (2004-10-19 18:54:00) 

Создаю динамический отчет на основании информации DBGrid'a.
При создании использую свойство TColumn, т.е. Column.Title.Caption для заголовка и Column.FieldName для данных.
Все печатается нормально, но если одной из колонок задать Visible := false, то из отчета она пропадет, хотя и добавляется при создании.

Мне надо, что бы в отчете были и те колонки, которые не показаны (хотя и существуют) в DBGrid.

Как можно решить проблемку.


Vlad   (2004-10-21 20:03:00) [1]


> Тогда встречный вопрос: как преобразовать ширину в символах
> в ширину в пикселях.

см. ф-цию GetTextMetrics


iat   (2004-10-21 19:12:00) [2]

я понял. тут какой прикол получается. при содздании динамического отчета также неоходимо задавать ширину поля (width). вот я ее и брал из ширины столбца. А когда столбец не видим его ширина становится равной -1 !!!. Следовательно, в отчете тоже самое.
Вы скажете: "так что тебе мешает брать ширину из полей датасета?". Дело в том, то ширина в датасете (DisplayWidth) идет не в пикселях, а в символах (Specifies the number of characters that should be used to display a field’s value by a cooperating data-aware control).

Тогда встречный вопрос: как преобразовать ширину в символах в ширину в пикселях.


-=SS=-   (2004-10-20 12:02:00) [3]

DBGrid1.Fields[1].Visible:=False
Попробуй это


sniknik   (2004-10-19 20:15:00) [4]

Ega23 ©   (19.10.04 19:17) [2]
а ты посмотри внимательнее, грид используется только для ссылки на датасет .. и если ограничение на колонках только у грида то рекордсет то вернет все поля (столбцы если смотреть в гриде, даже если они в нем не видны %о).


Ega23   (2004-10-19 19:17:00) [5]

Vir   (19.10.04 19:15) [1]

Вопрос не о наборе филдов в датасете, а о наборе столбцов в дбгриде.


Vir   (2004-10-19 19:15:00) [6]

for i:=0 to DBGrid.DataSource.DataSet.FieldCount-1
 f_name:=DBGrid.DataSource.DataSet.FieldList[i].FieldName;
 .......


Наверх

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