Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
1
MS Access

Заполнение шапки таблицы

24.07.2017, 15:05. Просмотров 729. Ответов 16
Метки нет (Все метки)

Если заполняю названия полей шапки из таблицы из массива в цикле, то потом, при обновлении данных шапка теряется, а при заполнении шапки из файла - названия полей остаются.
Почему так? Как сделать, чтобы при заполнении шапки из массива после обновления шапка не обнулялась?
Обновляю данные так:
qry2.Close;
qry2.Open;
Если читаю шапку таблицы из файла: dbgrd1.Columns.LoadFromFile(pathp+'\columns.1');
То при qry2.Close этой таблицы шапка остаётся заполненной.
А когда шапку заполняю через массив:
Delphi
1
2
3
4
  for i1:=1 to nstb do
  begin
    dbgrd1.Columns[i1].Title.caption:=shaps[i1];
  end;
то при qry2.Close шапка таблицы полностью исчезает.
Как сделать, чтобы не исчезала?
(Работаю с Access mdb через ADO).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2017, 15:05
Ответы с готовыми решениями:

Рисование шапки для таблицы в компоненте QReport
В делфях есть встроенная компанента QReport. Как в этой компаненте можно нарисовать шапку для...

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

Заполнение таблицы
Здравствуйте я заполняю таблицу данными из бд через запрос Query7.SQL.Clear; ...

заполнение таблицы
Есть диапазон номеров билетов 000127-000210. Как внести в таблицу БД(Paradox) эти номера в таком...

16
4534 / 3753 / 1259
Регистрация: 14.04.2014
Сообщений: 17,436
Записей в блоге: 17
25.07.2017, 08:52 2
вообще колонки относятся к полям датасета
если вы настроили грид на один датасет, а потом подсунули другой, с другими полями, колонки пересоздадутся
зачем вы в один и тот же грид пихаете разные датасеты?
сделайте для каждого свой, и настройте его колонки в редакторе колонок
1
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
25.07.2017, 16:12  [ТС] 3
Спасибо!

Добавлено через 3 часа 50 минут
Разобрался.
Если dbgrd1.Columns.State=csCustomized, то после qry.Close шапка не исчезнет,
а если dbgrd1.Columns.State=csDefault, то исчезнет.
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 06:46 4
а если не использовать DBGrid и самому вывести все что нужно?

когда сам выполняешь запрос, получаешь данные, обрабатываешь и выводишь то становится легко на душе
а с DBGrid не легко
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 10:27  [ТС] 5
Цитата Сообщение от qwertehok Посмотреть сообщение
а если не использовать DBGrid и самому вывести все что нужно?
Я так и делал сначала. Все свойства полей задавал не в DBGrid, а в SQL-выборке.
Из-за этого, мне приходилось заново перезадавать все эти свойства после каждой сортировки и после каждого фильтра.
А если работать через DBGrid, то этого делать не нужно.
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 10:41 6
какие такие свойства полей?
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 10:43  [ТС] 7
Цитата Сообщение от qwertehok Посмотреть сообщение
какие такие свойства полей?
Ну, вернее, столбцов: ширина, отображаемое название.
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 10:48 8
с шириной согласен, но когда в цикле выводишь в грид, то можно смотреть размер и найти максимальный
название колонки есть в Query, но так как оно в большинстве своем не для пользователя. то перед выводом нужно заголовки проставить свои
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 10:52  [ТС] 9
У меня после каждой выборки слетали название колонок и ширина.
Устанавливать всё это заново после каждой сортировки - не эффективно.
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 11:05 10
в Stringgrid?
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 11:18  [ТС] 11
Цитата Сообщение от qwertehok Посмотреть сообщение
в Stringgrid?
Нет.
Сначала было так, после каждого открытия sql-запроса:
Delphi
1
2
3
    qry2.FieldByName('tovar').DisplayLabel:='Товар / Услуга';
    qry2.FieldByName('tovar').DisplayWidth:=90;
    qry2.FieldByName('itog').DisplayLabel:='Сумма';
потом сделал так:
Delphi
1
2
      dbgrd1.Columns[1].Title.Caption:=...;
      dbgrd1.Columns[2].Title.Caption:=...;
но только один раз, а не после каждой выборки.
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 11:22 12
я тебе с 4го сообщения пишу что не надо использовать DBGrid
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 11:34  [ТС] 13
Цитата Сообщение от qwertehok Посмотреть сообщение
не надо использовать DBGrid
Я подумал, что не нужно управлять свойствами столбцов через DBGrid.
А что ещё можно использовать с базами для вывода таблиц?
StringGrid - это был бы каменный век, сторонние компоненты я не люблю.
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 11:35 14
обычный Stringgrid
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 11:42  [ТС] 15
Цитата Сообщение от qwertehok Посмотреть сообщение
обычный Stringgrid
Так там передать данные из sql сложнее?
В DBGrid я привязал один раз таблицу к sql в начале программы и всё.
А в Stringgrid разве также?
И какие после этого преимущества?
0
3479 / 2970 / 799
Регистрация: 29.08.2013
Сообщений: 19,885
Записей в блоге: 1
29.07.2017, 11:52 16
Цитата Сообщение от pivogol Посмотреть сообщение
И какие после этого преимущества?
для тебя - не стираются шапки
0
21 / 21 / 8
Регистрация: 07.01.2009
Сообщений: 556
29.07.2017, 13:20  [ТС] 17
Цитата Сообщение от qwertehok Посмотреть сообщение
для тебя - не стираются шапки
Если установить dbgrd1.Columns.State=csCustomized, то шапка не сотрётся.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2017, 13:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Заполнение таблицы в цикле
Здравствуйте! У меня есть мемтаблица из 10 столбцов. Первый столбец заполняется запросом к бд в...

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

Не сохраняется заполнение таблицы
Запускаю программу, заполняю DBGrid. После закрытия Delphi, то что я заполнила не сохраняется. Мне...

Заполнение таблицы из edit и dbgrid
Добрый день, подскажите как реализовать следующее: на форме есть едит, в который записывается ФИО...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.