IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windev Mobile Discussion :

Créer des champs dynamiquement


Sujet :

Windev Mobile

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 372
    Par défaut Créer des champs dynamiquement
    Bonjour à tous,
    je suis en train de développer une application android qui doit afficher un formulaire sur un terminal android (des techniciens doivent saisir des comptes rendus de visites)

    Ce formulaire devra être configurable dans une interface admin sur un site web (ce qui évitera un développement lors d'une évolution du formulaire), donc je devrai créer dynamiquement les champs lors de l'ouverture de la fenêtre de formulaire.
    J'ai vu qu'il existait la fonction ChampCrée qui fait ce que je veux sauf que cette fonction n'est disponible en windev mobile que pour les applications IOS, et moi je serai sur de l'android.

    Est-ce qu'il existe un équivalent de cette fonction pour android?

    je vous remercie

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 543
    Par défaut
    Bonjour,
    La fonction ChampClone() est disponible sous Android.
    Donc tu peux prévoir des champs "modèles" qui ne sont pas visible, et les cloner en fonction des besoins.

    Tatayo.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 372
    Par défaut
    Merci Tatayo,
    je vais partir sur cette voie.

    edit:
    je viens de tester et ça a l'air de bien tourner.
    si le fonctionnement intéresse quelqu'un, voila comment j'ai testé:
    j'ai créé 3 champs
    - 1 champ libellé nommé LIB_Ori
    - 1 champ de saisie nommé SAI_Ori
    - 1 champ sélecteur nommé SEL_Ori avec 1 seule option (on doit avoir 1 option minimum)
    ces 3 champs sont invisibles et en dehors de la fenêtre.

    le formulaire sera créé dynamiquement, la liste des champs du formulaire sera dans une json.
    voici la json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    {
        "formulaire": [
            {
                "indice": 1,
                "nom_champ": "LIB_1",
                "type": "libelle",
                "libelle": "Bienvenue sur le formulaire",
                "posx": "centre"
            },
            {
                "indice": 2,
                "nom_champ": "SAI_NomCLient",
                "type": "saisie",
                "libelle": "nom client",
                "posx": "gauche"
            },
            {
                "indice": 3,
                "nom_champ": "SEL_ClientPresent",
                "type": "selecteur",
                "libelle": "client present",
                "options": [
                    {
                        "libelle": "oui"
                    },
                    {
                        "libelle": "non"
                    }
                ]
            }
        ]
    }
    voici le code d'initialisation de la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    variantJson est un Variant
    variantJson = JSONVersVariant(jsonFormulaire) //jsonFormulaire est la json ci-dessus
    largeurChamp est un réel = Formulaire..Largeur - 16 //8 pixels de marge de chaque coté du champ
    posy est un entier = 0 //position en y du champ
    nomChamp est une chaîne
    indAjoute est un entier
    //8 pixels entre chaque champ en hauteur 
     
    SI variantJson.formulaire..Occurrence > 0 ALORS
    	POUR i = 1 À variantJson.formulaire..Occurrence
    		posy += 8 //8pixels entre chaque champ
    		nomChamp = variantJson.formulaire[i].nom_champ
    		SELON variantJson.formulaire[i].type
    			CAS "libelle"
    				ChampClone(LIB_Ori,nomChamp,8,posy)
    				{nomChamp,indChamp}..CadrageHorizontal = chCentre
    			CAS "saisie"
    				ChampClone(SAI_Ori,nomChamp,8,posy)
    				{nomChamp,indChamp}..CadrageHorizontal = chGauche
    			CAS "selecteur"
    				//typeChamp = {nomChamp,indChamp}..Type
    				ChampClone(SEL_Ori,nomChamp,8,posy)
    				SI variantJson.formulaire[i].options..Occurrence > 0 ALORS
    					POUR j = 1 À variantJson.formulaire[i].options..Occurrence
    						SI j = 1 ALORS
    							{nomChamp,indChamp}[1]..Libellé = variantJson.formulaire[i].options[j].libelle
    							{nomChamp,indChamp}[1]..ValeurRenvoyée = variantJson.formulaire[i].options[j].valeur_retourne
    						SINON
    							indAjoute = SélecteurAjoute({nomChamp,indChamp},variantJson.formulaire[i].options[j].libelle)
    							{nomChamp,indChamp}[indAjoute]..ValeurRenvoyée = variantJson.formulaire[i].options[j].valeur_retourne
    						FIN
     
    					FIN
    				FIN
    			AUTRE CAS
     
    		FIN
    		{nomChamp,indChamp}..Largeur = largeurChamp
    		{nomChamp,indChamp}..Libellé = variantJson.formulaire[i].libelle
    		{nomChamp,indChamp}..Ancrage = ancreLargeur
    		{nomChamp,indChamp}..Visible = Vrai
    		posy+={nomChamp,indChamp}..Hauteur
    	FIN
    FIN
    si ça peut servir à quelqu'un

  4. #4
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 479
    Billets dans le blog
    1
    Par défaut
    Salut
    Le plus simple, ne serait t'il pas d'afficher le formulaire en ligne dans un champ HTML?

Discussions similaires

  1. [VBA] nommé des champs dynamiquement
    Par pierrot77 dans le forum Access
    Réponses: 2
    Dernier message: 14/05/2007, 21h35
  2. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32
  3. Réponses: 1
    Dernier message: 14/08/2006, 09h41
  4. Réponses: 6
    Dernier message: 01/06/2006, 15h11
  5. [PHP-JS] Trier des champs dynamiques
    Par Mehdi Feki dans le forum Langage
    Réponses: 8
    Dernier message: 22/12/2005, 23h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo