forum.bitel.ru
http://forum.bitel.ru/

[5.2] Генерация документов по шаблону
http://forum.bitel.ru/viewtopic.php?f=23&t=7608
Страница 3 из 3

Автор:  skn [ 19 июн 2013, 19:36 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

skyb писал(а):
апну темку, а вот можно как то проверить заполнен параметр или нет и в шаблоне выставлять не значение параметра, а значения....допустим - заполнен - да, незаполнен - нет??


в текущей релизации можно если только подправить скрипт генерации документа

Автор:  skyb [ 20 июн 2013, 06:50 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

а не подскажете как это делать? и будет ещё реализации?

Автор:  skn [ 20 июн 2013, 11:21 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

skyb писал(а):
а не подскажете как это делать? и будет ещё реализации?


1) как делать, пишите в хелпдеск
2) в 6 версии будет более навороченная система с возможностью настройки пользовательских параметров разного типа (константа, sql запрос, URL, java код, и т.д.) + поддержка шаблонов в формате docx

Автор:  skyb [ 20 июн 2013, 12:07 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

1) там не так все просто?
2) а когда будет?

Автор:  skn [ 20 июн 2013, 14:20 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

skyb писал(а):
1) там не так все просто?
2) а когда будет?


1) да
2) надеюсь на днях

Автор:  skyb [ 27 июн 2013, 15:31 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

skn писал(а):
skyb писал(а):
1) там не так все просто?
2) а когда будет?


1) да
2) надеюсь на днях

как там дела? а то обновляться нужно =)

Автор:  snark [ 27 июн 2013, 17:22 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

skyb писал(а):
как там дела?

skn писал(а):
пишите в хелпдеск

Автор:  skyb [ 28 июн 2013, 04:41 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

snark писал(а):
skyb писал(а):
как там дела?

skn писал(а):
пишите в хелпдеск

тссс, а то и правдо так сделает

Автор:  snark [ 03 июл 2013, 17:00 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

Админ с юридическим образованием - это плохо?

Автор:  dimOn [ 03 июл 2013, 17:23 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

А кто-то видел админа с около-IT-шным образованием? :idea:

Автор:  snark [ 03 июл 2013, 19:56 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

Если АСУ считать около IT-шным, то я видел :)
Знаю одного админа, программиста по образованию ... недоадмин и недопрограммист, а бьют, как Вы знаете, не по диплому.

Автор:  Artur [ 24 дек 2013, 16:14 ]
Заголовок сообщения:  Re: [5.2] Генерация документов по шаблону

Сделал обновление для плагина в части генерации таблиц.
Немного поменялся интерфейс, который нужно реализовывать, чтобы получить данные для таблиц с помощью дин. кода.
Теперь он выглядит следующим образом:
Код:
public interface TableDataExtractor
{
   /**
    * Метод, получающий данные для таблицы. Каждая строка представлена в виде Map<String, String>, где в качестве ключа выступает название столбца, которое прописывается
    * в таблице-шаблоне в файле шаблона. Ключи, определяемые в map должны строго совпадать с теми, которые прописаны в файле шаблона. Если в файле названия стролбцов
    * не заданы, то берутся значения по умолчанию (col1...colN) и, соответственно, предполагается, что в дин. коде используются эти же значения для ключей.
    * @param con соединение с БД
    * @param contractId код договора
    * @param apiRowList список строк таблицы, который был перед с помощью API в метод генерации документов. Это сделано для того, чтобы можно было в дин. коде поменять значения, переданные через API.
    * @return список строк таблицы. Возможно вернуть переданный apiRowList
    * @throws BGException
    */
   public List<Map<String, String>> extractData( Connection con, int contractId, List<Map<String, String>> apiRowList )
      throws BGException;
}


Вот пример генерации таблицы по шаблону
1) Создали шаблон документа в формате .docx
2) В этом шаблоне создали таблицу (Заголовок + первая строка-шаблон, из которой будет копироваться стиль для всех генерируемых строк) (см.скриншот)
3) Запомнили порядковый номер таблицы в документе
4) Создали шаблон документа в плагине Documents
5) Привязали к нему файл шаблона
6) На вкладке Таблицы редактора шаблонов добавили новую таблицу (см. скриншот)
6.1) Создали дин. класс для получения данных (указано в качестве примера. Возможно использовать SQL) следующего содержания:
Код:
package ru.reflexive;

import java.sql.Connection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.plugins.documents.server.bean.pattern.TableDataExtractor;

public class Table
   implements TableDataExtractor
{
   @Override
   public List extractData( Connection connection1, int int2, List<Map<String, String>> list3 )
      throws BGException
   {
      Map<String, String> map = new HashMap<>(3);
      map.put( "col1", "1" );
      map.put( "col2", "NPAY" );
      map.put( "col3", "100" );
      list3.add( map );
      map = new HashMap<>();
      map.put( "col1", "2" );
      map.put( "col2", "Inet" );
      map.put( "col3", "120" );
      list3.add( map );
      map = new HashMap<>();
      map.put( "col1", "3" );
      map.put( "col2", "Bill" );
      map.put( "col3", "1000" );
      list3.add( map );
      map = new HashMap<>();
      map.put( "col1", "4" );
      map.put( "col2", "BVCom" );
      map.put( "col3", "unlim" );
      list3.add( map );
      return list3;
   }
}

7) Сохраняем шаблон документа и переходим в договор
8 ) Нажимаем генерировать и смотрим результат (см. скриншот)

Если есть вопросы, то пишите.

Вложения:
Комментарий к файлу: Файл шаблона
pattern.png
pattern.png [ 103.37 КБ | Просмотров: 6312 ]
Комментарий к файлу: Редактор таблицы
table_editor.png
table_editor.png [ 12 КБ | Просмотров: 6312 ]
Комментарий к файлу: Сгенерированная таблица в документе
document.png
document.png [ 113.85 КБ | Просмотров: 6312 ]

Страница 3 из 3 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/