|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.06.2009, 21:06 | #1 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Размещение информации из таблиц "Справочников" на форме для добавления-редактирования
Здраствуйте.
Firebird 2.1, Delphi 2007, FIBPlus 6.9.6 Есть табличка в БД часть колонок в которой это внешние ключи из таблиц справочников, большинство этих справочников выглядит одинаково ID // ессно ид integer Name // название varchar Description // описание varchar в общем то цель у меня простая выбрать из справочников данные, используя как можно меньше места на форме, ну и ресурсов тоже поменьше. нужно отображать только имя, гдето хранить ид, и иметь возможность отобразить описание. Думал, думал, и вот чтото такое придумал для выбора Tcombobox, там же и ид храню, для описания Tstrings и отображаю как Hint на том же комбобоксе в общем это примерно так выглядит при создании формы Код:
ну а на онселект для комбобокса меняю хинт Код:
Повторюсь. Нужно отображать только имя, гдето хранить ид, и иметь возможность посмотреть описание. Подскажите пожалуйста, как подобное решают? Последний раз редактировалось vovk; 11.06.2009 в 21:11. |
12.06.2009, 15:13 | #2 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
Если я правильно понял из кода, то ты просто заполняешь данными из таблицы ComboBox.
Попробуй использовать DBLookupCombobox, заполни у него Свойства ListSource (DataSource из которого будут браться данные для заполнения выпадающего списка), ListField (поле таблицы из которого будут браться данные для заполнения выпадающего списка) и KeyField (ключевое поле таблицы ID). |
12.06.2009, 15:49 | #3 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Спасибо конечно, но это не совсем то что нужно, верне совсем не то что нужно.
Я тут ещё подумал и поставил кнопочки да этиты по клику на кнопки создаю форму. На форме 2 кнопки, DBgrid, Dbsource, pFibDataset при создании открываю нужную таблицу и а от туда беру уже запись, ID записываю в tag эдита Name в текст, ну а описание в Hint, хотя это не обязательно при выборе видно и так. Так мне показалось получше. (извените за невнятную речь ) |
12.06.2009, 17:47 | #4 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
а почему в переменных не хранишь?
Код:
|
12.06.2009, 18:28 | #5 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
А зачем переменные создавать, отображать выбранное всё равно гдето надо, а у любого визуального компонента есть tag который разработчики в общемто и оставили "на всяйкий случай".
Меня просто большое количество форм напрягает, тут же получается с первой открываем вторую с этой второй третью. Хотя выбирать сейчас намного лучше стало, к тому же чтото мне подсказывает что эту формочку ещё в нескольки местах использовать удобно будет. А большое количество переменных оно мне кажется не к лучшему, если без них обойтись можно ничего не теряя, читать потом сложнее, да и вообще. Я и кнопочки хочу в эдитах нарисовать Последний раз редактировалось vovk; 12.06.2009 в 18:39. |
13.06.2009, 14:56 | #6 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
vovk при загрузки формы подвисание не замечается?
|
13.06.2009, 15:02 | #7 |
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
нет ни капли, хотя тут ещё вопрос рассчитываю попробывать через инет, а пока в локалке какие там подвисания, в справочниках не так много записей.
Кстати транзакция для чтения у меня у всех одна и всегда активна, как думаете это правильно? Форма создаётся в процедуре, передаю туда как параметры процедуры имя таблицы и компонент который заполняю при закрытии (если запись выбрали конечно) Последний раз редактировалось vovk; 13.06.2009 в 15:06. |
15.06.2009, 21:11 | #8 | |
Новичок
Джуниор
Регистрация: 15.06.2009
Сообщений: 8
|
Tag
Tag - это ведь тоже по сути переменная (в объекте).
Просто свойство Tag использовать несколько неудобно. Некоторые сторонние разработчики могут использовать данное свойство для своих целей. Сейчас для Вас это не важно, но кто знает... Введите свой компонент и свойство любого типа. Насчет форм - отслеживайте их по Handly или просто по заголовку - и не создавай новую, а если есть, то BringToFront или Activate. Цитата:
|
|
15.06.2009, 21:21 | #9 | |
Новичок
Джуниор
Регистрация: 15.06.2009
Сообщений: 8
|
Транзакция в FIBPlus
Одна транзакция на чтение нужна в одном случае -
пользователи не понимают, что это такое, а самое главное, что вы как разработчик коммитете транзакцию при любом изменении данных (хотя как таковых их вроде и нет). Механизм транзакций (лекции...) расчитан на возможное предотвращение потери данных. Если все идет только на чтение, то естественно ничего страшного на локалке (Если электрика защищена - все равно при чтении можно повредить данные - вирусы, сбой портов, сбой сервера и т.д.). Для инета транзакции надо отдельно - данные можно повредить и при чтении (разный механизм взаимодействия между разными операционками и сетевыми протоколами) . Лучше для каждой открывающейся формы - отдельную транзакцию. Вдруг сбой памяти, указателя, сервера и т.д. в справочниках не так много записей - И все дело не в количестве записей, а в типе записей (текст, видео, картинка, текст BLOB и т.д.) и собственно какой сервер. Цитата:
Последний раз редактировалось sparta_2009; 15.06.2009 в 21:27. |
|
15.06.2009, 21:50 | #10 | ||
!=
Участник клуба
Регистрация: 08.09.2008
Сообщений: 1,751
|
Цитата:
А форма 1 подготовлена в дизайнере, но автоматом не создаётся, при выборе саздаю экземпляр после окончания работы сним free; Цитата:
А большое количество транзакций для чтения никак на загруженность сервера не повлияет? |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получение "скрытой" информации из bmp | Alex Cones | Мультимедиа в Delphi | 6 | 11.06.2009 11:07 |
Обновление набора данных после добавления в таблицу записей "внешней" программой | dimmm | БД в Delphi | 5 | 21.04.2009 00:56 |
Как сделать так,чтобы на форме отображалось свободное место диска "С"???? | Alexij | Общие вопросы Delphi | 4 | 11.07.2008 23:21 |
Как вырезать на форме область определенной формы ("что то вроде ножниц") | dimfil | Общие вопросы Delphi | 9 | 10.11.2007 08:51 |