![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать таблицу временно? [D7, XP]
deras © (2008-05-23 00:05:00)БД FB2.0
Необходимо создать таблицу в процессе работы программы, а потом (скажем, после закрытия программы), удалить эту таблицу?
MsGuns (2008-05-23 01:06:00) [21]Да, важно.
Сразу после показа фантома не забыть передать ему фокус !
И еще одни "грабли".
Когда комбобокс виден, а Вы скруллингуете грид, то получите очень некрасивый, все портящий эффект. Чтобы его избежать, есть 2 способа, простой и не очень.
Простой заключается в том, что Вы запрещаете скролы вообще. Но это скорее всего не получится.
Не очень заключается в том, что Вам необходимо отловить само событие начала скроллинга и спрятать комбобокс.
deras (2008-05-23 01:03:00) [22]
> MsGuns © (23.05.08 00:59) [11]
Ого! Я и не думал, что так непросто. Сам бы не догадался :-)
Т.е., комбобокс один, заполненый данными из справочника, просто он вписывается в ячейку, которая в фокусе? Я правильно понял?
MsGuns (2008-05-23 00:59:00) [23]С помощью фантом-комбобокса, который делается визибельным при получения фокуса соотв. ячейкой, и предварительно вписанным точно в ректангель ячейки. По выходу из комобокса (или по селекту), выбранное из него значение (если селект) записывается в эту ячейку, а сам комбобокс прячется.
В комбобокс, ессно, предвапительно помещается "справочник"
Перед показом комбобокса можно выставить в нем то значение, которое имеется в текущей ячейке, с помощью IndexOf
deras (2008-05-23 00:54:00) [24]
> MsGuns © (23.05.08 00:54) [9]
Благодарю!
MsGuns (2008-05-23 00:54:00) [25]Да.
deras (2008-05-23 00:49:00) [26]
> Если эти данные нужны только на время одного сеанса, то
> таблиц никаких не надо - достаточно все держать в памяти,
> а отображать, к примеру, через стрингрид.
Точно! Так совершенно подойдет. Только вопрос: некоторые поля этой "временных данных" должны содержать дропдаун с данными из таблицы-справочника. Такое можно реализовать? Достаточно будет ответа "да" или "нет". Спасибо
MsGuns (2008-05-23 00:44:00) [27]>Loginov Dmitry © (23.05.08 00:40) [3]
>И в чем проблема? Используй TIBSQL и конструкцию CREATE TABLE для создания и DROP TABLE для удаления.
Проблемы, действительно, нет. Есть проблемище ;)))
MsGuns (2008-05-23 00:43:00) [28]>Loginov Dmitry © (23.05.08 00:40) [3]
ИМХО, совершенно лишнее - см. [5]
MsGuns (2008-05-23 00:42:00) [29]Если эти данные нужны только на время одного сеанса, то таблиц никаких не надо - достаточно все держать в памяти, а отображать, к примеру, через стрингрид.
Если эти "временные" данные нужно сохранять (например, из-за большого объема и невозможности подготовить их "в один присест"), то вполне подойдет TClientDataSet или даже простой текстовый файл.
Есть вариант сохранения их в самом Экселе (например, на "непечатном" листе, который удаляется после выгрузки результатов в эксель во избежании случайного вывода на печать вместе с основными данными)
deras (2008-05-23 00:42:00) [30]
> Еще есть "временные" таблицы.
если можно. об этом подробней :-) "Временные" - это какие?
Loginov Dmitry (2008-05-23 00:40:00) [31]> Необходимо создать таблицу в процессе работы программы,
> а потом (скажем, после закрытия программы), удалить эту
> таблицу?
И в чем проблема? Используй TIBSQL и конструкцию CREATE TABLE для создания и DROP TABLE для удаления.
Еще есть "временные" таблицы.
deras (2008-05-23 00:38:00) [32]это типа подготовочная таблица для отчета В нее (таблицу) пользователь вносить данные (в т.ч. из справочников) перед формированием отчета (отчет форм. в Excel - желание пользователя). После создания отчета, эта таблица не нужна.
MsGuns (2008-05-23 00:18:00) [33]Зачем ?