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

» Использование DevExpress (часть 4)

Автор: Dmitry
Дата сообщения: 07.10.2013 08:39
Raphael92

Цитата:
Для первой строки выполняю следующие команды:
(cxGridDBTableView1Column1.Properties as TcxComboBoxProperties).Items.Clear;
(cxGridDBTableView1Column1.Properties as TcxComboBoxProperties).Items.Add(
Query.FieldByName('home').AsString);

Когда делаю то же самое для второй строки, то у первой в комбобоксе те же значения, что и у второй. Как сделать, чтоб для каждой строки был свой combobox ?


Никак. Комбобокс, точнее набор значений для подстановки, задается общий для всей колонки.
Автор: neznayka3
Дата сообщения: 07.10.2013 09:05
подскажите, как такую вещь сделать. данные хранятся в бд.

Автор: exteris
Дата сообщения: 07.10.2013 09:11
Raphael92
Можно повешаться на событие OnGetProperties и подсовывать разные комбо.
Гляньте демку - ColumnsMultiEditorsDemo.
Автор: BlackVetal
Дата сообщения: 07.10.2013 09:47
Raphael92
Как бы 2 пути еще добавлю - первое, как сказал Dmitry сделать общий список, только фильтровать в зависимости от значений строки; Второе - сделать popup окно, которое выводить при нажатии на кнопку комбо, а в окне уже выводить тот список, который нужно, в зависимости от значений строки.
Автор: Shaman2
Дата сообщения: 07.10.2013 19:44
Всем привет. Подзабыл уже, может подскажете: как при dragDrop вычислить ID у dxDBTree ?
Автор: X11
Дата сообщения: 08.10.2013 11:34
Баг нашёл при использовании TdxBar.
На форме лежит TdxBar и пару панелей с кнопкой. Если форму создать и не показывать, а потом закрыть приложение, то получишь несколько Access Violation. А если с формы убрать TdxBar, и проделать всё то же самое, то AV при закрытии приложения уже не будет.

Добавлено:
Если у кого есть доступ к офиц. поддержке, сообщите, пожалуйста.
Автор: makz
Дата сообщения: 09.10.2013 01:26
neznayka3
От ExpressScheduller'a календарь.
Автор: sobolenok
Дата сообщения: 09.10.2013 13:57
Добрый день! как отключить автоматическое изменение ключа родителя при DragDrop в cxDBTreeList???

Сейчас в компоненте следующие свойства:

-OptionsData.Editing := False;
-OptionsData.Deleting := False;
-OptionsData.Inserting := False;
-OptionsData.SyncMode := False;

-DragMode := dmAutomatic;

судя по профайлеру - на сервер уходит команда Update .... set ParentCode =...

но мне при драг дропе необходимо вызывать серверную процедуру с кучей проверок, а не автоматом менять ключ родителя при перетаскивании.
Автор: neznayka3
Дата сообщения: 10.10.2013 15:42
как у TcxDateNavigator убрать стрелки, которые изменяют месяц? а также попуп который появляется при клике на месяц. показываю строго целый год, изменения надо запретить.
Автор: AlexCoRu
Дата сообщения: 16.10.2013 15:08
Подскажите по сабжевой принт системе. Можно ли превью (TdxPreview) разместить на панели, хотелось бы разместить на TdxRibbonBackstageViewTabSheet. Нужно печатать неширокий грид. Может принт систем напечатать этот грид в две колонки на листе?
В FastReport всё это можно. А здесь?
Автор: nevermind00
Дата сообщения: 17.10.2013 10:26
как в одну из колонок cxGrid вствить по имеющемуся id данные из другого датасета?
(привязан к adotable каждой записи к-рой соответствует несколько записей из другой таблицы, из к-рой я хочу получить список и пихнуть его в ячейку грида)
Автор: AlexCoRu
Дата сообщения: 17.10.2013 11:57
Так, процесс пошёл. Желающие присоединяйтесь.

Код: uses dxPrevw, dxPScxGridLnk, dxPSCore;

type
TPreviewPanel = class(TCustomdxPreview)
end;

var
dxPreview: TPreviewPanel;
AGridReportLink: TdxGridReportLink;
AComponentPrinter: TCustomdxComponentPrinter;

procedure TQueryBuilderForm.dxRibbonBackstageViewPopup(Sender: TObject);
begin
AComponentPrinter := TCustomdxComponentPrinter.Create(Self);
dxPreview := TPreviewPanel.Create(Self);
dxPreview.Parent := dxRibbonBackstageViewTabSheet1;
dxPreview.Align := alClient;
// dxPreview.Transparent := True;
dxPreview.BorderStyle := bsNone;
AGridReportLink := TdxGridReportLink.Create(Self);
AGridReportLink.Component := cxGrid;
AGridReportLink.ComponentPrinter := AComponentPrinter;
AGridReportLink.RebuildReport;
dxPreview.PageCount := AGridReportLink.PageCount;
dxPreview.Paint;
end;

procedure TQueryBuilderForm.dxRibbonBackstageViewCloseUp(Sender: TObject);
begin
AGridReportLink.Free;
dxPreview.Free;
AComponentPrinter.Free;
end;
Автор: X11
Дата сообщения: 17.10.2013 14:23

Цитата:
как в одну из колонок cxGrid вствить по имеющемуся id данные из другого датасета?

lookup? или прямо в sql с помощью join
Автор: nevermind00
Дата сообщения: 17.10.2013 14:39


Цитата:
lookup? или прямо в sql с помощью join


join не годится, т.к. у меня adotable используется. lookup - вариант. но тогда в ячейке будет просто выпадающий список? а я хотел туда записать значения через ; из связанного датасета.
Автор: X11
Дата сообщения: 17.10.2013 14:52
1. вычисляемые поля у НД (adotable)
2. onGetText у столбца НД(adotable)
3. У столбцов сетки тоже есть события
Автор: AlexCoRu
Дата сообщения: 17.10.2013 15:14
Есть рабочий вариант, остались мелочи

Код: type
TPreviewPanel = class(TCustomdxPreview)
end;

var
dxPreview: TPreviewPanel;
AReportLink: TBaseDxReportLink;
AComponentPrinter: TCustomdxComponentPrinter;

procedure TQueryBuilderForm.dxPreviewDrawPageContent(Sender: TObject; ACanvas: TCanvas; ARect: TRect; APageIndex: Integer);
begin
AComponentPrinter.PaintPage(ACanvas, APageIndex, ARect, ARect, AReportLink);
end;

procedure TQueryBuilderForm.dxRibbonBackstageViewPopup(Sender: TObject);
begin
AComponentPrinter := TCustomdxComponentPrinter.Create(Self);
AReportLink := AComponentPrinter.AddLinkEx(cxGrid, Self);
dxPreview := TPreviewPanel.Create(Self);
dxPreview.Parent := dxRibbonBackstageViewTabSheet1;
dxPreview.Align := alClient;
dxPreview.Transparent := True;
dxPreview.BorderStyle := bsNone;
dxPreview.OnDrawPageContent := dxPreviewDrawPageContent;
AReportLink.RebuildReport;
dxPreview.PageCount := AReportLink.PageCount;
dxPreview.Paint;
end;

procedure TQueryBuilderForm.dxRibbonBackstageViewCloseUp(Sender: TObject);
begin
AReportLink.Free;
dxPreview.Free;
AComponentPrinter.Free;
end;
Автор: nevermind00
Дата сообщения: 17.10.2013 16:08

Цитата:
1. вычисляемые поля у НД (adotable)
2. onGetText у столбца НД(adotable)
3. У столбцов сетки тоже есть события


за ongettext - спасибо!
а вот вычисляемые поля у adotable не понял, где они?
Автор: AndyZorg
Дата сообщения: 17.10.2013 16:41

Цитата:
а вот вычисляемые поля у adotable не понял, где они?

Правый щелчок на компонент - Fields Editor или даблклик.
В окне полей правый клик - New Field и чекбокс FieldType выбираешь Calculated.
Автор: nevermind00
Дата сообщения: 18.10.2013 07:46

Цитата:
AndyZorg

спасибо!!!


А вот с lookup вопрос - есть в гриде колонка с id, к-рому соответствует набор записей из другой таблицы. Можно ли и как сделать, чтоб на каждой записи грида вываливался список из этой таблицы, отфильтрованный по id этой записи?
Автор: AndyZorg
Дата сообщения: 18.10.2013 09:29
Доброе время суток, коллеги!


Цитата:
А вот с lookup вопрос - есть в гриде колонка с id, к-рому соответствует набор записей из другой таблицы. Можно ли и как сделать, чтоб на каждой записи грида вываливался список из этой таблицы, отфильтрованный по id этой записи?


Если используешь библиотеки DevExpress, там есть пример Masterr-Detail QuantumGrid.
Если нет - погугли по словам Master-Detail
Автор: nevermind00
Дата сообщения: 18.10.2013 09:33

Цитата:
AndyZorg

видел я этот пример...
или я жестко туплю, или мы просто друг друга не поняли

там по левелам запись разкладывается. мне надо чтоб одна строка была, но в одном из полей - несколько значений на выбор
Автор: AndyZorg
Дата сообщения: 18.10.2013 09:50

Цитата:

Цитата:
AndyZorg

видел я этот пример...  
 или я жестко туплю, или мы просто друг друга не поняли
 
там по левелам запись разкладывается. мне надо чтоб одна строка была, но в одном из полей - несколько значений на выбор


Пример называется ColumnsShareDemo. Там в гриде есть поле Creator - это ссылка на таблицу Users. Так вот там при редактировании выпадает список, и можно выбрать значение.

Вообще у каждого TcxDBGridColumn есть свойство Options.ListOptions, курить надо в эту сторону.
Автор: kolios
Дата сообщения: 18.10.2013 23:24
X11
привет
а у тебя есть УКР перевод devexpress? 2600 строк для 3.1.2 версии не охота переводить     
Автор: X11
Дата сообщения: 19.10.2013 12:12
Перезалил http://www.sql.ru/blogs/x11/1338
Автор: kolios
Дата сообщения: 19.10.2013 12:24
X11

Выражаю Вам огромную благодарность! Вы единственный у кого есть этот перевод на весь инет!
Ну и у меня уууурааа
Автор: neznayka3
Дата сообщения: 22.10.2013 09:18
при <DBTableView>.OptionsData.Editing=false нельзя выделить текст в ячейке. стоит true и после каких то изменений текст нельзя выделить. какие свойства перекрывают это? надо иметь возможность выделять текст.
Автор: X11
Дата сообщения: 22.10.2013 09:41
Ты хочешь запретить вызывать редактор ячейки и при этом как-то выделять текст? Одной рукой даёшь, а другой забираешь...

Ну тогда кинь на форму рядом tmemo и отображай в нём текст ячейки, пусть там выделяют или показывай tMemo по команде
Автор: neznayka3
Дата сообщения: 22.10.2013 10:30
X11
для выделения значений присваиваю столбцу какой нибудь Properties с ReadOnly=true (быстро копировать любое значение). но в какой то момент, при работе с view пропадает возможность выделять. не пойму, когда именно. кидать контролы на форму не вариант. в строке могут быть несколько ячеек с возможностью выделения. для запрета выделения при <DBTableView>.OptionsData.Editing=false ставлю <DBTableView>.Options.Editing=false;
Автор: SHKoder
Дата сообщения: 23.10.2013 08:39
мальчики и девочки, а так же иные здесь собравшиеся, подскажите, пожалуйста. я как-то давненько выпал из проекта с девками, а примерно 4-5 лет назад и некоторое время потратил на другой язык, о чем очень тосковал. ну да не о лирике...
у меня остались исходники на делфе ХЕ2 + ДevЭxpr_06_feb_2008
тогда это была 42 версия вроде.
могу ли я сейчас поставить ХЕ5 и актуальные на сегодня девки и не столкнусь ли с какими проблемами при компилировании проекта?
а если и столкнусь то с какими и есть ли возможность лечить.
или мне всеже нет смысла ставить актуальную версию? и ставит ьто что было?

спасибо всем
Автор: exteris
Дата сообщения: 23.10.2013 09:15
SHKoder
А проект тоже 5-летней давности?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


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