Новая версия

Обсуждение Stimulsoft Reports.JAVA
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Новая версия

Сообщение alexeyfressko »

Здравствуйте. Скачал новую версию из клиентской панели Stimulsoft-Reports-Fx-Java-2015.1-Pack.

В Fx версии собственные функции перестали подгружаться. Код

Код: Выделить всё

config.setRenderReportAction(MobilVendorRenderReportAction.class);
исполняется, но функция:

Код: Выделить всё

package com.mobilvendor.reports;

import java.io.IOException;

import com.stimulsoft.base.exception.StiException;
import com.stimulsoft.flex.StiRenderReportAction;
import com.stimulsoft.report.StiReport;

public class MobilVendorRenderReportAction extends StiRenderReportAction {

    @Override
    public StiReport render(StiReport report) throws IOException, StiException {
    	System.out.println("MobilVendorRenderReportAction: Ok");

    	report.getCustomFunctions().add(Common.wordsES1);
    	report.getCustomFunctions().add(Common.wordsES2);
    	report.getCustomFunctions().add(Common.wordsES3);
    	report.getCustomFunctions().add(Common.intToDate1);
    	report.getCustomFunctions().add(Common.intToDate2);
    	report.getCustomFunctions().add(Common.intToDate3);
    	report.getCustomFunctions().add(Common.intToDate4);
    	report.getCustomFunctions().add(Common.intToDate5);
    	report.getCustomFunctions().add(Common.intToDate6);
    	report.getCustomFunctions().add(Common.formatAmount1);
    	report.getCustomFunctions().add(Common.formatAmount2);

        return super.render(report);
    }
}
никогда не выполняется.


Другой вопрос:

На моем компьютере при разработке при экспорте в PDF со шрифтами все нормально. На продакш сервере (Amazon Linux CentOS 5) при экспорте в PDF шрифты становятся другими. Каким образом нужно установить требуемые шрифты, чтобы при экспорте они не менялись?

Пробовал установить все шрифты этой командой:

Код: Выделить всё

yum install fontconfig libXrender libXext '*fonts*'
не помогло.
Vadim
Сообщения: 109
Зарегистрирован: 04 апр 2013, 12:26

Re: Новая версия

Сообщение Vadim »

Здравствуйте.
alexeyfressko писал(а):Здравствуйте. Скачал новую версию из клиентской панели Stimulsoft-Reports-Fx-Java-2015.1-Pack.
В Fx версии собственные функции перестали подгружаться.
В консоле нет ошибок, дизайнер в браузер загружается без ошибок?
Другой вопрос:
На моем компьютере при разработке при экспорте в PDF со шрифтами все нормально. На продакш сервере (Amazon Linux CentOS 5) при экспорте в PDF шрифты становятся другими. Каким образом нужно установить требуемые шрифты, чтобы при экспорте они не менялись?
Для этого установленные в системе шрифты должны быть одинаковыми.
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Re: Новая версия

Сообщение alexeyfressko »

1. Ошибка регистрации custom функций

"В консоле нет ошибок, дизайнер в браузер загружается без ошибок?"

В консоле ошибок нет.

Текст класса ApplicationInitializer

Код: Выделить всё

package com.mobilvendor.reports;

import java.sql.DriverManager;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.mysql.jdbc.Driver;
import com.stimulsoft.flex.StiFlexConfig;

public class ApplicationInitializer implements ServletContextListener {

    @Override
    public void contextInitialized(final ServletContextEvent event) {
    	System.out.println("Mobilvendor contextInitialized");

    	try {
    		DriverManager.registerDriver((Driver)Class.forName("com.mysql.jdbc.Driver").newInstance());

			System.out.println("MySql Driver: Ok");
		} catch (Exception ex) {
			System.out.println("MySql Driver: " + ex.getMessage());
		}
    
    	try {
        	StiFlexConfig config = new StiFlexConfig();

            config.setLoadClass(MobilVendorLoadAction.class);
            config.setSaveClass(MobilVendorSaveAction.class);
            config.setLocalizationAction(MobilVendorLocalizationAction.class);
            config.setRenderReportAction(MobilVendorRenderReportAction.class);

            config.getProperties().setProperty("Designer.Dictionary.AllowModifyConnections", "False");
            config.getProperties().setProperty("Print.AutoPageOrientation", "False");
            config.getProperties().setProperty("Print.AutoPageScale", "True");
            
            StiFlexConfig.init(config);

            System.out.println("StiFlexConfig: Ok");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public void contextDestroyed(final ServletContextEvent event) {
    	System.out.println("Mobilvendor contextDestroyed");
    }
}
Код выполняется весь, в консоли появляется строка "StiFlexConfig: Ok".

Текст класса MobilVendorRenderReportAction

Код: Выделить всё

package com.mobilvendor.reports;

import java.io.IOException;

import com.stimulsoft.base.exception.StiException;
import com.stimulsoft.flex.StiRenderReportAction;
import com.stimulsoft.report.StiReport;

public class MobilVendorRenderReportAction extends StiRenderReportAction {

    @Override
    public StiReport render(StiReport report) throws IOException, StiException {
    	if (Common.DEBUG) System.out.println("MobilVendorRenderReportAction: Ok");

    	report.getCustomFunctions().add(Common.wordsES1);
    	report.getCustomFunctions().add(Common.wordsES2);
    	report.getCustomFunctions().add(Common.wordsES3);
    	report.getCustomFunctions().add(Common.intToDate1);
    	report.getCustomFunctions().add(Common.intToDate2);
    	report.getCustomFunctions().add(Common.intToDate3);
    	report.getCustomFunctions().add(Common.intToDate4);
    	report.getCustomFunctions().add(Common.intToDate5);
    	report.getCustomFunctions().add(Common.intToDate6);
    	report.getCustomFunctions().add(Common.formatAmount1);
    	report.getCustomFunctions().add(Common.formatAmount2);

        return super.render(report);
    }
}
По идее должен выполнятся, но не выполняется никогда.

При рендеринге появляется ошибка дизайнера: Report Rendering Message.
Text4 Parser error: The name 'NumberFormat' does not exist in the current context

В предыдущей версии работало все нормально.
Предыдущая версия: FXJAVA_2015.03.23
Текущая версия: Stimulsoft-Reports-Fx-Java-2015.1-Pack

Не знаю, правильно ли скачал новую версию: из консоли клиента только она была доступна для загрузки (а FXJAVA_2015.03.23 не была доступна вообще)
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Re: Новая версия

Сообщение alexeyfressko »

2. Еще вопрос по поводу шрифтов:

Я думал, что шрифты не те, но оказалось, что они просто становятся больше при экспорте в Pdf. Прикладываю два файла: файл печати и экспорт в Pdf. При экспорте в Pdf все шрифты становятся больше. Данная проблема появляется только на продакшн-сервере. На моем компьютере Windows, на котором я веду разработку, все нормально. Продакш-сервер - Amazon CentOS 5.

Почему так может быть?
Вложения
Report.zip
(841.21 КБ) 301 скачивание
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Re: Новая версия

Сообщение alexeyfressko »

3. Еще вопрос

При загрузке дизайнера AIR каждый раз подгружается файл
stimulsoft_designerfx?stimulsoft_client_key=DesignerFx - 3 мегабайта

При загрузке viewer AIR
stimulsoft_viewerfx?stimulsoft_client_key=ViewerFx - 2 мегабайта

Эти файлы не кэшируются. Можете ли вы сделать так, чтобы они кэшировались в браузере?
Vadim
Сообщения: 109
Зарегистрирован: 04 апр 2013, 12:26

Re: Новая версия

Сообщение Vadim »

Здравствуйте.
alexeyfressko писал(а):1. Ошибка регистрации custom функций
Остальные Action срабатывают? На RenderReport отправляется запрос из браузера?
2. Еще вопрос по поводу шрифтов:
Я думал, что шрифты не те, но оказалось, что они просто становятся больше при экспорте в Pdf. Прикладываю два файла: файл печати и экспорт в Pdf. При экспорте в Pdf все шрифты становятся больше. Данная проблема появляется только на продакшн-сервере. На моем компьютере Windows, на котором я веду разработку, все нормально. Продакш-сервер - Amazon CentOS 5.Почему так может быть?
Вы можете прислать 2 PDF файла экспорта одинакового с Windows и CentOS
3. Еще вопрос

При загрузке дизайнера AIR каждый раз подгружается файл
stimulsoft_designerfx?stimulsoft_client_key=DesignerFx - 3 мегабайта

При загрузке viewer AIR
stimulsoft_viewerfx?stimulsoft_client_key=ViewerFx - 2 мегабайта

Эти файлы не кэшируются. Можете ли вы сделать так, чтобы они кэшировались в браузере?
Это исправим в ближайшее время.
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Re: Новая версия

Сообщение alexeyfressko »

1. Ошибка регистрации custom функций

Остальные Action срабатывают? На RenderReport отправляется запрос из браузера?

Все остальные Action срабатываю (локализация, загрузка отчета из базы данных, сохранение в базу данных)

Функция render(StiReport report) MobilVendorRenderReportAction не срабатывает никогда!
Попробовал также перегрузить render(StiReport arg0, HttpServletRequest arg1) - также не работает.

2. Вы можете прислать 2 PDF файла экспорта одинакового с Windows и CentOS

Прикладываю два PDF файла.
Вложения
ReportCentOS.pdf
(138.85 КБ) 357 скачиваний
ReportWindows.pdf
(47.33 КБ) 851 скачивание
Vadim
Сообщения: 109
Зарегистрирован: 04 апр 2013, 12:26

Re: Новая версия

Сообщение Vadim »

Здравствуйте.
Вы можете посмотреть в Google Chrome в DevTools (вызывается по F12) идет ли запрос на сервер во время Render операции.
alexeyfressko писал(а):1. Ошибка регистрации custom функций

Остальные Action срабатывают? На RenderReport отправляется запрос из браузера?

Все остальные Action срабатываю (локализация, загрузка отчета из базы данных, сохранение в базу данных)

Функция render(StiReport report) MobilVendorRenderReportAction не срабатывает никогда!
Попробовал также перегрузить render(StiReport arg0, HttpServletRequest arg1) - также не работает
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Re: Новая версия

Сообщение alexeyfressko »

"Вы можете посмотреть в Google Chrome в DevTools (вызывается по F12) идет ли запрос на сервер во время Render операции. "

В проекте StimulSoft1 (примеры) отправляется запрос PreviewData.

В моем проекте отправляется другой запрос LoadReportData, но нет PreviewData.
alexeyfressko
Сообщения: 103
Зарегистрирован: 17 фев 2015, 00:40

Re: Новая версия

Сообщение alexeyfressko »

Код инициализации сервелета:

Код: Выделить всё

package com.mobilvendor.reports;

import java.sql.DriverManager;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import com.mysql.jdbc.Driver;
import com.stimulsoft.flex.StiFlexConfig;

public class ApplicationInitializer implements ServletContextListener {

    @Override
    public void contextInitialized(final ServletContextEvent event) {
    	System.out.println("Mobilvendor contextInitialized");

    	try {
    		DriverManager.registerDriver((Driver)Class.forName("com.mysql.jdbc.Driver").newInstance());

			System.out.println("MySql Driver: Ok");
		} catch (Exception ex) {
			System.out.println("MySql Driver: " + ex.getMessage());
		}
    
    	try {
        	StiFlexConfig config = new StiFlexConfig();

        	config.setLoadClass(MobilVendorLoadAction.class);
            config.setSaveClass(MobilVendorSaveAction.class);
            config.setLocalizationAction(MobilVendorLocalizationAction.class);
            config.setRenderReportAction(MobilVendorRenderReportAction.class);

            config.getProperties().setProperty("Designer.Dictionary.AllowModifyConnections", "False");
            config.getProperties().setProperty("Print.AutoPageOrientation", "False");
            config.getProperties().setProperty("Print.AutoPageScale", "True");
            
            StiFlexConfig.init(config);

            System.out.println("StiFlexConfig: Ok");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public void contextDestroyed(final ServletContextEvent event) {
    	System.out.println("Mobilvendor contextDestroyed");
    }
}
Я убрал строчку

Код: Выделить всё

config.setLocalizationAction(MobilVendorLocalizationAction.class);
и custom-функции заработали (стал вызыватся MobilVendorRenderReportAction.class)

Почему так может быть?
Ответить