Exercice Visual Basic : Impression

Ecrire le programme qui permet de réaliser les Inerfaces suivantes:
lorsqu'on clique sur la boutton Imprimer la deuxième Forme s'affiche.

Remarque:
vous devez créer une base de données contenant les champs cités dans la première interface afin de charger la liste. 

 

 

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121Public Class Form1 Inherits System.Windows.Forms.Form Private gocnx As New ADODB.Connection Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer Dim rs As New ADODB.Recordset ' pour récupérer les fonctions de la dll Dim MySortClass As New ListViewEx.ListViewEx ListViewEx1.View = View.Details ListViewEx1.GridLines = True ' connection à la base gocnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\immo.mdb;Persist Security Info=True" gocnx.Open() ' pour faire moins d'enregistrements rs = gocnx.Execute("select * from immo ") 'where montant>21000") i = 1 ' permet de gagner du temps car pas de repaint durant le chargement ListViewEx1.BeginUpdate() Do While Not rs.EOF With ListViewEx1.Items.Add(CStr(i)) ' ajout des champs .SubItems.Add(CStr(rs.Fields("Noinv").Value)) ' test si le champ est null If Not IsDBNull(rs.Fields("Natinv").Value) Then .SubItems.Add(CStr(rs.Fields("Natinv").Value)) Else .SubItems.Add("") End If .SubItems.Add(CStr(rs.Fields("datesaisie").Value)) .SubItems.Add(Format(rs.Fields("duree").Value, "#0.0000")) .SubItems.Add(Format(rs.Fields("Taux").Value, "#0.0000")) .SubItems.Add(CType(rs.Fields("Type").Value, String)) .SubItems.Add(Format(rs.Fields("Montant").Value, "C")) ' je ne le fait que pour le colonne montant If CDbl(.SubItems.Item(7).Text) Then ' ceci pour que la couleur change pour la colonne .UseItemStyleForSubItems = False .SubItems.Item(7).ForeColor = ListViewEx1.CouleurNombreNegatif End If End With i = i + 1 rs.MoveNext() Loop ' ajout des entêtes et position ' inutile de dimensionner les colonne, la dll le fera ListViewEx1.Columns.Add("", 0, HorizontalAlignment.Left) ListViewEx1.Columns.Add("Code ", 0, HorizontalAlignment.Right) ListViewEx1.Columns.Add("Nature", 0, HorizontalAlignment.Left) ListViewEx1.Columns.Add("Date", 0, HorizontalAlignment.Center) ListViewEx1.Columns.Add("Durée", 0, HorizontalAlignment.Right) ListViewEx1.Columns.Add("Taux", 0, HorizontalAlignment.Right) ListViewEx1.Columns.Add("Type", 0, HorizontalAlignment.Center) ListViewEx1.Columns.Add("Montant", 0, HorizontalAlignment.Right) rs.Close() ' parametres la listView puis mode 0 auto titre ou contenu , 1 contenu MySortClass.AjusterLargeurDesColonnes(ListViewEx1, ListViewEx.ListViewEx.emode.TitreouContenu) ' colore une ligne sur deux ' vous pouvez passer color.blue par exemploe au lieu de color.fromArgb MySortClass.DessinerArrièrePlanFaçonListing(ListViewEx1, ListViewEx1.StandardCouleur, ListViewEx1.AlternateCouleur) ListViewEx1.Items(0).Selected = True ' ici j'adapte la fenêtre à la largeur de la ListView car elle ne dépassera pas l'écran ' sinon je ne le ferai pas Dim w As Integer = 2 For i = 0 To ListViewEx1.Columns.Count - 1 w = w + ListViewEx1.Columns(i).Width + 4 Next Me.Width = w ' je n'oublie pas le complément de BeginUpdate ListViewEx1.EndUpdate() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim MySortClass As New ListViewEx.ListViewEx ListViewEx1.PrintListview() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim frm As New Frmpropos frm.ShowDialog() frm.Dispose() End Sub Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing gocnx.Close() End Sub Private Sub ListViewEx1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListViewEx1.MouseWheel MsgBox("mouseweel") End Sub Private Sub ListViewEx1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListViewEx1.MouseDown ' MsgBox(e.X) End Sub Private Sub ListViewEx1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListViewEx1.DoubleClick MsgBox("Désignation= " & ListViewEx1.SelectedItems(0).SubItems(2).Text & vbCrLf & "Montant= " & ListViewEx1.SelectedItems(0).SubItems(7).Text) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim i As Integer, j As Integer Dim indice As Integer Dim MySortClass As New ListViewEx.ListViewEx On Error Resume Next For i = 0 To ListViewEx1.SelectedItems.Count - 1 indice = ListViewEx1.SelectedItems.Item(j).Index ListViewEx1.Items.Remove(ListViewEx1.Items(indice)) Next MySortClass.DessinerArrièrePlanFaçonListing(ListViewEx1, ListViewEx1.StandardCouleur, ListViewEx1.AlternateCouleur) End SubEnd Class
Article publié le 07 Janvier 2012 Mise à jour le Samedi, 17 Décembre 2022 15:52 par GC Team