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

IHM Discussion :

Table des matières avec doublons


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut Table des matières avec doublons
    Bonjour,

    J'ai cherché à réaliser une table des matières en exploitant le code de Fabrice Constans mais je me heurte à un épineux problème à cause des doublons ...

    http://loufab.developpez.com/tablemat/

    En effet, le code prévoit l'écrasement des doublons.

    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
     
    Sub fc_GenereTM(fc_Item As String, fc_Pge As Integer, fc_Typ As String)
    Dim rst As Recordset
     
    Set rst = CurrentDb.OpenRecordset("tbl_TableMat", dbOpenDynaset)
     
    rst.FindFirst "tm_Item=""" & fc_Item & """"
     
    If rst.NoMatch Then
       rst.AddNew                   ' ajout nouvel enregistrement
       rst!tm_item = fc_Item        ' écrit dans le champ
       rst!tm_page = fc_Pge
       rst!tm_type = fc_Typ
       rst.Update                       ' sauvegarde
    Else
       If rst!tm_page < fc_Pge Then    ' problème signalé par
          rst.Edit
          rst!tm_page = fc_Pge         ' on met à jour la page
          rst.Update
       End If
    End If
     
    rst.Close                       ' ferme
     
    End Sub
    Cependant dans la table des matières que je souhaite réaliser des doublons existent. Comme il s'agit d'un ouvrage structuré, certains intitulés de sous chapitres ont la même dénomination bien qu'appartenant à des chapitres différents.

    J'ai essayé de modifier le code mais soit mes "sous chapitres" n'apparaissent pas, soit ils apparaissent en un nombre bien supérieur à ce qu'ils devraient par rapport à l'état qui les génére, en somme je suis bloqué...


    Est ce que quelqu'un a déjà opéré des modifications à ce code pour prendre en compte le cas particulier de sous "chapitres doublonnés"....

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    L'écrasement des doublons permet d'avoir la fonction aperçu sans que cela perturbe la création de la table des matières.

    Tu peux toujours faire un essai sans l'écrasement des doublons en enlevant la fonction d'aperçu de l'état.

    Tu peux également vérifier que le sous-titre est unique en ajoutant un id unique pour les sous-titres.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Je n'ai pas étudié en détail le code de Fabrice mais je présume que le test (le FindFirst) a pour but de contourner les problèmes liés aux cas où une section est passée par manque de place à la page suivante (Fabrice ... si tu es là ... merci de me corriger )

    Pour éviter de toucher à ce mécanisme, on peut peut être s'en sortir en ajoutant un champ à la table tbl_tableMat auquel tu devras attribuer une valeur unique pour chaque entrée de ta table des matières...


    EDIT: salut Fabrice ... je fais 15 choses en même temps... du coup j'ai "un peu" trainé pour répondre
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut Niveau hierachique supérieur
    Bonjour,

    J'ai introduit un quatrieme paramètre "Niveau Sup" dans la fonction GenereChap et crée le champ Ad'hoc dans la table des "tbleMat".
    J'ai remplacé le Findfirst par un Findfirst qui vérifie l'égalité entre les niveaux hierachiques des enregistrements crées dans "tbleMat" et désormais mes doublons "utiles" ne sont plus écrasés et l'aperçu de l'état toujours possible.

    Merci à vous tous.


  5. #5
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut Une solution qui fonctionne
    Bonjour,

    Pour être un peu plus explicite:

    Dans les reports, les appels à la nlle fonction GeneChap (toujours 3 niveaux hierarchiques T/ST/I) se font par:
    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
     
    'Ecriture du titre dans la table "Chapitrage"
    Private Sub EntêteÉtat_Format(Cancel As Integer, FormatCount As Integer)
    GenereChap Me.Titre.Caption, Me.Page, "T", ""
    End Sub
     
    'Ecriture des sous titres dans la table "Chapitrage"
    Private Sub EntêteGroupe0_Format(Cancel As Integer, FormatCount As Integer)
    GenereChap Me.[Fonction], Me.Page, "ST", Me.Titre.Caption
    End Sub
     
    'Ecriture des éléments dans la table "Chapitrage"
    Private Sub Détail1_Format(Cancel As Integer, FormatCount As Integer)
    GenereChap Me.[Tâche], Me.Page, "I", Me.[Fonction]
    End Sub
     
    Private Sub Report_Open(Cancel As Integer)
    'Suppression des éléments de la table "Chapitrage"
    SupprChap
    End Sub
    Oui, au fait "TableMat" est devenue "Chapitrage" dans ma Bdd...
    Elle contient un champ supplémentaire [Niveau Sup] string

    La nouvelle fonction GenereChap (plus tolérante envers les doublons utiles)
    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
     
    'Génération de la table "Chapitrage"
    Sub GenereChap(fc_Elem As String, fc_Pge As Integer, fc_Typ As String, fc_Sup As String)
    Dim rst As Recordset
     
    Set rst = CurrentDb.OpenRecordset("Chapitrage", dbOpenDynaset)
     
    rst.FindFirst "Elément=" & Chr(34) & fc_Elem & Chr(34) & _
                           " and [Niveau Sup]=" & Chr(34) & fc_Sup & Chr(34) & _
                           " and [Type élément]=" & Chr(34) & fc_Typ & Chr(34)
     
    If rst.NoMatch Then
       rst.AddNew                   ' ajout nouvel enregistrement
       rst!Elément = fc_Elem        ' écrit dans le champ
       rst![Page N°] = fc_Pge
       rst![Type élément] = fc_Typ
       rst![Niveau Sup] = fc_Sup
       rst.Update                       ' sauvegarde
    Else
       If rst![Page N°] <= fc_Pge And rst![Niveau Sup] = fc_Sup Then    ' problème signalé par
          rst.Edit
          rst![Page N°] = fc_Pge         ' on met à jour la page
          rst.Update
      End If
    End If
     
    rst.Close                       ' ferme
    Set rst = Nothing
    End Sub
    Voilà, je crois que j'ai tout dit (et tout écrit)

    Merci à vous tous et n'hésitez pas à poster si vous voyez une methode plus rapide, plus efficace ou plus légère.

    PS le '<' est devenu '<=' car dans mon cas le pouvait '<' poser problème...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tables des matières avec numéros de page
    Par djbobo27 dans le forum BIRT
    Réponses: 1
    Dernier message: 24/11/2009, 17h25
  2. [WD-2003] table des matières avec code couleur
    Par enretard dans le forum Word
    Réponses: 7
    Dernier message: 02/04/2009, 22h11
  3. [XSL] table des matières avec sous-titres
    Par Celelibi dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/05/2006, 20h13
  4. [CR11] une table des matières, avec n° de page : possible ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 08/09/2005, 11h49
  5. créer une table des matières avec fop
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/07/2005, 15h54

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