powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
25 сообщений из 31, страница 1 из 2
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40017923
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компонента TcxDBVerticalGrid привязана к НД TpFibDataSet и используется просто для вывода данных на экран, для отображения данных.

Но появилась нужда добавить 1-2 строки TcxDBEditorRow и заполнить их не из привязанного НД.
Создать строку типа cxCombobox или cxTextEdit не проблема, но получается так, что в cxCombobox ничего выбрать нельзя, а в cxTextEdit ничего ввести нельзя ни ручками, ни программно.

А очень хочется.

P.S. Можно, конечно, заменить сетку на TcxVerticalGrid,но тогда придется все строки заполнять ручками в коде, а мне - леньки
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40017944
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,
Вычисляемые поля в DataSet
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40017945
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как мне это поможет?
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40017972
Polesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11, в событии OnCalcFields датасета этим полям можно присвоить значение.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40017983
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пока по другому сделал.
В строку добавил выпадающую панель и там уже пусть пользователь что-то меняет.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018044
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Polesov
X11,
Вычисляемые поля в DataSet

Ему нужны "вычисляемые строки", а не поля.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018046
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
строки в данном случае - это поля, ведь это вертикальная сетка
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018053
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11,

тогда он прав.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018135
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
P.S. Можно, конечно, заменить сетку на TcxVerticalGrid,но тогда придется все строки заполнять ручками в коде, а мне - леньки

Что стоит Единожды написать процедуру, заполняющую Грид по НАИМЕНОВАНИЮ колонок из Датасета ?
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018238
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не стоит использовать этот вертикальный грид для показа одной строки данных, он для этого не предназначен как нам сказали. Оказывается мы его неправильно используем, он для отображения сразу многих записей :)
Т.е отобразить он конечно отобразит, но при обновлении единственной отображаемой строки данных тормозить будет беспощадно.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018246
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вертикальная сетка довольно удобна для формы редактирования/добавления/показа записи из базы
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018303
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в том, надо просто отображать пользователю данные или надо еще их редактировать? Если просто отображать, то что может быть проще OnGetDisplayText Editor'а:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm.EditorPropertiesGetDisplayText(Sender: TcxCustomEditorRowProperties; ARecord: Integer; var AText: string);
  Var
        X, Y, M: integer;
begin
      { Получаем данные для отображения }         
           X := 2;
           Y := 2;
           M := X * Y;         
    
      { Выводим } 
           AText := Format('%d умножить на %d равно %d!', [X, Y, M]);
end;


Properties = Label, FieldName пустое.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018510
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, как это событие работает, как его правильно использовать, в какие моменты. При открытии формы, при перерисовке... когда оно срабатывает?
Ок, сделал строку с выпадающим списком (TcxLookupComboBox) и привязал к НД, выбираю там что-то, но строка пустая, пока она активна, в режиме редактирования. Как только фокус покидает ячейку, вижу результат выбора. Как только щелкаю туда - снова пустая.

Для выбора использую событие EditPropertiesCloseUp, где назначаю выбранное значение глобальной переменной. А потом эту глобальную переменную использую в PropertiesGetDisplayText.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018517
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Непонятно, как это событие работает, как его правильно использовать, в какие моменты. При открытии формы, при перерисовке... когда оно срабатывает?
Коллега, у вас отладчик не работает? Или религия не позволяет использовать? Создайте точку останова и всё узнаете.

Вообще я в таких случаях делаю очень прямолинейно и просто - создаю два вертикальных грида. Один DB, второй обычный. В DB-гриде отображаю данные из датасета (чтобы руками не прописывать), а второй обычный грид кидаю на форму ниже, под DB-гридом, прямо вплотную, чтобы оба грида составляли как бы одно целое. Для пользователя внешне это будет выглядеть как один вертикальный грид.
Но это работает только в том случае, разумеется, если отображаемые данные и редактируемые данные можно расположить последовательно. Если редактируемые строчки надо вклинить между данными из БД, то этот вариант не подойдёт.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018520
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает и пользуюсь, и вижу, что переменной выбранное в списке значение присваивается, только вот не отображается, пока не выйдешь из режима редактирования.
Как только снова щелкаю по строке (по ячейке), значение снова исчезает.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018522
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Две сетки мне не подходит.
Мой пользователь имеет доступ к редактированию визуально части сетки. Т.е. это кагбэ дизайнер формы.
Поэтому вот.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018525
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Ок, сделал строку с выпадающим списком (TcxLookupComboBox) и привязал к НД, выбираю там что-то, но строка пустая, пока она активна, в режиме редактирования. Как только фокус покидает ячейку, вижу результат выбора. Как только щелкаю туда - снова пустая.
Коллега, вы троллите что ли? Ничего не пропадает, если Properties->DataBinding->FieldName задано корректно.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018529
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перечитайте ТЗ с самого начала. Намекну, что у меня в этой одной строке нет привязки к НД.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018532
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Перечитайте ТЗ с самого начала. Намекну, что у меня в этой одной строке нет привязки к НД.
А это кто писал:X11сделал строку с выпадающим списком (TcxLookupComboBox) и привязал к НД
Но даже если нет привязки, можно создать фиктивное поле в результате запроса и привязаться к нему. Не знаю, правда, как к этому отнесётся Fib, но проверить можно.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018533
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы не поняли, это список (ListSource) привязан, т.к. источник отображения списка.
А свойство FieldName пустое.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018537
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, решение пока такое, но не очень, после выбора значения из TcxLookupComboBox, в событии EditPropertiesCloseUp добавил строку

Код: pascal
1.
cxDBVerticalGrid1.HideEdit;
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018538
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Вы не поняли, это список (ListSource) привязан, т.к. источник отображения списка.
А свойство FieldName пустое.
Я всё прекрасно понял. Именно поэтому я и предложил присвоить свойству FieldName значение фиктивного поля из вашего TpFibDataSet.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018539
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаюсь к нашим баранам. НД только для отображения. Поэтому он всегда ReadOnly, т.е. при попытке что-то присвоить полю, будет exception - dataset not in isert or edit mode.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018546
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11
Возвращаюсь к нашим баранам. НД только для отображения. Поэтому он всегда ReadOnly, т.е. при попытке что-то присвоить полю, будет exception - dataset not in isert or edit mode.
Всегда ReadOnly - это не аксиома. У FibDataSet есть LocalUpdate, по-моему. Можно его включать. Но вообще лучше всего использовать Calculated Fields, как сразу вам и сказали.
...
Рейтинг: 0 / 0
Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
    #40018547
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно с Calculated Fields я и экспериментировал и получил ошибку, вышеуказанную.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Присвоить значение строке TcxDBVerticalGrid (ReadOnly DataSet)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]