|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Имеется широкая табличная форма с множеством столбцов, многоие столбцы имеют довольно длинные заголовки при коротких цифровых данных. Задача предоставить пользователю возможность произвольно сортировать и фильтровать данные в этой форме, при этом в идеале заголовки должны быть в несколько строк, чтобы излишне не растягивать форму по горизонтали (из-за ограничения Акцесса по ширине, уже влияет) с возможностью выделить группы заголовков цветом. Желательно, но не обязательно менять ширину столбцов, скрывать и перемещать их. Я вижу 2 варинта решения: 1. Реализовывать функционал сортировки и мультивыборной фильтации на ленточной форме 2. "Навесить" сверху столбцов табличной формы цветные заголовки, которые должны будут каким-то образом отслеживать ширину столбцов табличной формы и меняться в зависимости от этого. Что посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 10:16 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
VolunteerИмеется широкая табличная форма с множеством столбцов, многоие столбцы имеют довольно длинные заголовки при коротких цифровых данных. Задача предоставить пользователю возможность произвольно сортировать и фильтровать данные в этой форме, при этом в идеале заголовки должны быть в несколько строк, чтобы излишне не растягивать форму по горизонтали (из-за ограничения Акцесса по ширине, уже влияет) с возможностью выделить группы заголовков цветом. Желательно, но не обязательно менять ширину столбцов, скрывать и перемещать их. Я вижу 2 варинта решения: 1. Реализовывать функционал сортировки и мультивыборной фильтации на ленточной форме 2. "Навесить" сверху столбцов табличной формы цветные заголовки, которые должны будут каким-то образом отслеживать ширину столбцов табличной формы и меняться в зависимости от этого. Что посоветуете? Что тут посоветуешь. >>Имеется широкая табличная форма с множеством столбцов Скоко примерно? Ёкселем попахивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 10:26 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ROI, В районе 40. Хочется все это увидеть одновременно, а не прокручивать форму постоянно. Эксель не вариант, т.к. форма не только показывает, но и редактирует данные. Это симулятор прибыльности предприятия. В нефильтрованном виде там сотни тысяч исторических записей, и пользователь должен иметь возможности менять параметры сразу для многих записей (например для группы товаров), выставляя разные типы скидок и базовых составляющих цены ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 10:38 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
VolunteerЖелательно, но не обязательно менять ширину столбцов, скрывать и перемещать их. Я же говорю Ёкселем попахивает. Ну а почему вам Ёксель не подходит? Для аналитики самое то. С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:03 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, Да и в дагонку, а данные на чем хранятся? Ну в какой базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:05 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ROI, На ёкселе сложновато все это реализовать будет. Симулятор - это только одна чать, там еще модуль согласований цен с диллерами, трекинг разосланых списков на согласование, экспорт-импорт этих списков, формы с отчетностью в разных разрезах. Все это должно иметь возможность сохранять в разных верстиях и работать с несколькими пользователями. На таких объемах ёксель еще и тормозить будет. База пока на акцессе, но рассматривается и перенос бэкенда на SQL в случае необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:20 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
п.2 очень сложен в реализации, а ленточная форма - самое то. К тому же в ее заголовке можно расположить свободные поля для задания фильтров по основным полям. Кроме того, для удобства редактирования текущей записи, можно показывать ее в отдельной простой форме, возможно с расположением полей на отдельных вкладках. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:20 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Ну я тоже к ленточной форме склоняюсь, только вот не хочется изобретать велосипед и писать фильтры с возможностью мультивыбора к этой форме. Нет под рукой ссылочки или кода такого фильтра? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:29 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, Удобный и красивый интерфейс ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:30 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
VolunteerВсе это должно иметь возможность сохранять в разных верстиях и работать с несколькими пользователями В разных версиях чего? А табличная и ленточная форма не устроит (отца русской демократии)? В Access 2010 все это очень даже вкусно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:32 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ROIВ разных версиях чего? Имелось в виду данные сохранять в виде версий - с разными настройками ROIА табличная и ленточная форма не устроит (отца русской демократии)? Сплит которая, где комбинируется табличная с ленточной? Не знаю, надо посмотреть. Сомневаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:52 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
\\\\Volunteer, Удобный и красивый интерфейс Да, спасибо, видел этот топик. Там грид на базе ActiveX весьма недешевого сделан, как я понял. Не пойдет, увы. У заказчика еще требование, чтобы и под 64 битным офисом работало, а там со сторонними компонентами швах, да и платить за него вряд ли кто будет, а на пиратке работать не могут. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 11:58 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
VolunteerУ заказчика еще требование, чтобы и под 64 битным офисом работало А это есче зачем? Выгоды ноль, ну а траблов- как блох на собаке. Ой чую не осилите (ИМХО). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 12:29 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ROIА это есче зачем? Дык что корпоративное ИТ у клиента поставило, с тем и приходится мириться. Конторы как правило большие, у них свои причины, наши пожелания мало когда меняют решения. Осилим, не первый подобный проект делаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 12:42 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
VolunteerROIА это есче зачем? Дык что корпоративное ИТ у клиента поставило, с тем и приходится мириться. Конторы как правило большие, у них свои причины, наши пожелания мало когда меняют решения. Осилим, не первый подобный проект делаем. Боюсь вы лукавите. Если не первый проект. То откуда тема топика для начинающих. С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 12:55 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Все мы в чем-то начинающие, да и не один я работаю :) У меня и у коллег действительно нет готового кода для смарт фильтров а-ля-эксель с мультивыбором, сортировкой и изменением ширины столбцов в ленточной форме, но это не значит, что его нельзя написать или найти для экономии времени. Вот начал искать, для начала спросил, может у кого есть, пока ответов, которые можно использовать, не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 13:14 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, Была у меня когда-то идея: Делать форму с заголовками для подформы в ней подформа - табличная. В табличной подформе фильтров...мама не горюй и поля местами меняются и ширина регулируется. Вот только все равно придется играться с заголовками в Форме по их ширине и расположению. Думаю будет работать для фильтрации быстрее так, чем с самодельными фильтрами или переписывании рекордсета. Но и с заголовками будет легче справиться, если их сгруппировать, тогда при изменении ширины все заголовки правее изменяемого будут подтягиваться/отодвигаться автоматом. тут вопрос только в очередности этих заголовков: - на уровне мысли. Как то их по индексу в группе менять местами. Может чушь, но что то у них должно быть, что определяет их порядок очередности в группе... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 14:41 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, получить список со всеми возможными именами --клиент --товар --янв --фев --март --1кв ... --4 кв --2 полуг --год выбрать нужные(множественный выбор) на форме иметь 2-3 поля для разреза(можно выбрать клиент-товар или товар-клиент или клиент-год) и 18 для итогов, причем переопределять их источник(например без месяцев или только по годам или разность годов) у меня есть вариант подобный, хотя всегда учитываются реалии(типа сводной таблицы екселя) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:07 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ИгортанVolunteer, тут вопрос только в очередности этих заголовков: - на уровне мысли. Как то их по индексу в группе менять местами. Может чушь, но что то у них должно быть, что определяет их порядок очередности в группе... В общем, помтрел я повнимательнее, второй заголовок приделать будет действительно гораздо проще, чем мастерить свои фильтры, работы на несколько часов. С очередностью столбцов проблем нет, есть свойство ColumnOrder, с шириной тоже нет - ColumnWidth, привязать позицию дополнительных заголовков легко. У меня также есть два класса, которые замечательно справляются с динамическим перестроением, перемещением и скрытием контролов в ленточной форме для имитации табличной, добавить изменение ширины элементарно. Осталось только отследить мышь - перемещения колонок и изменение их ширины. К счастью MouseDown, MouseUp и MouseMove на табличной форме срабатывают именно в заголовках (на самих данных - нет). Просто перестраиваем колонки заголовков после каждого отпускания левой кнопки мыши. Всем спасибо за участие, оказывается, все просто :) Если утвердят идею, поделюсь реализацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 06:56 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Похоже, рано я обрадовался. Осталась одна скользкая деталь, из-за которой может ничего не получиться: если форма не влезает на экран по горизонтали, как понять, что пользователь сделал горизонтальную прокрутку и как после этого вычислить, какая колонка стала первой? Я так понимаю, без API тут не обойдешься. Есть идеи решения? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 07:23 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Нашел код с использованием API для синхронизации прокрутки в двух формах, это должно решить проблему с прокруткой заголовков синхронно с табличной субформой. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 12:04 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
VolunteerПохоже, рано я обрадовался. Не в обиду. Мне кажется, что вы утяжеляете процесс. Классы это хорошо, но ведь можно проще. Как я писал: основная форма - с заголовками для столбцов из подчиненной(табличной). Сдесь же и прикрутить - Отобразить столбцы(команда) - 1 строка. В табличной подформе - фильтры шикарные. Если сгруппировать в основной форме заголовки(назвать их как и зависимые столбцы, только с суфиксом), то вопрос скрытия отображения столбцов потребует 1-2 строки кода. С ColumnOrder, как я понял и менять очередность столбцов - тоже 1-2 строки(для заголовков) остается ширина столбцов...синхронизировать с контролами заголовков в основной форме. Что тоже думаю не потребует много писать кода. Не нужны классы, портянки кода. P.S. пришло в голову еще. Если акс моложе 2003 можно это все положить на разделенную форму, там правда нужно ПРАВИЛЬНО обращаться к контролам между табличной/обычной формами. Думаю еще лучше получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 13:17 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Игортан, Дело в том, что я хочу сделать эту фичу повторно используемой в виде "черного ящика", что значительно упростит дальнейшую поддержку в организации, уже есть некоторая библиотека, нужно пополнить ее. Также в самом приложении несколько форм, для которых нужны такие заголовки, т.е. все равно нужно выносить код в процедуры, классы гораздо проще изолировать от другого кода и просто копировать в другие приложения, где достаточно будет нескольких строк кода, чтобы все заработало. Ну и сами классы уже есть, от гораздо более сложного приложения, там нужно только поудалять лишнее и добавить поддержку ширины. Ширина и порядок заголовков должен меняться автоматом, руками точно не подгонишь, да и пользователь запросто может поменять и то и другое. Сплит форма, думаю, не облегчит разработку, там не табличная часть не прокручивается по горизонтали вместе с табличной, все равно нужно будет лепить еще одну субформу с заголовками и прокручивать ее синхронно с табличной формой ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 13:44 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, Вам изнутри конечно видней. А я предполагал, кстати, работу с шириной, очередностью и видимостью столбцов отдать в возможность самому оператору. Пусть играется себе на здоровье. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 14:58 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Игортан, Так естественно, пользователь будет иметь возможность играться с шириной/порядком как ему вздумается, нужно специально извращаться, чтобы запретить ему это делать, точнее запретить нельзя, можно только восстанавливать изменения. Вопрос в синхронизации этих изменений на табличной форме и в нарисованных дополнительных заголовках. Или я что-то неправильно понял из предложенного? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 15:06 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, Для так сказать дефолтных установок - а если просто закрывать форму без сохранения? а если ничего не поможет, может тогда экземпляром открывать. Там точно ничего не сохранится По заголовкам. при изменении размера контрола в подчиненной поставить отработку на изменение размера соответствующего заголовка. для упрощения прорисовки заголовков - сгруппировать их. Тогда при любом изменении ширины заголовка остальные заголовки с корректируются. попробую тестовую сделать на скорую. все равно пригодится в скором времени) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 18:46 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, Ну не знал я, что простого события на изменение размера столбца нету... VolunteerК счастью MouseDown, MouseUp и MouseMove на табличной форме срабатывают именно в заголовках (на самих данных - нет). Просто перестраиваем колонки заголовков после каждого отпускания левой кнопки мыши. вот с этим еще не работал, но по вашим словам самое то. Volunteerесли форма не влезает на экран по горизонтали, как понять, что пользователь сделал горизонтальную прокрутку Не нужно API. Мне тут когда то и помогли с этим. Делается одна форма, в нее влаживается 2 подформы. Одна с данными другая с заголовками. Скролы горизонтальные убрать у подформ. А потом просто эту получившуюся форму вложить в основную и разрешить горизонтальный скрол. При прокрутке вправо - обе(уже суб_суб) формы будут прокручиваться синхронно. Вобщем пока было время, убедился что в 10 строк впишешься))). Основное направление - MouseDown, MouseUp и MouseMove, дальше будет видно как работать. Если можно, скиньте сюда код на отлов кнопок мышки. Не хочется все таки отказываться от табличной формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 20:29 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ИгортанДля так сказать дефолтных установок - а если просто закрывать форму без сохранения? Не получится, это, так сказать, отдельный тип сохранения, форма не изменена, как и данные, срхраняются только настройки формы, запретить это нельзя. Да и не нужно, пусть подстраивают под себя таблицу. ИгортанДелается одна форма, в нее влаживается 2 подформы. Одна с данными другая с заголовками. Скролы горизонтальные убрать у подформ. А потом просто эту получившуюся форму вложить в основную и разрешить горизонтальный скрол. При прокрутке вправо - обе(уже суб_суб) формы будут прокручиваться синхронно. Не совсем понятны два момента: 1. Как прокручивать по горизонтали, если не будет скроллбаров? Убирать нужно только у заголовков. 2. За счет чего подформы будут прокручиваться синхронно? Для этого, как раз и нужно АПИ. Там сначала на каждой форме находим горизонтальный скроллбар и по таймеру (нет такого события!) читаем положение скролла в мастерформе. При изменении положения меняем положение скролла на зависимой форме. Или есть какая-то хитрость, как синхронизировать прокрутку? Игортанскиньте сюда код на отлов кнопок мышки Да скидывать, собственно, нечего. У события MouseUp есть аргументы, по ним и определяется, какая кнопка нажата, с какими клавишами-модификаторами и координаты нажатия. Просто вызываем перестроение заголовков, если была отпущена левая кнопка без модификаторов ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2016, 04:45 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, только до компа добрался... вот пример синхронной прокрутки 2х суб форм ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2016, 18:40 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Игортан, Действительно, очень простое, лежащее на поверхности решение без кода. Спасибо большое за подсказку! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 17:54 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
У решения с подформами внутри подформы, увы, огромный минус, который, похоже, ставит крест на применение в моем случае: вертикальная полоса прокрутки табличной части становится видна только при крайнем правом положении горизонтальной прокрутки. Это неприемлемо для пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 18:30 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteerпользователь будет иметь возможность играться с шириной/порядком как ему вздумается, нужно специально извращаться, чтобы запретить ему это делать, точнее запретить нельзя, можно только восстанавливать изменения. в таких случаях я всегда спрашиваю --форма только для просмотра в разных разрезах и сортировках(цех-изделие-трудоемкость по месяцам, изделие-цех-трудоемкость-расценок на изделие по цеху и на план или ......) --или есть корректировка ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 19:24 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, В моем случае корректировка есть. Не совсем понял, как наличие корректировки может влиять на разрешение пользователю играться со столбцами. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 21:02 |
|
Форма с функциональностью табличной и заголовками более одной строки
|
|||
---|---|---|---|
#18+
Volunteer, небольшой примерчик на просмотр в access ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 21:31 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1613603]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 159ms |
0 / 0 |