PDA

View Full Version : مشکل RightToLeft با ActiveReport



soheil_programmer
یک شنبه 23 فروردین 1388, 17:10 عصر
با سلام

من چندین برنامه با ActiveReport طراحی کردم و حالا در هنگام استفاده از جملات ترکیبی انگلیسی و فارسی و بدلیل نداشتن خاصیت RightToLeft در TextBox ها و Labelهای ActiveReport برام مشکل پیش اومده لطفاً کمک بفرمائید.:عصبانی++::گریه:

hrj1981
یک شنبه 23 فروردین 1388, 18:26 عصر
دوست عزيز با سلام
تا نسخه 1314 اكتيو رييورت اين مشكل حل نشده باقي مانده است انشاا... با مكاتبات دوستان اين نقيصه نرم افزار رفع گردد.

soheil_programmer
دوشنبه 24 فروردین 1388, 09:17 صبح
دوست عزيز با سلام
تا نسخه 1314 اكتيو رييورت اين مشكل حل نشده باقي مانده است انشاا... با مكاتبات دوستان اين نقيصه نرم افزار رفع گردد.

سلام

خود من در حال مکاتبه هستم مثلاً!! اما جواب نمیدن نامردها!!:عصبانی++:

ASKaffash
دوشنبه 24 فروردین 1388, 09:32 صبح
سلام
قبلا در یک تاپیک روشی را با سورس با استفاده از یک Activex قرار دادم لطفا با جستجو پیدا کنید ولی سورس ActiveX به قرار ذیل است :
(نام فایل هم LabelExtended بود)


Public Sub Font(FontName As String, FontSize As Single, FontBold As Boolean)
With UserControl.Label1.Font
.Name = FontName
.Size = FontSize
.Bold = FontBold
End With
End Sub
Public Sub Alignment(Value As AlignmentConstants)
UserControl.Label1.Alignment = Value
End Sub
Public Property Get Caption() As String
Caption = UserControl.Label1.Caption
End Property
Public Property Let Caption(Value As String)
UserControl.Label1.Caption = Value
PropertyChanged "Caption"
End Property
Public Property Get ForeColor() As OLE_COLOR
ForeColor = UserControl.Label1.ForeColor
End Property
Public Property Let ForeColor(Value As OLE_COLOR)
UserControl.Label1.ForeColor = Value
PropertyChanged "ForeColor"
End Property
Public Property Get BackColor() As OLE_COLOR
BackColor = UserControl.Label1.BackColor
End Property
Public Property Let BackColor(Value As OLE_COLOR)
UserControl.Label1.BackColor = Value
PropertyChanged "BackColor"
End Property
Private Sub UserControl_Resize()
With UserControl.Label1
.Top = 0
.Left = 0
.Width = UserControl.ScaleWidth
.Height = UserControl.ScaleHeight
End With
End Sub
Private Sub UserControl_InitProperties()
If Not UserControl.Ambient.UserMode Then
Me.Caption = UserControl.Name
Me.ForeColor = 0
Me.BackColor = RGB(255, 255, 255)
End If
Call UserControl_Resize
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Me.Caption = PropBag.ReadProperty("Caption", "")
Me.ForeColor = PropBag.ReadProperty("ForeColor", UserControl.ForeColor)
Me.BackColor = PropBag.ReadProperty("BackColor", UserControl.BackColor)
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Caption", Me.Caption, "")
Call PropBag.WriteProperty("ForeColor", Me.ForeColor, UserControl.ForeColor)
Call PropBag.WriteProperty("BackColor", Me.BackColor, UserControl.BackColor)
End Sub

soheil_programmer
دوشنبه 24 فروردین 1388, 12:56 عصر
سلام
قبلا در یک تاپیک روشی را با سورس با استفاده از یک Activex قرار دادم لطفا با جستجو پیدا کنید ولی سورس ActiveX به قرار ذیل است :
(نام فایل هم LabelExtended بود)


Public Sub Font(FontName As String, FontSize As Single, FontBold As Boolean)
With UserControl.Label1.Font
.Name = FontName
.Size = FontSize
.Bold = FontBold
End With
End Sub
Public Sub Alignment(Value As AlignmentConstants)
UserControl.Label1.Alignment = Value
End Sub
Public Property Get Caption() As String
Caption = UserControl.Label1.Caption
End Property
Public Property Let Caption(Value As String)
UserControl.Label1.Caption = Value
PropertyChanged "Caption"
End Property
Public Property Get ForeColor() As OLE_COLOR
ForeColor = UserControl.Label1.ForeColor
End Property
Public Property Let ForeColor(Value As OLE_COLOR)
UserControl.Label1.ForeColor = Value
PropertyChanged "ForeColor"
End Property
Public Property Get BackColor() As OLE_COLOR
BackColor = UserControl.Label1.BackColor
End Property
Public Property Let BackColor(Value As OLE_COLOR)
UserControl.Label1.BackColor = Value
PropertyChanged "BackColor"
End Property
Private Sub UserControl_Resize()
With UserControl.Label1
.Top = 0
.Left = 0
.Width = UserControl.ScaleWidth
.Height = UserControl.ScaleHeight
End With
End Sub
Private Sub UserControl_InitProperties()
If Not UserControl.Ambient.UserMode Then
Me.Caption = UserControl.Name
Me.ForeColor = 0
Me.BackColor = RGB(255, 255, 255)
End If
Call UserControl_Resize
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Me.Caption = PropBag.ReadProperty("Caption", "")
Me.ForeColor = PropBag.ReadProperty("ForeColor", UserControl.ForeColor)
Me.BackColor = PropBag.ReadProperty("BackColor", UserControl.BackColor)
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Caption", Me.Caption, "")
Call PropBag.WriteProperty("ForeColor", Me.ForeColor, UserControl.ForeColor)
Call PropBag.WriteProperty("BackColor", Me.BackColor, UserControl.BackColor)
End Sub




ببخشید این روش برای نرم افزار گزارش گیر ActiveReport است؟؟؟

من که از مثال شما سر در نیاوردم؟!

sajjad_k62
شنبه 26 شهریور 1390, 23:20 عصر
با سلام هر كس راهنمايي مي خواد لطف كنه با شماره من تماس بگيره 09173124311

کرکی
پنج شنبه 12 آبان 1390, 16:07 عصر
راه حل:
http://barnamenevis.org/showthread.php?15561-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-ActiveReport&p=1369331&viewfull=1#post1369331
موفق باشید

zeroone01
یک شنبه 08 بهمن 1391, 15:04 عصر
سلام
بنظرم ActiveReport نسبت به CrystalReport خیلی خیلی بهتره.اگرچه این برنامه نسبت به CrystalReport چند تا ضعف داره اما به برنامه نویس این امکان رو میده که با کد نویسی، مشکل رو حل کنه
متاسفانه یکی از مشکلات ActiveReport، متون فارسی هستش. مثلا راست به چپ کردن جملات فارسی ممکن نیست و یا در خروجی Pdf ،فونتها از هم جدا و بر عکس نمایش داده میشن:ناراحت:
من یه کامپوننت طراحی کردم که تا حدودی این مشکلات رو حل میکنه:لبخندساده:
یه فایل به اسم ActiveLabel.ocx که باید در System32 ویندوز کپی بشه و مثل سایر کامپوننتها رجیستر بشه
واسه استفاده از این ابزار باید در محیط طراحی گزارش و در بخش نوار ابزار روی Activex control (چکش و آچار) کلیک کنید و از لیست ActiveLabelComponent.ActiveLabel رو انتخاب کنید و یه Label رسم کنید
امیدوارم این ابزار مفید باشه
راستی یادتون نره که فایل ActiveLabel.ocx باید به همراه برنامه شما در کامپیوتر مورد نظر رجیستر بشه