Click here to Skip to main content
15,892,737 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
After migrating from VB6 to Vb.NET over the last 12 months or so, I have started moving our legacy Crystal Reports 8.5 reports over into Microsoft Reporting (VS2015) - however, a lot of our reports display russian, chinese, arabic and other international character sets.

We're slowly moving over from SQL2000 (yes, its that old) onto a newer version of SQL Server once the project is completed but until then, I am having to migrate sections of the project over into .NET (im slowly learning C# while doing this) - but I have just hit a stumbling block on something I cant seem to get a solution from and that is (and I cant believe that its not supported straight off the bat so it HAS to be me) and that is MS Reporting not supporting Unicode for these other character sets. I have either missed something blindingly obvious with MSR or Microsoft have dropped a huge clanger.

I have tried changing the font (I have the standard fonts installed via Win10, which is my development OS) and tried MS Gothic UI and Segui UI - gothic had partial success, some of the chinese characters were converted but partial is not good enough. I dont seem to have MS Arial Unicode - just Arial but I would have thought these other "UI" named fonts would have supported it (I can get winforms to display those characters correctly in Datagridview so I know the font is supports what I need already).

So typically, my code calls an RDLC, sometimes with parameters, sometimes without. A sample of the code is below. SQL is injected through a dataset so it is dynamic within the application. I can view chinese/russian direct through SQL 2000's query viewer.

Dim ReportViewerScreen As New Reporting

                            ReportViewerScreen.Show()
                            ReportViewerScreen.ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
                            ReportViewerScreen.ReportViewer1.Reset()
                            ReportViewerScreen.ReportViewer1.LocalReport.DataSources.Clear()
                            ReportViewerScreen.ReportViewer1.LocalReport.ReportEmbeddedResource = "MyReport.rdlc"

                            Dim sReportDataSource = New Microsoft.Reporting.WinForms.ReportDataSource()
                            sReportDataSource.Name = "DataSet1"
                            sReportDataSource.Value = ds.Tables(0)
                            ReportViewerScreen.ReportViewer1.LocalReport.DataSources.Add(sReportDataSource)
                            ReportViewerScreen.ReportViewer1.LocalReport.EnableExternalImages = True
                            ReportViewerScreen.ReportViewer1.LocalReport.EnableHyperlinks = True

                            ReportViewerScreen.ReportViewer1.RefreshReport()
                            ReportViewerScreen.ReportViewer1.Show()


I was hoping there would be some command or method that I have missed to get this working, 100% in any character set. The Ntext fields (and nvarchar) fields in SQL2000 have all had N' inserts/updates so I know the characters are correct (and visible) in SQL2000 as my previous statement above. Please help! Thanks

What I have tried:

changing fonts, googling unicode microsoft reporting support
Posted
Updated 6-Feb-18 21:41pm
Comments
[no name] 30-Jan-18 8:38am    
Please let us know to which version of sql server your migration is happening.
Richard Deeming 30-Jan-18 10:03am    
Is your data stored as nvarchar, or as varchar with a specific collation?
Member 12561559 30-Jan-18 11:50am    
nvarchar for small fields like names, ntext for larger blocks of texts (under 3000 chars) but in various languages, as far as collation, I presume its whatever is default (uk english). I just tried feed a manually pasted bit of chinese (looks ok) in vb.net as a parameter text field to go straight into the report, bypassing any sql server data - and it still comes out in squares so its definitely nothing to do with collation on SQL.

1 solution

I got it working. I HAD to go the road of Arial MS Unicode so my reports are going to now have to look different to the font I have used in my application. You would think that Segui UI would be compatible, especially since it does seem to use unicode characters as I have utilised it in the datagridview. Thanks Microsoft, not.
 
Share this answer
 
Comments
Member 343598 9-Mar-23 8:26am    
thanks... it saved my time

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900