|
|
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Не знаю у кого как, но у меня очень часто возникает следующая задача - нужно реализовать некий UI с таблицами, при этом для каждой отдельно взятой таблицы необходимо иметь возможность экспорта в xls/pdf, в итоге код, касающийся оформления этой таблицы приходится писать по N-раз - на клиенте в html/js (здесь как правило еще разного рода интерактив накручивается), на сервере на apache poi, apache fop. Это приводит к разного рода болезненным ощущениям, которых очень бы хотелось избежать. В целом выкручиваюсь некоторым самодельным велосипедом, который по xml метаописанию генерит мне таблицы, но блин, это же велосипед... Вопрос - какие существуют best practices на этот счет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 06:59 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimir, много вариантов: 1) Обозвать экспорт словом Отчёты (Jasper) и дублирования не будет 2) Использовать таблицы готовые, компонентные\библиотечные и дублирования не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 08:30 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Petro123, 1 - если это действительно отчет, то да, действительно так можно поступить. Но если это сложный UI, с большим количеством интерактива и т.д., просто в нем много таблиц, причем на одной странице много таблиц, каждую нужно уметь выгружать по отдельности, ну никак такое Jasper'ом не затыкается ... 2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 09:29 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirPetro123 ... 2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin? Скорее всего будет пример из js framework'ов, а не из какого-нибудь vaadin )) http://www.qooxdoo.org/5.0.2/demobrowser/#table~Table_Remote_Model.html http://w2ui.com/web/demos/#!combo/combo-9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:00 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Nixic, может туплю, но где у них экспорт в xls/pdf ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:04 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:12 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirкаждую нужно уметь выгружать по отдельности, веб а ля десктоп? 10 таблиц на страничке и каждую с выгрузкой? Скрин дадите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:17 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimir2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin? п.п. 2 я писал чтобы исключить дублирование в коде таблиц в UI. Вы описали 2 проблемы: 1) выгрузка 2) дублирование кода таблиц в ГУИ. Если найдёте сразу первое со вторым, то я в это мало верю. Поэтому решайте 1 и 2 по отдельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:24 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Petro123just_vladimirкаждую нужно уметь выгружать по отдельности, веб а ля десктоп? 10 таблиц на страничке и каждую с выгрузкой? Скрин дадите? Скрин не дам, но не понимаю, что плохого в подобном желании? Например (фантазирую), некий раздел админки, есть таблица с событиями аудита, есть таблица с пользователями, обе надо уметь выгружать в xls, что в этом сверх естественного? Petro123just_vladimir2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin? п.п. 2 я писал чтобы исключить дублирование в коде таблиц в UI. Вы описали 2 проблемы: 1) выгрузка 2) дублирование кода таблиц в ГУИ. Если найдёте сразу первое со вторым, то я в это мало верю. Поэтому решайте 1 и 2 по отдельности. Нет, я описал одну проблему, что есть таблица, которая должна иметь несколько представлений html в рамках большой web-страницы и xls/pdf файлы, если такое реализовывать в лоб, то нужно несколько раз писать код, по оформлению этой таблицы (заливка, выравнивание, жирность и т.д. и т.п.). То есть из-за того, что к таблице на веб-странице предьъявляется требование по возможности экспорта во внешний файл возникает проблема, что надо несколько раз писать один и тот же код. Так что это не две разных проблемы, а одна. am_sasa, да, примерно что то такое, но похоже, что на стороне xls большая часть оформления теряется ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 17:42 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirНапример (фантазирую), некий раздел админки, есть таблица с событиями аудита, есть таблица с пользователями, обе надо уметь выгружать в xls, что в этом сверх естественного? ну вот видите, понятие много и куча преобразились в две таблички и 2 кнопки рядом с Jasper и словом Печать(PDF\Excell). Логично? У меня так у заказчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 18:36 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirНет, я описал одну проблему, что есть таблица, которая должна иметь несколько представлений html в рамках большой web-страницы это решение придумал ты сам. И пришёл на форум что он неудобный. Я свой описал. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 18:38 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimir, если ты не читал про S.O.L.I.D - то почитай. Там - 99% ответы на все твои вопросы. Причем независимо от того UI это или не-UI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 22:13 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
mayton, ну-ка ну-ка, и причем здесь по вашему SOLID? можно мысль более развернуто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 11:29 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Petro123just_vladimirНапример (фантазирую), некий раздел админки, есть таблица с событиями аудита, есть таблица с пользователями, обе надо уметь выгружать в xls, что в этом сверх естественного? ну вот видите, понятие много и куча преобразились в две таблички и 2 кнопки рядом с Jasper и словом Печать(PDF\Excell). Логично? У меня так у заказчика. Я вам пример с потолка придумал, в котором 2 таблички, в реальности их далеко не 2, а jasper не нарисует вам в достаточной степени интерактивную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 11:31 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirв котором 2 таблички, в реальности их далеко не 2 месье путается в показаниях. just_vladimirа jasper не нарисует вам в достаточной степени интерактивную таблицу. ещё раз повторить? - в окне 2,3,4 таблички. - у каждой таблички кнопки и поля Сохранить\Фильтр\Печать Вот на кнопку Печать или Экспорт открывается окно от Ослика с вопросом что решили делать. Это и есть Jasper. Повторить? Или никогда не видел? А табличку сам делай или, например, http://www.jtable.org/Demo/TurkishLocalization Ферштейн? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 11:55 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Petro123, ок, то есть в UI мы всегда делаем на клиентском компоненте, как нам угодно, а для экспорта во внешние форматы один раз дублируем все это в jasper'е ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 12:34 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimir, да. Т.к. в одном флаконе экспорт и ГУИ таблички слишком дорогие и платные. Это при компонентном подходе. А при шаблонном вроде вообще не используются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 12:41 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Petro123, спасибо за идею, хотя очень хочется в одном флаконе ;-) вот думаю можно развить идею, jasper же может экспортится в какой-нибудь json, а дальше просто налабать клиентский компонент, который будет уметь рендерить этот json в нужную мне таблицу и навешивать сверху все, что мне нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2017, 13:06 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirmayton, ну-ка ну-ка, и причем здесь по вашему SOLID? можно мысль более развернуто Выше ты писал в итоге код, касающийся оформления этой таблицы приходится писать по N-раз - на клиенте в html/js Это натолкнуло меня на предположение что ты делаешь много дублирования логики. Предложение почитать и использовать SOLID это полезный совет из серии "чистить зубы по утрам" так что его можно давать всем и всегда. Дальше - сложно что-то обуждать т.к нет кода. Сорян если обидел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2017, 07:41 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
mayton, Строго говоря, в данной конкретной ситуации больше подойдет DRY . SOLID все-такие немного про другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2017, 08:29 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
mayton, SOLID это история ну совсем про другое, вам уже правильно выше подсказали, что если и аппелировать к модным аббревиатурам, то это действительно ближе к DRY. В остальном, я вижу проблему, что решая задачу в лоб, можно получить дублирование кода (у меня кстати его нет, за счет наличия выделенного слоя метаданных, но по сути это мини велосипед) и спрашиваю, как именно можно решить, чтобы избежать дублирования, на что вы отвечаете, как доктор в известном анекдоте: автор- Доктор, когда я делаю вот так, у меня очень болит! - Не делайте так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2017, 10:54 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
Ну сорян. DRY, кстати еще более генерализированный совет ниочем. Если вы пойдете по ссылкам от него в энциклопедиях - то неизбежно придете к ООП, структурному, и прочим философиям в т.ч. SOLID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2017, 16:26 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
just_vladimirвот думаю можно развить идею, jasper же может экспортится в какой-нибудь json, а дальше просто налабать клиентский компонент, который будет уметь рендерить этот json в нужную мне таблицу и навешивать сверху все, что мне нужно. Я чет не понимаю, задача трансформировалась до противоположной? Не из таблицы получить отчет, а из отчета таблицу? На основании какой-то модели данных. Почему тогда несколько более прямым путем? Подготовить описание таблицы в каком-то формате. Ну типа метамодель что ли. А потом из нее генерить таблицу и заодно, например, через DynamicReports еще о jasper-отчет. Ну так предложение из разряда фантазий. А вдруг взлетит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2017, 12:25 |
|
||
|
Как не писать по 3 раза один и тот же UI
|
|||
|---|---|---|---|
|
#18+
sanBez, на текущий момент у меня как раз есть некая метамодель, но по ряду причин она мне не нравится + является неким велосипедом. Вот подумал, что наверное есть некие фреймворки, которые это делают красиво (в целом понимаю, что это и есть некая вариация на тему jasper'а). В общем всем спасибо, расклад и возможные варианты понятны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2017, 11:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39443919&tid=2122941]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 357ms |

| 0 / 0 |
