none
incrémenter un numéro RRS feed

  • Discussion générale

  • Je suis en train de créer un modèle bon de commande, comment peut on incrémener un numéro automatique à chaque ouverture du modèle et dans le nouveau numéro de document.

    MERCI

    vendredi 30 juillet 2010 10:01

Toutes les réponses

  • Bonjour,

    ' fichier
    Option Explicit On
    Imports System.IO
    'OBJETS = button1 + text1 + list1 + form1 = 4
    
    Public Class Form1
    
     Dim chemin = My.Application.Info.DirectoryPath & "\compteur.txt"
     Dim libelle As String
     Dim compteur As Long
    
    
     Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      If File.Exists(chemin) Then ' charge la liste libelle compteur au démarrage
       Call litFichier()
      Else
       Dim p As New System.IO.StreamWriter(CStr(chemin)) ' sinon crée le fichier vide
       p.Close()
      End If
      ListBox1.Sorted = True
     End Sub
    
     Sub litFichier() ' listbox1 contient le fichier (libelle nom)
      Dim p As New StreamReader(CStr(chemin))
      ListBox1.Items.Clear()
      While p.Peek() >= 0
       ListBox1.Items.Add(p.ReadLine())
      End While
      p.Close()
      ListBox1.Refresh()
     End Sub
    
     Sub ecritFichier() ' écrit la liste sur disque
      Dim i As Long
      Dim p As New System.IO.StreamWriter(CStr(chemin))
      For i = 0 To ListBox1.Items.Count - 1 ' datas de la liste
       p.WriteLine(ListBox1.Items(i))
      Next i
      p.Close()
     End Sub
    
     Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      'CREE libellé (text1) et met en liste1
      Dim i As Long
      Dim position As Long
      libelle = Mid(Trim(TextBox1.Text), 1, 16) ' retasse et limite longueur
      If Len(libelle) < 1 Then
       MsgBox("Libellé inexistant, remédier ", vbExclamation)
       Exit Sub
      End If
      For i = 0 To ListBox1.Items.Count - 1
       position = InStr(1, ListBox1.Items(i), "@", 1) ' @ = séparant les 2 variables
       If libelle = Mid(ListBox1.Items(i), 1, position - 1) Then
        MsgBox("Libellé déja existant, remédier ", vbExclamation)
        Exit Sub
       End If
      Next i
      compteur = 0
      ListBox1.Items.Add(libelle & "@" & compteur)
      Call ecritFichier()
      Call litFichier()
     End Sub
    
     Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
      Dim p As Long
      Dim i As Long = ListBox1.SelectedIndex
      'clique sur une ligne de la liste (libelle compteur) pour incrémenter ce dernier
      ' à la place diu clique on peut aussi masquer la lsite et l'interroger directement
      If ListBox1.Items.Count < 1 Then
       MsgBox("Liste vide, remédier... ", vbExclamation)
       Exit Sub ' liste vide
      End If
      p = InStr(1, ListBox1.Items(i), "@", 1)
      libelle = Mid(ListBox1.Items(i), 1, p - 1)
      compteur = CLng(Mid(ListBox1.Items(i), p + 1, Len(ListBox1.Items(i)) - p))
      compteur = compteur + 1
      ListBox1.Items.RemoveAt(i)
      ListBox1.Refresh()
      ListBox1.Items.Add(libelle & "@" & compteur)
      Call ecritFichier()
      Call litFichier()
     End Sub
    
     ' On peut utiliser d'autres méthodes moins visueles, comme des variabls indicées avec dim et redim, 
     ' mais la liste semble le moyen le plus simple
    
    End Class

    Cordialement.

     


    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    vendredi 30 juillet 2010 19:52
  • Bonjour,

    Utilisez vous une base de données ? Un document Excel ?

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    dimanche 1 août 2010 22:04
    Modérateur
  • Bonjour,

     

    Andre85450, est-ce que la réponse de EhJoe vous a été utile ? Sinon, je vous remercie de revenir avec les clarifications demandées par M. Tourreau.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

    mardi 3 août 2010 08:41