Локализованный Crystal Reports

Если вы используете Django. Существует отличный класс для полей десятичной дроби и даты:

https://docs.djangoproject.com/en/1.10/topics/serialization/#djangojsonencoder

используйте это:

import json
from django.core.serializers.json import DjangoJSONEncoder

json.dumps(value, cls=DjangoJSONEncoder)

5
задан Aidan Ryan 20 May 2009 в 11:40
поделиться

3 ответа

Я могу придумать два варианта: 1) иметь отдельный отчет для каждой локализованной версии (это становится ужасно быстро, и я не очень рекомендую) или 2) иметь отчет, созданный из приложения (например, Windows / веб-приложение на C #), а затем вы можете локализовать его, используя стандарты локализации .net и установив весь локализованный текст (считанный из файлов ресурсов) в коде.

Я не уверен насчет 2008 года, но мы также находимся на XI R2. У нас есть локализованные отчеты для каждого языка, но только потому, что мы * знаем *, что нам понадобятся только три разных локализованных версии.

2
ответ дан 14 December 2019 в 19:23
поделиться

Клиент попросил меня разработать для него стратегию локализации. Я хотел написать об этом статью. Благодаря тебе я сделал именно это. http://www.cogniza.com/blog/?p=55

Изменить:

Мне удалось использовать встроенный подотчет (в разделе заголовка отчета), который ссылался на базу данных значений локализации . Я бы добавил это в свою публикацию, но это было довольно сложно.

Другой вариант - создать библиотеку пользовательских функций (UFL), которая обрабатывает эти задачи. Сохраните данные в базе данных или XML-файле. Однако, скорее всего, вы потеряете функциональность ContentLocale.

com / blog /? p = 55

Изменить:

Мне удалось использовать встроенный подотчет (в разделе заголовка отчета), который ссылался на базу данных значений локализации. Я бы добавил это в свою публикацию, но это было довольно сложно.

Другой вариант - создать библиотеку пользовательских функций (UFL), которая обрабатывает эти задачи. Сохраните данные в базе данных или XML-файле. Однако, скорее всего, вы потеряете функциональность ContentLocale.

com / blog /? p = 55

Изменить:

Мне удалось использовать встроенный подотчет (в разделе заголовка отчета), который ссылался на базу данных значений локализации. Я бы добавил это в свою публикацию, но это было довольно сложно.

Другой вариант - создать библиотеку пользовательских функций (UFL), которая обрабатывает эти задачи. Сохраните данные в базе данных или XML-файле. Однако, скорее всего, вы потеряете функциональность ContentLocale.

0
ответ дан 14 December 2019 в 19:23
поделиться

Нашел способ локализации таких значений, как DateTimes, в Crystal Reports.
Например, если дата - август 2009 г., а язык - французский, тогда будет отображаться как août-2009.
И все это БЕЗ переключения текущей культуры потоков на французский.

Соответствующий фрагмент кода (пример):

            //Locale must be set BEFORE report is opened 
            if (this.IsEnglish)
            {
                ReportDoc.ReportClientDocument.PreferredViewingLocaleID =
                    CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleEnglishCanada;
                ReportDoc.ReportClientDocument.LocaleID =
                    CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleEnglishCanada;
                ReportDoc.ReportClientDocument.ProductLocaleID =
                    CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleEnglishCanada;
            }
            else
            {
                ReportDoc.ReportClientDocument.PreferredViewingLocaleID =
                    CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrenchCanada;
                ReportDoc.ReportClientDocument.LocaleID =
                    CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrenchCanada;
                ReportDoc.ReportClientDocument.ProductLocaleID =
                    CrystalDecisions.ReportAppServer.DataDefModel.CeLocale.ceLocaleFrenchCanada;
            }

            //Load the report from file path 
            ReportDoc.Load(reportPath.ToString());
3
ответ дан 14 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: