powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VirtualTreeView: многострочный текст в ячейках
41 сообщений из 41, показаны все 2 страниц
VirtualTreeView: многострочный текст в ячейках
    #39816162
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то настроить VirtualStringTree, чтобы для длинного текста в одной из ячеек он автоматически увеличивал высоту всей ноды и отрисовывать текст в этой ячейке в несколько строк по образцу своих аналогов из DevExpress?
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816197
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F,

можно. Помечаешь нужные узлы как "многострочные":

Код: pascal
1.
2.
3.
4.
5.
TBaseVirtualTree = class(TCustomControl)
...
  public
...
   property MultiLine[Node: PVirtualNode]: Boolean read GetMultiline write SetMultiline;



А событии OnMeasureItem высчитываешь высоту. Например - по количеству строк, разделенных #10.
Сначала проверяешь, что данных нод - многострочный
Код: pascal
1.
  if Sender.MultiLine[Node] and (NodeHeight > 0) then


Потом сканируешь текст нужных столбцов


Код: pascal
1.
2.
3.
4.
    for i := 0 to Pred( дерево.Columns.Count) do
    begin
      fColText := дерево.Text[Node, i];
      анализ текста столбца , фиксация максимальной высоты нода в fMaxLFCnt



Потом вычисляешь высоту нода с учетом шрифта.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
    TargetCanvas.Font := Sender.Font;

    if дерево.Header.Columns.Count > 1 then
      NodeHeight := дерево.ComputeNodeHeight(TargetCanvas, Node, 1, ' ')
    else
      NodeHeight := 13;// Например

    NodeHeight := NodeHeight * (fMaxLFCnt + 1) + 3;
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816353
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Отоночо, Михалыч! (с))
Даже боюсь дальше спрашивать, - со строкой заголовков - тоже так?
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816364
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF

просто взгляд человека со стороны: явная недоработка компонента, странно что за столько лет не сделали свойства .AutoHeight:boolean. Или сделали?
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816366
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Впрочем, с заголовком уже в демке нашел, спасибо.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816370
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Ну, дык, нетути, судя по всему.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816371
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816443
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Что-то, и даже многое, вне всякого сомнения, есть, но ты уверен, что по ссылке это самое оно?
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816512
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, это я поспешил
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816566
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F,

можно и к заголовку. Свойство Height ты можешь поменять в любой момент после изменения ширины столбцов и текста колонки, как хочется. Надо только заставить верно текст отображаться.
Посмотри внутрь метода TVirtualTreeColumns.PaintHeader.
У хэдера надо установить owner draw mode, и заюзать события OnHeaderDrawQueryElements и AdvancedHeaderDraw. В первом определяешь, что нужно рисовать "особым образом" (set of THeaderPaintElements), второе вызывается применительно к этим элементам - тут и рисуй.

Мы так делали, например, объединенные колонки.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816582
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VTV настолько богат возможностями, что некоторые вещи приходится делать довольно-таки большим количеством кода.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816588
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Заголовок, проехали, я же вроде сразу поправился, ибо многострочность в нем все-таки управляется свойствами.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816597
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2VTV настолько богат возможностями, что некоторые вещи приходится делать довольно-таки большим количеством кода.
Да. И даже многие простые вещи в нем приходится делать с нуля. "Виртуализация" - это хорошо, но со временем достаёт.

Я все реже его использую, и все чаще что-либо из DevExpress или EhLib.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816625
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Счастливчик, хех. Передо мной сейчас задача перевода одного серьезного приложения с DevExpress на стандартные или фриварные компоненты.
Это какой-то ацкий ад.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816812
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FПередо мной сейчас задача перевода одного серьезного приложения с DevExpress на стандартные или фриварные компоненты.

Как возникли такие требования? Время программиста, ведь, тоже не бесплатное ....
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816832
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет таких бесплатных компонентов, ну как минимум ehlib нужен, на стандартных ты аналога не сделаешь.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816872
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
энди,

+11050.
И VTV в 2019 использовать - нет больше причин, кроме поддержки старых проектов. Гемор один.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816902
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё> И VTV в 2019 использовать - нет причин

А чего так? Разонравилось, девки ваше всё?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816909
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамёёёёё> И VTV в 2019 использовать - нет причин

А чего так? Разонравилось, девки ваше всё?

Например, для создания редактируемой таблички всякий создавать реализацию интерфейса IVTEditLink, подсовывать их в обработчике OnCreateEditor, руками отрабатывать условия старта и завершения редактирования - это все немеряно гибко и увлекательно, но съедает время.

Даже "высший пилотаж" с DevExpress, когда работаешь с кастомными источниками данных и редакторами, реализуется куда быстрее.
Ну да, с DevExpress изначально нужно долго разбираться, зато потом есть масса готовых вариантов применения. А с VTV хардкодить приходится все время. Да, наработаны заготовки, но по факту получилось ничуть не лучше предлагаемого готового, а как бы не наоборот.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816934
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёНапример, для создания редактируемой таблички всякий создавать реализацию интерфейса IVTEditLink, подсовывать их в обработчике OnCreateEditor, руками отрабатывать условия старта и завершения редактирования - это все немеряно гибко и увлекательно, но съедает время.
Это только если редактировать через нестандартные контролы, а обычный Edit есть из коробки.
К тому же вот есть эти наработки, а кто-то хоть раз ими поделился с разработчиками? Вот и сидят все свои велосипеды пилят.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39816945
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2,

редактор "из коробки" очень уж убог, непонятно зачем он вообще реализован.
...

Делиться с разработчиком - чем? Фишка VTV как раз в том, что в нем все по-максимуму вынесено "наружу" - кастомизируй на здоровье. Другое дело, это самое "здоровье" - ресурс ограниченный.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39817208
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёВасилий 2,

редактор "из коробки" очень уж убог, непонятно зачем он вообще реализован.
...

Делиться с разработчиком - чем? Фишка VTV как раз в том, что в нем все по-максимуму вынесено "наружу" - кастомизируй на здоровье. Другое дело, это самое "здоровье" - ресурс ограниченный.
Убог? Обычный виндовый/мсд-ный edit. Что еще нужно для простых ячеек?
Делиться, к примеру, реализациями editlink.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39817432
ain-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёГаджимурадов Рустамёёёёё> И VTV в 2019 использовать - нет причин

А чего так? Разонравилось, девки ваше всё?

Например, для создания редактируемой таблички всякий создавать реализацию интерфейса IVTEditLink, подсовывать их в обработчике OnCreateEditor, руками отрабатывать условия старта и завершения редактирования - это все немеряно гибко и увлекательно, но съедает время.
А что за причина такая, что не даёт вам один раз втулить нужное в VTV и пользоваться этим на своё здоровье?
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39817470
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ain-2,

Настоящих буйных мало, вот и нету вожаков. (с))
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39817489
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то давно, ниасилив понять почему так сложно пробежаться по датасету без парадигмы "текущая запись, и только так", сделал себе массив рекордов, прицепив их к подобию DrawGrid. Тогда мне для этого попался GridView от Романа Мочалова.
Что бы каждый раз при использовании не писать новых рекордов и обработчиков, организовал это в виде "динамического массива" с динамически объявляемыми полями.
Через какое-то время мне понадобилось от грида что-то, чего там не было, или я не нашел, кажется работа с колесом мыши.
Перешел на VTV. В нем кое-чего нет, что было в гриде Мочалова, но есть колесо и его же можно использовать при нужде в дереве.

Таким образом, мне не нужны ни родные датасеты, ни дбгриды, вообще никакие дб-контролы.
Переползал несколько раз с одной версии Дельфи на другую, и именно с этим комплектом у меня не было никаких проблем.

Так что, некотрая степень "буйности", имеется :)
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39817512
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

да, не вполне понятно, почему в "стандартном" датасете единственный итератор. Может быть, так сделали, чтобы не возникало проблем с синхронизацией при изменениях.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39817530
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks> Таким образом, мне не нужны ни родные датасеты

Сразу из запроса в свой массив засасываешь что ли?
А синхронизация как тогда? Или после каждого
изменения процедура повторяется с нуля?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39818635
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамfraks> Таким образом, мне не нужны ни родные датасеты

Сразу из запроса в свой массив засасываешь что ли?
А синхронизация как тогда? Или после каждого
изменения процедура повторяется с нуля?


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
// CDS - буфер данных (замени, заменитель датасета
// CDV - компонент который связывает мой буфер данных (CDS) с визуальными компонентами

procedure TFrmBase.F5;
begin
 // запомнили параметры текущей строки ID, ROW_NUM и еще чего-то
  CDV.RowSavePosition;

 // выполнили запрос лежащий в QSel, результат сложили в буфер
 // если поле возвращаемое запросом в буфере отсутствует - оно создается
 // если поле уже есть - используется существующее
 // перед выполнением запроса буфер СВЫ очищается от данных, но для некоторых случаев есть процедура без очистки
  CDS.ExecSelect(QSel);
                                 
 // взбодрим визуальщину, в первую очередь объявим гриду сколько строк данных в CDS и сколько полей
 // так же синхронизируем список полей в гриде со списком в CDS
  CDV.Sync;

 // репозиционируемся на ту же строку где стояли, если это возможно
  CDV.RowRestorePositionID;
end;



Редактирование в гриде не применяется. Только путем открытия другой формы, где поля одной текущей записи, в данном случае это сделано в процедуре BaseEdit (редактирование записи в справочнике баз)

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TFrmBase.ItemEditClick(Sender: TObject);
var
  id: integer;
  iRow: cardinal; // текущая выбранная строка в дереве
begin
  if not CDV.RowSelected(iRow) then Exit;
  id := CDS.ReadIntegerFN (iRow, 'ID');
  //
  if BaseEdit(id) then begin
    F5; // позиционирование на ID там уже есть
  end;
end;



После редактирования в большинстве случаев обновляется весь буфер, процедурой F5, и позиционируемся на ту же запись где были. В локалке это не составляет проблем, при не долгоиграющем запросе. Если запрос тяжелый - то можно после редактирования обновить одну запись, но для этого нужно писать отдельный запрос.

Иногда работаю по другому - получил записи, сложил в буфер, добавил/убавил, поредактировал в буфере же. И потом по результатам редактировая уже иду по массиву и выполняю insert/update/delete.

Все достаточно прямолинейно.

Вся эта музыка занимает примерно 200кб на паскале.
Код непригоден для публикации т.к. тут же закидают какахами, однако для внутреннего применения у меня уже работает более 10 лет, естественно с заточками под очередные нужды.

У полей массива есть форматирование, можно делать форматы не извращаясь на сервере.
И минимальные возможности раскраски - для всей строки: цвет, стиль шрифта, цвет фона

Сортировка данных кликом на шапке грида (одна или более колонок), ненужные поля можно скрывать.
Не сделано фильтрации, не запоминается позиция колонок, но не особо пока и требовалось...
Запоминается ширина колонок.

В гриде Романа Мочалова можно было делать многострочные заголовки колонок, можно было делать выравнивание заголовков, в VTV этого нет, или не из коробки.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39818813
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks> procedure TFrmBase.F5;
fraks> CDV.RowSavePosition;
fraks> CDS.ExecSelect(QSel);
fraks> CDV.Sync;
fraks> CDV.RowRestorePositionID;
fraks>
fraks> После редактирования в большинстве случаев обновляется весь
fraks> буфер, процедурой F5, и позиционируемся на ту же запись где были.

Понятно, спасибо.

fraks> Сортировка данных кликом на шапке грида (одна или более колонок)

А сортировку как делаешь, тоже полным рефрешем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39818825
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksКогда-то давно, ниасилив понять почему так сложно пробежаться по датасету без парадигмы "текущая запись, и только так" ...

TDBGrid, например, для отображения данных из множества записей, манипулирует свойством .ActiveRecord датасета. Смещая его, а затем возвращая назад. Таким образом текущая запись как бы остается текущей (смотри метод TCustomDBGrid.DrawCell ). Но напрямую значениое ActiveRecord не изменить, надо это делать через DataLink
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39818935
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамfraks> procedure TFrmBase.F5;
fraks> CDV.RowSavePosition;
fraks> CDS.ExecSelect(QSel);
fraks> CDV.Sync;
fraks> CDV.RowRestorePositionID;
fraks>
fraks> После редактирования в большинстве случаев обновляется весь
fraks> буфер, процедурой F5, и позиционируемся на ту же запись где были.

Понятно, спасибо.

fraks> Сортировка данных кликом на шапке грида (одна или более колонок)

А сортировку как делаешь, тоже полным рефрешем?


Нет, сортировка которая у меня делается по клику на хедере - она выполняется сугубо на клиенте.
У меня массив CDS сделан на основе TList, а сортировка - через его QuickSort. Пришлось написать только свои компаре в соответствии с типом данных, направлением сортировки и набором полей сортировки.
Это в моих CDS/CDV поведение по умолчанию, ничего дополнительно делать не нужно, сортировка всегда есть "искаропки".

Если нужна именно серверная сортировка - то это программируется отдельно, но это нужно в единичных случаях.

Так же в Popup меню грида/дерева достраиваются пункты меню

- "Сохранить в файл" DBF/XLS/CSV
- Поиск по подстроке

К хедеру грида автоматичски цепляется попап-меню, в котором по правой кнопке мыши открывается:

- список Caption полей в CDS, поставив/убрав чекбокс можно показать/скрыть поле в гриде
- список Name полей CDS, с указанием типа данных

Так же в прилинкованный к CDV статус-бар в первую панель выводится количество записей, во вторую - время выполнения запроса, если данные в CDS попали через CDS.ExecSelect
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39818936
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще в моем CDS сделан поиск по полю, на равенство. Если по этому полю сделана сортировка то поиск ведется не перебором а "половинным делением", если не ошибаюсь в названии метода. Соответственно, никаких иных словарей мне не требуется, у меня свой есть, с неограниченным количеством полей.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39818963
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В fib+ датасет шикарный, и поиск есть "асинхронный", и локальный фильтр, и экспорт-импорт, и т.д.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819047
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёВ fib+ датасет шикарный, и поиск есть "асинхронный", и локальный фильтр, и экспорт-импорт, и т.д.

Это все появилось позже, кроме того - он именно что датасет, а мне эта парадигма категорически не нравится.
И по разборкам с фибами - нужно потыкаться в кучу мест, сделать какие-то тесты, поспрошать по форумам что бы понять как с ним толком работать, учесть все его фичи. Если мне нужно немногое - то проще сделать самому и не разбираться с чужим. избыточным для меня кодом.
В свое время просил сделать FIBLite - где есть только базовые вещи, типа как в UIB, и отдельным пакетом все датасеты и прочее.
Но было понятно что едва ли авторы возьмутся за такое глобальное разделение при минимальном спросе.
Я бы купил Lite, за полную цену фибов. Но нету такого.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819149
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks> Нет, сортировка которая у меня делается по клику
fraks> на хедере - она выполняется сугубо на клиенте.
fraks> У меня массив CDS сделан на основе TList

Подожди, а этот твой брифкейс - он для всех наборов данных, даже
для больших? Или ты всегда принудительно ограничиваешь First 1000 ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819173
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустамfraks> Нет, сортировка которая у меня делается по клику
fraks> на хедере - она выполняется сугубо на клиенте.
fraks> У меня массив CDS сделан на основе TList

Подожди, а этот твой брифкейс - он для всех наборов данных, даже
для больших? Или ты всегда принудительно ограничиваешь First 1000 ?


Гугление про "брифкейс" дало понимание что речь про барсетку :)

Если серьезно, то First конечно можно употреблять, но это как бы крайняя мера, т.к. сразу возникает вопрос все я увидел или нет.
Так что в основном у меня ограничения строятся в интерфейсе таким образом что бы юзери не хотели странного и не тянули десятки тысяч записей без нужды.

При этом, при реальной нужде я без проблем получаю туда и 50 и 100 тысяч записей.
К примеру формирование прайса. Во временной таблице на сервере колдую над включением/исключением товаров по различным условиям, получаю там список ID и потом сджойнив все это дело тяну на клиента в CDS. Потом уже на клиенте делаю некотрые удобные агрегаты, типа суммы по издательствам, и оттуда уже делается экспорт в файл нужного формата.

Работает мой CDS весьма быстро и 1000 записей - не является для него "большой выборкой". На фоне самого фетча расходы на CDS незаметны.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819181
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру, получение справочника авторов, формата ID, NAME,
47 тысяч записей, занимает 0,359сек

Используем на работе стороннюю программу для работы с заказами, так получилось что она написана на Delphi + Firebird.
Но в Delphi применены какие-то компоненты с красотами, блэкджеком и прочим.
Я лезу у ту же базу и получаю оттуда те же данные.
Чужая программа делает это за 2-3 секунды, моя - за 0,1сек.
Как так можно тормознуть работу - не понимаю. Наверное там развесистый датасет, визуальщина, красоты, фильтры и проч.
Но нафига это все такой ценой?
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819479
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks> Гугление про "брифкейс" дало понимание что речь про барсетку :)

Странно, ты вроде с Толей лично знаком.
Он, видимо, не хотел усложнять твой слух
сложными буржуйскими терминами. :-)

http://delphiplus.org/delphi-i-tekhnologiya-com/model-briefcase.html
https://rsdn.org/article/db/briefcase1.xml#E3C

fraks> Если серьезно, то First конечно можно употреблять, но это как
fraks> бы крайняя мера, т.к. сразу возникает вопрос все я увидел или нет.
fraks> Так что в основном у меня ограничения строятся в интерфейсе
fraks> таким образом что бы юзери не хотели странного и не тянули
fraks> десятки тысяч записей без нужды.

Володь, это всё хорошо, конечно, если пользователи сюблюдают эти
твои рекомендации и оптимально используют возможности функционала.
А если несколько человек начнёт 100 тыщ записей туда-сюда гнать по 10
раз в минуту - может статься, что серверный вариант был бы лучше.

Впрочем, это так, мысли вслух, просто удивился.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819555
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВолодь, это всё хорошо, конечно, если пользователи сюблюдают эти
твои рекомендации и оптимально используют возможности функционала.
А если несколько человек начнёт 100 тыщ записей туда-сюда гнать по 10
раз в минуту - может статься, что серверный вариант был бы лучше.


Вопрос в том что у пользователя не должно быть возможности ослаблением фильров, при всем желании, получить 100 тысяч записей.
У меня такое возможно только если в журнале документов поставить фильтр не 10 дней а 5000 дней.
В остальных местах никаких сотен тысяч не получается.

И не понял, что такое "серверный" вариант?
Если про сортировку - то естественно, запросы выдают результат уже изначально сортированный в наиболее применимом варианте сортировки. И если пользователю вдруг понадобится посмотреть не совсем стандартное, например максимальная сумма документа - то достаточно отсортировать по сумме.
...
Рейтинг: 0 / 0
VirtualTreeView: многострочный текст в ячейках
    #39819719
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks> В остальных местах никаких сотен тысяч не получается.

Ну тогда и смысла париться нет.

> И не понял, что такое "серверный" вариант?

Это когда order by делается на сервере, есессно.
Это хуже, если юзеры щелкают по столбцам
туда-сюда на мелких гридах по 30 записей,
возвращенных тяжелыми запросами, и лучше,
если записей много (а запросы не тяжелые).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
VirtualTreeView: многострочный текст в ячейках
    #40091095
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён


Вот СПАСИБО тебе, добрый человек! А я уж замучился врукопашную экспериментировать, а тут решение - простое и готовое!
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / VirtualTreeView: многострочный текст в ячейках
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]