Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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 02-08-2007 09:36:15

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

[RESOLU] Custom user object visuel dyn. dans un onglet

Salut à tous les masters de PB,

tout d'abord merci pour ce forum bien utile pour résoudre nos petits problèmes de dev. PB...

Voilà mon problème et la question qui en découle :

Je dois afficher dynamiquement des custom user object visuel (des petits rectangles de couleur hérité de l'objet static text ) dans un des onglets de ma fenêtre parente. Le problème c'est que je ne peux qu'afficher ces user objects (mes petits rectangles) sur une fenêtre et non sur un onglet.

La solution temporaire que j'ai trouvé est de placer une autre fenetre sous l'onglet en question mais ceci entraine une gestion globale de la fenêtre fille en fonction de la fenêtre parente (ex : instanciation / dimensionnement / déplacement / réduction, etc...)....

En clair, c'est très voir trop fastidieux ! 

Les méthodes d'instanciation et placement de mon custom user objet ne s'appliquent qu'aux fenêtres et non aux onglets de cette même fenêtre ....

Aussi, est ce quelqu'un parmis vous sait comment créer dynamiquement un custom user object visuel dans un onglet d'une fenêtre ?????

Moi j'ai bien cherché dans l'aide PB et sur la toile mais au final je ne sais toujours pas comment faire...

Quelqu'un peut-il m'aider car cela m'ennerve de gérer par programmation cette fenêtre fille à chacune des modifications de ma fenêtre parente. 

Merci donc par avance d'apporter une ou plusieurs réponses à cette question.



Cordialement, 

-------------------------------------
FmxStyle
Developpeur PB 10.5


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#2 02-08-2007 09:57:12

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Ci joint un screenshot de l'écran en question pour vous donner une idée de quoi il retourne...

http://img465.imageshack.us/img465/3183/screenshotjs8.th.jpg

Dernière modification par fmxstyle (02-08-2007 10:01:36)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#3 02-08-2007 10:00:30

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

à mon avis t'as pas bien  fait le lien parceque je peux pas cliquer dessus et je peux même pas le sélectionner pour un copier coller...
( pas mieux pour l'image )

sinon pour une première question c'est une sacrée première question, perso je vois pas trop comment faire.

Dernière modification par rincevent (02-08-2007 10:00:55)


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#4 02-08-2007 10:01:51

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Lien refait et corrigé....


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#5 02-08-2007 10:03:35

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

au forum.

Si j'ai bien compris, ton problème est que la fonction openUserObject ne s'applique qu'aux fenêtres ?

Il y a 2 solutions :
1) Faire modifier le cahier des charges pour ne plus faire ce genre de conneries
2) Démissionner

Il faut bien avoir conscience que si PB est le meilleur outil pour faire des applications de gestion, il n'a jamais été prévu pour faire des jeux ou de la 3D.

POURQUOI as tu besoin d'afficher ces petits rectangles ?
Si c'est pour faire des graphs, achète un activeX


never let people work on more than one thing at once.

Hors ligne

 

#6 02-08-2007 10:08:22

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

fmxstyle a écrit:

Ci joint un screenshot de l'écran en question pour vous donner une idée de quoi il retourne...

Excellente initiative !

Alors mes suggestions
1) Acheter un ActiveX (on change pas une équipe qui gagne)
2) dessiner dans une datawindow de type externe
C'est d'ailleurs sur ce principe qu'est construit dwExtreme

Et Buck Woolley explique comment il a fait dans son article : Not Your Father's DataWindow

Dernière modification par shahin (02-08-2007 10:15:42)


never let people work on more than one thing at once.

Hors ligne

 

#7 02-08-2007 10:17:07

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,776,000
Site web

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

shahin a écrit:

au forum.

Si j'ai bien compris, ton problème est que la fonction openUserObject ne s'applique qu'aux fenêtres ?

Il y a 2 solutions :
1) Faire modifier le cahier des charges pour ne plus faire ce genre de conneries
2) Démissionner

Il faut bien avoir conscience que si PB est le meilleur outil pour faire des applications de gestion, il n'a jamais été prévu pour faire des jeux ou de la 3D.

POURQUOI as tu besoin d'afficher ces petits rectangles ?
Si c'est pour faire des graphs, achète un activeX

Il existe d'autres solutions moins extrêmes : la DW
En powerbuilder tu peux tout faire dans une DW, y compris ce que tu montres dans ta capture d'écran.
Pour ma part, j'utilise une DW pour gérer un planning avec possibilité d'ajouter, modifier, supprimer des entrées (et donc des controles visuels) directement à la souris.
C'est pour moi la solution la plus sage et la mieux adaptée à PB.
L'avantage c'est que du coup, tu n'as plus le problème des tabpages...


Tu dois donc tu peux (Kant)

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

Hors ligne

 

#8 02-08-2007 10:22:35

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Les grands esprits se rencontrent Chrnico, mais quand j'ai rédigé mon premier message il n'avait pas encore fait sa capture d'écran.

PS : les #285# c'est pour gérer le multilinguisme ?


never let people work on more than one thing at once.

Hors ligne

 

#9 02-08-2007 10:48:10

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

shahin a écrit:

Il y a 2 solutions :
1) Faire modifier le cahier des charges pour ne plus faire ce genre de conneries
2) Démissionner

Quelle violence !

pas content Shahin aujourd'hui ?

sinon en effet ce serait sans doute plus simple si tu pouvais utiliser une DW (sur laquelle tu pourras créer dynamiquement ce que tu veux)

Dernière modification par rincevent (02-08-2007 10:48:48)


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#10 02-08-2007 11:14:54

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

rincevent a écrit:

Quelle violence !

Ce n'était pas mon intention, mais parfois il faut savoir acheter un composant plutôt que de tout faire soi même.


never let people work on more than one thing at once.

Hors ligne

 

#11 02-08-2007 12:41:03

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

- shahin effectivement c la gestion du multilinguisme (#285#) => d'ailleurs on gère aussi e japonnais et le chinois et c'est parfois bien galère (heureusement que PB 10.5 gère l'unicode en natif, c'était pas tellement le cas en version 9)

- L'application présentée ci dessus est une gestion de modèles horaires applicables sur un employé d'une entreprise. Celle-ci permet de définir de définir des modèles à la journée, à la semaine, etc... avec des plages d'heures (non) travaillées, de pause, de recalage horaire. Derrière nous avons un service qui gère les pointages d'entrées / sorties (via un autre écran ou via un écran tactile relié en reseau dans un atelier) et qui utilise les modèles horaires définis pour effectuer des calculs de présence, absence, etc... par employé par jour, par semaine, par mois, etc...

- J'ai bien conscience que PB est limité question graphisme mais il est vrai que la DW permets de faire plein de chose, y compris sans doute ceci. Le problème c'est que j'ai du reprendre cet écran de quelqu'un qui a donc utiliser des user object visuel ainsi qu'une liste chainée en mémoire pour gérer l'interactivité avec l'utilisateur, on doit pouvoir déplacer de gauche à droite les plages horaires et la datawindow présente en dessous rafraichi les horaires des plages en temps réels ET inversement lorsque l'on manipule la datawindow on déplace les plages horaires affichées... tout un programme quoi 

=> Le code est par conséquent lourd, pas facile à maintenir voir inbitable....

- Nous allons bientôt devoir créer un assistant avec étapes pour la configuration de ces fameux modèles horaires et je pense que l'on utilisera l'objet DataWindow à l'avenir pour le faire sinon je vais recommencer à prendre la tête sur le graphique et la liste chainée qui est derrière => .

- Sinon ok pour la gestion via la datawindow donc si j'ai bien compris la chose il faudrai que je prenne une external et que j'ajoute, supprime dynamiquement des colonnes de celle-ci, non ? 


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#12 02-08-2007 13:43:46

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Je ne sais pas ce que tu as contre les liste chainées.
Quand je faisais du Java, j'étais content d'avoir les objets List.
L'important est que tout soit bien encapsulé (comme Sun l'a fait avec LinkedList)

Pour la datawindow, tu as deux façons de faire :
1) créer dynamiquement tes rectangles à la volée (je ne sais pas pourquoi tu veux ajouter de colonnes dynamiquement)
2) Lire l'article de Buck Wooley (avec un minimum d'anglais).
Sa technique permet d'animer la datawindow uniquement avec des dw.setitem().

Ta DW n'est pas forcément externe, elle peut même éventuellemenet être en shareData avec celle qui contient tes données


never let people work on more than one thing at once.

Hors ligne

 

#13 02-08-2007 16:31:52

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Pour la datawindow, tu as deux façons de faire :
1) créer dynamiquement tes rectangles à la volée (je ne sais pas pourquoi tu veux ajouter de colonnes dynamiquement)
2) Lire l'article de Buck Wooley (avec un minimum d'anglais).
Sa technique permet d'animer la datawindow uniquement avec des dw.setitem().

1. Quel est la methode de l'objet Datawindow qui permettrai l'ajout dynamique d'un rectangle dans celle-ci ? CREATE ? Comment lui attribuer un nom dynamiquement pour pouvoir l'atteindre facilement ?

2. Merci pour l'article en Anglais (que je comprends fort bien par ailleurs) sur la manière de manipuler simplement les proprietés des champs d'une DW. Je vois désormais comment changer quelque uns de mes écrans afin que le code ne soit pas trop lourd et simple à maintenir. (ex : j'avais autant de champs couleurs que de colonnes, aujourd'hui je pourrai n'en utiliser qu'un pour gérer la couleur de fond de toutes mes colonnes, c'est impeccable et pas bête du tout !)

Dernière modification par fmxstyle (02-08-2007 16:34:36)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#14 03-08-2007 06:58:36

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

J'ai regardé un peu la doc et le planning de mon collègue fait en PB, il semble qu'il utilise la méthode OpenUserObject directement sur la fenêtre avec une DW en fond qui affiche la grille avec les dates...

Est ce qu'il est possible d'ajouter dynamiquement un rectangle ou un autre objet apparent de même forme dans une DW et comment ? Je crois avoir compris qu'il faut modifer en gros le source de la DW en y ajoutant l'ensemble de la syntaxe concernant mon nouveau rectangle (utilisation du MODIFY) puis regenérer la DW avec ce nouveau source (CREATE).

Personne n'a déjà fait cela auparavant dans sa vie de développeur PB ?

Merci d'avance, je cherche et teste en attendant vos réponses.

Dernière modification par fmxstyle (03-08-2007 06:59:39)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#15 03-08-2007 07:02:35

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,776,000
Site web

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

fmxstyle a écrit:

J'ai regardé un peu la doc et le planning de mon collègue fait en PB, il semble qu'il utilise la méthode OpenUserObject directement sur la fenêtre avec une DW en fond qui affiche la grille avec les dates...

Est ce qu'il est possible d'ajouter dynamiquement un rectangle ou un autre objet apparent de même forme dans une DW et comment ? Je crois avoir compris qu'il faut modifer en gros le source de la DW en y ajoutant l'ensemble de la syntaxe concernant mon nouveau rectangle (utilisation du MODIFY) puis regenérer la DW avec ce nouveau source (CREATE).

Personne n'a déjà fait cela auparavant dans sa vie de développeur PB ?

Merci d'avance, je cherche et teste en attendant vos réponses.

Vas voir l'outil DW_SYNTAX, il y a les syntax pour créer des objets dynamiquement (rectangle, étiquette, colonne, etc.).
Pour le trouver : New (Tollbar), Tool (onglet), Datawindow syntax (icone), Syntax -> Modify -> Create (menu), rectange (ddlb) :

Code: pb

<DW Control Name>.Modify( &
"create rectangle(band=<Detail, Footer, Header, Header.<group #>, Summary, Trailer.<group #>, Background, Foreground>"  +  &
" pointer='<Arrow!, Cross!, HourGlass!, IBeam!, Icon!, Size!, SizeNESW!, SizeNS!, SizeNWSE!, SizeWE!, UpArrow!, or cursor filename (with path)>' moveable=<0 - False, 1 - True> resizeable=<0 - False, 1 - True> x='<an integer>' y='<an integer>' height='<an integer>' width='<an integer>' name=<string>" + &
" tag='<string>' brush.hatch='<0 - Horiz, 1 - BDiagonal, 2 - Vertical, 3 - Cross, 4 - FDiagonal, 5 - DiagCross, 6 - Solid, 7 - Transparent>'" + &
" brush.color='<a long>' pen.style='<0 - Solid, 1 - Dash, 2 - Dot, 3 - DashDot, 4 - DashDotDot, 5 - Null>' pen.width='<an integer>' pen.color='<a long>' background.mode='<0 - Opaque, 1 - Transparent>' background.color='<a long>')")

Tu dois donc tu peux (Kant)

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

Hors ligne

 

#16 03-08-2007 08:32:49

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Testé et approuvé, ca marche nickel... merci Chrnico !!

reste plus qu' à créer des méthodes sur mon objet hérité de l'objet datawindow afin d'ajouter simplement une plage horaire (rectangle) au bon endroit dans ma DW.

Par contre, il faut encore que je vois comment :

1. Placer au bon endroit mes plages en fonction de celles déjà existantes

2. Gérer les liens entre ces plages pour gérer le déplacement graphique d'une ou plusieurs plage sans dépasser la légende graduée située derrière et sans chevaucher les plages situées avant et apres celle qui est en cours de déplacement. (voir screenshot)

3. Etablir un lien direct entre ma datawindow d'affichage des plages horaires graphiques et celle qui affiche les heures des plages. (Je vais voir l'histoire de la datawindow en ShareData)

Tout ca me semble prometteur et je sent que je vais limite diminuer de moitié le code actuellement en place... encore faudrait il que tout fonctionne correctement.

Le moderateur peut passer ce sujet à [RESOLU], je n'ai plus d'autres questions pour le moment...

Merci encore et à bientot pour d'autres soucis...

--------------------------------------------------
Shahin : je l'ai passé à résolu, mais es tu sûr que tu ne pouvais pas le faire toi même ? Modifier -> changer le titre

Dernière modification par fmxstyle (03-08-2007 08:33:37)


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

#17 07-08-2007 07:21:39

fmxstyle  
Membre Geek
Date d'inscription: 02-08-2007
Messages: 43
Pépites: 141
Banque: 0

Re: [RESOLU] Custom user object visuel dyn. dans un onglet

Lol effectivement je n'avais pas vu...

Merci encore et autant pour moi pour le [RESOLU]

A +


De coluche : "Quand on voit la tristesse des biknites, on comprend pourquoi c'est interdit le hackique et on se dit que le pinard ça devrait être obligatoire!"

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22