Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 24-06-2008 17:48:37

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

[RESOLU] Datawindows et scroll avec la souris

Bonsoir,

Je rencontre des difficultés à comprendre le fonctionnement de mes datawindows lorsque je scroll avec ma souris (la molette vers le haut ou vers le bas).
Mes datawindows sont en fait des rapports affichant des données/statitiques. Chacune d'entre elle se trouve dans une sheet indépendante.
J'utilise Pb 10.2.0 build 8075

D'une datawindow à l'autre, le comportement varie complètement. Ca m'ennuie dans la mesure où mon application sera utilisée en faible résolution (800x600) et que le contenu de la fenêtre n'est pas visible complètement : on voit la partie haute, puis il faut aller chercher la partie en dessous avec un ascenseur ou un scroll de molette de souris (Genre ma page est de taille 800x900). Mais voilà, l'ascenseur a tendance à aller chercher directement la page suivante au lieu de descendre sur la page en cours : je me rabats donc sur le scroll de molette de souris.

- Sur l'une (1), le scroll de souris va me permettre de monter/descendre sur la page en cours, sans passer à la page suivante.
- Sur une autre (2), ça va immédiatement passer à la page suivante, sans descendre en bas de ma page courante pour visualiser la partie du bas...
- Sur une autre (3), ça va descendre en bas de ma page courante, et si je continue à scroller alors ça va passer à la page suivante.

Dans le cas (1), tout est affiché dans la bande "Detail" de ma datawindow. J'affiche des données personnelles des utilisateurs telle que l'adresse, le téléphone, etc.

Dans le cas (2), en plus d'afficher les données personnelles, je vais aussi lister les produits qu'ils ont déjà acheté. Ma procédure stockée me retourne tout en vrac, et je fais un GROUP côté Pb. J'ai les données personnelles dans la bande "Header group" et j'affiche la liste des produits dans la bande "Detail"

Dans le cas (3), je modifie le (2). Dans ma bande "Detail" je décide de faire appel à un nested report. J'ai donc maintenant 2 procédures stockées : la première me renvoie les données personnelles, et pour chaque row retourné j'ai mon nested report qui va aller chercher la liste des produits. Hormis le problème de performance (pour 100 000 utilisateurs je me retrouve avec 100 000 requêtes Oracle supplémentaires) je constate que tout fonctionne comme je le souhaite.

Je ne comprends pas ces différences au niveau de la gestion du  scroll de molette de souris.
Il semblerait que la bande "Detail"  soit au coeur de ce mystère !

Y comprenez-vous quelque chose ?
Je vous remercie d'éclairer ma lanterne :-)

Dernière modification par Nyphel (25-06-2008 14:23:48)

Hors ligne

 

#2 24-06-2008 17:52:56

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4685
Pépites: 1,025
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datawindows et scroll avec la souris

je veux bien voir une image de tes ecrans...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 24-06-2008 17:55:05

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [RESOLU] Datawindows et scroll avec la souris

Je ne peux pas vraiment uploader d'images : les ports FTP sont bloqués et des informations confidentielles sont affichées sur mes rapports (Nom de sociétés, N° de tel, etc.).

Désolé :-/

Hors ligne

 

#4 24-06-2008 17:59:30

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4685
Pépites: 1,025
Banque: 2,147,483,647
Site web

Re: [RESOLU] Datawindows et scroll avec la souris

rien ne t'empeche de brouiller ces infos via paint...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 25-06-2008 08:58:47

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [RESOLU] Datawindows et scroll avec la souris

(1) Datawindow n° 1




LOGO - Coordonnées de la société

//--------------------------------------------------
// HEADER
//--------------------------------------------------
//--------------------------------------------------
// 1 : HEADER GROUP
//--------------------------------------------------

        DONNEES de l'utilisateur :
        - Nom
        - Prénom
        - Adresse
        - Téléphone
        - ...                                           

        Formule de politesse et signature
//--------------------------------------------------
// DETAIL
//--------------------------------------------------
//--------------------------------------------------
// 1 : TRAILER GROUP
//--------------------------------------------------
//--------------------------------------------------
// SUMMARY
//--------------------------------------------------
//--------------------------------------------------
// FOOTER
//--------------------------------------------------

Donc dans cette datawindow ma procédure stockée me retourne un seul row par utilisateur.
Pour chaque row j'ai une page.
Ce rapport représente un courrier.

Le scroll de souris va me permettre de monter/descendre sur la page en cours, sans passer à la page suivante.
J'aimerais passer à la page suivante quand j'arrive au bas de la page en cours.

Dernière modification par Nyphel (25-06-2008 09:03:02)

Hors ligne

 

#6 25-06-2008 09:00:02

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [RESOLU] Datawindows et scroll avec la souris

(2) Datawindow n° 2




LOGO - Coordonnées de la société

//--------------------------------------------------
// HEADER
//--------------------------------------------------

        DONNEES de l'utilisateur :
        - Nom
        - Prénom
        - Adresse
        - Téléphone
        - ...

        Produit                Date dernier achat
        _________________________________________
//--------------------------------------------------
// 1 : HEADER GROUP sur l'account_num (Primary key)
//--------------------------------------------------
        nom_produit            date_dernier_achat
//--------------------------------------------------
// DETAIL
//--------------------------------------------------
        Formule de politesse et signature                                           
//--------------------------------------------------
// 1 : TRAILER GROUP sur l'account_num (Primary key)
//--------------------------------------------------
//--------------------------------------------------
// SUMMARY
//--------------------------------------------------
//--------------------------------------------------
// FOOTER
//--------------------------------------------------

Donc dans cette datawindow ma procédure stockée me retourne N row par utilisateur.
Avec le GROUP je peux réunifier tous les rows de l'utilisateur courant de sorte à afficher la liste des produits le concernant (1 produit = 1 row).
Pour chaque utilisateur j'ai une ou plusieurs pages, suivant la longueur de la liste de produits.
Ce rapport représente un courrier.

Le scroll de souris va me permettre de passer à la page suivante, mais sans pouvoir monter/descendre sur la page en cours.
J'aimerais passer à la page suivante quand j'arrive au bas de la page en cours.
Qui plus est des fois j'obtiens des affichages bizarres à force de scroller : le bas de la liste apparait en haut de la page.

Dernière modification par Nyphel (25-06-2008 09:03:23)

Hors ligne

 

#7 25-06-2008 09:01:21

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [RESOLU] Datawindows et scroll avec la souris

(3) Datawindow n° 3



//--------------------------------------------------
// HEADER
//--------------------------------------------------
        LOGO - Coordonnées de la société

        DONNEES de l'utilisateur :
        - Nom
        - Prénom
        - Adresse
        - Téléphone
        - ...

//--------------------------------------------------
// 1 : HEADER GROUP sur l'account_num (Primary key)
//--------------------------------------------------
        Report control
        -> affiche la liste des produits pour l'utilisateur courant.
        -> seconde procédure stockée.
//--------------------------------------------------
// DETAIL
//--------------------------------------------------
        Formule de politesse et signature                                           
//--------------------------------------------------
// 1 : TRAILER GROUP sur l'account_num (Primary key)
//--------------------------------------------------
//--------------------------------------------------
// SUMMARY
//--------------------------------------------------
//--------------------------------------------------
// FOOTER
//--------------------------------------------------

Donc dans cette datawindow ma procédure stockée me retourne un seul row par utilisateur.
La GROUP est à priori inutile, m'enfin bon...
Pour chaque utilisateur j'ai une ou plusieurs pages, suivant la longueur de la liste de produits.
Ce rapport représente un courrier.

Le scroll de souris fonctionne parfaitement. Il monte/descend sur la page en cours, et passe à la page suivant lorsqu'on atteind le bas de la page courante.

Problème : Quand je retourne 10000 utilisateurs de la base de données, je fais alors appel à 10000 requêtes supplémentaires (1 par utilisateur, pour lister ses produits).
Le temps de travail est alors beaucoup trop important, et je ne peux pas me satisfaire de cette solution avec un nested report.

Dernière modification par Nyphel (25-06-2008 09:03:40)

Hors ligne

 

#8 25-06-2008 13:30:33

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [RESOLU] Datawindows et scroll avec la souris

Il semblerait en fait qu'on ne puisse scroller avec la souris que lorsqu'on a le pointeur au-dessus d'une bande DETAIL.
Dès lors j'ai l'impression de ne pas pouvoir scroller dans le cas (2) car ma bande DETAIL est tout petite, et même trop basse: en 800x600 on ne peut pas la voir sans descendre dans la fenêtre :-/

Je ne vois pas de solution pour y remédier... Et vous ?

Hors ligne

 

#9 25-06-2008 13:41:24

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,775,808
Site web

Re: [RESOLU] Datawindows et scroll avec la souris

Les informations que tu affiches sont elles modifiables directement via ces 3 datawindows (a priori non).
Si tu souhaites afficher juste le résultat à l'utilisateur, je te conseille fortement de passer en Print.Preview = Yes pour que la datawindow s'affiche comme une page en aperçu avant impression.

Code: pb

DW.Object.DataWindow.Print.Preview='Yes'


L'utilisateur pourra scroller comme sur un aperçu avant impression sans avoir un mini détail quasi illisible qui défile et une grosse partie fixe avant et après le détail...


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#10 25-06-2008 13:47:14

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [RESOLU] Datawindows et scroll avec la souris

En effet le contenu de mes datawindow n'est pas modifiable, et est sujet à impression.
C'est une idée qui me semble tout à fait intéressante, je vais tester cela pour voir si le rendu est homogène avec le reste de mes rapports.

Merci !



[EDIT]
Je suis reparti de ma datawindow n°2 (car c'est la solution qui m'intéresse le plus) et j'ai ajouté la demande de passage en print preview dans l'event ue_open().
Cela semble bien fonctionner !

Je te remercie pour cette bonne idée

Dernière modification par Nyphel (25-06-2008 14:13:24)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22