PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Création de fen=E
Création de fen=E
Iniciado por fie.blanc, 13,ago. 2004 14:25 - 2 respuestas
Publicado el 13,agosto 2004 - 14:25
Bonjour à toutes et à tous,

Voici mes besoins, je dois pouvoir créer dans mon application des
fenêtres de façon dynamique et les champs qui lui seront associés également.

Le principe est le suivant, le client ayant besoin de pouvoir modifier
l'interface à sa guise et sans forcément repasser par notre société
souhaite pouvoir lorsqu'il en a besoin rajouter par exemple un champ
texte dans la fenêtre, établir une relation vers la base de données et
éventuellement vers les états prédéfinis de l'application.

J'ai bien vu dans la documentation les fonctions 'ChampClone' et
'ChampSupprime', mais la fonction 'ChampClone' impose certaines limites
qui ne rentrent pas dans le cadre de ce que je souhaite faire.

Ce que je souhaite, c'est pouvoir créer une classe qui permette de créer
un champ à la volée (avec un type, un nom, un libellé, position X,
position Y, une action sur clic, etc...). Je veux pouvoir également
créer une table dans SQL SERVER qui sera dédié à cette classe et qui
permettra d'administrer finement chaque champ d'une fenêtre.

Pensez vous qu'avec les fonctions fournies dans WinDev cela soit
réalisable ??

Après une courte réflexion et vu qu'apparemment WinDev ne permet pas la
création dynamique de tels champs, mais seulement un clônage, la
solution ne serait elle pas de dire ceci :

Je créée une fenêtre avec tous les types de champs (1 champ par type),
en leur donnant la caractéristique invisible au départ. Ensuite, il
suffit d'activer à la demande, les champs voulus (de les clôner au
besoin) et de les repositionner selon les besoins.

C'est une piste de départ, évidemment je suis preneur de toutes
propositions!!

Cordialement,
Frédéric Blanc
Publicado el 13,agosto 2004 - 15:37
Salut !

On 13-Aug-2004, =?ISO-8859-1?Q?Frédéric_Blanc?= <fie.blanc@wanadoo.fr>
wrote:

Bonjour à toutes et à tous,

Voici mes besoins, je dois pouvoir créer dans mon application des
fenêtres de façon dynamique et les champs qui lui seront associés
également.

Le principe est le suivant, le client ayant besoin de pouvoir modifier
l'interface à sa guise et sans forcément repasser par notre société
souhaite pouvoir lorsqu'il en a besoin rajouter par exemple un champ
texte dans la fenêtre, établir une relation vers la base de données et
éventuellement vers les états prédéfinis de l'application.

J'ai bien vu dans la documentation les fonctions 'ChampClone' et
'ChampSupprime', mais la fonction 'ChampClone' impose certaines limites
qui ne rentrent pas dans le cadre de ce que je souhaite faire.

Ce que je souhaite, c'est pouvoir créer une classe qui permette de créer
un champ à la volée (avec un type, un nom, un libellé, position X,
position Y, une action sur clic, etc...). Je veux pouvoir également
créer une table dans SQL SERVER qui sera dédié à cette classe et qui
permettra d'administrer finement chaque champ d'une fenêtre.

Pensez vous qu'avec les fonctions fournies dans WinDev cela soit
réalisable ??

Après une courte réflexion et vu qu'apparemment WinDev ne permet pas la
création dynamique de tels champs, mais seulement un clônage, la
solution ne serait elle pas de dire ceci :

Je créée une fenêtre avec tous les types de champs (1 champ par type),
en leur donnant la caractéristique invisible au départ. Ensuite, il
suffit d'activer à la demande, les champs voulus (de les clôner au
besoin) et de les repositionner selon les besoins.

C'est une piste de départ, évidemment je suis preneur de toutes
propositions!!

Cordialement,
Frédéric Blanc


Personnellement, pour gérer les "champs personnalisés", j'ai une une
rubrique XML ( un mémo texte en fait ) dans tout mes fichiers.
Dans mes utilitaires, j'ai , pour chaque fichier, la possibilité de définir
les "champs utilisateurs", en fait, il s'agit d'un fichier texte ayant le
nom du fichier WD et contenant la définition des zones persos ( Nom, type ).
Dans mes fenêtres, je prévois une table mémoire que je remplis avec le nom
des champs perso et leur type, plus une colonne pour leur valeur..
Le reste est assez simple, je remplis les champs persos en analysant le
contenu du mémo XML.
Je les sauve en utilisant XMLModifie() puis XMLConstruitChaine() et je sauve
le mémo XML ...
C'est assez pratique, car si un utilisateur supprime une définition perso,
je ne m'en occupe absolument pas.
Le champ n'apparaît plus dans la table ... mais les infos sont toujours là !
En cas d'erreur de manip, il suffit qu'il recrée un champ du même nom pour
qu'automatiquement il réapparaisse !
Idéalement, je devrais prévoir un outil de nettoyage pour vérifier et
nettoyer si toutes les structures XML, mais je ne l'ai pas encore fait ...

Bon dev;


Bon dev.

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477
Publicado el 13,agosto 2004 - 15:44
Est ce que l'utilisation de la commande EXTERNE ne serait pas la solution ??
Insérer du code WinDev dans le programme et effectuer une compilation
dynamique ??

Cordialement,
Frédéric Blanc