تقييم الموضوع :
  • 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 ك ب / التحميلات : 104)
{وَسَارِعُواْ إِلَى مَغْفِرَةٍ مِّن رَّبِّكُمْ وَجَنَّةٍ عَرْضُهَا السَّمَاوَاتُ وَالأَرْضُ أُعِدَّتْ لِلْمُتَّقِينَ }آل عمران133
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف يتم طباعة تقرير اكتف ريبورت مباشرة gonm64 1 1,412 03-02-22, 06:22 AM
آخر رد: Taha Okla
Rainbow [سؤال] مساعدة لعمل برنامج حضور وانصراف+وقاعدة بيانات+ربط بالوورد لسهولة طباعة بعض الفورمز فاطمة غ 10 11,653 31-10-20, 01:00 AM
آخر رد: ryadd
  طباعة Frame فقط omarelking 9 4,986 05-10-20, 03:39 PM
آخر رد: alim54
  طباعة الفورم بأكملها على الورقة مهما كانت أبعادها اسلام الكبابى 6 5,994 09-06-20, 06:14 PM
آخر رد: شوشه
  [vb6.0] كيف طباعة فاتورة مبيعات من طابعة EPSON LQ-350 awidan76 1 2,574 20-11-18, 12:19 PM
آخر رد: awidan76
  [vb6.0] كود طباعة عمور2016 5 3,150 13-03-18, 12:57 AM
آخر رد: Ahmed_Mansoor
  [كود] كود طباعة جدولين في تقرير واحد عمور2016 4 2,738 07-03-18, 02:24 AM
آخر رد: عمور2016
  [سؤال] سوال؟ عن طباعة الورقة عرض(التقرير) amer2000 21 7,944 15-09-16, 10:00 PM
آخر رد: Amir_Alzubidy
  طباعة الفورم على الورق fadhely 2 3,045 02-05-16, 08:00 AM
آخر رد: fadhely
  [سؤال] طباعة التقرير بعدد معين ABO.BANCIANA 5 3,223 04-03-16, 09:52 PM
آخر رد: ahmedabdelaliem

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


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