DE 2013.1.2 не перестаёт "радовать": скин "Office2013White", безусловно, очень красивый, но шибко уж пакостливый - даже если у формы BorderStyle выставить как bsDialog/bsSingle, размер окна всё равно свободно изменяемый. Приходится пока через костыль в виде "resize:=false", но это же как один бетонный столб другим подпирать...
» Использование DevExpress (часть 4)
Кто нибудь сталкивался с торможением при выборе ячеек в локальном cxGrid?
Размер таблицы 40*500, вроде небольшая.
DevEx 12.1.6
Размер таблицы 40*500, вроде небольшая.
DevEx 12.1.6
karlss0n
У меня DevEx 12.1.6. Всё норм.
У меня DevEx 12.1.6. Всё норм.
Цитата:
У меня DevEx 12.1.6. Всё норм.
Сейчас поставил 12.2.6 - проблема частично решилась.
Выделение части данных по прежнему работает плохо.
Заметил, что при включенных скинах выделение чуть медленнее происходит, без них чуть быстрее. Но всё равно лагает.
А решилась проблема с выделением всех ячеек сразу (у меня в одном из гридов 620 000+ ячеек). Раньше на выделение всех ячеек требовалось до 5 минут, сейчас за 1-2 секунды выбирается.
karlss0n
Цитата:
раскройте плиз тайну такого извращения? ну почему нельзя выводить порциями данные? ну например на текущую дату вывести, навряд ли будет большое количество строк.
Цитата:
у меня в одном из гридов 620 000+ ячеек
раскройте плиз тайну такого извращения? ну почему нельзя выводить порциями данные? ну например на текущую дату вывести, навряд ли будет большое количество строк.
karlss0n
Я проверял на 7000 где то.
BlackVetal
+
Я проверял на 7000 где то.
BlackVetal
+
Цитата:
раскройте плиз тайну такого извращения? ну почему нельзя выводить порциями данные? ну например на текущую дату вывести, навряд ли будет большое количество строк.
В наследство досталось
При небольшом количестве записей всё работает хорошо. В любом случае при большом объёме нет видимых причин - почему должно замедляться, но видимо это архитектура cxGrid...
karlss0n
Возможно в компутаре памяти мало. Посмотри на объем процесса программы в памяти.
Возможно в компутаре памяти мало. Посмотри на объем процесса программы в памяти.
Цитата:
у меня в одном из гридов 620 000+ ячеек
раскройте плиз тайну такого извращения? ну почему нельзя выводить порциями данные? ну например на текущую дату вывести, навряд ли будет большое количество строк.
Ну например бывает удобно показать все данные, а потом быстрой фильтрацией найти нужные, средствами самого грида. Можно, конечно, задавать условия для запроса к БД с предварительной фильтрацией и показывать данные по частям, но у схГрида уж больно удобно фильрация реализована, а также быстрый инкрементальный поиск.
Цитата:
620 000+ ячеекНаверное, строк?
А если не секрет, что эта таблица содержит? Список чего?
Цитата:
если TdxRibbonForm.DisableAero := True, то высота формы увеличивается на 2 пикселя.Решено. Восстанавливать размеры окна нужно в обработчике OnShow. У меня было в OnCreate.
У меня размер и положение формы восстанавливается/сохраняется в ini-файле, получается что от запуска к запуску высота окна увеличивается. Т.е. при закрытии формы размер записывается в файл, при открытии этот размер читается и присваивается форме, увеличивается на 2, при закрытии сохраняется и т.д.
Цитата:
Наверное, строк?
А если не секрет, что эта таблица содержит? Список чего?
Нет, именно ячеек. Всего строк ~17 000 и 37 колонок.
Содержит список товара, который возможно отвезти в магазин. Логически побить её на несколько (через выбор даты и т.д.) не получится. Я для себя наметил 3 пути
1) оставить всё как есть
2) использовать локальный dataset (MemData)
3) попробовать перевести её в ServerMode
Добавлено:
Цитата:
Ну например бывает удобно показать все данные, а потом быстрой фильтрацией найти нужные, средствами самого грида. Можно, конечно, задавать условия для запроса к БД с предварительной фильтрацией и показывать данные по частям, но у схГрида уж больно удобно фильрация реализована, а также быстрый инкрементальный поиск.
Да, именно так и есть. Хочется использовать инкрементальный поиск и локальные фильтры. Они работают быстро и хорошо. При всём желании такой же "воздушной" работы при использовании "SQL режима" не получится, можно приблизится, но не достичь =)
К тому же есть особенность - запросы идут к WareHouse, а на него идёт соответствующая нагрузка, поэтому оптимизировать его работу для одновременного, качественного обслуживания OLTP клиентов затруднительно. Под высокой нагрузкой клиент будет периодически лагать, а это не очень хорошо с точки зрения юзабилити, тут надо думать что больше будет раздражать пользователя - небольшие лаги при выборе ячеек (что не основной функционал) или периодические лагания при фильтрации через FilteRow, инкрементальном поиске, что используется значительно чаще.
Я всё же попробую через MemData, возможно это решит все проблемы разом и не нужен будт компромис. О результатах отпишусь.
Цитата:
Нет, именно ячеек. Всего строк ~17 000 и 37 колонок.17000 строк это не много ), а колонки может все сразу не тащить, вряд ли столько надо. Можно и потом отдельным запросом по необходимости.
Цитата:
Я всё же попробую через MemDataМожешь попробовать, но лучше сразу TClientDataSet.
Цитата:
Цитата:
Нет, именно ячеек. Всего строк ~17 000 и 37 колонок.
17000 строк это не много ), а колонки может все сразу не тащить, вряд ли столько надо. Можно и потом отдельным запросом по необходимости.
Вот и про тоже. Не кажется что это слишком много, для того, чтобы появлялись такие вещи.
Цитата:
Цитата:
Я всё же попробую через MemData
Можешь попробовать, но лучше сразу TClientDataSet.
Чем лучше?
17 тысяч строк - это фигня, у меня работали с ~100 тыс. строк и это было ещё в 2008-2010 гг. Полей было не 35, но зато было одно из полей полей текстовое, символов на 400 + Master/Detail.
Компы тогда были не шибко умные. Я не хочу сказать, что всё летало. Но было приемлемо.
Добавлено:
Цитата:
когда будет под миллион записей, тогда есть смысл
Компы тогда были не шибко умные. Я не хочу сказать, что всё летало. Но было приемлемо.
Добавлено:
Цитата:
3) попробовать перевести её в ServerMode
когда будет под миллион записей, тогда есть смысл
Здравствуйте!
Подскажите, пожалуйста, с компонентом TcxDBTreeList. Не отображаются значения элементов.
В datacontroller я указал источник данных - таблица с базы данных, содержит улицы районов города и ссылку на район. В KeyField я указываю поле таблицы с адресами, в ParentField - поле, содержащее привязку к району.
Пока в источнике данных не поставить фильтрацию (к примеру, код района равен 1) все элементы находятся на одном уровне, но названия все равно не отображаются. После установки фильтра в источнике данных - появляется иерархическая структура, но названий нет.
http://s019.radikal.ru/i600/1308/a8/0ad512dbff93t.jpg
Подскажите, пожалуйста, с компонентом TcxDBTreeList. Не отображаются значения элементов.
В datacontroller я указал источник данных - таблица с базы данных, содержит улицы районов города и ссылку на район. В KeyField я указываю поле таблицы с адресами, в ParentField - поле, содержащее привязку к району.
Пока в источнике данных не поставить фильтрацию (к примеру, код района равен 1) все элементы находятся на одном уровне, но названия все равно не отображаются. После установки фильтра в источнике данных - появляется иерархическая структура, но названий нет.
http://s019.radikal.ru/i600/1308/a8/0ad512dbff93t.jpg
по идее должен быть band и привязанные к нему columns
Добавлено:
Просто щёлкни по дереву правой кнопкой мышки и выбери Create all colums. Ненужное скрой.
Добавлено:
Просто щёлкни по дереву правой кнопкой мышки и выбери Create all colums. Ненужное скрой.
Shepot
Цитата:
не соглашусь - фильтровать такое огромное количество строк на клиентской машине - это надо железо хорошее, что на практике не всегда и не везде реализуемо. Это первое.
Второе - это все может вызвать большое количество коллизий с доступом данных (так вроде это называется )
Цитата:
Ну например бывает удобно показать все данные, а потом быстрой фильтрацией найти нужные
не соглашусь - фильтровать такое огромное количество строк на клиентской машине - это надо железо хорошее, что на практике не всегда и не везде реализуемо. Это первое.
Второе - это все может вызвать большое количество коллизий с доступом данных (так вроде это называется )
Как понял, band и columns нужны для настройки внешнего вида отображения данных. Поясните, пожалуйста, подробнее.
Разобрался с отображением. Нужно было в keyField и в ParentField указать одинаковые поля (в моем случае). Помогла вот эта страница руководства: Tree Generation Algorithm in the XtraTreeList
Добавлено:
Появился вопрос другого рода: cxDBTreeList свойство optionsSelection.MultiSelect установил в true.
Как теперь программно получить список отмеченных элементов? Как вообще обратиться к какой-либо строке?
Разобрался с отображением. Нужно было в keyField и в ParentField указать одинаковые поля (в моем случае). Помогла вот эта страница руководства: Tree Generation Algorithm in the XtraTreeList
Добавлено:
Появился вопрос другого рода: cxDBTreeList свойство optionsSelection.MultiSelect установил в true.
Как теперь программно получить список отмеченных элементов? Как вообще обратиться к какой-либо строке?
Roman85R31
column - вывод/ввод данных
band - группа column-ов
Например, если взять транспорт у него есть постоянные характеристики (первый банд) - марка, тип, год постройки, грузоподъемность и т.д. и есть временные характеристики (второй банд) - пробег, время ТО и т.д.
по поводу дерева - на c# есть метод у дерева Selection - выделенная группа элементов, а конкретно к строке либо FocusedNode (текущий элемент) либо Nodes[index] - выбор элемента по индексу.
column - вывод/ввод данных
band - группа column-ов
Например, если взять транспорт у него есть постоянные характеристики (первый банд) - марка, тип, год постройки, грузоподъемность и т.д. и есть временные характеристики (второй банд) - пробег, время ТО и т.д.
по поводу дерева - на c# есть метод у дерева Selection - выделенная группа элементов, а конкретно к строке либо FocusedNode (текущий элемент) либо Nodes[index] - выбор элемента по индексу.
BlackVetal, X11 - огромное спасибо за пояснение и полезную ссылку.
Добавлено:
У tcxdbtreelist есть свойство SelectionCount (int) и Selections[i:int;] (типа TcxDBTreeListNode).
Тогда получение значений всех отмеченных элементов будет вот таким:
Код:
for I := 0 to <TcxDBTreeList>.SelectionCount-1 do
str:= str + VarToStr(<TcxDBTreeList>.Selections[i].Values[<Номер стоблца, из которого брать значение>])+',';
Добавлено:
У tcxdbtreelist есть свойство SelectionCount (int) и Selections[i:int;] (типа TcxDBTreeListNode).
Тогда получение значений всех отмеченных элементов будет вот таким:
Код:
for I := 0 to <TcxDBTreeList>.SelectionCount-1 do
str:= str + VarToStr(<TcxDBTreeList>.Selections[i].Values[<Номер стоблца, из которого брать значение>])+',';
Selected и checked - это разные вещи
Подскажите, как поменять цвет фона закладок в TcxPageControl, сами закладки при необходимости подсвечивать.
Раньше стояла Delphi 2007 + DevExpress v.42 там просто в настройках указывал цвет, + cxPageControl1.Pages[14].Highlighted := true
Сейчас установил XE3 + devcl20120105sdh в результате цвет фона PfgeControl стал серым и cxPageControl1.Pages[14].Highlighted := true не отрабатывает, исчезла подсветка.
Как лечить ??
Раньше стояла Delphi 2007 + DevExpress v.42 там просто в настройках указывал цвет, + cxPageControl1.Pages[14].Highlighted := true
Сейчас установил XE3 + devcl20120105sdh в результате цвет фона PfgeControl стал серым и cxPageControl1.Pages[14].Highlighted := true не отрабатывает, исчезла подсветка.
Как лечить ??
jvthegost
xe2, та-же сборка девок, highlighted работает.
скины используются в проекте?
xe2, та-же сборка девок, highlighted работает.
скины используются в проекте?
Вопрос снимается. Видать компонента стала криво, сейчас переставил, цвета и highlighted вернулись в свое русло.
вычисляемые поля работает не правильно . ребята пожалуйста если кто то сможет помочь .
Price
3,50
2,60
Quantity
2
3
5
Если Price * Quantity неправильно читает
Добавлено:
Вот первый пример .... НЕ РАБОТАЕТ, ПОКАЗЫВАЕТ НЕ ПРАВИЛЬНЫЙ ОТВЕТ
Код: procedure TForm1.cxDBPivotGrid1Field1CalculateCustomSummary(
Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary);
var
a , b: Double;
begin
a := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1UnitPrice, stSum);
b := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1Quantity, stSum);
cxDBPivotGrid1Field1.DataBinding.ValueType := 'Float';
ASummary.Custom := a * b;
Price
3,50
2,60
Quantity
2
3
5
Если Price * Quantity неправильно читает
Добавлено:
Вот первый пример .... НЕ РАБОТАЕТ, ПОКАЗЫВАЕТ НЕ ПРАВИЛЬНЫЙ ОТВЕТ
Код: procedure TForm1.cxDBPivotGrid1Field1CalculateCustomSummary(
Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary);
var
a , b: Double;
begin
a := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1UnitPrice, stSum);
b := ASummary.Owner.GetSummaryByField(cxDBPivotGrid1Quantity, stSum);
cxDBPivotGrid1Field1.DataBinding.ValueType := 'Float';
ASummary.Custom := a * b;
Отладчик Вам в помощь. Нужно понять, на каком этапе ошибка. То ли неправильно получаете параметры UnitPrice и Quantity, то ли по-другому нужно присваивать конечное значение ASummary.Custom
Здравствуйте!
У меня cxgrid для Delphi (VCL).
Мне нужно подкрасить определенную ячейку в таблице при нажатии кнопки пользователем. Пробовал воспользоваться событием cxGrid1DBTableView1CustomDrawCell
Работает.... но сек через 5-10. А мне нужно подсветить ячейку другим цветом сразу же!!!
Не подскажите как сделать?
У меня cxgrid для Delphi (VCL).
Мне нужно подкрасить определенную ячейку в таблице при нажатии кнопки пользователем. Пробовал воспользоваться событием cxGrid1DBTableView1CustomDrawCell
Работает.... но сек через 5-10. А мне нужно подсветить ячейку другим цветом сразу же!!!
Не подскажите как сделать?
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.