////////////////////
При написании использовались. кроме библиотек, входящих в стандартную поставку java:
1. commons-compress-1.6, сайт
https://commons.apache.org/proper/commons-compress/ - для чтения заголовков arj-файлов
2. Open-source ARJ, сайт
https://arj.sourceforge.net/ - отсюда взят алгоритм распаковки (на Си) arj-файлов
3. PDFBOX, сайт
https://pdfbox.apache.org/ - для работы с pdf-файлами. Использовалась бета pdfbox-app-2.0.0-20140619.180631-371.jar,
поскольку последняя релизная версия (1.8.5) в некоторых случаях некорректно работает с кириллицей.
4. JEP, сайт
https://sourceforge.net/projects/jep/ - использовалась последняя бесплатная версия - для создания расчетных формул.
Для начала работы положить app.jar в пустой каталог, рядом с ним config.ini и запустить app.jar
Пункт первый меню "Update from sta-server"
Программа читает из config.ini значение переменной mainFtpPath, идет по этому адресу на FTP-сервер,
скачивает там файлы pdf_all.arj и xsd_all.arj и распаковывает их в создаваемые (в случае их отсутствия) каталоги xsd и pdf.
В присоединенном файле указан адрес сервера налоговой инспеции
ftp://ftp.sta.gov.ua/reestr_form_zvitnyh_dokymentiv/. Следует учесть, что
налоговая не всегда обновляет эти файлы, тогда может понадобиться скачать необходимые обновления руками и положить
их в каталоги xsd/pdf. Также ни в одном нормативном акте не прописана обязанность налоговой выкладывать эти файлы на свой FTP.
После завершения скачивания и распаковки выдается сообщение "Update complete". Распаковка написана на java, а не на ассемблере,
скачивание двухсот мегабайт с FTP также занимает определенное время, так что операция может занять пару десятков минут.
Пункт второй "Create list of reports"
Просматривает каталоги pdf/xsd, ищет парные файлы и каждый такой заносит в файл list.txt. Составляет, таким образом, список
отчетов, с которыми программа сможет работать.
Пункт третий "Open pdf-example"
Показывает диалог выбора (на основе сформированного в предыдущем пункте файла list.txt) и открывает pdf-шаблон выбранного отчета.
Следует понимать, что программе неоткуда взять сроки действия отчетных форм
и она предложит вам для выбора все, которые у нее только есть - конкретную версия отчета необходимо выбрать самому.
Окно просмотра шаблона содержит кнопки UP/DOWN - ВВЕРХ/ВНИЗ - для листания многостраничных отчетов.
Пункт четвертый "New document"
Показывает диалог выбора и открывает форму для заполнения отчета. Постоянные параметры, такие как ИНН/название предприятия
текущий месяц/год и вообще любые поля, которые желательно заполнять автоматом можно прописать в файле config.ini - в
присоединенном файле можно посмотреть примеры. В форму необходимо вносить значения в том виде, в котором они будут в xml-файле,
т.е. крестики - это "1", даты без точек, месяц двумя цифрами "01", числа с нулями после запятой и т.д. Кнопки "Del Row -" и "Add Row +" предназначены
для добавления/удаления строк в таблицах отчетов. Также рядом с каждой таблицей есть кнопки "+" и "-" - для аналогичных действий.
Кнопка Calc выполняет расчеты по форме отчета. Формулы для расчетов должны быть заданы в файле с именем отчета без расширения в каталоге calc.
В файле для скачивания есть пример для отчета J0294205. Цифра в скобках, с которой начинается каждая строка должна содержать
желаемую точность результата. Кнопка "Save XML" вызывает диалог сохранения XML-файла. Если xsd-файл содержит поля, которые
программа не смогла найти в pdf-файле, то эти поля также будет предложено заполнить в диалоге сохранения XML-файла. По нажатию
кнопки "Save" в диалоге сохранения XML-файла программа создает xml-файл в каталоге xml и производит проверку его структуры
по xsd-схеме.
Пункт пятый "Open document"
На основе содержимого каталога xml программа формирует список отчетов. По двойному щелчку по строке выполняется открытие отчета.
Форма содержит фильтры по ЕДРПОУ, виду отчета, месяцу и году.