Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как не писать по 3 раза один и тот же UI / 24 сообщений из 24, страница 1 из 1
25.04.2017, 06:59
    #39443775
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Не знаю у кого как, но у меня очень часто возникает следующая задача - нужно реализовать некий UI с таблицами, при этом для каждой отдельно взятой таблицы необходимо иметь возможность экспорта в xls/pdf, в итоге код, касающийся оформления этой таблицы приходится писать по N-раз - на клиенте в html/js (здесь как правило еще разного рода интерактив накручивается), на сервере на apache poi, apache fop. Это приводит к разного рода болезненным ощущениям, которых очень бы хотелось избежать. В целом выкручиваюсь некоторым самодельным велосипедом, который по xml метаописанию генерит мне таблицы, но блин, это же велосипед...

Вопрос - какие существуют best practices на этот счет?
...
Рейтинг: 0 / 0
25.04.2017, 08:30
    #39443801
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimir,
много вариантов:
1) Обозвать экспорт словом Отчёты (Jasper) и дублирования не будет
2) Использовать таблицы готовые, компонентные\библиотечные и дублирования не будет
...
Рейтинг: 0 / 0
25.04.2017, 09:29
    #39443842
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Petro123,
1 - если это действительно отчет, то да, действительно так можно поступить. Но если это сложный UI, с большим количеством интерактива и т.д., просто в нем много таблиц, причем на одной странице много таблиц, каждую нужно уметь выгружать по отдельности, ну никак такое Jasper'ом не затыкается ...
2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin?
...
Рейтинг: 0 / 0
25.04.2017, 11:00
    #39443919
Nixic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
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
...
Рейтинг: 0 / 0
25.04.2017, 11:04
    #39443922
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Nixic,
может туплю, но где у них экспорт в xls/pdf ?
...
Рейтинг: 0 / 0
25.04.2017, 11:12
    #39443929
am_sasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirэкспорт в xls/pdf ?
вот этот умеет
excel
pdf
...
Рейтинг: 0 / 0
25.04.2017, 11:17
    #39443935
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirкаждую нужно уметь выгружать по отдельности,
веб а ля десктоп?
10 таблиц на страничке и каждую с выгрузкой?
Скрин дадите?
...
Рейтинг: 0 / 0
25.04.2017, 11:24
    #39443947
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimir2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin?
п.п. 2 я писал чтобы исключить дублирование в коде таблиц в UI.
Вы описали 2 проблемы:
1) выгрузка
2) дублирование кода таблиц в ГУИ.
Если найдёте сразу первое со вторым, то я в это мало верю.
Поэтому решайте 1 и 2 по отдельности.
...
Рейтинг: 0 / 0
25.04.2017, 17:42
    #39444225
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Petro123just_vladimirкаждую нужно уметь выгружать по отдельности,
веб а ля десктоп?
10 таблиц на страничке и каждую с выгрузкой?
Скрин дадите?
Скрин не дам, но не понимаю, что плохого в подобном желании? Например (фантазирую), некий раздел админки, есть таблица с событиями аудита, есть таблица с пользователями, обе надо уметь выгружать в xls, что в этом сверх естественного?

Petro123just_vladimir2 - а можете привести примеры таких таблиц? надеюсь речь не про какой-нибудь vaadin?
п.п. 2 я писал чтобы исключить дублирование в коде таблиц в UI.
Вы описали 2 проблемы:
1) выгрузка
2) дублирование кода таблиц в ГУИ.
Если найдёте сразу первое со вторым, то я в это мало верю.
Поэтому решайте 1 и 2 по отдельности.
Нет, я описал одну проблему, что есть таблица, которая должна иметь несколько представлений html в рамках большой web-страницы
и xls/pdf файлы, если такое реализовывать в лоб, то нужно несколько раз писать код, по оформлению этой таблицы (заливка, выравнивание, жирность и т.д. и т.п.). То есть из-за того, что к таблице на веб-странице предьъявляется требование по возможности экспорта во внешний файл возникает проблема, что надо несколько раз писать один и тот же код. Так что это не две разных проблемы, а одна.

am_sasa,
да, примерно что то такое, но похоже, что на стороне xls большая часть оформления теряется (
...
Рейтинг: 0 / 0
25.04.2017, 18:36
    #39444254
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirНапример (фантазирую), некий раздел админки, есть таблица с событиями аудита, есть таблица с пользователями, обе надо уметь выгружать в xls, что в этом сверх естественного?
ну вот видите, понятие много и куча преобразились в две таблички и 2 кнопки рядом с Jasper и словом Печать(PDF\Excell).
Логично?
У меня так у заказчика.
...
Рейтинг: 0 / 0
25.04.2017, 18:38
    #39444256
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirНет, я описал одну проблему, что есть таблица, которая должна иметь несколько представлений html в рамках большой web-страницы
это решение придумал ты сам.
И пришёл на форум что он неудобный.
Я свой описал.
Удачи!
...
Рейтинг: 0 / 0
25.04.2017, 22:13
    #39444316
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimir, если ты не читал про S.O.L.I.D - то почитай. Там - 99% ответы
на все твои вопросы. Причем независимо от того UI это или не-UI.
...
Рейтинг: 0 / 0
26.04.2017, 11:29
    #39444559
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
mayton,
ну-ка ну-ка, и причем здесь по вашему SOLID? можно мысль более развернуто
...
Рейтинг: 0 / 0
26.04.2017, 11:31
    #39444562
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Petro123just_vladimirНапример (фантазирую), некий раздел админки, есть таблица с событиями аудита, есть таблица с пользователями, обе надо уметь выгружать в xls, что в этом сверх естественного?
ну вот видите, понятие много и куча преобразились в две таблички и 2 кнопки рядом с Jasper и словом Печать(PDF\Excell).
Логично?
У меня так у заказчика.
Я вам пример с потолка придумал, в котором 2 таблички, в реальности их далеко не 2, а jasper не нарисует вам в достаточной степени интерактивную таблицу.
...
Рейтинг: 0 / 0
26.04.2017, 11:55
    #39444594
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirв котором 2 таблички, в реальности их далеко не 2
месье путается в показаниях.
just_vladimirа jasper не нарисует вам в достаточной степени интерактивную таблицу.
ещё раз повторить?
- в окне 2,3,4 таблички.
- у каждой таблички кнопки и поля Сохранить\Фильтр\Печать
Вот на кнопку Печать или Экспорт открывается окно от Ослика с вопросом что решили делать.
Это и есть Jasper.
Повторить? Или никогда не видел?
А табличку сам делай или, например,
http://www.jtable.org/Demo/TurkishLocalization
Ферштейн?
...
Рейтинг: 0 / 0
26.04.2017, 12:34
    #39444650
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Petro123,
ок, то есть в UI мы всегда делаем на клиентском компоненте, как нам угодно, а для экспорта во внешние форматы один раз дублируем все это в jasper'е ?
...
Рейтинг: 0 / 0
26.04.2017, 12:41
    #39444666
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimir,
да.
Т.к. в одном флаконе экспорт и ГУИ таблички слишком дорогие и платные.
Это при компонентном подходе.
А при шаблонном вроде вообще не используются.
...
Рейтинг: 0 / 0
26.04.2017, 13:06
    #39444687
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Petro123,
спасибо за идею, хотя очень хочется в одном флаконе ;-) вот думаю можно развить идею, jasper же может экспортится в какой-нибудь json, а дальше просто налабать клиентский компонент, который будет уметь рендерить этот json в нужную мне таблицу и навешивать сверху все, что мне нужно.
...
Рейтинг: 0 / 0
27.04.2017, 07:41
    #39445155
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirmayton,
ну-ка ну-ка, и причем здесь по вашему SOLID? можно мысль более развернуто
Выше ты писал
в итоге код, касающийся оформления этой таблицы приходится писать по N-раз - на клиенте в html/js
Это натолкнуло меня на предположение что ты делаешь много дублирования логики.
Предложение почитать и использовать SOLID это полезный совет из серии "чистить
зубы по утрам" так что его можно давать всем и всегда.

Дальше - сложно что-то обуждать т.к нет кода.

Сорян если обидел.
...
Рейтинг: 0 / 0
27.04.2017, 08:29
    #39445167
13-й Пилигрим
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
mayton,

Строго говоря, в данной конкретной ситуации больше подойдет DRY . SOLID все-такие немного про другое.
...
Рейтинг: 0 / 0
27.04.2017, 10:54
    #39445256
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
mayton,
SOLID это история ну совсем про другое, вам уже правильно выше подсказали, что если и аппелировать к модным аббревиатурам, то это действительно ближе к DRY.
В остальном, я вижу проблему, что решая задачу в лоб, можно получить дублирование кода (у меня кстати его нет, за счет наличия выделенного слоя метаданных, но по сути это мини велосипед) и спрашиваю, как именно можно решить, чтобы избежать дублирования, на что вы отвечаете, как доктор в известном анекдоте:
автор- Доктор, когда я делаю вот так, у меня очень болит!
- Не делайте так.
...
Рейтинг: 0 / 0
27.04.2017, 16:26
    #39445582
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
Ну сорян. DRY, кстати еще более генерализированный совет ниочем. Если вы пойдете
по ссылкам от него в энциклопедиях - то неизбежно придете к ООП, структурному,
и прочим философиям в т.ч. SOLID.
...
Рейтинг: 0 / 0
28.04.2017, 12:25
    #39446020
sanBez
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
just_vladimirвот думаю можно развить идею, jasper же может экспортится в какой-нибудь json, а дальше просто налабать клиентский компонент, который будет уметь рендерить этот json в нужную мне таблицу и навешивать сверху все, что мне нужно.
Я чет не понимаю, задача трансформировалась до противоположной?
Не из таблицы получить отчет, а из отчета таблицу? На основании какой-то модели данных.

Почему тогда несколько более прямым путем? Подготовить описание таблицы в каком-то формате. Ну типа метамодель что ли.

А потом из нее генерить таблицу и заодно, например, через DynamicReports еще о jasper-отчет.
Ну так предложение из разряда фантазий. А вдруг взлетит?
...
Рейтинг: 0 / 0
30.04.2017, 11:47
    #39446718
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не писать по 3 раза один и тот же UI
sanBez,
на текущий момент у меня как раз есть некая метамодель, но по ряду причин она мне не нравится + является неким велосипедом. Вот подумал, что наверное есть некие фреймворки, которые это делают красиво (в целом понимаю, что это и есть некая вариация на тему jasper'а).

В общем всем спасибо, расклад и возможные варианты понятны.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как не писать по 3 раза один и тот же UI / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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