تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعريب عناصر جدول في الريتش بوكس _ مرفق _( كود _ مثال _صورة )
#1
بسم الله الرحمن الرحيم 
السلام عليكم ورحمة الله وبركاته 

ارجو من الاخوة الكرام المساعده في اظهار النصوص باللغه العربيه 
ولكم جزيل الشكر 
كود الاداة
كود :
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Namespace howto_rtf_table
    Public Class RtfTable
        Public InternalMargin As Integer = 180
        Public NumRows, NumCols As Integer
        Public ColumnWidths() As Integer = Nothing
       Public Contents(,) As String = Nothing

       Public Sub New(ByVal num_rows As Integer, ByVal num_cols As Integer, ByVal internal_margin As Integer)
            NumRows = num_rows
            NumCols = num_cols
            InternalMargin = internal_margin
            ColumnWidths = Enumerable.Repeat(1440, NumCols).ToArray()

           Contents = New String(NumRows - 1, NumCols - 1) {}


           For r As Integer = 0 To NumRows - 1
               For c As Integer = 0 To NumCols - 1
                   Contents(r, c) = ""
               Next c
           Next r
       End Sub

        Public Sub SetColumnWidths(ParamArray ByVal widths() As Integer)
            For c As Integer = 0 To NumCols - 1
                ColumnWidths(c) = widths(c)
            Next c
        End Sub

        Public Overrides Function ToString() As String
            Dim sb As New StringBuilder()
            Dim column_widths_string As String = ColumnWidthsString()

            For r As Integer = 0 To NumRows - 1
                ' Start the row.
                sb.Append("\trowd")
                sb.Append("\trgaph" & InternalMargin.ToString())

                ' Column widths.
                sb.Append(column_widths_string)

                ' Column contents.
                For c As Integer = 0 To NumCols - 1
                    sb.Append("\pard\intbl{" & Contents(r, c).Replace("\", "\\") & "}\cell")
                Next c

                ' End the row.
                sb.Append("\row")
            Next r
            Return sb.ToString()
        End Function

        Private Function ColumnWidthsString() As String
            Dim sb As New StringBuilder()
            Dim total As Integer = 0
            For c As Integer = 0 To NumCols - 1
                total += ColumnWidths(c)
                sb.Append("\cellx" & total.ToString())
            Next c
            Return sb.ToString()
        End Function
    End Class
End Namespace
 
كود الاستدعاء واضافة البيانات 
كود :
Dim table As New RtfTable(10, 2, 220)
       table.SetColumnWidths(1200, 1200)
       table.Contents(0, 0) = "اسم الصنف"
       table.Contents(0, 1) = "الثمن"
       rtbTable.Rtf = rtbTable.Rtf.Replace("@@@", table.ToString)

مرفق صورة توضيحيه 
مرفق مثال 
   


الملفات المرفقة
.rar   WindowsApp11.rar (الحجم : 45.84 ك ب / التحميلات : 5)
اللهم صلي علي نبي (الرحمه) محمد رسول الله وبارك علي اله وصحابته والتابعين  واحقن دماء امتنا واجعل بأسنا علي اعدائنا يا ارحم الراحمين
[b]امين [/b]



الرد
تم الشكر بواسطة: سعود
#2
وعليكم السلام   ورحمة الله وبركاته
لا  املك تجربة للاسف لكن ان كانت مثل تحميل النصوص  من مواقع او حتى ملفات نصية فبلا شك تحتاج ضبط الترميز او الانكود Encode .
الرد
تم الشكر بواسطة: zinom , zinom
#3
(28-11-21, 08:46 PM)سعود كتب : وعليكم السلام   ورحمة الله وبركاته
لا  املك تجربة للاسف لكن ان كانت مثل تحميل النصوص  من مواقع او حتى ملفات نصية فبلا شك تحتاج ضبط الترميز او الانكود Encode .

-بعيدة تمام عن الويب  
استخدمها لعرض بيانات من قاعدة البيانات بالصيغه النصيه - وك دليل (بالامكان تغيير هذه القيمه الي عدد صفوف الداتا تابل ).

datatable.rows.count




ولكن في المثال اسند اليها القيم مباشرة -كما هو واضح -لكن عند اسناد القيم النصيه للاداة تعرض بهذا الشكل
اللهم صلي علي نبي (الرحمه) محمد رسول الله وبارك علي اله وصحابته والتابعين  واحقن دماء امتنا واجعل بأسنا علي اعدائنا يا ارحم الراحمين
[b]امين [/b]



الرد
تم الشكر بواسطة: سعود , سعود
#4
تحديث الدالة ToString في الكلاس RtfTable
كود :
Public Overrides Function ToString() As String
    Dim sb As New StringBuilder()
    Dim column_widths_string As String = ColumnWidthsString()

    For r As Integer = 0 To NumRows - 1
        ' Start the row.
        sb.Append("\trowd")
        sb.Append("\trgaph" & InternalMargin.ToString())

        ' Column widths.
        sb.Append(column_widths_string)

        ' Column contents.
        For c As Integer = 0 To NumCols - 1
            Dim t = String.Concat(System.Text.Encoding.GetEncoding(1256).GetBytes(Contents(r, c)).Select(Function(x) "\'" & Hex(x)))
            sb.Append("\pard\intbl{\ltrpar\ltrpar\lang1025\f0\rtlch" & t & "\lang1033\f1\ltrch}\cell")
        Next c

        ' End the row.
        sb.Append("\row")
    Next r
    Return sb.ToString()
End Function

اخبرني بالتيجة
الرد
تم الشكر بواسطة: سعود , سعود , zinom , zinom
#5
(28-11-21, 09:43 PM)E100 كتب : تحديث الدالة ToString في الكلاس RtfTable
كود :
Public Overrides Function ToString() As String
   Dim sb As New StringBuilder()
   Dim column_widths_string As String = ColumnWidthsString()

   For r As Integer = 0 To NumRows - 1
       ' Start the row.
       sb.Append("\trowd")
       sb.Append("\trgaph" & InternalMargin.ToString())

       ' Column widths.
       sb.Append(column_widths_string)

       ' Column contents.
       For c As Integer = 0 To NumCols - 1
           Dim t = String.Concat(System.Text.Encoding.GetEncoding(1256).GetBytes(Contents(r, c)).Select(Function(x) "\'" & Hex(x)))
           sb.Append("\pard\intbl{\ltrpar\ltrpar\lang1025\f0\rtlch" & t & "\lang1033\f1\ltrch}\cell")
       Next c

       ' End the row.
       sb.Append("\row")
   Next r
   Return sb.ToString()
End Function

اخبرني بالتيجة
لقد قمت بإستخدام الحد الأقصى المسموح لك به لإضافة تقييم للسمعة لليوم الواحد.

 ماشاء الله تبارك الله بالنسبة لي النتيجة روعة.
الرد
تم الشكر بواسطة: zinom
#6
(28-11-21, 09:43 PM)E100 كتب : تحديث الدالة ToString في الكلاس RtfTable
كود :
Public Overrides Function ToString() As String
   Dim sb As New StringBuilder()
   Dim column_widths_string As String = ColumnWidthsString()

   For r As Integer = 0 To NumRows - 1
       ' Start the row.
       sb.Append("\trowd")
       sb.Append("\trgaph" & InternalMargin.ToString())

       ' Column widths.
       sb.Append(column_widths_string)

       ' Column contents.
       For c As Integer = 0 To NumCols - 1
           Dim t = String.Concat(System.Text.Encoding.GetEncoding(1256).GetBytes(Contents(r, c)).Select(Function(x) "\'" & Hex(x)))
           sb.Append("\pard\intbl{\ltrpar\ltrpar\lang1025\f0\rtlch" & t & "\lang1033\f1\ltrch}\cell")
       Next c

       ' End the row.
       sb.Append("\row")
   Next r
   Return sb.ToString()
End Function

اخبرني بالتيجة


ما شاء الله عليك - سلم الله عقلك ويداك - بارك الله فيك ولك _ 
طلب اخير من حضرتك _اذا تفضلت 
 ممكن تشرح كيف اعرف نوع  الترميز _  
شكرا جزيلا

جزيل الشكر اخواني الكرام علي المساعدة 


اخواني الكرام
 


فائق احترامي
اللهم صلي علي نبي (الرحمه) محمد رسول الله وبارك علي اله وصحابته والتابعين  واحقن دماء امتنا واجعل بأسنا علي اعدائنا يا ارحم الراحمين
[b]امين [/b]



الرد
تم الشكر بواسطة: سعود , سعود



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم