Я думаю, что многие корпоративные приложения имеют и гораздо больше экранов. Это, если так можно выразиться, у них в крови. Очень много пользовательской функциональности.
В первую очередь, дело в том, что мы занимаемся разработкой java-приложений.
Это основная причина того, что мы решаем проблему hot deploy именно таким способом.
А сравнение Java с другими языками — это тема отдельной статьи (или холивара).
Для создания «динамических» колонок существует несколько способов:
1) Вертикальная полоса (растет вправо). Это решение подходит, если у Вас фиксированное число строк. Вы можете, например, сделать в xls и xlsx 2 вертикальных полосы, одна из которых будет содержать заголовки колонок, а другая — собственно данные.
2) Вертикальная полоса вложенная в горизонтальную. Это решение подходит, если Вам заранее неизвестно число строк. Так как полосы образуют иерархическую структуру, вы можете объявить горизонтальную полосу, вложенную в нее вертикальную, и уже в вертикальной полосе решать, какие данные показывать.
Если Вам будет интересно, мы сможем добавить пример на гитхабе.
По поводу «полудинамических» колонок — на данный момент такой возможности нет, в будущем может появиться, если будут заинтересованные пользователи.
Насколько я знаю — в HSSF/XSSF нет полноценной поддержки графиков (или по крайней мере не было на момент написания соответствующего кода), а это для нас очень важная фича.
В docx4j меня привлекла возможность также работать с xlsx и довольно активное развитие.
Xdocreport интересен, но я не уверен, что он все наши требования сможет выполнить.
Он может растущие таблицы как то организовать? А вставку картинок? Вставку html? Заранее спасибо за ответ (его код я пока не успел посмотреть, поэтому спрашиваю Вас).
Для генерации docx/xlsx отчетов — да. Также поддерживаются отчеты xls, doc, html(freemarker) — они естественно генерируются с помощью других библиотек.
У нас есть возможность конвертировать docx в pdf без OpenOffice. Другое дело, что с ним pdf-ки практически идентичны docx, а без него бывают расхождения. Если нет требования тотального соответствия — можно использовать этот вариант (docx -> pdf).
У нас есть пользователи, которые из php-приложения вызывают библиотеку в standalone-режиме. У них тоже была задача создавать docx и конвертировать в pdf. Ее они решили.
Думаю так сделать можно, но подгрузка данных уже будет осуществляться именно макросом, а не библиотекой. В каком-то смысле это противоречит самой логике библиотеки — на момент формирования документа все данные должны быть загружены. Но теоретически никаких препятствий для этого нет.
Скорее всего даже проще нужно было бы сделать — каждая строка таблицы начинается с названия группы, значит можно разделить 2 алиаса — название группы и список под ней, и стил названия задать какой нужно сразу.
Кажется я понял. Если использовать docx, придется наверное вставлять html-разметку для групп чтобы текст был подчеркнут, и проставлен alignment (чтобы по центру надпись отображалась).
Я имел ввиду, что html-кусок вставляется в docx и выглядит как часть документа. Такая возможность есть в библиотеке.
Тут вопрос в том, можно ли привязывать не только таблицу к списку но и кусок документа, содержащий в себе другие элементы.
Внутри ячейки таблицы могут находиться любые элементы, в том числе и другие таблицы. То есть будет таблица, в каждой строке которой будет контент связанный с одним другом.
Можно, если Вы используете groovy-скрипт для загрузки данных, из него Вы возвращаете как раз список Map. В нашей платформе мы реализовали расширение, которое позволяет использовать аннотированные jpa-сущности в качестве источника данных.
Можно, генерировать html-таблицу groovy-скриптом. Если друзей нет, просто пустую таблицу вставлять. Второй путь — сделать таблицу с друзьями без заголовка, то есть если друзей не будет — не будет ни одной строки в таблице.
Можно, если вы будете сами генерировать html кусок (содержащий таблицы) скажем groovy скриптом и этот кусок будет подставляться в алиас. Если честно мы пока не часто сталкиваемся с отчетами, похожими на то, что Вы описали. Если Вы опишете подробнее задачу, я, возможно, смогу дать более развернутый ответ.
1. Вы создаете полноценный шаблон, с главами, таблицами, картинками и т.д.
2. Вставляете алиасы в те места куда должен подставиться текст
3. Есть возможность вставлять картинки в алиасы
4. Есть возможность вставить html, в котором также могут быть таблицы и картинки, и который будет отображаться в Word и Open Office Writer
Один из наших проектов — система, управляющая бизнесом коллекторов в Великобритании. В ней 434 экрана (специально посмотрел).
Подробности можно посмотреть вот здесь AR12
Это основная причина того, что мы решаем проблему hot deploy именно таким способом.
А сравнение Java с другими языками — это тема отдельной статьи (или холивара).
Для создания «динамических» колонок существует несколько способов:
1) Вертикальная полоса (растет вправо). Это решение подходит, если у Вас фиксированное число строк. Вы можете, например, сделать в xls и xlsx 2 вертикальных полосы, одна из которых будет содержать заголовки колонок, а другая — собственно данные.
2) Вертикальная полоса вложенная в горизонтальную. Это решение подходит, если Вам заранее неизвестно число строк. Так как полосы образуют иерархическую структуру, вы можете объявить горизонтальную полосу, вложенную в нее вертикальную, и уже в вертикальной полосе решать, какие данные показывать.
Если Вам будет интересно, мы сможем добавить пример на гитхабе.
По поводу «полудинамических» колонок — на данный момент такой возможности нет, в будущем может появиться, если будут заинтересованные пользователи.
Xdocreport интересен, но я не уверен, что он все наши требования сможет выполнить.
Он может растущие таблицы как то организовать? А вставку картинок? Вставку html? Заранее спасибо за ответ (его код я пока не успел посмотреть, поэтому спрашиваю Вас).
У нас есть пользователи, которые из php-приложения вызывают библиотеку в standalone-режиме. У них тоже была задача создавать docx и конвертировать в pdf. Ее они решили.
Внутри ячейки таблицы могут находиться любые элементы, в том числе и другие таблицы. То есть будет таблица, в каждой строке которой будет контент связанный с одним другом.
2. Вставляете алиасы в те места куда должен подставиться текст
3. Есть возможность вставлять картинки в алиасы
4. Есть возможность вставить html, в котором также могут быть таблицы и картинки, и который будет отображаться в Word и Open Office Writer
Я верно понял Ваш вопрос?