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

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

Автор: GREETINGS_TO_ALL
Дата сообщения: 17.04.2008 10:05

Цитата:
Как вы думаете, почему пустое сообщение?
vgAreas - TcxVerticalGrid
[/code]
procedure TfmAreas.vgAreasInitEdit(Sender, AItem: TObject;
AEdit: TcxCustomEdit);
begin
inherited;

if (AEdit is TcxTextEdit) then ShowMessage(TcxTextEdit(AEdit).Name);
[/code]



вроде так

Код:

if (AEdit is TcxTextEdit) then ShowMessage((AEdit as TcxTextEdit ).Name);

Автор: X11
Дата сообщения: 17.04.2008 11:16
GREETINGS_TO_ALL, это 2 строки идентичны

if (AEdit is TcxTextEdit) then ShowMessage((AEdit as TcxTextEdit ).Name)
if (AEdit is TcxTextEdit) then ShowMessage(TcxTextEdit(AEdit).Name);
Автор: andrey444
Дата сообщения: 17.04.2008 13:42
Как можно в PivotGrid Изменять данные. Т.е. по клику на яйчейку получить значение из DataSet и записать его, а потом обновить данные в PivotGrid.
Автор: afiget
Дата сообщения: 17.04.2008 22:41
X11
Потому что Name действительно пустое
Это можно проверить через Data Inspector или Watch List.

А эдиты идентифицировать для чего?
Может быть достаточно будет TcxVerticalGrid.FocusedRow.

How to determine which row an in-place editor belongs to

How to determine which editor is currently active within a mutlieditor row

andrey444
Для нужных полей установить TcxPivotGridField.Area. Думаю, faData.
Автор: andrey444
Дата сообщения: 18.04.2008 08:18
afiget Для нужных полей установил значения но как достучаться до их значений никак не допетрю....
Автор: afiget
Дата сообщения: 18.04.2008 17:38
andrey444
Стоп. Может быть я неправильно понял вопрос.
В самом PivotGrid значения менять нельзя. Он рид-онли. Для редактирования данных PivotGrid обычно применяют другие редакторы (форма или обычный Grid).
Для того, чтобы получить данные из грида и передать в редактор, можно использовать DataController.Values.
Автор: andrey444
Дата сообщения: 19.04.2008 15:52
afiget, Решил проблему. Написал хранимую процедуру для построения Cross-tab.
Автор: kash9
Дата сообщения: 19.04.2008 21:44
Люди помогите! весь и-нет перерыл и нормального конкретного ответа не нашел!

вот есть у меня cxGrid в нем скажем 4 столбца(один из столбцов дата) и много строк и вот я хочу чтоб строки в которых дата пустая были бы скажем красного цвета а остальные синего!
Автор: X11
Дата сообщения: 19.04.2008 22:07
gvApart - TcxGridTableView

Код:
procedure TfmImport.gvApartCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
Var
val:boolean;
begin
try
if AViewInfo.GridView.DataController.RecordCount <= 0 then exit;

val := (AViewInfo.GridRecord.Values[colType.Index] <> 0) and
(AViewInfo.GridRecord.Values[colStreet.Index] <> 0) and
(AViewInfo.GridRecord.Values[colRegion.Index] <> 0) and
(AViewInfo.GridRecord.Values[colState.Index] <> 0) and
(AViewInfo.GridRecord.Values[colIS.Index] <> 0);

if not val then begin
ACanvas.Font.Color := clRed;
end;


except
abort;
end;

end;

Автор: kash9
Дата сообщения: 20.04.2008 08:31
блин чего-то ниче не работает! что такое у тебя colType.index colStreet.index и т.д. и откуда они взялись? на вход процедуре ничего такого не поступает! можешь написать еще разок но чтоб все можно было скопировать и оно бы заработало?
Автор: X11
Дата сообщения: 20.04.2008 08:45

Цитата:
такое у тебя colType.index colStreet.index

colType и colStreet - это колумны
Цитата:
на вход процедуре ничего такого не поступает!



чувак открой события и щёлкни по событию CustomDrawCell дважды мышкой )))))))))

Добавлено:

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

НЕТ, учись хоть немного сам!!!
Автор: kash9
Дата сообщения: 20.04.2008 09:29
блин вообще таких как ты не понимаю! че ты выпендриваешься я не первый день пишу так то!

procedure Tfm_main.cxGridDBTableView2CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);

и где тут колумны?????


короче похер можешь не отвечать! ваще блин бесят когда начинают не по деллу чета разводить дискуссии тебя спросили если знаешь взял и объяснил, если нет дак нет!
Автор: X11
Дата сообщения: 20.04.2008 10:43
чувак, я те дал реальный, рабочий код, ты чё белинишься? если что-то не нравиться, то читай справку! Понял?



Цитата:
и где тут колумны?????


Цитата:
colType и colStreet - это колумны

не доходит???

Добавлено:

Цитата:
ваще блин бесят когда начинают не по деллу чета разводить дискуссии тебя спросили если знаешь взял и объяснил, если нет дак нет!

здесь тебе НИКТО НИЧЕМ НЕ ОБЯЗАН, ТЕМ БОЛЕЕ ДАВАТЬ СОВЕТЫ И КОДЫ, НО ЛЮДИ ВСЁ РАВНО ПОМОГАЮТ ДРУГУ ДРУГУ, ДАЖЕ ДАЮТ ИНОГДА СВОЙ РАБОЧИЙ КОД, А ЕСЛИ ДРУГОЙ НЕ ХОЧЕТ, В НЁМ ХОТЬ ЧУТЬ-ЧУТЬ ПОСООБРАЖАТЬ, ТО ЭТО ЕГО ПРОБЛЕМЫ! Я ВСЁ СКАЗАЛ!
Автор: afiget
Дата сообщения: 20.04.2008 14:43
kash9
Учитывая, что только нужно обработать только 1 столбец, то я бы использовал собственную отрисовку для колонки, а не для всего грида.
Автор: Czechoslovak
Дата сообщения: 21.04.2008 09:27
kash9

Чего городить огород, есть событие GetContentStyle... чё ещё нужно то???
Автор: programmer1981
Дата сообщения: 22.04.2008 05:41
Утро доброе - такой вопрос - grid - master-details - как убрать "плюсики" - раскрывающий список для тех записей для которых нет соответствий
Автор: OXDBA
Дата сообщения: 22.04.2008 10:10
programmer1981
См. OptionsView.ExpandButtonsForEmptyDetails
Автор: programmer1981
Дата сообщения: 23.04.2008 11:31

Цитата:
programmer1981
См. OptionsView.ExpandButtonsForEmptyDetails


Спасибо - то что нужно

Возник еще насущный вопрос - как раскрасить строки в разные цвета в зависимости от значения в невидимом поле записи

procedure TfmFind.viewFindCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
var
ARec: TRect;
ATextToDraw, val: String;
begin

ATextToDraw := AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index];

ARec := AViewInfo.Bounds;
ACanvas.Canvas.Brush.Color := clBlue;
ACanvas.Canvas.FillRect(ARec);
SetBkMode(ACanvas.Canvas.Handle, TRANSPARENT);
ACanvas.DrawText(ATextToDraw, ARec, 0);
Adone:=true;
end;

Неясно как проверять на значение - откуда брать значение если с датасета фибовского - то глючит сильно - если с Sender: TcxCustomGridTableView или AViewInfo - то незнаю как
Автор: Czechoslovak
Дата сообщения: 23.04.2008 12:59

Цитата:
Возник еще насущный вопрос - как раскрасить строки в разные цвета в зависимости от значения в невидимом поле записи


Используй стили через GetContentStyle, в демках есть пару примеров
Автор: f3ka
Дата сообщения: 23.04.2008 13:34
programmer1981
проверяй значение Sender.DataController.Values[AViewInfo.GridRecord.RecordIndex, HidenFieldIndex] и крась как хочешь
Автор: X11
Дата сообщения: 23.04.2008 14:19
может так?

Код:
procedure TfmImport.gvApartCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
Var
val:boolean;
begin
try
if AViewInfo.GridView.DataController.RecordCount <= 0 then exit;

val := (AViewInfo.GridRecord.Values[colType.Index] <> 0) and
(AViewInfo.GridRecord.Values[colStreet.Index] <> 0) and
(AViewInfo.GridRecord.Values[colRegion.Index] <> 0) and
(AViewInfo.GridRecord.Values[colState.Index] <> 0) and
(AViewInfo.GridRecord.Values[colIS.Index] <> 0);

if not val then begin
ACanvas.Font.Color := clRed;
end;


except
abort;
end;

end;
Автор: programmer1981
Дата сообщения: 24.04.2008 06:10
onGetContentStyle - то что нужно (а то зациклился на Draw ),в репозитории сделал пару стилей и их потом применял

Sender.DataController.Values[AViewInfo.GridRecord.RecordIndex, HidenFieldIndex] - это способ у меня работал как то криво - то ругался на инвалиды варианты причем все жекрасил, причем не совсем правильно
сделал через Arecord.Values - все классно заработало - всем спасибо
Автор: mauar
Дата сообщения: 24.04.2008 15:03
скачал с сайта http://www.fixdown.com ExpressQuantumGrid 6 , она не хочет устанавливаться, пишет Регистрация пакета не найденна. как этот компонент зарегить или обойти данный сабж? Очень надо
Автор: StdNet
Дата сообщения: 24.04.2008 16:19
Доброго дня!
вывожу в GridControl два столбца
cena1 и cena2
как сделать что бы если поле cena1 не равно полю cena2 вся строка подсвечивалась красным цветом. но только одна строка.
Автор: Darl
Дата сообщения: 24.04.2008 17:17
StdNet
void __fastcall TForm1::cxGrid1DBTableView1StylesGetContentStyle(
     TcxCustomGridTableView *Sender, TcxCustomGridRecord *ARecord,
     TcxCustomGridTableItem *AItem, TcxStyle *&AStyle)
{
    if (ARecord->Values[0] <> ARecord->Values[1])
        Sender->Styles->Content = cxStyle1;
    else
        Sender->Styles->Content = NULL;
}

Автор: StdNet
Дата сообщения: 24.04.2008 17:30
я извиняюсь, но я чтото не нашел такого события....
Автор: afiget
Дата сообщения: 24.04.2008 20:22
StdNet
А где искал?
Поиск по справке слова onGetContentStyle
Автор: kkakka
Дата сообщения: 24.04.2008 20:29
Возникла такая проблемка:

при использовании DBVerticalGrid в некоторых строках необходимо хранить большой длины текст, таким образом в одну строку он не влазит и хотелось бы выводить в несколько строк (что-то типа WordWrap). Проверил параметр OptionsView -> CellAutoHeight имеет значение TRUE. По аналогии с QuantumGrid высота строк должна автоматом увеличиваться в зависимости от того влазит ли строка в текущую ширину = в QuantumGrid все работает проверял. А в DBVerticalGrid такого не происходит Подскажите - В ЧЕМ ОШИБКА ???
Автор: CenTRaL82
Дата сообщения: 25.04.2008 04:32
Здравствуйте!
Работаю с DevExpressQuantumGrid, отношение master-detail, два уровня.
Если при открытых деталях выполнить refresh или обновить SQL-запрос, то детали сворочиваются. Как мне поместить указатель на ту ячейку в детали, где она была до обновления?
Я делаю так:


Код:
var
I, AMasterIndex: integer;
ARecMasterID, ARecDetailID: variant;

begin
I := masterView.DataController.FocusedRecordIndex;
with masterView.DataController.GetDetailDataController(I,0) do
begin
ARecDetailID := GetRecordId(FocusedRecordIndex);
I := GetMasterRecordIndex;
end;
ARecMasterID:=masterView.DataController.GetRecordId(I);
AMasterIndex:=masterView.DataController.FocusedRecordIndex;

ado_master.Refresh;
ado_test1.Refresh;

masterView.DataController.LocateByKey(ARecMasterID);
masterView.DataController.ChangeDetailExpanding(AMasterIndex, True);
with TcxGridDBTableView(masterView.Controller.FocusedRow.AsMasterDataRow.ActiveDetailGridView) do
begin
DataController.LocateByKey(ARecDetailID);
cxGrid1.SetFocus;
Focused := True;
end;
Автор: mauar
Дата сообщения: 25.04.2008 08:46
а в ответ тишина

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

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


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