Page 2 of 3

How to switch interface language of DesignerControl by code

Posted: Wed Aug 29, 2007 10:20 am
by Fabio Pagano
Same error.

This is the code:

Code: Select all

Dim MainMenuService As Stimulsoft.Report.Design.StiMainMenuService = Stimulsoft.Report.Design.StiMainMenuService.GetService

Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization = AppDomain.CurrentDomain.BaseDirectory

        MainMenuService.SetLocalization("it.xml")
Note: I have changed your code from

Code: Select all

Dim designer As New StiDesigner
    Dim MainMenuService As StiMainMenuService = StiMainMenuService.GetService(designer)
to

Code: Select all

Dim MainMenuService As Stimulsoft.Report.Design.StiMainMenuService = Stimulsoft.Report.Design.StiMainMenuService.GetService
because with your code the following settings:

Code: Select all

MainMenuService.ShowFileReportNew = True
doens't work. With your code the error appeared anyway.

Note that i do the "report.load" before localization code (in your example it is after). I've postponed the two but the problem still exists.

That said, if in my application path i create a subdir called "Localization" and put "it.xml" file in it and i don't execute:

Code: Select all

Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization = AppDomain.CurrentDomain.BaseDirectory

        MainMenuService.SetLocalization("it.xml")
in designer's "File / Select UI Language" i correctly see "Default" and "Italian" ("Default" is selected).

If i execute only

Code: Select all

Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization = AppDomain.CurrentDomain.BaseDirectory

i only see "Default" (though in AppDomain.CurrentDomain.BaseDirectory i have the "it.xml" file).

May this be the problem that causes the error in line
MainMenuService.SetLocalization("it.xml")
?

Thanks.

How to switch interface language of DesignerControl by code

Posted: Thu Aug 30, 2007 2:07 am
by Edward
If you've created a folder Localization in you Directory, then the following code is enough for localization, hiding ReportNew button in the Designer and loading the report:

Code: Select all

Dim Report = New StiReport()
Report.Load("Report.mrt")

Dim MainMenuService As Stimulsoft.Report.Design.StiMainMenuService = StiMainMenuService.GetService()
MainMenuService.ShowFileReportNew = False

Dim designer As New StiDesigner()
MainMenuService = StiMainMenuService.GetService(designer)

        'this line is not necessary if you've created Localization folder
        'Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization = My.Application.Info.DirectoryPath

MainMenuService.SetLocalization("it.xml")

designer.Report = report

designer.Show()

Thank you.

How to switch interface language of DesignerControl by code

Posted: Thu Aug 30, 2007 4:04 am
by Fabio Pagano
My problem is that i don't want to put the "it.xml" in "Localization" application subdir (that was only a test).

I need that localization file is in the application directory.

As above said, this code (taken by your previous post) raises an error:

Code: Select all

Dim designer As New Stimulsoft.Report.Design.StiDesigner
        MainMenuService = Stimulsoft.Report.Design.StiMainMenuService.GetService(designer)
        Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization = My.Application.Info.DirectoryPath
        MainMenuService.SetLocalization("it.xml")
Note: i need to set the "DirectoryLocalization" property because "it.xml" file is not in "Localization" subdir.

The error is thrown by "SetLocalization" method and is:

Value cannot be null.
Parameter name: control

Stack trace (beginning):

System.ArgumentNullException was unhandled
Message="Value cannot be null.
Parameter name: control"
ParamName="control"
Source="System.Windows.Forms"
StackTrace:
at System.Windows.Forms.ToolTip.SetToolTipInternal(Control control, TipInfo info)
at System.Windows.Forms.ToolTip.SetToolTip(Control control, String caption)
at Stimulsoft.Report.Design.Toolbars.StiStandardToolbarService.Localize()
at Stimulsoft.Report.Design.StiDesigner.LocalizeToolbars()
at Stimulsoft.Report.Design.StiDesigner.LocalizeDesigner()
at Stimulsoft.Report.Design.StiMainMenuService.UpdateLocalization()
at Stimulsoft.Report.Design.StiMainMenuService.SetLocalization(String localizationFile)

Thanks.

How to switch interface language of DesignerControl by code

Posted: Thu Aug 30, 2007 4:43 am
by Edward
Sorry, we can't reproduce the exception on our side. The code

Code: Select all

Dim designer As New Stimulsoft.Report.Design.StiDesigner
        MainMenuService = Stimulsoft.Report.Design.StiMainMenuService.GetService(designer)
        Stimulsoft.Report.StiOptions.Configuration.DirectoryLocalization = My.Application.Info.DirectoryPath
        MainMenuService.SetLocalization("it.xml")
working without exception ...

Please send test solution to Image if exception is still present in your project.

Thank you.

How to switch interface language of DesignerControl by code

Posted: Thu Aug 30, 2007 10:15 am
by Edward
All that you should to do to avoid an exception is to add to your project all dlls in to the ReferenciedAssemblies. After that Stimulsoft.Editor.dll and Stimulsoft.Compression.dll will be added to bin\debug folder and exception will disappear.

Thank you.

How to switch interface language of DesignerControl by code

Posted: Fri Aug 31, 2007 6:18 pm
by Fabio Pagano
I've sent you a message in ticket #210352.

How to switch interface language of DesignerControl by code

Posted: Mon Sep 03, 2007 6:42 am
by joero
We have exactly the same problem here. So I'm also interested in the outcome of this bug report.

Referencing both Stimulsoft.Editor and Stimulsoft.Compression didn't fix this problem.

Thanks,
Jörg

How to switch interface language of DesignerControl by code

Posted: Mon Sep 03, 2007 7:49 am
by Fabio Pagano
Joero, for your convenience i post here the private message sent in the ticket. The problem is actually under examination by Stimulsoft.

---

I have solved, but in another way.

First i deleted dll from gac as you told me. Then i rebuilded the project and executed it from \bin dir. The problem was still there. Then i downloaded 29 august build, did not registered in gac but the problem was still there.

Then i deleted configuration files from C:\Documents and Settings\MyUserName\Local settings\Application data\Stimulsoft (DockingPanels.config, Stimulsoft.Report.Config, Stimulsoft.Report.Design.Config, Stimulsoft.Report.Settings) and the problem disappeared.

Probably in my tests i did something that "corrupted" those files.

But i've investigated more. In the sample project i sent you, if i add the lines:
----
MainMenuService = Stimulsoft.Report.Design.StiMainMenuService.GetService

MainMenuService.ShowSelectLanguage = False
----

a nullreference exception appears.

It seems that if the ShowSelectLanguage menu is not visible, then the "SetLocalization" method fails. (Just supposing...).

If i remove the line:

MainMenuService.ShowSelectLanguage = False

the error disappears.

My necessity is to set the Italian language (setting the "it.xml" file present in application dir) and do not make see in the designer the "select language" menu (i only need Italian).

Thanks

How to switch interface language of DesignerControl by code

Posted: Tue Sep 04, 2007 4:20 am
by Edward
Thank you for describing this issue.

The problem is fixed. Patch will be available in the official release version 2007.2.

Thank you.

How to switch interface language of DesignerControl by code

Posted: Wed Sep 05, 2007 2:06 am
by joero
Thanks Fabio and Edward!

I'm looking forward to this release.