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 :

Hauteur de ligne variable dans un état [AC-2003]


Sujet :

IHM

  1. #1
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut Hauteur de ligne variable dans un état
    Bonjour,

    Cette discussion fait suite à Dans un état, position variable d'un champ et hauteur variable de la section détail, dans laquelle il s'agissait de déplacer des champs dans la section Détail d'un état, en l'occurrence un devis.

    Cependant, tout ne roule pas comme sur des roulettes car, s'agissant de lignes de hauteurs variables, Access semble décider que suivant l'ordre dans lequel il traite les lignes, le calcul de la hauteur de ces lignes doive différer !

    Le contexte :
    Dans le cas qui m'occupe, le devis peut comporter des lignes de différents types, chacun ayant une mise en forme différente pouvant aller jusqu'à une hauteur variable. En effet, ces lignes peuvent être soit :
    - un titre -> hauteur fixe, 1 libellé gras souligné, permettant de chapitrer le devis ;
    - un article -> hauteur variable en fonction d'un commentaire éventuellement (champ mémo) vide et placé sous la désignation, quantité, prix HT, etc ;
    - un commentaire -> le champ mémo sus-cité, sans aucune zone de texte de taille fixe :
    - un interligne -> une ligne de hauteur fixe mais n'affichant rien de visible (un champ vide dans mon cas).

    Le problème :
    Pour un même devis de test, suivant l'ordre des lignes, Access calcule correctement la hauteur des lignes... ou pas. Et lorsqu'il décide de ne pas, une ligne donnée peut être partiellement ou totalement recouverte par la ligne précédente ou la ligne suivante !!!
    Évidemment, ce problème est complètement rédhibitoire.

    Tentatives de solution :
    a) j'ai tourné mon code dans tous les sens sans succès ;
    b) de guerre lasse, j'ai tenté de fixer la taille par défaut de la section Détail largement par excès en laissant la propriété Autoréductible et en croisant les doigts pour cela fonctionne, mais bien sûr, ce fut peine perdue ;
    c) puis l'illumination m'a frappé (violemment) : la solution devait passer par un sous-état, n'affichant qu'une ligne à la fois, ainsi plus de problème... eh bien si : le même exactement ;
    d) illumination bis : un sous-état oui, mais un différent par type de ligne. Ainsi, il n'y aurait quasiment plus besoin de code et donc quasiment plus de source d'erreur. Après une recherche sur Internet, j'ai même trouvé la syntaxe ad hoc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
        Dim ctl As Control
     
        Select Case [INT_Contexte_ligne]
            Case LDEV_TITRE
                Reports![etat_Devis_detail]![s-etat_Devis_detail_ligne].SourceObject = _    <------- ICI
                    "s-etat_Devis_detail_ligne_Titre"                                       <------- ET LA
     
        End Select
    End Sub
    ' Evidemment, le select comporte d'autres cas, mais similaires en tous points à celle-ci.
    Mais Access a décider que mes illuminations étaient celles d'un illuminé et persisté à me dire que :
    Erreur d'exécution '2191' :

    Impossible de définir la propriété Objet source en mode aperçu avant impression ou après le début de l'impression.
    Alors de trois choses l'une :

    • ou bien ma syntaxe est fausse ;
    • ou bien son emplacement est incorrect ;
    • ou bien changer le sous-état dynamiquement est impossible (et Internet a tord, ce que je ne peux même pas imaginer).

    Quelqu'un saura-t-il m'éclairer (depuis l'illumination, j'ai revu mes prétentions à la baisse : un simple éclairage, même tamisé ou indirect, m'aiderait grandement) ?

  2. #2
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut Solution
    Finalement, c'était l'option 3) : ce n'est pas possible.

    On ne peut pas changer dynamiquement la source d'un sous-état une fois l'état principal démarré.

    La solution est exposée à l'adresse suivante :
    Change subreport SourceObject in VBA

    La technique est finalement très simple pour peu que l'on y pense, même si elle n'est que moyennement élégante (à moins qu'elle ne doive son élégance à sa simplicité, finalement) :
    1) on empile tous les sous-états dont on a besoin ;
    2) on les cache ou les montre dynamiquement en fonction des besoins (un à la fois évidemment).


    Pour obtenir une hauteur de ligne variable, il ne faut pas oublier de mettre la propriété autoréductible de chaque sous-état à Oui, bien sûr.

    Pour l'instant, je mets la discussion en résolu. A moins que je ne me heurte à d'autres écueils sur ce même sujet...

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

Discussions similaires

  1. [AC-2007] Nombre de ligne variable dans un état
    Par Lodwig dans le forum IHM
    Réponses: 4
    Dernier message: 18/08/2012, 09h36
  2. Affectation d'une variable dans un état
    Par tamerlan dans le forum Access
    Réponses: 26
    Dernier message: 04/04/2006, 09h09
  3. Listes déroulantes pour variables dans un état
    Par Oluha dans le forum Access
    Réponses: 6
    Dernier message: 06/02/2006, 16h09
  4. Traitement de variable dans un état
    Par uskiki85 dans le forum Access
    Réponses: 7
    Dernier message: 08/11/2005, 16h47
  5. Envoyer une variable dans un état
    Par uskiki85 dans le forum Access
    Réponses: 5
    Dernier message: 13/10/2005, 21h44

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