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

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

Автор: ChSerg
Дата сообщения: 21.04.2014 15:00
svs123456789
Я делаю так:

Код:
function GetFocusedRecKey: Variant;
var
L: TStringList;
I: Integer;
begin
Result := null;
if qryData.Active then
if Pos(';', View.DataController.KeyFieldNames) = 0 then begin
S := View.DataController.KeyFieldNames;
Result := qryData.FieldByName(S).Value;
end else begin
L := TStringList.Create;
try
L.StrictDelimiter := True;
L.Delimiter := ';';
L.DelimitedText := View.DataController.KeyFieldNames;
Result := VarArrayCreate([0, Pred(L.Count)], varVariant);
for I := 0 to Pred(L.Count) do begin
Result[I] := qryData.FieldByName(L[I]).Value;
end;
finally
L.Free;
end;
end;
end;
Автор: vcrank
Дата сообщения: 22.04.2014 10:12
Кто-нибудь можете предположить почему при отношении master-detail у некоторых записей отображается не полная информация в таблице detail?
Записей в таблице detail для этого отношения именно 22, но показывается почему-то 18

Само отношение в гриде выставлено правильно. Вот ещё скрин из этого же приложения, но из раздела внесения данных

Автор: ant0ni02004
Дата сообщения: 22.04.2014 14:45
vcrank
скорее всего грид там там просто Partial load делает
Автор: vcrank
Дата сообщения: 22.04.2014 16:15
ant0ni02004
Я забыл упомянуть, что есть и другие отношение с кол-вом записей 22 и более - они отображаются нормально
Есть отношение с 14 записями, а реально отображается только 8шт

Добавлено:
Разрулил проблему. Оказывается, что надо было связать Tquery между собой с помощью MasterSource
Автор: neznayka3
Дата сообщения: 22.04.2014 20:46
можно ли сделать шаблон(фрейм) TdxLayoutGroup и потом помещать его на разные TdxLayoutControl?
Автор: NightSpawn
Дата сообщения: 23.04.2014 03:48
Подскажите, пожалуйста, как закрасить заголовок в cxGrid или даже точнее сменить стиль именно "заголовка"?

Есть вот такое:


А хочется вот так:

cxGrid 12.2.6


Пробовал хотя бы таким образом что-нибудь сделать с заголовком, но кроме изменившегося стиля шрифта ничего не происходит:


Код:
var
cxStyle1: TcxStyle;

procedure TForm1.FormCreate(Sender: TObject);
begin
// Стили
cxStyle1 := TcxStyle.Create(Self);
cxStyle1.Font.Style := [fsBold];
cxStyle1.Color := $0042D7FF;
end;

procedure TForm1.cxGrid1DBTableView1StylesGetHeaderStyle(
Sender: TcxGridTableView; AColumn: TcxGridColumn; out AStyle: TcxStyle);
begin
if Assigned(AColumn) then
if AColumn.SortOrder <> soNone then
AStyle := cxStyle1;
end;
Автор: Cryogen2003
Дата сообщения: 23.04.2014 06:18
NightSpawn
можно сделать так только через стили. шрифт там и стиль шрифта. Любой цвет работать в девэкспрессах не будет, если на форме какой-либо скин наложен. То есть цвет берется из скина и только из скина
Автор: exteris
Дата сообщения: 23.04.2014 07:20

Цитата:
Любой цвет работать в девэкспрессах не будет, если на форме какой-либо скин наложен.

Или NativeStyle:=True.
Автор: svs123456789
Дата сообщения: 23.04.2014 07:48
на грид наложен фильтр (средсвами самого грида)
как обойти все записи ? (за исключением отфильтрованных)

фильтр в гриде вероятно не фильтрует сам датасет
Автор: dred2k
Дата сообщения: 23.04.2014 07:57
svs123456789
Фильтр грида никак не влияет на датасет.
Вот обход по фильтрованным записям, обратный вариант, думаю, сделаешь сам.

Код:
for i := 0 to DBTVList.DataController.FilteredRecordCount - 1 do
begin
tmpRecordIndex := DBTVList.DataController.FilteredRecordIndex[i];
tmpObjectID := nvl(DBTVList.DataController.GetValue(tmpRecordIndex, DBTVList_ObjectID.Index), -1);
tmpServerID := nvl(DBTVList.DataController.GetValue(tmpRecordIndex, DBTVList_ServerID.Index), -1);
tmpObjectNumber := nvl(DBTVList.DataController.GetValue(tmpRecordIndex, DBTVList_ObjectNumber.Index), -1);
if((tmpObjectID = 0) and AExcludeDefaultObject) then
Continue;
if(CheckObjectID(tmpObjectID) and CheckServerID(tmpServerID) and CheckObjectNumber(tmpObjectNumber)) then
tmpL.Add(FormatFullObjectNumber(tmpServerID, tmpObjectNumber));
end;
Автор: NightSpawn
Дата сообщения: 23.04.2014 09:01
exteris
Спасибо, как раз NativeStyle то что нужно было
Автор: G787
Дата сообщения: 23.04.2014 09:04
----
Автор: Blindfold
Дата сообщения: 25.04.2014 19:21
vcrank

Цитата:
Разрулил проблему. Оказывается, что надо было связать Tquery между собой с помощью MasterSource

Для того чтобы добиться мастер-дитейла лишь средствами грида (без связывания датасетов) необходимо чтобы подчиненный датасет был отсортирован по внешнему ключу. Подчиненный град просто пробегает по датасету и перестает выводить записи как только значение поля с ключём меняется.
Автор: Andryshok
Дата сообщения: 26.04.2014 09:37
Cryogen2003 Ну почему же не будет - просто к гриду прикрутить cxStyle Controler в которм настроить необходимые стили и потом присоединить их например к хедеру , контенту... это же можно прямо в дизайнтайме сделать
Я имею в виду не снимать скин со всего приложения, а только настроить сам грид, вот например скрины...там только грид с кастомным стилем, остальные элементы формы со скином



Автор: Cryogen2003
Дата сообщения: 26.04.2014 11:03
Andryshok
если скин красочный, то мне не дает цветом раскрашивать как я хочу. Стало быть что я делаю не так?
Автор: Andryshok
Дата сообщения: 26.04.2014 21:45
Cryogen2003 поставь настройки грида как на скрине, все должно быть норм, если все равно не получится - выложу маленький пример
Автор: Cryogen2003
Дата сообщения: 27.04.2014 08:42
Andryshok
Нееее, я немного по другое. У меня на форме валяется еще skin controller и в skinname валяется имя выбранного скина (например Office 2013 White). Так после этого любое изменение цвета - это игнор, работают только шрифт и его атрибуты.
Автор: Andryshok
Дата сообщения: 27.04.2014 15:11
Cryogen2003 Я понимаю, так к форме скин применяй, почему бы нет..., а грид настрой согласно скрину
Автор: asutp2
Дата сообщения: 28.04.2014 11:30
Люди, а DEvExpress под FMX случайно не работает?
Автор: OXDBA
Дата сообщения: 28.04.2014 12:29
asutp2
Нет, а вот к счастью или сожалению, даже затрудняюсь сказать
Автор: LadyOfWood
Дата сообщения: 28.04.2014 12:34

Цитата:
Люди, а DEvExpress под FMX случайно не работает?

Все вкатце, пока не планируется. Но возможность не исключают.
http://www.devexpress.com/Support/Center/Question/Details/Q428652
Автор: Roman85R31
Дата сообщения: 03.05.2014 14:35
Здравствуйте.
Подскажите, пожалуйста, в следующем вопросе:
Хочу обработать событие GetCellHint компонента cxDBTreeList. Как мне получить id записи, для которой надо показать подсказку?
Набрел на следующее: Документация
Пытаюсь делать аналогично:

Код:
var
ANode: TcxTreeListNode;
AColumn: TcxTreeListColumn;
id : integer;
begin
if (ACell is TcxTreeListEditCellViewInfo) then
Begin
ANode:=TcxTreeListEditCellViewInfo(ACell).Node;
id := ANode.AbsoluteIndex;
AText := VarToStr( cxDBTreeList1.DataController.GetRecordId( id ) );
End;
end;
Автор: StredaX
Дата сообщения: 06.05.2014 16:30
Roman85R31
ANeedShow в OnGetCellHint?
Автор: vcrank
Дата сообщения: 06.05.2014 20:54
Ещё вопрос. Есть DBLookupComboBox
Как организовать такое: если вводимое значение отсутствует в выпадающем списке, то оно заносится автоматом в нужную таблицу и появляется в этом списке
Автор: dred2k
Дата сообщения: 06.05.2014 22:16
vcrank
Довольно странный вопрос, без деталей во всяком случае.
Что может быть очевидней, чем вставить запись в нужную таблицу...
Подозреваю, используется режим Edit ?
Предлагаю не гимороиться и просто завести нулевую запись "<Добавить новое значение>". Удобно и программеру, и юзеру. Адекватность ценится.
А потенциальные извращения с изменением текста на лету - чреваты, со всех сторон.

Кстати, а при чем здесь DevExpress ?

Цитата:
DBLookupComboBox
Автор: Roman85R31
Дата сообщения: 06.05.2014 22:26
StredaX

Цитата:
ANeedShow в OnGetCellHint?


Спасибо!
В самом деле, не обратил внимания, что этот параметр можно изменить в обработчике.
Автор: vcrank
Дата сообщения: 06.05.2014 22:35
dred2k
Конечно же это TcxDBLookupComboBox
Пока ждал ответа - написал свой вариант:
На событие onValidate повесил обработчик такого типа: проверяем, есть ли введённое значение в дочерней таблице (откуда черпается сам список для TcxDBLookupComboBox)
Если этого значения там нет, то добавляем, делаем Refresh и всё работает


Цитата:
Предлагаю не гимороиться и просто завести нулевую запись "<Добавить новое значение>"

Предлагаете завести такую запись в таблице, откуда черпается список для TcxDBLookupComboBox ? Потому что в самом компоненте не вижу свойства Items
Автор: dred2k
Дата сообщения: 07.05.2014 00:08
vcrank

Цитата:
Предлагаете завести такую запись в таблице, откуда черпается список для TcxDBLookupComboBox ? Потому что в самом компоненте не вижу свойства Items


Дело в том, что я обычно справочные таблицы использую через таблицы в памяти. Соответственно, при этом можно сделать всякое.
Коли решение найдено и работает, а главное - устраивает, то гут. Практика - критерий истины.
Автор: Prot_XT
Дата сообщения: 07.05.2014 04:36
Подскажите поддержка XE6 есть в 13.2.4 или она с 13.2.5 началась?
Автор: dred2k
Дата сообщения: 07.05.2014 05:25
Prot_XT
Говорят так:
http://forum.ru-board.com/topic.cgi?forum=35&topic=52634&start=940#19

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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