Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid шириною более 255 колонок / 16 сообщений из 16, страница 1 из 1
15.03.2004, 10:47
    #32441448
WildBoar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Возникла необходимость создания грида шириною более 255 колонок. Значительно более. Точное количество колонок неизвестно (определяется настройками пользователя), но может достигать нескольких тысяч. Как там юзеры в них будут разбираться - другой вопрос. Но они хотят "всё и сразу".

Попробовал замутить широкий грид из нескольких более мелких. Но жутко гиморно синхронизировать вертикальный скроллинг.

Сейчас хочу попробовать использовать FlexGrid. Но меня тут коллеги пугают, говорят, что всё тормозить будет. Всего в гриде будет несколько десятков тысяч записей. Полей - несколько тысяч. Два из них текстовые, остальные - INT. VFP7.

Есть у кого-нибудь опыт использования FlexGrid для подобных задач? Может можно использовать какой-нибудь другой контрол?
...
Рейтинг: 0 / 0
15.03.2004, 10:58
    #32441463
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
IMHO. Попроси своих узверей почитать про Ехель. А на форме у ся сделай перегон в его формат. И пусть они уже в тыщах столбунцоф в Ехеле филтры накладывают, ч:Е-та делают и ваще.. ;) Задачка имо не фоксовая
...
Рейтинг: 0 / 0
15.03.2004, 11:20
    #32441519
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Я юзаю для таких целей Office Web Components SpreadSheet ( маленький Excel)
...
Рейтинг: 0 / 0
15.03.2004, 12:18
    #32441659
Grid шириною более 255 колонок
В Excel то же самое ограничение - 255 колонок на листе. Если только автоматически добавлять новые листы...
...
Рейтинг: 0 / 0
15.03.2004, 13:18
    #32441797
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Ой ли?
...
Рейтинг: 0 / 0
15.03.2004, 13:37
    #32441837
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Технические характеристики Excel 2000

Размер листа: 65536 строк и 256 столбцов

Т.е. создание листов с более чем 255 столбцов - это задача для очень специальных продуктов (я так предполагаю - это какой-то текстовый редактор получится)
...
Рейтинг: 0 / 0
15.03.2004, 13:38
    #32441838
Grid шириною более 255 колонок
to CRIP:
Да вот, случайно сам наткнулся. Пришлось делать многолистовую книгу...
Может, я чего не знаю?
...
Рейтинг: 0 / 0
15.03.2004, 13:54
    #32441875
WildBoar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Excel не котируется. Это мы тут уже обсуждали. Из могучего грида ещё сохранение в SQL в фоновом режиме должно происходить. Да и логики там до чёрта на форме накручено. Статистика там всякая, ограничения и пр..
...
Рейтинг: 0 / 0
15.03.2004, 14:11
    #32441910
Grid шириною более 255 колонок
Боюсь, что проблема не разрешима. Во первых, источником данных для Grid является таблица или курсор, для которых существует ограничение на число полей. Во вторых, что самое главное, не нужно идти на поводу у юзверов. Даже если Вам и удастся придумать (не на фоксе) такого монстра, то работать с ним будет просто невозможно, и виноватым окажетесь снова Вы.
...
Рейтинг: 0 / 0
15.03.2004, 14:20
    #32441926
Grid шириною более 255 колонок
to WildBoar
Кстати, если Ваше приложение занимается статистикой, то порекомендуйте юзверям SPSS - специально для них штука придумана. Ребята грузили туда до двух гигов информации - и ничего, работает. Если интересует, могу поделиться процедуркой для формирования из фокса .sps - файла для неё.
...
Рейтинг: 0 / 0
15.03.2004, 14:28
    #32441940
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Ну, чисто технически - это можно обойти через набор связанных таблиц (SET RELATION) Тогда количество полей может быть до 255*N, где N - это как раз количество таблиц.

Проблема только в том, что, если не ошибаюсь, есть ограничение даже не на таблицу, а собственно на Grid.ColumnCount<=255. Это опять же обходим втыкая несколько Grid.

Но по большому счету, согласен с Вячеславом. Не стоящее это занятие. Надо менять постановку задачи, чтобы таких требований не возникало.
...
Рейтинг: 0 / 0
15.03.2004, 14:52
    #32441979
WildBoar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Во первых, источником данных для Grid является таблица или курсор, для которых существует ограничение на число полей.

Легко обходится с помощью нескольких курсоров. Я так уже делал. Всё надёжно работает.

Проблема только в том, что, если не ошибаюсь, есть ограничение даже не на таблицу, а собственно на Grid.ColumnCount<=255. Это опять же обходим втыкая несколько Grid.

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

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

Не получается. Блин. Ну вот поставило высшее рукодство партии такую задачу. Блин два раза.

А вообще-то я просил кого-нибудь поделится опытом борьбы с FlexGrid. Т. к. сам её ни разу не юзал. Какие засады могут всплыть на этом пути?

Или, быть может, кто предложит какой альтернативный контрол?
...
Рейтинг: 0 / 0
15.03.2004, 17:54
    #32442403
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Как вариант:

-) Подавляешь (прячешь) горизонтальный ScrollBar в Grid.
-) Вместо него вешаешь свой на базе ActiveX (Flat ScroolBar)
-) Когда пользователь "докручивает" горизонтальный ScroolBar до некоторой дискретной величины производишь замену источников данных для столбцов.

Ну, а с FlexGrid главная проблема будет в скорости отображения. Ему же предварительно надо вручную заполнить каждую ячейку. Да и я не уверен, что даже у него нет ограничений на количество столбцов
...
Рейтинг: 0 / 0
16.03.2004, 11:16
    #32443059
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
С точки зрения использования задача бредовая, но нет ничего невозможного. Когда-то приходилось писать собственный browse c горизонтальной прокруткой (как возможное направление для размышлений).

Исходим из того, что одновременно на экране может отображаться конечное количество колонок и конечное количество строк. Т.е. достаточно знать начальную и количество отображаемых колонок и строк (для простоты можно ширины всех колонок принять одинаковыми) и динамически формировать курсор для грида. Главное, не зацикливаться на различии понятий строк и колонок - теоретически различий никаких нет. Предусмотреть горизонтальное и вертикальное перемещение в начало/конец, на одну строку/колонку, на одну страницу по горизонтали и вертикали. Понятно, что должна быть таблица со структурой данных, некоторую часть которых в текущий момент отображает грид. Не знаю, насколько сложная расчетная часть, но скорее всего данные уже есть и их нужно только отображать. Уверен, что задача не только разрешима но и даже интересная.

Можно (и лучше) рассмотреть компромиссные варианты, если есть какая-то классификация/разбивка колонок (например по номерам или времени или еще как-нибудь). Тогда можно обойтись обычным гридом, над которым указывается диапазон отображаемых колонок, в котором учесть ограничение на 255 колонок. При изменении диапазона переформировывается грид.
...
Рейтинг: 0 / 0
16.03.2004, 11:25
    #32443079
WildBoar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Да с горизонтальным скроллингом проблем у меня и не было. Тут всё достаточно просто. Проблемы вызывает ВЕРТИКАЛЬНЫЙ скроллинг. Потому что я не могу узнать абсолютный номер самой вехней из видимых в данный момент строк грида.

А то ещё есть какой-то контрол DataGrid. Это что за зверь?

Use the DataGrid control's Columns collection's Count property and the Recordset object's RecordCount property to determine the number of columns and rows in the control. A DataGrid control can have as many rows as the system resources can support and up to 32767 columns.

Кто-нибудь боролся с ним?
...
Рейтинг: 0 / 0
16.03.2004, 18:45
    #32444346
MaestroEv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid шириною более 255 колонок
Для таких вещей изобрели LCD мониторы, которые умеют работать "на боку"
То есть под углом 90 градусов...

То есть задача остается прежней...- это записи - только вправо....Форму для просмотра этого чуда нужно будет сделать и легим поворотом экрана - все ОК!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid шириною более 255 колонок / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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