الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يوجد كود لطباعة MSFlexGrid

رائج
بدأه جواد في 19 يناير 2011 · 11 رد · 40,520 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخواني اعاني من طباعة MSFlexGrid

هل يوجد كود لطباعة البيانات التي بداخل MSFlexGrid

شاكرا لكم جهدكم

#2

هل يوجد كود اخواني الاعزاء

#4

ما زبط معي اخي العزيز

هل يوجد حل آخر

#5

مرحبا

المثال التالي يمكنك من تحويل الفليكس إلى برنامج وورد أو برنامج أكسل

ومن هناك ممكن القيام بطباعة البيانات

Msflixgrid to word and excel for print.rar

#6

السلام عليكم

هناك طريقتين استخدمها لطباعة محتويات MSFlexGrid

1- اذا كنت تعرض جدول من غير اجراء عمليات عليه فيمكنك اسناد جملة الاستعلام التي

تستخدمها في عرض البيانات داخل MSFlexGrid الى التقرير

2- اذا كانت هناك عمليات مثلا حسابية وغيرها ومن ثم تظهر النتائج داخل MSFlexGrid

فيمكنك قراءة ال MSFlexGrid وتحويلها الى جدول داخل قاعدة البيانات ويكون التقرير

فيه اصلا جملة استعلام تقرا هذا الجدول وهذا كود لقراءة ال MSFlexGrid وتحويلها الى جدول

    

sqls1 = "select * from table1 "
If rs4.State = adStateOpen Then rs4.Close
rs4.Open sqls1, db, adOpenKeyset, adLockPessimistic
 For i = 1 To fg2.Rows - 1

        rs4.AddNew
        fg2.Col = 1
        fg2.Row = i

        rs4![projectname] = fg2.Text
        fg2.Col = 2
        rs4![projectcode] = fg2.Text
        fg2.Col = 3
        rs4![trandate] = fg2.Text
        fg2.Col = 4
        rs4![dep1] = fg2.Text


   rs4.Update
   Next i
#7

شكراً لكما اخواني محمدvb و AHMAD KALIL

والله يرزقكم و يوفقكم

اخي AHMAD KALIL ممكن تضع لي الكود كاملا يعني الاتصال بقاعدة البيانات وكود الطباعة الله يعطيك العافية

أنتظر ردك الكريم

#8

السلام عليكم

ارفق مثال لتحويل البيانات من MSFlexGrid الى جدول في قاعدة البيانات

في المثال استخدمت ادخال البيانات مباشرة داخل MSFlexGrid ولكن تستطيع

جلبها من جدول

ومن ثم تحويلها مرة اخرى اي بالعكس من MSFlexGrid الى جدول الذي بدوره

مربوط بجملة استعلام داخل تقرير

ملاحظة / استخدمت التقرير ActiveReport للطباعة اذا لم تكن تستخدمة تسطيع

تنزيله فهو جميل جدا

FlexGrid To Table.rar

#9

اخي العزيز ما اشتغل معي

ما رضي يتخمل الملف الذي يحمل اسم ActiveReport1.Dsr مع المشروع

هل تشرح كيف اضبط الـ ActiveReport

مع الشكر الجزيل اخي AHMAD KALIL

#10

السلام عليكم

ابحث يوجد موضع في هذا المنتدى وفيه رابط لتنزيل ActiveReport داخله

او ابحث بالانترنت ستجد البرنامج ان شاء الله

وبعد تنزيله انا مستعد للاجابة

هذا رابط

/index.php?showtopic=147831&st=0

تم تعديل هذه المشاركة بواسطة AHMAD KALIL في 23 يناير 2011 في 16:24

#11

ضع هذا الكود في أعلى شاشة الكود General

Sub imprime(grille As MSFlexGrid) 
   Printer.RightToLeft = False 
    Printer.ScaleMode = 6 
    offset% = Printer.CurrentY 
    Printer.FontName = "Arabic Transparent" 
    Printer.FontSize = 8.3 
    Printer.FontBold = False 

   Dim x, y As Integer 

    x = Screen.Width / Screen.TwipsPerPixelX 
    y = Screen.Height / Screen.TwipsPerPixelY 
    rx = x / 800 
    ry = y / 600 
    '******* 
    hh% = grille.CellTop / ry 
    Y1% = offset% 
    For a% = 0 To grille.Rows - 1 
        grille.Row = a% 'ligne active 
        Y1% = Y1% + ((grille.CellHeight / ry) / 56.7) 
        If Y1% > 270 Then Printer.NewPage: Y1% = 10 

        Y2% = Y1% + ((grille.CellHeight / ry) / 56.7) 
        For B% = 0 To grille.Cols - 1 
            grille.Col = B% 'colonne ative 
            X1% = (grille.CellLeft / rx) / 56.7 
            X2% = X1% + ((grille.CellWidth / rx) / 56.7) 
            coul = grille.CellBackColor 
            If coul = 0 Then coul = RGB(255, 255, 255) 
            Printer.FillStyle = 0 'rectangle plein 
            Printer.FillColor = coul 

            Printer.Line (X1%, Y1%)-(X2%, Y2%), , B 
            Printer.CurrentX = X1% + 0.5 
            Printer.CurrentY = Y1% 
            t$ = grille.Text 
            tt$ = "" 
            If grille.CellWidth > 0 Then 
                For ac% = 1 To Len(t$) 
                    tt$ = Left(t$, ac%) 
                    wc% = Printer.TextWidth(tt$)  twips 
                    If X1% + wc% > X2% - 2 Then Exit For 
                Next ac% 
                tb$ = Left(tt$, ac%) 
             For i% = 1 To Len(tb$) 
                ie% = InStr(tb$, Chr$(13) + Chr$(10)) 
                If ie% > 0 Then 
                    tbb$ = Left(tb$, ie% - 1) 
                    tb$ = Mid(tb$, ie% + 2) 
                    Printer.CurrentX = X1% + 0.5 
                    Printer.Print tbb$ 
                    i% = ie% + 2 
                Else 
                    Printer.CurrentX = X1% + 0.5 
                    Printer.Print tb$ 
                Exit For 
                End If 
             Next i% 

            End If 
        Next B% 
    Next a% 
    Printer.EndDoc 
End Sub

وفي زر طباعة الفليكس ضع هذا السطر

Call imprime(MSFlexGrid1)

ملاحظه :: يجب أن يكون أسم الأداة (MSFlexGrid1)

ولو ما عرفت ضع مثالك هنا علما ان الكود شغال تمام .. تحياتي

#12

شكراص اخي محمدvb ولكن يوجد خطأ بالكود

اظهر لي خطأ في هذا السطر

offset% = Printer.CurrentY

وايضا هنا

wc% = Printer.TextWidth(tt$) twips

مواضيع مشابهة