|
Débuté par fie.blanc, 13 aoû. 2004 14:25 - 2 réponses |
| |
| | | |
|
| |
Posté le 13 août 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 |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 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 |
| |
| |
| | | |
|
| | |
| |
Posté le 13 août 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 |
| |
| |
| | | |
|
| | | | |
| | |
|