Вниз
Скачать: CL | DM;

cxGrid как SelectedRecordCount на нижнем уровне   Найти похожие ветки 

← →
девушка   (2009-06-01 12:10) [0]

Добрый день!
Использую cxGrid, в котором есть 2 уровня (master-detail).
На первом уровне вполне работает код типа:

for i:=0 to cxTableView.Controller.SelectedRecordCount - 1 do
begin
//проходимся по выделеным записям
.... cxTableView.Controller.SelectedRecords[i].Values[cxTableView_my_field.Index];

 .....
end;


Однако для второго уровня cxTableView2.Controller.SelectedRecordCount всегда выдает значение 0.


← →
clickmaker ©   (2009-06-01 12:22) [1]

> Однако для второго уровня cxTableView2.Controller.SelectedRecordCount
> всегда выдает значение 0.

а cxTableView2.Controller.SelectedRecords?


← →
девушка   (2009-06-01 12:41) [2]


> а cxTableView2.Controller.SelectedRecords?


То же самое - выдает 0.


← →
девушка   (2009-06-01 12:43) [3]

OptionsSelection:
CellMultiSelect -false
CellSelect - true
HideSelection - false
HideSelection - false
InvertSelection - true
MultiSelect - true
UnselectFocusetRecordOnExit - false

При аналогичных настройках в верхнем уровне - все работает.
Пробовала играться HideSelection ,
InvertSelection  и др. Не помогло


← →
Леша ©   (2009-06-01 14:07) [4]

Дело в том, что cxTableView2 существует только в дезайнтайм. В рантайме это уже будет другой вьив, не cxTableView2. Более того, для каждой мастер-записи создается свой вьив.

Вот код, который у меня вытягивает значение из фокусной записи:

function TFrameDetailMachine.GetDocsFromSelectedRow: Variant;
var
 vFocusedRecord: TcxCustomGridRecord;
 vDetailRecordView: TcxCustomGridTableView;
begin
  Result := null;
  vFocusedRecord := GridViewIncludes.Controller.FocusedRecord;
  if not Assigned(vFocusedRecord) then
    Exit;
  if not (vFocusedRecord is TcxGridMasterDataRow) then
    Exit;
  vDetailRecordView := TcxCustomGridTableView(TcxGridMasterDataRow(vFocusedRecord).ActiveDetailGridView );
  if vDetailRecordView = GridViewIncludesDetail then
    Exit; // вставил, чтоб показать
  vFocusedRecord := vDetailRecordView.Controller.FocusedRecord;
  if Assigned(vFocusedRecord) then
    Result :=  vFocusedRecord.Values[GridViewIncludesDetailDocs.Index];
end;


← →
Леша ©   (2009-06-01 14:11) [5]

Вернее cxTableView2 существовать будет. Но он будет только прототипом для детальных вьивов.


← →
девушка   (2009-06-01 16:50) [6]

o_O
Очуметь!

БОЛЬШОЕ СПАСИБО!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
11-1197097138
zNk
2007-12-08 09:58
2009.07.26
LZMA в MCK


15-1242745618
@!!ex
2009-05-19 19:06
2009.07.26
Програмно сделать GET запрос веб серверу и получить ответ.


2-1243738366
Нет имени
2009-05-31 06:52
2009.07.26
GDI и GDI+


2-1243571350
сергей
2009-05-29 08:29
2009.07.26
DriverComboBox


2-1243432407
Darvin
2009-05-27 17:53
2009.07.26
Странное поведение FindDialog




   Наверх