powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма с функциональностью табличной и заголовками более одной строки
35 сообщений из 35, показаны все 2 страниц
Форма с функциональностью табличной и заголовками более одной строки
    #39225314
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется широкая табличная форма с множеством столбцов, многоие столбцы имеют довольно длинные заголовки при коротких цифровых данных. Задача предоставить пользователю возможность произвольно сортировать и фильтровать данные в этой форме, при этом в идеале заголовки должны быть в несколько строк, чтобы излишне не растягивать форму по горизонтали (из-за ограничения Акцесса по ширине, уже влияет) с возможностью выделить группы заголовков цветом. Желательно, но не обязательно менять ширину столбцов, скрывать и перемещать их. Я вижу 2 варинта решения:
1. Реализовывать функционал сортировки и мультивыборной фильтации на ленточной форме
2. "Навесить" сверху столбцов табличной формы цветные заголовки, которые должны будут каким-то образом отслеживать ширину столбцов табличной формы и меняться в зависимости от этого.

Что посоветуете?
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225328
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolunteerИмеется широкая табличная форма с множеством столбцов, многоие столбцы имеют довольно длинные заголовки при коротких цифровых данных. Задача предоставить пользователю возможность произвольно сортировать и фильтровать данные в этой форме, при этом в идеале заголовки должны быть в несколько строк, чтобы излишне не растягивать форму по горизонтали (из-за ограничения Акцесса по ширине, уже влияет) с возможностью выделить группы заголовков цветом. Желательно, но не обязательно менять ширину столбцов, скрывать и перемещать их. Я вижу 2 варинта решения:
1. Реализовывать функционал сортировки и мультивыборной фильтации на ленточной форме
2. "Навесить" сверху столбцов табличной формы цветные заголовки, которые должны будут каким-то образом отслеживать ширину столбцов табличной формы и меняться в зависимости от этого.

Что посоветуете?
Что тут посоветуешь.
>>Имеется широкая табличная форма с множеством столбцов
Скоко примерно?
Ёкселем попахивает.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225342
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,
В районе 40. Хочется все это увидеть одновременно, а не прокручивать форму постоянно. Эксель не вариант, т.к. форма не только показывает, но и редактирует данные. Это симулятор прибыльности предприятия. В нефильтрованном виде там сотни тысяч исторических записей, и пользователь должен иметь возможности менять параметры сразу для многих записей (например для группы товаров), выставляя разные типы скидок и базовых составляющих цены
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225372
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolunteerЖелательно, но не обязательно менять ширину столбцов, скрывать и перемещать их.
Я же говорю Ёкселем попахивает.
Ну а почему вам Ёксель не подходит?
Для аналитики самое то.
С уважением.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225381
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,
Да и в дагонку, а данные на чем хранятся?
Ну в какой базе?
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225407
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,
На ёкселе сложновато все это реализовать будет. Симулятор - это только одна чать, там еще модуль согласований цен с диллерами, трекинг разосланых списков на согласование, экспорт-импорт этих списков, формы с отчетностью в разных разрезах. Все это должно иметь возможность сохранять в разных верстиях и работать с несколькими пользователями. На таких объемах ёксель еще и тормозить будет.
База пока на акцессе, но рассматривается и перенос бэкенда на SQL в случае необходимости.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225408
п.2 очень сложен в реализации, а ленточная форма - самое то. К тому же в ее заголовке можно расположить свободные поля для задания фильтров по основным полям.
Кроме того, для удобства редактирования текущей записи, можно показывать ее в отдельной простой форме, возможно с расположением полей на отдельных вкладках.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225420
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я тоже к ленточной форме склоняюсь, только вот не хочется изобретать велосипед и писать фильтры с возможностью мультивыбора к этой форме. Нет под рукой ссылочки или кода такого фильтра?
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225423
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225428
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolunteerВсе это должно иметь возможность сохранять в разных верстиях и работать с несколькими пользователями
В разных версиях чего?
А табличная и ленточная форма не устроит (отца русской демократии)?
В Access 2010 все это очень даже вкусно.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225459
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIВ разных версиях чего?

Имелось в виду данные сохранять в виде версий - с разными настройками

ROIА табличная и ленточная форма не устроит (отца русской демократии)?
Сплит которая, где комбинируется табличная с ленточной? Не знаю, надо посмотреть. Сомневаюсь.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225463
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
\\\\Volunteer, Удобный и красивый интерфейс

Да, спасибо, видел этот топик. Там грид на базе ActiveX весьма недешевого сделан, как я понял. Не пойдет, увы. У заказчика еще требование, чтобы и под 64 битным офисом работало, а там со сторонними компонентами швах, да и платить за него вряд ли кто будет, а на пиратке работать не могут.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225489
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolunteerУ заказчика еще требование, чтобы и под 64 битным офисом работало
А это есче зачем?
Выгоды ноль, ну а траблов- как блох на собаке.
Ой чую не осилите (ИМХО).
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225504
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIА это есче зачем?


Дык что корпоративное ИТ у клиента поставило, с тем и приходится мириться. Конторы как правило большие, у них свои причины, наши пожелания мало когда меняют решения.

Осилим, не первый подобный проект делаем.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225514
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolunteerROIА это есче зачем?


Дык что корпоративное ИТ у клиента поставило, с тем и приходится мириться. Конторы как правило большие, у них свои причины, наши пожелания мало когда меняют решения.

Осилим, не первый подобный проект делаем.
Боюсь вы лукавите.
Если не первый проект.
То откуда тема топика для начинающих.
С уважением.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225540
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все мы в чем-то начинающие, да и не один я работаю :) У меня и у коллег действительно нет готового кода для смарт фильтров а-ля-эксель с мультивыбором, сортировкой и изменением ширины столбцов в ленточной форме, но это не значит, что его нельзя написать или найти для экономии времени. Вот начал искать, для начала спросил, может у кого есть, пока ответов, которые можно использовать, не вижу.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225705
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

Была у меня когда-то идея:
Делать форму с заголовками для подформы
в ней подформа - табличная.
В табличной подформе фильтров...мама не горюй и поля местами меняются и ширина регулируется.
Вот только все равно придется играться с заголовками в Форме по их ширине и расположению.
Думаю будет работать для фильтрации быстрее так, чем с самодельными фильтрами или переписывании рекордсета.
Но и с заголовками будет легче справиться, если их сгруппировать, тогда при изменении ширины все заголовки правее изменяемого будут подтягиваться/отодвигаться автоматом.
тут вопрос только в очередности этих заголовков:
- на уровне мысли. Как то их по индексу в группе менять местами. Может чушь, но что то у них должно быть, что определяет их порядок очередности в группе...
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39225745
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

получить список со всеми возможными именами
--клиент
--товар
--янв
--фев
--март
--1кв
...
--4 кв
--2 полуг
--год


выбрать нужные(множественный выбор)

на форме иметь 2-3 поля для разреза(можно выбрать клиент-товар или товар-клиент или клиент-год)
и 18 для итогов, причем переопределять их источник(например без месяцев или только по годам или разность годов)

у меня есть вариант подобный, хотя всегда учитываются реалии(типа сводной таблицы екселя)
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226267
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИгортанVolunteer,
тут вопрос только в очередности этих заголовков:
- на уровне мысли. Как то их по индексу в группе менять местами. Может чушь, но что то у них должно быть, что определяет их порядок очередности в группе...

В общем, помтрел я повнимательнее, второй заголовок приделать будет действительно гораздо проще, чем мастерить свои фильтры, работы на несколько часов.
С очередностью столбцов проблем нет, есть свойство ColumnOrder, с шириной тоже нет - ColumnWidth, привязать позицию дополнительных заголовков легко.
У меня также есть два класса, которые замечательно справляются с динамическим перестроением, перемещением и скрытием контролов в ленточной форме для имитации табличной, добавить изменение ширины элементарно.
Осталось только отследить мышь - перемещения колонок и изменение их ширины. К счастью MouseDown, MouseUp и MouseMove на табличной форме срабатывают именно в заголовках (на самих данных - нет). Просто перестраиваем колонки заголовков после каждого отпускания левой кнопки мыши.

Всем спасибо за участие, оказывается, все просто :) Если утвердят идею, поделюсь реализацией.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226272
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже, рано я обрадовался. Осталась одна скользкая деталь, из-за которой может ничего не получиться: если форма не влезает на экран по горизонтали, как понять, что пользователь сделал горизонтальную прокрутку и как после этого вычислить, какая колонка стала первой?
Я так понимаю, без API тут не обойдешься. Есть идеи решения?
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226512
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел код с использованием API для синхронизации прокрутки в двух формах, это должно решить проблему с прокруткой заголовков синхронно с табличной субформой.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226595
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolunteerПохоже, рано я обрадовался.
Не в обиду.
Мне кажется, что вы утяжеляете процесс.
Классы это хорошо, но ведь можно проще.
Как я писал:
основная форма - с заголовками для столбцов из подчиненной(табличной).
Сдесь же и прикрутить - Отобразить столбцы(команда) - 1 строка.
В табличной подформе - фильтры шикарные.
Если сгруппировать в основной форме заголовки(назвать их как и зависимые столбцы, только с суфиксом), то вопрос скрытия отображения столбцов потребует 1-2 строки кода.
С ColumnOrder, как я понял и менять очередность столбцов - тоже 1-2 строки(для заголовков)
остается ширина столбцов...синхронизировать с контролами заголовков в основной форме. Что тоже думаю не потребует много писать кода.
Не нужны классы, портянки кода.

P.S. пришло в голову еще. Если акс моложе 2003 можно это все положить на разделенную форму, там правда нужно ПРАВИЛЬНО обращаться к контролам между табличной/обычной формами. Думаю еще лучше получится.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226629
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан,
Дело в том, что я хочу сделать эту фичу повторно используемой в виде "черного ящика", что значительно упростит дальнейшую поддержку в организации, уже есть некоторая библиотека, нужно пополнить ее. Также в самом приложении несколько форм, для которых нужны такие заголовки, т.е. все равно нужно выносить код в процедуры, классы гораздо проще изолировать от другого кода и просто копировать в другие приложения, где достаточно будет нескольких строк кода, чтобы все заработало.
Ну и сами классы уже есть, от гораздо более сложного приложения, там нужно только поудалять лишнее и добавить поддержку ширины.
Ширина и порядок заголовков должен меняться автоматом, руками точно не подгонишь, да и пользователь запросто может поменять и то и другое.

Сплит форма, думаю, не облегчит разработку, там не табличная часть не прокручивается по горизонтали вместе с табличной, все равно нужно будет лепить еще одну субформу с заголовками и прокручивать ее синхронно с табличной формой
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226704
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

Вам изнутри конечно видней.
А я предполагал, кстати, работу с шириной, очередностью и видимостью столбцов отдать в возможность самому оператору.
Пусть играется себе на здоровье.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226715
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан,
Так естественно, пользователь будет иметь возможность играться с шириной/порядком как ему вздумается, нужно специально извращаться, чтобы запретить ему это делать, точнее запретить нельзя, можно только восстанавливать изменения. Вопрос в синхронизации этих изменений на табличной форме и в нарисованных дополнительных заголовках. Или я что-то неправильно понял из предложенного?
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39226942
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

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

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

попробую тестовую сделать на скорую.
все равно пригодится в скором времени)
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39227020
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

Ну не знал я, что простого события на изменение размера столбца нету...

VolunteerК счастью MouseDown, MouseUp и MouseMove на табличной форме срабатывают именно в заголовках (на самих данных - нет). Просто перестраиваем колонки заголовков после каждого отпускания левой кнопки мыши.
вот с этим еще не работал, но по вашим словам самое то.



Volunteerесли форма не влезает на экран по горизонтали, как понять, что пользователь сделал горизонтальную прокрутку
Не нужно API. Мне тут когда то и помогли с этим. Делается одна форма, в нее влаживается 2 подформы.
Одна с данными другая с заголовками. Скролы горизонтальные убрать у подформ.
А потом просто эту получившуюся форму вложить в основную и разрешить горизонтальный скрол.
При прокрутке вправо - обе(уже суб_суб) формы будут прокручиваться синхронно.

Вобщем пока было время, убедился что в 10 строк впишешься))).

Основное направление - MouseDown, MouseUp и MouseMove, дальше будет видно как работать.
Если можно, скиньте сюда код на отлов кнопок мышки.

Не хочется все таки отказываться от табличной формы.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39227170
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИгортанДля так сказать дефолтных установок - а если просто закрывать форму без сохранения?

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

ИгортанДелается одна форма, в нее влаживается 2 подформы.
Одна с данными другая с заголовками. Скролы горизонтальные убрать у подформ.
А потом просто эту получившуюся форму вложить в основную и разрешить горизонтальный скрол.
При прокрутке вправо - обе(уже суб_суб) формы будут прокручиваться синхронно.

Не совсем понятны два момента:
1. Как прокручивать по горизонтали, если не будет скроллбаров? Убирать нужно только у заголовков.
2. За счет чего подформы будут прокручиваться синхронно? Для этого, как раз и нужно АПИ. Там сначала на каждой форме находим горизонтальный скроллбар и по таймеру (нет такого события!) читаем положение скролла в мастерформе. При изменении положения меняем положение скролла на зависимой форме. Или есть какая-то хитрость, как синхронизировать прокрутку?

Игортанскиньте сюда код на отлов кнопок мышки
Да скидывать, собственно, нечего. У события MouseUp есть аргументы, по ним и определяется, какая кнопка нажата, с какими клавишами-модификаторами и координаты нажатия. Просто вызываем перестроение заголовков, если была отпущена левая кнопка без модификаторов
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39227753
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

только до компа добрался...
вот пример синхронной прокрутки 2х суб форм
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39230239
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан,
Действительно, очень простое, лежащее на поверхности решение без кода. Спасибо большое за подсказку!
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39230257
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У решения с подформами внутри подформы, увы, огромный минус, который, похоже, ставит крест на применение в моем случае: вертикальная полоса прокрутки табличной части становится видна только при крайнем правом положении горизонтальной прокрутки. Это неприемлемо для пользователей.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39230301
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteerпользователь будет иметь возможность играться с шириной/порядком как ему вздумается, нужно специально извращаться, чтобы запретить ему это делать, точнее запретить нельзя, можно только восстанавливать изменения.

в таких случаях я всегда спрашиваю
--форма только для просмотра в разных разрезах и сортировках(цех-изделие-трудоемкость по месяцам, изделие-цех-трудоемкость-расценок на изделие по цеху и на план или ......)
--или есть корректировка
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39230350
Volunteer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,
В моем случае корректировка есть. Не совсем понял, как наличие корректировки может влиять на разрешение пользователю играться со столбцами.
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39230368
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

небольшой примерчик на просмотр в access
...
Рейтинг: 0 / 0
Форма с функциональностью табличной и заголовками более одной строки
    #39230373
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volunteer,

А если упереться и сделать кнопки типа перехода по строкам или пролистывания подформы?...
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма с функциональностью табличной и заголовками более одной строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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