كيفية بناء تقارير كريستال متعددة اللغات
-
10-07-2019 - |
سؤال
نحن نعمل على تطوير تطبيق Winforms متعدد اللغات باستخدام visual studio 2008.أحاول معرفة كيف يمكنني إنشاء تقارير متعددة اللغات باستخدام تقارير الكريستال.
هل يوجد أي شيء مشابه لملفات الموارد .net في عالم تقارير Crystal؟
المحلول
وأنا آسف أنني سرقة لكم شارة tumbleweed، ولكن لا أعتقد كريستال لديه دعم اللغة متعددة على غرار .NET. أعتقد أن لديك الخيار الوحيد هو أن يكون هناك تقرير منفصل لكل لغة وتمرير البيانات في التقرير باللغة التي ترغب في عرضها.
وهنا هو وجود صلة للإجابة مماثلة. http://www.dbforums.com/crystal- تقارير / 991737-الكريستال-تقرير-multillingual support.html
نصائح أخرى
ستكون هذه طريقة يدوية للقيام بذلك:
قم بإنشاء تقرير لكل لغة تريدها ووضعه في بنية المجلدات المناسبة.أي.سيتم نقل جميع التقارير اليابانية إلى المجلد rpt_ja/.
استخدم ملف .Net Resource لتحديد اسم مورد التقرير واسم المورد الكامل لكل لغة:
الموارد.resx
RPT_SAMPLE-> report01.rpt
RPT_SAMPLE_FULL -> MyCompany.NameSpace.Reports.Report01.rpt
الموارد.ja.resx
RPT_SAMPLE -> rpt_ja eport01.ja.rpt
RPT_SAMPLE_FULL -> MyCompany.NameSpace.Reports.Report01.ja.rpt
ثم استخدم هذه القيمة في ملف كود التقرير:افتح ملف التقرير .cs وقم بتغيير:
public override string ResourceName { get { // Change this to HttpContext.GetGlobalResourceObject("Resource", "RPT_SAMPLE").ToString(); return "report01.rpt"; } set { // Do nothing }
}
public override string FullResourceName { get { // Change this to HttpContext.GetGlobalResourceObject("Resource", "RPT_SAMPLE_FULL").ToString(); return "rpt_ja\report01.ja.rpt"; } set { // Do nothing } }
يحرر:HttpContext مخصص لتطبيق الويب ASP.Net.في winform، يمكنك تجربة Properties.Resources.ResourceManager.GetString() للحصول على السلسلة من الموارد
يسألني أحد العملاء عن حل لهذه المشكلة.لقد قمت بتطوير حل يعتمد على الكلمة الأساسية الخاصة بـ Crystal Reports contentLocale والوظائف المخصصة.انظر تدوينتي: http://www.cogniza.com/blog/?p=55.