PDA

View Full Version : سوال: كاراكترهاي خاص در گزارش



sanaz e
شنبه 26 اردیبهشت 1388, 15:28 عصر
با سلام
مشكل من اينه كه وقتي توي يك فيلدي كه از نوع string هست و توي اون كاراكترهاي خاص مثل (- و ...) بكار رفته اونها رو برعكس ميكنه:
مثلا: توي گريد هست ( 1- فيلد اول)
توي گزارش ميشه (فيلد اول-1)
كمك كنيد لطفا:افسرده:

anooshiran
شنبه 26 اردیبهشت 1388, 21:18 عصر
با سلام دوست عزيز

آيا اين فيلد را در ديتابيس ذخيره مي كني و بعد توي datagridview ميريزي يا مستقيما در datagridview تايپ مي كني
ثانيا منظورت از گزارش چيه؟ آيا از گزارش ساز خاصي استفاده مي كني؟

sanaz e
یک شنبه 27 اردیبهشت 1388, 08:43 صبح
من از كريستال رپورت براي ساخت گزارشاتم استفاده مي كنم.
چند تيبل دارم كه حاصل يك query را كه روي اين تيبلها انجام مي دهم در يك ديتا گريد ويو مي ريزم. بعد اطلاعات نمايش داده شده در ديتا گريد ويو را به يك ديتا تيبل تبديل كرده و به سورس گزارشم وصل مي كنم. توي يكي از ستونهاي ديتا گريد دو فيلد رو با -(دش) با هم تلفيق كرده نمايش مي دم كه وقتي ميره تو ديتا گريد برعكس ميشه.

anooshiran
یک شنبه 27 اردیبهشت 1388, 09:06 صبح
با سلام دوست عزيز

متوجه نشدم كه وقتي دو فيلد را با - كانكت مي كني و در گريد نمايش ميدي همانجا در گريد برعكس ميشود يا زماني كه اطلاعات گريد را به يك ديتا تيبل تبديل مي كني در ديتا تيبل برعكس ميشود؟

sanaz e
یک شنبه 27 اردیبهشت 1388, 10:46 صبح
ببخشيد غلط نوشتاري داشتم. من توي ديتا گريد محتويات دو فيلد از ديتا تيبل رو با - بين اونها توي سلول ديتا گريد نشون مي دم و وقتي مي خوام توي كريستال رپورت اطلاعات ديتا گريد رو نشون بدم برعكس ميشه

shamsoft
یک شنبه 27 اردیبهشت 1388, 16:24 عصر
مشکل از Right To Left نبودن فیلد گزارشه!
خیلی وقته کریستال کار نکردم، یادم نمیاد کجاشه ولی یه جایی باید بتونی rtl کنی

alimanam
دوشنبه 28 اردیبهشت 1388, 00:18 صبح
با عرض سلام
برای right to left کردن یک فیلد در کریستال ریپورت روی اون فیلد در گزارش راست کلیک کنید و از لیست گزینه های نمایش داده شده گزینه Format object رو انتخاب می کنیم و بعد در پنجره باز شده روی تب Paragraph کلیک کرده و در قسمت Reading order گزینه Right to left رو فعال می کنیم اینجوری میشه اطلاعات رو از راست به چپ نمایش بدیم .

یا علی

sanaz e
دوشنبه 28 اردیبهشت 1388, 07:42 صبح
دوستان عزيز با تشكر از توجه شما من قبل از اين هم فيلدم رو rigth to left كردم هم rtl كردم ولي نشد!:عصبانی++:
بعد از rigth to left كردن اينجوري ميشه:
-1سال اول
-2سال دوم

شكل اصلي فيلدي كه ميخوام نمايش داده بشه:
1- سال اول
2- سال دوم
.
.
.

anooshiran
دوشنبه 28 اردیبهشت 1388, 19:56 عصر
سلام دوست عزيز

من مشكل شما را روي چند Report Generator متفاوت امتحان كردم و تقريبا در همه آنها به همين مشكل برخوردم.

ولي مشكل به هيچ عنوان از Report Generator ها نيست

مشكل از زبان فارسي و windows است . توجه كنيد حروف فارسي در اصل از ASSCII كدهاي 125 به بالا استفاده مي كند درحالي كه اعداد هرچند هم كه ظاهر فارسي داشته باشند از ASCII كدهاي زير 125 استفاده مي كنند . شما حتي اگر بحاي عدد از حروف لاتين هم استفاده كنيد به همين مشكل ميخوريد. اين مشكل تلفيق تكست و گرافيك است.

كدهاي زير حالتهاي گوناگوني را از كانكت شدن به شما نشان مي دهد. تنها راهي كه براي برون رفت از اين مشكل پيدا كردم استفاده از "ـ" asc(240) به جاي "-" asc(45) مي باشد.

به متغير هاي d220 و d45 توجه كنيد .

اين رويه را تست كنيد اگر جواب گرفتيد حتما اعلام كنيد.




Dim str As New System.Text.StringBuilder
Dim aa As String = "محمد"
Dim a As String = "1"
Dim d220 As String = "ـ" ' ASC(b)=220
Dim d45 As String = "-" ' ASC(bb)=45
Dim bf As String = "حسن"
Dim be As String = "Hassan"
str.Append(a)
'str.Append(" ")
str.Append(d220)
str.Append(" ")
str.Append(bf)

MsgBox(str.ToString)

sanaz e
سه شنبه 29 اردیبهشت 1388, 08:20 صبح
دوست عزيز ممنون از شما. اين رويه توي فرم هاي ويندوز به درستي جواب داد ولي آيا توي رپورت هم جواب مي ده؟

anooshiran
سه شنبه 29 اردیبهشت 1388, 09:32 صبح
سلام دوست عزيز

مطمئنا جواب ميده. من تو active report تست كردم.