برطرف کردن مشکل نمایش کاراکترهای یونیکد در Reporting Services

SQL Server 2008

SQL Server 2008

گزارش های Reporting Service معمولا با فراخوانی یک Function یا StoreProcedure که در پایگاه داده نوشته می شوند و گرفتن یک سری فیلد ( که در فانکشن ) نوشته شده تولید می شوند .

در حالت عادی هیچ مشکلی وجود ندارد و کوئری های شما بخوبی خروجی می دهند و اگر Design خوبی ( یونیکدی ) داشته باشید به مشکلی بر نمی خورید . مشکل وقتی پیش خواهد آمد که بجای اینکه از یک Table خروجی بگیرید بصورت دستی در یک case یک رشته متنی ( فارسی ) بنویسید و با حالت های مختلف یکی از این رشته ها را برای گزارش بفرستید .

با این کار خروجی ای که Sql Server تولید خواهد کرد یک کلمه غیر یونیکد است و در نهایت در خروجی شما کلمات غیریونیکد می بینید . برای مثال وقتی در یک فانکشن داشته باشید

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetLetterTypeName]’) AND type in (N’FN’, N’IF’, N’TF’, N’FS’, N’FT’))
DROP FUNCTION [dbo].[GetLetterTypeName]
GO
CREATE FUNCTION GetLetterTypeName(@letterType int )
RETURNS Nvarchar(255)
AS
BEGIN
declare @res nvarchar(255)
–collate Albanian_CI_AI_KS_WS not null–Persian_100_CS_AI
set @res =”

if @LetterType = 0
set @res = ‘نامه رسیده’

if @LetterType = 1
set @res = ‘نامه ارسالی’

if @LetterType = 2
set @res = ‘نامه داخلی’

return @res
END

نمایش غیرص�ی� کاراکترهای یونیکد در گزارش ها که توسط Sql Server تولید می شود

نمایش غیرصحیح کاراکترهای یونیکد در گزارش ها که توسط Sql Server تولید می شود

وقتی در گزارش بجای کلمه نامه ارسالی کامه نامه ارسالي  ( به حرف ی دو نقطه در آخر کلمه دقت کنید ) را تولید خواهد کرد . برای رفع این مشکل باید قبل از رشته تولیدی حرف N را بصورت زیر قرار دهید .

if @LetterType = 0
set @res = N ‘نامه رسیده’

if @LetterType = 1
set @res = N’نامه ارسالی’

if @LetterType = 2
set @res = N’نامه داخلی’

نمایش ص�ی� کاراکترهای یونیکد در گزارش ها پس از اصلا� رشته

نمایش صحیح کاراکترهای یونیکد در گزارش ها پس از اصلاح رشته

در نهایت خروجی شما در گزارش صحیح خواهد شد . با تشکر از افشار محبی و مسعود رمضانی به خاطر درمیان گذاشتن وحل این مشکل .

2 Responses to برطرف کردن مشکل نمایش کاراکترهای یونیکد در Reporting Services

  1. codeprojects says:

    سلام آقای حاجلو اگه مایلید تبادل لینک کنیم.
    http://www.codeprojects.wordpress.com

    تشکر از مطالب خوبتون

  2. Iman says:

    Hajiloo, thanks for sharing. Keep on your nice blog!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: