![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
DevExpress+FIBdataset - возникла дурацкая проблема - таблица TcxDBVerticalGrid к ней относится Dataset1, одно из полей KF указано как LookupComboBox там указан Dataset2 и необходимые поля key и lookup - всё работает отлично! Но нужно из Dataset2 взять два параметра в зависимости от выбранного в данном поле ключевого значения и передать их в Dataset1. Так вот проблема в том, что при попытке это сделать - данные то передаются, но значение поля KF в таблице - обнуляется. Пробовал передавать и из Dataset1 в Dataset2 напрямую через FN, FieldByName и из Dataset2 прямо в нужные TcxDBEditorRow - всё равно значение в поле KF сбрасывается и обнуляется... ![]() Напишите, пожалуйста, как правильно взять несколько значений из Dataset2, чтобы поле KF оставалось с выбранным значением? Последний раз редактировалось delphicoding, 03.09.2011 в 19:44. |
|
#2
|
|||
|
|||
|
Профи, никаких соображений?
|
|
#3
|
||||
|
||||
|
Кусочек кода, где вы берете эти значения приведите. Пока не очень понятно, с какого перепуга у вас что-то обнуляется.
|
|
#4
|
|||
|
|||
|
Поле LookupComboBox называется vg_NAME, обращается к qryStaffs с лдючевым полем ID и отображает поле NAME. Кусочек кода банален OnChange:
qryUsers.FN('LOGIN').value:=qryStaffs.FN('NAME').v alue; или qryUsers.FN('LOGIN').value:=vg_NAME.Properties.Val ue; После этого данные вроде передаются, но в поле LookupComboBox данные исчезают... если убрать этот код передачи значений - из данного поля LookupComboBox данные перестают исчезать, а нормально остаются. Дополнительный вопрос - как сделать, чтобы в выпадающем списке LookupComboBox строки были с автопереносом, то есть если текст не влезает в ширину поля, то не весь список расширяется, а конктреная строка становится высотой необходимой для того, чтобы весь текст влез? |
|
#5
|
|||
|
|||
|
Не хватало в свойствах таблички параметра ImmediatePost=True, с ним первая проблема решилась.
Вторая проблема не решилась пока - как сделать, чтобы в TcxGrid/TcxVerticalGrid в выпадающем списке LookupComboBox строки были с автопереносом, то есть если текст не влезает в ширину поля, то не весь список расширяется, а конктреная строка становится высотой необходимой для того, чтобы весь текст влез? Или даже лучше бы заранее указать высоту строки и строки выпадающего списка, но проблема в том, что после этого перестаёт работать автоперенос текста... ![]() |
|
#6
|
|||
|
|||
|
только OwnerDraw. Автоматически не получится.
|
|
#7
|
|||
|
|||
|
Напишите подробнее...
|
|
#8
|
|||
|
|||
|
2. так и не решён
3. Довольно простой вопрос, но пока не пашет как нужно - а нужно, чтобы при открытии формы с таблицей TcxGrid, вся таблица была ReadOnly, но можно было выделять строки, только по нажатию отдельной кнопки Редактировать - открывалась возможность редактировать таблицу (желательно только для выбранной строки). |
|
#9
|
||||
|
||||
|
3. Прежде всего, давать пользователю прямой доступ к таблице на запись - плохой тон. Что касается только чтения, то можно поступить двояко. Можно сами данные перевести в режим только чтения:
Код:
cxGridDBTableView.Datasource.Dataset.ReadOnly := True; Код:
cxGridDBTableView.OptionsData.Appending := False; cxGridDBTableView.OptionsData.Editing := False; cxGridDBTableView.OptionsData.Inserting := False; cxGridDBTableView.OptionsData.Deleting := False; |
|
#10
|
||||
|
||||
|
Что касается циферки 2, то я так предполагаю вам надо просто использовать cxExtLookupComboBox, тогда вы сможете для выбора значений использовать уже cxGridDBTableView для которого можно выставить флаг:
Код:
OptionsView.CellAutoHigh := True; |
|
#11
|
|||
|
|||
|
Спасибо за ответы, всё это потестирую, отпишу.
Ещё остались другие вопросы в этой теме... 1. Так и не полностью пашет - если начать добавлять новую запись, но потом отменить, то пустая строка для новой записи в таблице висит, пока не перейдёшь на новую строку - только тогда пустая строка исчезает. TcxGrid. 4. Ещё стрёмный баг - запускаю окно каталога, редактора, делаю что угодно - всё работает. Затем закрываю окно каталога, открываю это же окно каталога - критическая ошибка... из-за чего?! в свойствах формы Action:=caFree. Возможно из-за Dataset, который в другой юните остался. Как его очистить и отключить? Делаю просто Dataset.Close, может надо ещё как-то? Из-за чего ещё может быть?? |
|
#12
|
|||
|
|||
|
.....up.....
|