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

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

Автор: Kr_Alex
Дата сообщения: 08.06.2005 09:20
У кого-нибудь есть файлик с изменениями которые были сделаны в майских DevEx?
Автор: golkanavt
Дата сообщения: 08.06.2005 11:10
mln141
Нет, нельзя.. на печать грид выводится в том виде как он у тебя отрисовывается на экране. Как вариант - только извращаться с сохранением состояния перед печатью и последущим востановлением. у меня была подобная задача, мне помимо раскрытия уровней еще необходимо стили менять, чтобы на печати грид был черно белым а не в цветах.
Автор: mln141
Дата сообщения: 08.06.2005 13:32
golkanavt

Понял. А насчет стилей то это я решил просто - создал StyleSheet черно-белый и установил report linkу именно его. В результате на экране в цвете (как стиль грида), а на печати ч/б
Автор: VKab
Дата сообщения: 08.06.2005 16:39
Поделитесь опытом, кто чем пользуется, когда нужно табличное представление, естественно, единый стиль приложения, но тяжелый девексповский Grid использовать, все-равно что микроскопом по гвоздям?

Поясню:
На форме должно присутствовать несколько табличных элементов, всего в 3-4 колонки и строк по 5-10 максимум. Строки должны редактироваться, желательно с использованием девовсих компонентов (напр. PopupControlEdit).
С XtraGrid все, конечно, легко делается, но форма, после добавления очередного грида, открывается ощутимо долго?

Чем пользоваться?
Или можно оптимизировать работу с гридом?


Или пользоваться обычным DataGrid с позиционированием элементов редактирования в нужные ячейки?
Автор: xxxxsoft
Дата сообщения: 08.06.2005 18:51
Kr_Alex
Могу подсказать где моно утащить весь майский Devex... дуй в личку...
Автор: Kr_Alex
Дата сообщения: 09.06.2005 12:20
xxxxsoft
все таки хотелось бы и файл с изменениями
Автор: xxxxsoft
Дата сообщения: 10.06.2005 06:51
Хотелось бы сделать следующее:
Есть два уровня в гриде, когда делаешь печать, то автоматом откр. Все подуровни и после печати не совсем удобно смотреть на грид в котором открыты подуровни для каждой записи.
Как можно одним махом их закрыть, то есть свернуть?
Автор: mln141
Дата сообщения: 10.06.2005 08:31
xxxxsoft

Можно сделать так:

cxGrid1DBTableView1->DataController->Groups->FullCollapse();

аналогично FullExpand для раскрытия.
Автор: int23
Дата сообщения: 10.06.2005 15:39
В последних Девках заметил, что для детальных записей, входящих в группу отсутсвует отступ....А я к нему так привык. Может подскажет кто-нить как его вернуть...Может новые свойства появились?

Добавлено:
Как сделать чтобы в VerticalGrid курсор выставлялся на заданную строку?
Автор: VKab
Дата сообщения: 10.06.2005 17:48
int23
VerticalGrid.FocusedRow = rowMyRow; // что-то типа того...
Автор: xxxxsoft
Дата сообщения: 11.06.2005 05:07
mln141
Спасибо, но когда обновляешь данные, то есть закрываешь и открываешь DataSet, то он все сворачивает.....


Добавлено:
mln141
Упс я не много не это имел ввиду, то что ты мне предлагаешь это справедливо для групп, я говорю про мастер детайл. Нужно одним махом разворачивать и сворачивать все детали.
Автор: Alex47
Дата сообщения: 12.06.2005 10:29
xxxxsoft

Цитата:
Нужно одним махом разворачивать и сворачивать все детали.


Рекурсивное раскрытие записей MasterView:
TcxGridDBTableView(cxGrid1.MasterView).ViewData.Expand(True);

Рекурсивное сворачивание записей MasterView:
TcxGridDBTableView(cxGrid1.MasterView).ViewData.Collapse(True);

Подробнее смотри в Help.
Автор: KRS545
Дата сообщения: 12.06.2005 15:24
Привет всем.
Использую BandedTable в cxGrid'е (версия последняя - майская).
Проблема такая:
В первом Band'е находиться ImageComboBox, кот. занимает двойную высоту.
Во втором обычные колонки в два ряда. Когда в ImageComboBox подставляю ImageList c изображениями 32х32, все колонки по высоте становятся 32, а колонка в первом Band'е - соответственно 64.
Никто не сталкивался?
В dxGride(3.2) все было нормально.
Автор: xxxxsoft
Дата сообщения: 12.06.2005 19:09
Alex47
Спасибо...
Только вот с help-ми напряг я сурсы из инета вытянул, но там хелпов не было, вот только что в исхлодниках найду, то и делаю....
А У Вас нет случаем хорошего help-a по из Планировщику и желательно демки для VCL...
Заранее боагодарен....
Автор: Alex47
Дата сообщения: 13.06.2005 09:42
xxxxsoft

А сдесь Вы были:

http://forum.ru-board.com/topic.cgi?forum=35&topic=24919&start=1660
Автор: Sexton
Дата сообщения: 13.06.2005 18:49
Бьюсь над проблемой, которую никак не могу решить. Delphi7+cxGrid5.3+FIBPlus6.2+Firebird1.5
Две таблицы мастер-деталь: COUNTRY и CITY. Проблема с тем, что у детали (CITY) отображается только часть записей, соответствующих мастеру (COUNTRY). Причем набор 'пропавших' записей меняется 'случайным' образом.
Облазил примеры, форумы. Попробовал все, что нашел. Знаю, что такая проблема возникает, когда деталь не отсортирована по полю, связывающему ее с мастером. У FIBDataSet детали в select поставил 'ORDER BY COUNTRY_ID'. Не помогает. Если просто отобразить CITY в cxGrid (без COUNTRY), то все записи нормально отображаются, отсортированные по COUNTRY_ID.
Если кто сталкивался с такой проблемой или может посоветовать, что еще можно попробовать, буду благодарен.
Автор: Sexton
Дата сообщения: 14.06.2005 07:18
Сам же и нашел ответ в ньюсах от некоего Silvano Sam:

> Hi,
> With IBExpress Master Detail works correctly but with Fibplus 6.2/6.1, QG5
> don't show all record detail.
>
> Is it problem of quantum grid or Fibplus?
> Any comment on this problem?

Hi,

I have solved my problem. In Fibdataset, in PrepareOptions set property
psGetOrderInfo to False.
Автор: int23
Дата сообщения: 14.06.2005 08:56
VerticalGrid.FocusedRow = rowMyRow; // что-то типа того...

Пробовал я так. Получается, что фокус получает вся строка....А мне нужно чтобы поле редактирование для самого значения и чтобы в конец строки а не заменялось...
Автор: xxxxsoft
Дата сообщения: 14.06.2005 09:36
Alex47
Да был я там, но там 100 страниц писть смысла нет сразу скажут лопать весь форум, а поиск дло сих пор не сделали.
Автор: golkanavt
Дата сообщения: 14.06.2005 12:14
xxxxsoft
а ты пробуй версию для печати, не найдешь - обращайся к мемберам, помогут. если результата не будет, то стучись в личку.

у меня такой вопрос, может кто сталкивался с подобным: есть связка мастер-деталь, соответственно, двухуровневый грид. Мастер в свою очередь связан с другим датасетом верхнего уровня(назовем его мегамастеро ), так вот при переходе с записи на запись в мегамастере, каждый раз открывается первая запись детали, что не есть гуд. попытка выполнить рекурсивное сворачивание при переоткрытии датасета ничего не дает, видимо это событие обрабатывается где то глубже. зато если сворачивание повесить на кнопку, все работает на ура. есть у кого какие соображения на сей предмет?
Наглядный пример: (вверху - мегамастер, ниже - грид с мастер-деталью)
Автор: Alex47
Дата сообщения: 14.06.2005 13:43
golkanavt

Можно использовать обработчики событий:

cxGrid1DBTableViewMaster.DataController.OnDetailExpanding
cxGrid1DBTableViewMaster.DataController.OnDetailExpanded

В OnDetailExpanding, если AAllow := False; то
раскрытие программно запрещается.

Добавлено:
xxxxsoft

Цитата:
но там 100 страниц писть смысла нет сразу скажут лопать весь форум

Ну, не так все страшно.
Вас должна интересовать шапка и 78 страница.
Не мешает посмотреть и следущие за ней.
Автор: Alex1978
Дата сообщения: 14.06.2005 16:08
DBVerticalGrid в нем MaskEdit - как получить введеное значение?
Автор: xxxxsoft
Дата сообщения: 15.06.2005 05:25
Alex1978
У него должно быть событие смены значения, посмотри все события выстовленного проперти.....
Автор: Alex1978
Дата сообщения: 15.06.2005 08:05
xxxxsoft
Да есть OnEditValueChanged. Вот только xxx.Properties.Value всегда одно и тоже.
Автор: xxxxsoft
Дата сообщения: 15.06.2005 20:24
Alex1978
ты посмотри сво-во DisplayText или что-то подобное я сейчас не помню давно помню рылся а девку сейчас влом открывать систему перставляю вирусы атаковали....
Автор: Alex1978
Дата сообщения: 16.06.2005 08:01
xxxxsoft
Тоже самое.
Автор: golkanavt
Дата сообщения: 16.06.2005 10:35
кстати, если кому интересно, нашел решение своей проблемы описанной выше.
подобное поведение жестко зашито в коде грида, поэтому приходится править сырцы:


Код: unit cxDBData
...
function TcxDBDataController.SyncMasterDetail: TcxCustomDataController;
...

if AEqualFlag then
begin
{ ADataController := AMasterDataController.SyncMasterDetail;
if ADataController <> nil then
Result := ExpandDetails(ADataController, AMasterRelation.Index);}
SyncMasterPos;
end;
Автор: Alex47
Дата сообщения: 16.06.2005 12:42
golkanavt

А разве использование cxGrid1DBTableViewMaster.DataController.OnDetailExpanding
не помогает?
Этот обработчик и был добавлен, кажется, начиная с версии 4.5 для
управления раскрытием Detail.
У меня работает, правда ситуация несколько иная.
Автор: int23
Дата сообщения: 16.06.2005 14:01
Как в cxGridDBTableView в обработчике двойного клика определить на какой столбец кликнул пользователь?

Добавлено:
Нашёл решение. Вот это свойство cxGridDBTableView.Controller.FocusedColumn
Автор: xxxxsoft
Дата сообщения: 16.06.2005 17:52
golkanavt
Ух как вовремя я как в исходниках этот кусок кода искал, хотел поправить...
Молодец.....


Добавлено:
Alex1978
Да быть того не может:

Код:
void __fastcall TFrmQuickDeal::PricePropertiesValidate(TObject *Sender,
Variant &DisplayValue, TCaption &ErrorText, bool &Error)
{
double price, count;
Table->DataController->DataSource->DataSet->FieldByName("Price")->AsCurrency=DisplayValue;
price=DisplayValue;
AnsiString tmp=Count->Properties->GetDisplayText(Count->EditValue,true);
try{
count=tmp.ToDouble();
}
catch(...){return;}
Table->DataController->DataSource->DataSet->FieldByName("Sum")->AsCurrency=price*count;
TotalSum(price*count);
}

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Kylix


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