تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طباعة MshFlexGrid
#1
العناصر التي سنظيفها :

Command2 للطباعة
Command1 للخروج
- سمي 1MshFlexGrid بــــ FlexSel
-

كود :
Option Explicit

Dim MaDb As String
Dim CnStr As String
Dim TitreImp As String

Dim CnnDb As ADODB.Connection
Dim RsSoc As ADODB.Recordset

Dim NbreLigne As Integer
Dim t As Integer
Dim k As Integer


Private Sub Command1_Click()
    End
End Sub

Private Sub Command2_Click()

    Command2.Enabled = False
    
    ' Chargement de la grille qui contiendra les x données d'une page
    Load FlexSel(1)
    
    FlexSel(1).Visible = False
    
    ' Vide la grille d'impression
    Set FlexSel(1).DataSource = Nothing

    ' test du nombre de ligne pour savoir si l'impression doit se faire sur plusieurs pages
    If RsSoc.RecordCount < NbreLigne Then ' une seule page
        Set FlexSel(1).DataSource = RsSoc
        ImprimeFlex
    Else    ' plusieurs pages
        FlexSel(1).Rows = 35
        k = 1
        With RsSoc
            .MoveFirst
            Do While Not .EOF
                FlexSel(1).Row = k
                For t = 1 To 4
                    FlexSel(1).Col = t
                    If IsNull(.Fields(t - 1)) Then
                        FlexSel(1).Text = ""
                    Else
                        FlexSel(1).Text = .Fields(t - 1)
                    End If
                Next t
                k = k + 1
                If k = 35 Then
                    ImprimeFlex
                    FlexSel(1).Clear
                    k = 1
                End If
                .MoveNext
            Loop
        End With
        FlexSel(1).Rows = k - 1
        ImprimeFlex
    End If
              
    ' suppression de la grille d'impression
    Unload FlexSel(1)
            

End Sub

Private Sub FlexSel_Click(Index As Integer)

End Sub

Private Sub Form_Load()

    ' Ouverture de la connection à la base de données
    Set CnnDb = New ADODB.Connection
    Set RsSoc = New ADODB.Recordset
      
    MaDb = PathDb & "Sociétés.mdb"
    CnStr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & MaDb
    RsSoc.Open "SELECT * FROM [DétailSociétés]", CnStr, adOpenKeyset, adLockReadOnly
        
    ' Mise en page du MSHFlexgrid
    
    Set FlexSel(0).DataSource = RsSoc
    
    FlexSel(0).ColWidth(0) = 150
    FlexSel(0).ColWidth(1) = 3000
    FlexSel(0).ColWidth(2) = 2500
    FlexSel(0).ColWidth(3) = 2250
    FlexSel(0).ColWidth(4) = 1500
    
    FlexSel(0).ColHeader(0) = flexColHeaderOn
            
    FlexSel(0).ColHeaderCaption(0, 1) = "NOM de la SOCIETE"
    FlexSel(0).ColHeaderCaption(0, 2) = "NOM du RESPONSABLE"
    FlexSel(0).ColHeaderCaption(0, 3) = "ADRESSE"
    FlexSel(0).ColHeaderCaption(0, 4) = "TELEPHONE"
    
    FlexSel(0).Visible = True
    
    FlexSel(0).Row = 0
    FlexSel(0).Col = 0
    
    ' Initialisation du nombre de ligne d'impression sur une page
    NbreLigne = 36
    
End Sub
Private Sub ImprimeFlex()

    FlexSel(1).ColWidth(0) = 200
    FlexSel(1).ColWidth(1) = 5000
    FlexSel(1).ColWidth(2) = 4000
    FlexSel(1).ColWidth(3) = 4000
    FlexSel(1).ColWidth(4) = 2000
    
    FlexSel(1).ColHeader(0) = flexColHeaderOn
    FlexSel(1).ColHeaderCaption(0, 1) = "NOM de la SOCIETE"
    FlexSel(1).ColHeaderCaption(0, 2) = "NOM du RESPONSABLE"
    FlexSel(1).ColHeaderCaption(0, 3) = "ADRESSE"
    FlexSel(1).ColHeaderCaption(0, 4) = "TELEPHONE"
    
    FlexSel(1).Col = 0
    FlexSel(1).Row = 0
        
    Printer.Orientation = 2
    TitreImp = "Impression des données sociétés"
    Printer.CurrentX = (Printer.Width - Printer.TextWidth(TitreImp)) / 2
    Printer.CurrentY = 200
    Printer.FontName = "Tahoma"
    Printer.FontSize = 14
    Printer.FontBold = True
    Printer.Print TitreImp
    Printer.PaintPicture FlexSel(1).Picture, 500, 800
    Printer.EndDoc
    
End Sub


دوبل كليك على الفورمة و انسخ هذا الكود كما هو


اظف Module و سمه ModuleFlex

اظف له الكود التالي
كود :
Option Explicit

Public fMainForm As Impression

Public PathDb As String

Sub Main()
    
    PathDb = App.Path & "\DataBases\"
        
    Set fMainForm = New Impression
      
    Load fMainForm
    fMainForm.Show
    
End Sub

Public Sub ImageFond(Feuille As Form)
    Feuille.ImgFond.Move 0, 0, Feuille.ScaleWidth, Feuille.ScaleHeight
End Sub


الان ناتي لبرمجة قاعدة البيانات و هي في المرفقات


و بطبيعة الحال من خلال هذا المثال يمكنك استغلاله في برنامجك و تغيير معطياته حسب البرنامج المشتغل عليه

و ارجوا ان ينال اعجابكم


الملفات المرفقة
.rar   Sociétés.rar (الحجم : 10.77 ك ب / التحميلات : 55)
{وَسَارِعُواْ إِلَى مَغْفِرَةٍ مِّن رَّبِّكُمْ وَجَنَّةٍ عَرْضُهَا السَّمَاوَاتُ وَالأَرْضُ أُعِدَّتْ لِلْمُتَّقِينَ }آل عمران133
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Rainbow [سؤال] مساعدة لعمل برنامج حضور وانصراف+وقاعدة بيانات+ربط بالوورد لسهولة طباعة بعض الفورمز فاطمة غ 8 188 01-12-16, 06:37 PM
آخر رد: Amir_alzubidy
  [سؤال] سوال؟ عن طباعة الورقة عرض(التقرير) amer2000 21 498 15-09-16, 10:00 PM
آخر رد: Amir_alzubidy
  طباعة الفورم على الورق fadhely 2 358 02-05-16, 08:00 AM
آخر رد: fadhely
  [سؤال] طباعة التقرير بعدد معين ABO.BANCIANA 5 294 04-03-16, 09:52 PM
آخر رد: ahmedabdelaliem
  مساعدة في كتابة كود يتم من خلاله طباعة الفورم عدد معين من المرات نصر صالح 2 558 20-12-14, 10:03 PM
آخر رد: Ahmed_Mansoor
  درس لتعليم طباعة الفورم اسلام الكبابى 1 632 11-08-13, 01:33 PM
آخر رد: اسلام الكبابى
  طباعة الفورم بأكملها على الورقة مهما كانت أبعادها اسلام الكبابى 5 925 24-05-13, 01:13 AM
آخر رد: اسلام الكبابى
  كيف اطبع الصورة الموجودة على سطح الفوم بدون طباعة الفورم ؟؟ softmail8 8 1,013 17-04-13, 09:35 PM
آخر رد: VB6DAO
  طباعة Frame فقط omarelking 8 1,181 09-10-12, 06:55 PM
آخر رد: karika
  [عنوان معدل] استفسار عن طباعة الوقت والتاريخ omarelking 3 661 30-09-12, 05:02 PM
آخر رد: Ahmad Jawad

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


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