Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress 2

Автор: skinash
Дата сообщения: 26.05.2008 17:55
Уважаемые, помогите разобраться с такой проблемой. Как в RunTime сделать чтобы TcxGridDBColumn прилинкованый в таблице к полю типа TBooleanField вместо чекбокса отображались предопределённые значения.

Имеется некоторая таблица, в которой одно из полей TBooleanField. Хочу, чтобы вместо True/False в этом поле показывались некоторые предопределённые значения (Постоянный/Переменный, речь идёт о токе).

В обычном DBGrid'е проблем нет - достаточно заполнить свойство TBooleanField.DisplayValues :="Постоянный;Переменный"

Так же без проблем в DisignTime и для TcxGridDBTableView. Выбираю своё поле cxGrid1DBTableView1DBColumn2. Properties у этого поля выбираю ComboBox. DropDownStyle выставляю как lsFixedList, заполняю список Items -> Постоянный, Переменный. Запускаю - всё работает как надо:
[more] [/more]

Пытаюсь всё тоже самое проделать в RunTime:

Код: var
Prop: TcxCustomEditProperties;
Column: TcxGridDBColumn;
begin
Column := cxGrid1DBTableView1.GetColumnByFieldName('Тип источника');
if Assigned(Column) then
begin
Column.PropertiesClass := TcxComboBoxProperties;
Prop := Column.Properties;
with TcxComboBoxProperties(Prop) do
begin
DropDownListStyle := lsFixedList;
Items.CommaText := 'Постоянный,Переменный';
end;
end;
Автор: Dennica
Дата сообщения: 27.05.2008 06:27
skinash
В качестве параметра метода GetColumnByFieldName нужно указывать название поля в датасете а не имя колонки. У тебя первый же if помоему не должен срабатывать.
Автор: clear2121
Дата сообщения: 27.05.2008 06:44
Привет ВСЕМ!

Использую в проекте TcxShellComboBox ( обозвал cbShell ). В cbShellPropertiesCloseUp написал:
Код: p1->Caption = cbShell->Path;
Автор: skinash
Дата сообщения: 27.05.2008 07:36
Dennica
Здесь всё как раз верно, именно такое имя в датасете, if срабатывает, Column не пустой.
Толи глюк в девках, толи рефреш какой-нибудь нужен...

Я оказался прав, заработало как надо после

Код: cxGridDBTableView1.DataController.DataSource.DataSet.Refresh;
Автор: Dennica
Дата сообщения: 27.05.2008 13:23
skinash
Как вариант используй TcxEditRepository. Создай в нем заготовку, затем в событии колонки OnGetProperties напиши простейший обработчик. В репозитории итемы легко и динамически добавлять.
Автор: Vstory
Дата сообщения: 27.05.2008 17:07
Подскажите пожалуйста, можно ли как-то в PivotGrid отображать или не отображать значения в ячейке в зависимости от - там должно быть значение по свернутым или развернутым измерениям?
Автор: vlsaf
Дата сообщения: 28.05.2008 10:17
XtraReport - как распечатать одну строку?

Есть вопросец. Можно ли в XtraReport как-то передавать параметр.
Например ID , для того, чтобы можно было распечатать
только одну строку таблицы?
Автор: brookson
Дата сообщения: 29.05.2008 14:42
Всем доброго времени суток!

Есть неожиданная проблема. В рантайме добавляются солбцы в cxGrid, данные берутся из dxMemdata, в котором точно есть записи.
Грид создаётся, но почему-то пустой.


Код:
tvgrid1.BeginUpdate;
tvgrid1.DataController.DataSource:=DS3i;
acolumn:=tvGrid1.CreateColumn;
acolumn.Width:=250;
acolumn.DataBinding.FieldName:='rowname';
acolumn.DataBinding.ValueType:='string';
acolumn.Caption:='a';
acolumn:=tvGrid1.CreateColumn;
acolumn.Width:=100;
acolumn.DataBinding.FieldName:='total';
acolumn.DataBinding.valuetype:='currency';
acolumn.Caption:='s';
tvGrid1.EndUpdate;
Автор: Vstory
Дата сообщения: 29.05.2008 17:24
brookson, проверьте что FieldName имеют такие же имена как в датасете ds3i. попробовала такой код на tcxGrid v 3.1 - все работает
var c : TcxGridDBColumn;
begin
c := cxGrid1DBTableView1.CreateColumn;
c.Caption := 'test';
c.DataBinding.FieldName := 'class';
end;
Автор: brookson
Дата сообщения: 29.05.2008 20:59
Vstory
Немного поигравшись, обнаружил следующее. Вообще-то датасет dxMemdata создаётся в рантайме. Если сделать его в дизайн тайме, а потом только заполнить, грид данные показывает. А в динамически создаваемый хоть и пишет (после Post вывожу текущее значение), но в гриде пусто. Может где-то что-то пропустил?

Код:
var
fld: tfield;
AColumn: TcxGridDBColumn;
begin
....
dxmem3i:=TdxMemData.Create(nil);
dxmem3i.active:=false;
dxmem3i.FieldDefs.Clear;
fld := TIntegerField.Create(nil);
fld.FieldName := 'ID';
fld.DataSet:=dxmem3i;

fld := TStringField.Create(nil);
fld.FieldName := 'rowname';
fld.Size := 250;
fld.DataSet:=dxmem3i;

fld := TBCDField.Create(nil);
fld.FieldName := 'total';
fld.DataSet:=dxmem3i;
dxmem3i.Open;
dxmem3i.DisableControls;

dxmem3i.Append;
dxmem3i.FieldByName('id').AsInteger:=1;
dxmem3i.FieldByName('rowname').AsString:='Some text';
dxmem3i.FieldByName('total').AsFloat:=vsum;
dxmem3i.Post;
.......
ShowMessage(inttostr(dxmem3i.RecordCount));
showmessage(dxmem3i.FieldByName('rowname').AsString);
dxMem3i.EnableControls;

tvgrid1.BeginUpdate;
tvgrid1.DataController.DataSource:=DS3i;
acolumn:=tvGrid1.CreateColumn;
acolumn.Width:=250;
acolumn.DataBinding.FieldName:='rowname';
acolumn.DataBinding.ValueType:='String';
acolumn:=tvGrid1.CreateColumn;
acolumn.Width:=100;
acolumn.DataBinding.FieldName:='total';
acolumn.DataBinding.valuetype:='Currency';
tvGrid1.EndUpdate;
Автор: George_Lucky
Дата сообщения: 30.05.2008 06:21
Всем доброго дня!
о TcxComboBox...
Задачка - при выборе значения из списка ComboBox, должна происходить обработка этого значения
Вопрос - Какой Event лучше применить? Каков механизм доступа к новому выбранному значению?
.Value почему-то хранит прежнее значение
Автор: drunk2
Дата сообщения: 30.05.2008 06:41
George_Lucky
.EditValue
Автор: Vstory
Дата сообщения: 30.05.2008 09:34
brookson, для информации - для добавления полей у dxmemdata есть метод dxMemData1.FieldDefs.Add(field_name, field_type, field_size);

Добавлено:
кто-нибудь знает как в PivotGrid по ячейке (в OnGetDisplayText) понять на уровне какого поля из row header area свернута соответствующая строка ?
Автор: drunk2
Дата сообщения: 30.05.2008 12:42
Можно реализовать в cxGrid выделение области ячееек и ввод значения во все выделенные?
Автор: Ziltoid
Дата сообщения: 30.05.2008 18:14
Здравствуйте!
Всем, кому интересно использовать Девошные скины в своих прогах, но смущает изрядное увеличение размера экзешника, могу предложить вариантик: дело в том, что я сделал ресурсную DLL, куда затолкал все скины, что шли в комплекте с версией 6.34, заодно туда же добавил битмапы 32x32 для RibbonGallery и 16x16 для какого-нибудь ImageCombobox'а.

Ежли интересно, могу выслать на электроящик.

ЗЫ: Не реклама
Автор: StdNet
Дата сообщения: 31.05.2008 08:47
Добрый день.
Подскажите балбесу как локализировать компоненты?
а то надо локализировать предпросмотр при печати, а сделать не получаеться, установил дллки с руским а дальше не получаеться (
Автор: afiget
Дата сообщения: 31.05.2008 12:40
drunk2
Да, только не забывать контролировать заранее вставляемое значение. Чтобыне получилось, что ты вставляешь текст в числовое поле.
Устанавливаешь нужные свойства View.OptionSelection.
Показываешь контрол для ввода значения, после валидации вставляешь значения.

http://www.devexpress.com/Support/Center/KB/p/A302.aspx
http://www.devexpress.com/kb=A974
Автор: xokc
Дата сообщения: 01.06.2008 20:42
StdNet

Цитата:
Подскажите балбесу как локализировать компоненты?

Какие именно компоненты? Если речь идет о DevExpress, а дистрибутив от feandy, то поставить галочку "руссские ресурсы". Хотя если речь идет о каких-то
Цитата:
дллки с руским
, тогда задавай вопрос по-русски.
Автор: Dronton2
Дата сообщения: 02.06.2008 10:31
Странная проблема: поставил версию 6.35. Скомпилировал. Теперь под русскими виндами в гриде невозможно вводить числовые значения: значения вводятся справа налево, например, пользователь пишет: "123". Получается "321". Т.е. получается ввод справа налево. В английских виндах всё работает нормально.
Кто-нибудь знает, как это вылечить?
Автор: shulum
Дата сообщения: 02.06.2008 11:02
Dronton2
Странно ... все работает, во всяком случае, если стоит CalcEdit и SpinEdit

P.S. feandy 6.36 опубликовал
Автор: Dronton2
Дата сообщения: 02.06.2008 11:14
shulum
Полю не присвоен никакой редактор (поля Properties и RepositoryItem не заполнены).
Сейчас скачаю 6.36 и посмотрю.

Добавлено:
Установил 6.36. Ошибка пропала. Вопрос снят.
Автор: StdNet
Дата сообщения: 02.06.2008 20:15

Цитата:
Какие именно компоненты?


DevExpress(7.3.6) скачаный с сайта и установлены сверху сорцы с ламалкой. локализация также скачана с сайта, галочки юзать русский нигде не видел...
Автор: afiget
Дата сообщения: 02.06.2008 21:14

Цитата:
локализация также скачана с сайта

Заменить файл с ресурсами на локализированный и перекомпилить пакеты.

Галочка - это привилегия, которую дарит feandy
Автор: X11
Дата сообщения: 03.06.2008 11:16
Странное поведение cxGrid`а

Есть код, который заполняет вторую колонку (ед. изм.) на основе того, что пользователь выбрал в первой (наименование товара), вот код:

Код:
procedure TfmArrivalDet.dbgArrivalDetID_COMMODITYPropertiesCloseUp(
Sender: TObject);
begin
dbgArrivalDetID_UNIT.EditValue := fmMain.GetUnitByCommoditiesID(TcxLookupCombobox(sender).EditValue);
end;
Автор: Dronton2
Дата сообщения: 03.06.2008 12:34
Ziltoid
Я храню скины в базе данных в БЛОБах, а вот битмапы 32х32 и 16х16 для скинов - это интересно.

И ещё: у кого-нибудь есть редактор скинов, совместимый с последними версиями скинов?

Добавлено:
X11
Лучше использовать событие не на закрытие комбобокса, а на изменение значения, т.к. пользователь может поменять значение не открывая комбобокс, например, колесом мыши.
Автор: X11
Дата сообщения: 03.06.2008 13:27

Цитата:
Лучше использовать событие не на закрытие комбобокса, а на изменение значения,

пробовал - та же проблема

Добавлено:

Цитата:
пользователь может поменять значение не открывая комбобокс, например, колесом мыши.

а колёсико-бы отключить хотелось
Автор: StdNet
Дата сообщения: 03.06.2008 13:36

Цитата:
Галочка - это привилегия, которую дарит feandy

а где можно найти дистрибы эти? а то что то не выходит нифига
и какой версии там девки и будут ли они работать если у меня сорцы на девках 7.3.6?
Автор: X11
Дата сообщения: 03.06.2008 14:09

Цитата:
Странное поведение cxGrid`а

Есть код, который заполняет вторую колонку (ед. изм.) на основе того, что пользователь выбрал в первой (наименование товара), вот код:


проблему решЫл установкой ImmediatePost в True
Автор: xokc
Дата сообщения: 03.06.2008 22:28

Цитата:
и какой версии там девки и будут ли они работать если у меня сорцы на девках 7.3.6?

У devexpress нет ни одного продукта с такой версией:
hччp://www.devexpress.com/Support/Versions.xml
Так что подробнее все-таки что за зверь у тебя версии 7.3.6

feandy варианты можно найти тут
http://forum.ru-board.com/topic.cgi?forum=35&topic=38238&start=1560
Автор: X11
Дата сообщения: 04.06.2008 08:12

Цитата:
У devexpress нет ни одного продукта с такой версией:
hччp://www.devexpress.com/Support/Versions.xml
Так что подробнее все-таки что за зверь у тебя версии 7.3.6

7.3.6 это старая версия для MSVS

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.