IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Numéroter automatiquement lignes sous formulaire


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Points : 104
    Points
    104
    Par défaut Numéroter automatiquement lignes sous formulaire
    Bonjour,

    Soit un formulaire contenant un sous formulaire. Dans ce sous formulaire, se trouve un champ numéro de ligne. Je souhaite incrémenter de 1 la nouvelle ligne de saisie. Cette numérotation automatique démarrerai de 1 à l 'infini.
    Je pense qu' il faut mettre en place un code .
    Malgré mes recherches, je n' ai pas su trouver d' exemple.
    Quelqu' un aurait-il déjà étudier ce genre de problème?

    Cordialement.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Quelque chose comme cela :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Compteur()
    Dim unRowSet As Object
     
    UnRowSet=createUnoService("com.sun.star.sdb.RowSet")
    With unRowSet
      .DataSourceName = "BaseDeDonnees"
      .User = ""
      .Password = ""
      .CommandType = com.sun.star.sdb.CommandType.COMMAND
      .Command = "SELECT Max(Champ) NB FROM TABLE1"
      On Error GoTo fermerConnexion
      .execute
      .next ' afficher le premier enregistrement
      MsgBox("Dernier = " & .Columns.getByName("NB").String)
     
      suite:
      On Error GoTo 0
      .dispose
      Exit Sub
     
      fermerConnexion:
      MsgBox(Error, 16)
      Resume suite
    End With
    End Sub

    @+.

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Points : 104
    Points
    104
    Par défaut Numérotation ligne sous formulaire
    Bonsoir,

    J' ai testé votre solution. J' ai un plantage qui doit venir de la ligne N° 6. Le message que me renvoie la procédure est le suivant:
    Message: Erreur lors de l'accès à la source de données 'Répertoire' :
    com.sun.star.lang.WrappedTargetException:
    file:///home/x66y/Documents/Plans/R%C3%A9pertoire/R%C3%A9pertoire.odb.
    En fait, faut-il rentrer le chemin complet de la Bdd ainsi que son extension. J' ai testé le chemin complet, le nom de la Bdd et son extension et enfin le nom seul, aucune des trois solutions non fonctionnées.
    D' autre part dans la requête, je ne comprends pas à quoi correspond le terme NB.
    Une autre remarque me vient à l' esprit:
    Il n' y a pas de filtre basé sur la clé affiché dans le formulaire. Mais pour l' instant, de part l' erreur mentionnée ci-dessus, je ne peux vérifier la pertinence de la procédure.
    Je joins, pour info, la BDD. Le formulaire concerné est le formulaire F_PrjPln.

    Cordialement
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Comme ceci :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Compteur()
    Dim unRowSet As Object
     
    UnRowSet=createUnoService("com.sun.star.sdb.RowSet")
    With unRowSet
      .DataSourceName =ConvertToUrl("C:\chemin\Repertoire.odb")
      .User = ""
      .Password = ""
      .CommandType = com.sun.star.sdb.CommandType.COMMAND
      .Command = "SELECT MAX( ""LgnPln"" ) AS ""NB"" FROM ""T_PrjPlnDtl"""
      On Error GoTo fermerConnexion
      .execute
      .next ' afficher le premier enregistrement
      MsgBox("Dernier = " & .Columns.getByName("NB").String)
     
      suite:
      On Error GoTo 0
      .dispose
      Exit Sub
     
      fermerConnexion:
      MsgBox(Error, 16)
      Resume suite
    End With
    End Sub

    @+.

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Points : 104
    Points
    104
    Par défaut Numéro auto ligne sous formulaire
    Bonjour,

    Aprés avoir testé et modifié votre code pour l' adapter à ma BDD, Il me reste encore un petit souci.
    J' ai placé cette procédure sur la réception du focus de mon sous formulaire. Le calcul de la nouvelle valeur se fait bien. Toutefois, la valeur qui s' affiche dans le champ numéro de ligne est 0, quelque soit la valeur calculée. D' autre part, je ne sais pas programmer une tabulation pour passer au champ suivant de la ligne. De plus, la tabulation exécutée manuellement efface le contenu du champ numéro de ligne!!!
    Pour info, voici le code modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Sub Compteur()
     
    Dim unRowSet As Object, Dcm as object, Frml as object
    Dim NmrPrjt as integer,Rslt as integer
     
    Dcm = thiscomponent
    Frml = Dcm.DrawPage.Forms.getByName("MainForm")
    NmrPrjt = Frml.getByName("Cf_PrjPln").CurrentValue
     
    UnRowSet=createUnoService("com.sun.star.sdb.RowSet")
    With unRowSet
      .DataSourceName =ConvertToUrl("/home/x66y/Bureau/Plans/Répertoire.odb")
      .User = ""
      .Password = ""
      .CommandType = com.sun.star.sdb.CommandType.COMMAND
      .Command = ("SELECT Max(LgnPln) AS NB FROM T_PrjPlnDtl where Cf_PrjPln = " & NmrPrjt)
      On Error GoTo fermerConnexion
      .execute
      .next 
     
      Rslt="" & .Columns.getByName("NB").String
      Rslt=Rslt+1
      msgbox Rslt
     
       	thisComponent.DrawPage.Forms.getByName("MainForm").getByName("SubForm").getByName("SubForm_Grid").getByName("LgnPln").Text = Rslt
    	thisComponent.DrawPage.Forms.getByName("MainForm").getByName("SubForm").getByName("SubForm_Grid").getByName("LgnPln").Commit
     
      suite:
      On Error GoTo 0
      .dispose
      Exit Sub
     
      fermerConnexion:
      MsgBox(Error, 16)
      Resume suite
    End With
    End Sub
    Joyeux noël a tous

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Le problème vient peut-être de ton filtre, c'est un filtre numérique ou textuel ?

    @+.

  7. #7
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 180
    Points : 104
    Points
    104
    Par défaut Nuémro auto
    Bonjour,

    Le filtre est numérique. En effet, c' est la clé de la table que je récupère dans la variable.

    Cordialement

Discussions similaires

  1. Réponses: 20
    Dernier message: 03/10/2010, 10h20
  2. Réponses: 1
    Dernier message: 01/11/2007, 21h30
  3. Réponses: 9
    Dernier message: 08/04/2007, 23h11
  4. Réponses: 4
    Dernier message: 22/03/2007, 14h43
  5. Actualisation Ligne sous formulaire
    Par hugo69 dans le forum IHM
    Réponses: 1
    Dernier message: 28/11/2006, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo