Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai trouvé dans une autre discussion comment couper ma datawindow afin de laisser visible les 4 premières colonnes.
Mon problème est le suivant : Certaines colonnes de ma datawindow sont accesibles en écriture ; je n'arrive pas à y accéder dans la partie droite de ma datawindow. Cà me sélectionne la même colonne dans la partie gauche, et du coup l'affichage ne ressemble plus à rien quand je tabule pour passer à la colonne saisissable suivante.
Je suis sous PB 10.5
Dernière modification par abdelta (13-09-2010 10:10:58)
Hors ligne
je n'ai rien compris...
mais peut etre l'ordre des tabsequences ? ou un protect en script ?
Hors ligne
pick ouic a écrit:
je n'ai rien compris...
J'avoue qu'en me relisant, c'est pas très cair.
Donc, j'ai une datawindow de type grid sur laquelle j'ai appliqué la propriété HSplitScroll afin de garder toujours visible à gauche de l'écran les 4 premières colonnes.
Sur cette datawindow, certaines colonnes ont un taborder différent de 0 afin qu'elles soient accessibles en écriture. Depuis que j'ai mis en place le split, çà déconne : quand je sélectionne une colonne saisissable à droite du split, je ne vois pas le focus. Quand je saisis une valeur, elle n'apparait pas. Quand je tabule pour passer à la colonne suivante, çà tabule dans la partie gauche de la datawindow et non dans la partie droite.
C'est plus clair ?
Hors ligne
Bonjour,
Je viens de refaire le test ( PB 10.5 build 4523 ) d'une datawindow avec le HSplitScroll et celà fonctionne très bien pour la saisie dans la partie droite de ta datawindow.
( j'ai pris l'application d'exemple de PB et j'ai mis des tab order sur les colonnes de la datawindow <d_employee_data_list_grid> )
Je rejoins Pick, tu dois certainement avoir du code qui joue sur le focus de tes champs ou autres ...
Hors ligne
ABDELTA as tu toujours ton problème ?
Hors ligne
Yanis a écrit:
tu dois certainement avoir du code qui joue sur le focus de tes champs ou autres ...
Si c'est le cas, pourquoi les camps sont accessibles dans la partie gauche du split et pas dans la partie droite ?
PS : j'ai le build 6551, mais je ne pense pas que çà change grand chose
Dernière modification par abdelta (08-09-2010 11:44:56)
Hors ligne
Normalement les champs sont accessible dans la partie gauche et dans la partie droite.
Si tu te trouve dans la partie gauche et que tu tabule par exemple tu dois toujours te trouver dans la partie gauche et sur le champs suivant.
Ce que tu viens de saisir doit simplement s'afficher dans la partie droit. ( et bien sur le contraire si tu te trouve dans la partie droite)
C'est comme ci tu avais 2 Datawindows avec un shareData.
Pourrais tu mettre en ligne le source de ta datawindow
Hors ligne
Yanis a écrit:
Si tu te trouve dans la partie gauche et que tu tabule par exemple tu dois toujours te trouver dans la partie gauche et sur le champs suivant.
Cà, çà marche
Yanis a écrit:
Ce que tu viens de saisir doit simplement s'afficher dans la partie droit.
Cà aussi
Yanis a écrit:
( et bien sur le contraire si tu te trouve dans la partie droite)
Mais çà non.
Tu veux quoi ? Tout le script que j'ai codé sur le contrôle datawindow (y compris dans l'ancêtre), ou un export de la datawindow ?
Hors ligne
En premier un export de la datawindow. On verra après pour le code que tu peut avoir.
Hors ligne
Heu, je ne peux pas écrire un message de plus de 65536 caractères, donc mon export ne passe pas ...
Hé oui, c'est une grosse datawindow pour que je veuille la spliter !
C'est quelle partie qui t'intéresse ?
Hors ligne
tu peut me l'envoyer sur le mail suivant en fichier joint
Hors ligne
Salut,
Je viens de faire le test de ta datawindow, j'ai mis le split et elle fonctionne correctement. ( Quand tu es dans la partie droite tu reste dans la partie droite)
On vas regarder le code maintenant.
As tu du code dans l'événement ItemChanged et itemFocusChanged Si oui tu peut m'indiquer lequel pour chaque événement.
PS : J'ai supprimer le message ou tu as tenté de copier le source de la Datawindow car il est inutile de le conserver puisque incomplet.
Hors ligne
Yanis a écrit:
As tu du code dans l'événement ItemChanged et itemFocusChanged Si oui tu peut m'indiquer lequel pour chaque événement.
J'ai du code dans les deux événements, mais uniquement dans l'ancêtre (u_dw) et je ne me vois pas risque de foutre en l'air toutes les applis en changeant cet ancêtre.
Est-ce qu'il y a quelque chose en particulier à chercher ? Il n'y a pas de protect, en tous cas.
Hors ligne
Est ce qu'on peut voir le code de ton ancêtre.
Sinon tu peut faire un test en mettant ces 2 evt en override.
Hors ligne
As tu avancé sur ton problème.
Il y a une autre solution pour également valider si c'est du code qui génére ce problème.
- Créé une nouvelle fenêtre de test
- Met un control datawindow natif Powerbuilder
- Attache ton objet datawindow à ton controle datawindow
- Fais une boucle dans l'événement <constructor> pour y insérer un certain nombre de ligne
- Ensuite tu fais un click droit sur ta fenêtre et tu fais un <Run Preview>
Hors ligne
Yanis a écrit:
Sinon tu peut faire un test en mettant ces 2 evt en override.
Toujours pas de changements avec cette option
Yanis a écrit:
Il y a une autre solution pour également valider si c'est du code qui génére ce problème.
- Créé une nouvelle fenêtre de test
- Met un control datawindow natif Powerbuilder
- Attache ton objet datawindow à ton controle datawindow
- Fais une boucle dans l'événement <constructor> pour y insérer un certain nombre de ligne
- Ensuite tu fais un click droit sur ta fenêtre et tu fais un <Run Preview>
Je viens de tenter, c'est donc bien du code qui génère le problème puisque comme çà, çà marche nickel.
Pour info, je ne peux déjà pas modifier la largeur des colonnes, ni déplacer le "split". Je pense que c'est à cause de l'ancêtre, je continue à creuser.
Hors ligne
Salut,
Ma méthode dans ce cas est de mettre tous les événement ayant du code en override pour empêcher l'exécution du code ancêtre, de mettre le code courant en commentaire puis de réactiver chaque événement un par un jusqu'à trouver l'événement qui provoque le problème. Il devient alors plus facile de l'analyser.
Hors ligne
Bon, çà y est, c'est réglé.
En fait, c'était du code dans l'événement clicked du datawindow control (même pas dans l'ancêtre).
Hors ligne