Donnez vie à vos documents numériques !
 

Formulaire de commandes

abracadabraPDF Forums PDF – Général Formulaire de commandes

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45947
    warrenc50
    Membre

    Bonjour
    Je suis en train de créer un formulaire de commande dans lequel j’ai une première liste ou on peut choisir une catégorie.
    Dans la seconde liste j’ai tous les items qui correspondent à chacune des catégories.
    Est-ce possible de n’afficher que les items de la catégorie sélectionnée?

    Voici le code pour le JS :

    function Initialisation()
    {
    console.clear();
    //On d?©finit les tableaux en respectant l’arborescence des menus:
    console.println(“Initialisation.Definition tableau Debut.”)
    ListeProduit=new Array();
    ListeProduit[0]=[“Cabinet”,”Specifications”];
    ListeProduit[1]=[“Filler Bout Gauche”,”Panneau Bout 1po Gauche”];
    ListeProduit[2]=[“Rangement”,”18po 1porte gauche”];
    ListeProduit[3]=[“Rangement”,”18po 1porte droite”];
    ListeProduit[4]=[“Rangement”,”18po 3tiroirs”];
    ListeProduit[5]=[“Rangement”,”Ouvert  Insert central 18po”];
    ListeProduit[6]=[“Rangement”,”Ouvert Bout 18po gauche”];
    ListeProduit[7]=[“Rangement”,”Ouvert Bout 18po droite”];
    ListeProduit[8]=[“Rangement”,”36po 2portes”];
    ListeProduit[9]=[“Rangement”,”Ouvert  Insert central 36po”];
    ListeProduit[10]=[“Rangement”,”Coin 90 18po 1porte gauche”];
    ListeProduit[11]=[“Rangement”,”Coin 90 18po 1porte droite”];
    ListeProduit[12]=[“Rangement”,”Desserte 18po”];
    ListeProduit[13]=[“Rangement”,”Chef 12po”];
    ListeProduit[14]=[“Rangement”,”Poubelle Coulissante 18po”];
    ListeProduit[15]=[“Rangement”,”Bonbonne 18po 1portegauche”];
    ListeProduit[16]=[“Rangement”,”Bonbonne 18po 1porte droite”];
    ListeProduit[17]=[“Évier”,”SMRT_N 18po 1portegauche”];
    ListeProduit[18]=[“Évier”,”SMRT_N 18po 1portedroite”];
    ListeProduit[19]=[“Évier”,”SMRT_E 18po 1portegauche”];
    ListeProduit[20]=[“Évier”,”SMRT_E 18po 1portedroite”];
    ListeProduit[21]=[“Évier”,”Base Évier 18po 1porte gauche”];
    ListeProduit[22]=[“Évier”,”Base Évier 18po 1doordroite”];
    ListeProduit[23]=[“Évier”,”BAR SMRT_N 36po 2portes”];
    ListeProduit[24]=[“Évier”,”SMRT_N 36po 2portes”];
    ListeProduit[25]=[“Évier”,”BAR SMRT_E 36po 2portes”];
    ListeProduit[26]=[“Évier”,”SMRT_E 36po 2portes”];
    ListeProduit[27]=[“Évier”,”SocialCorner gauche 36po 2portes”];
    ListeProduit[28]=[“Évier”,”SocialCorner droite 36po 2portes”];
    ListeProduit[29]=[“Évier”,”Base Évier 36po 2portes”];
    ListeProduit[30]=[“Grill”,”Grill Ceramique 30po 2portes”];
    ListeProduit[31]=[“Grill”,”Grill 36po 2portes”];
    ListeProduit[32]=[“Grill”,”Grill 42po 2portes”];
    ListeProduit[33]=[“Grill”,”Grill 48po 2portes”];
    ListeProduit[34]=[“Électroménagers”,”Electroménager 26po”];
    ListeProduit[35]=[“Finition”,”Filler Coin 90 3poX3po”];
    ListeProduit[36]=[“Finition”,”Filler Lineaire 2po”];
    ListeProduit[37]=[“Finition”,”Filler Lineaire – 4po”];
    ListeProduit[38]=[“Finition”,”Filler Lineaire avec Ouverture Prise Electrique 2poX4po – 4po”];
    ListeProduit[39]=[“Finition”,”Filler Lineaire 6po”];
    ListeProduit[40]=[“Finition”,”Filler Lineaire Ajustable”];
    ListeProduit[41]=[“Ambiance”,”Eclairage Lineaire 4po”];
    ListeProduit[42]=[“Filler Bout Droit”,”Panneau Bout 1po Droit”];
    //
    //Remplissage de la liste  1 (s?©lecteur Cabinet)
    console.println(“Remplissage liste 1 “)
    lld=this.getField(“DropdownE1″,”DropdownS1″,”DropdownS2″,”DropdownS3″,”DropdownS4,DropdownS5,DropdownE2”);
    lld.delay=true;
    lld.clearItems();
    index=0;
      while(index  {
      lld.insertItemAt(ListeProduit[index][0],ListeProduit[index][0],index)
      index=index+1;
      }
    lld.setFocus();
    lld.currentValueIndices=0;
    lld.delay=false;

    //Remplissage de la liste 2 (s?©lecteur Specifications)
    console.println(“Remplissage liste 2.”);
    lld=this.getField(“DropdownE1Spec”,”DropdownS1Spec”,”DropdownS2Spec”,”DropdownS3Spec”,”DropdownS4Spec”,”DropdownS5Spec”,”DropdownE2Spec”);
    lld.delay=true;
    lld.clearItems();
    index=0;
      while(index  {
      lld.insertItemAt(ListeProduit[index][1],ListeProduit[index][1],index)
      index=index+1;
      }
    lld.setFocus();
    lld.currentValueIndices=0;
    lld.delay=false;
    //Fin remplissage Liste 2
    console.println(“Initialisation.Definition tableau.Fin”)
    }

    Initialisation()

Affichage de 25 réponses de 1 à 25 (sur un total de 68)
  • Auteur
    Réponses
  • #64768
    warrenc50
    Membre

    Pour une de mes lignes du tableau j’ai 7 lignes 2 colonnes

    item 2, 1ere colonne code qui parle à la 2e colonne: if(!event.willCommit)
    {
    rang=0;
    selection=this.event.change;
    console.println(“*********”+selection);
    index=1;
    while(index{
    if(selection==ListeProduit[index][0]){rang=index;}
    index=index+1;
    }
    console.println(rang);
    this.getField(“DropdownS1Spec”).currentValueIndices=rang;
    }

    Item 2, 2e colonne : celui qui parle à la première colonne :

    if(!event.willCommit)
    {
    rang=0;
    selection=this.event.change;
    console.println(“*********”+selection);
    index=1;
    while(index{
    if(selection==ListeProduit[index][1]){rang=index;}
    index=index+1;
    }
    console.println(rang);
    this.getField(“DropdownS1”).currentValueIndices=rang;
    }

    #64769
    bebarth
    Maître des clés

    bonjour,
    Ne pourrais-tu pas regarder le script de ce post et voir s’il ne correspond pas mieux et plus simplement à ton utilité :

    A mon avis, ce script est bien compliqué pour ce que tu veux faire. Je pense qu’il est très bien lorsqu’on a beaucoup d’arrière arrière… petites filles, mais dans ton cas il y a un peu plus simple !

    @+
    :bonjour:

    #64770
    warrenc50
    Membre

    Merci beaucoup
    ça fonctionne!!

    Maintenant j’aimerais pouvoir permettre l’ajout par l’utilisateur d’un autre cabinet.
    Est-ce possible?

    #64771
    bebarth
    Maître des clés

    bonjour,

    Maintenant j’aimerais pouvoir permettre l’ajout par l’utilisateur d’un autre cabinet.
    Est-ce possible?

    C’est certainement très clair pour toi, mais je ne comprends pas…
    T’est-il possible de partager un fichier ?
    @+
    :bonjour:

    #64772
    warrenc50
    Membre

    Voici le fichier

    Pour ce qui est de l’ajout d’une ligne de saisie pour ajouter un/des cabinets, s’il y a une solution je suis preneur.
    Je tente aussi d’afficher un no de produits SKU dans ma 3e colonne lorsq’un item est choisi dans la colonne spécification.
    La colonne “Type” détermine le Type de cabinets.
    La colonne “Spécification” indique les dimensions et autres informations du type de cabinet
    La colonne “SKU” correspond au no de produit relatif au choix fait dans la colonne Spécification. Donc cette colonne affiche tout simplement le no de produit choisi. Mais là ça ne fonctionne pas.
    Je fais des tests avbec la 2e ligne

    #64773
    bebarth
    Maître des clés

    bonsoir,
    Lorsque tu définis tes tables, il faut également indiquer les valeurs d’exportation, genre :

    Code:
    g.setItems([[“Aucun Panneau de bout”,”1234567890″],[“Panneau Bout 1po Gauche”,”9876543210″]]);

    Puis il faut mettre en script de calcul des champs SKU :

    Code:
    this.event.target.value=this.getField(“Specifications”).value;

    Ne pas oublier de cocher la case “Valider la valeur sélectionnée immédiatement des champs “Specifications” et celle “Autoriser l’utilisateur à saisir des textes personnalisé”.
    Je t’ai fait juste la première ligne !
    @+
    :bonjour:

    #64774
    warrenc50
    Membre

    Merci Beaucoup!!!
    ça fonctionne numéro 1

    #64775
    warrenc50
    Membre

    Demande additionnelle
    Est-ce possible, avec des cases à cocher, d’ajouter à la fin du SKU, d’autres informations complémentaires?
    Ex. : HROK-STOC-8XXXXX (qui est dans mon champ SKU)
    et quand je clique sur une case à cocher ça donnerait ça : HROK-STOC-8XXXXX-316
    et sur une autre case : HROK-STOC-8XXXXX-316-bck

    #64776
    bebarth
    Maître des clés

    bonjour,
    Oui, c’est possible !
    -bck doit être disponible uniquement après -316 où indifféremment avec ou sans ?
    Je regarde ça ce soir !
    @+
    :bonjour:

    #64777
    warrenc50
    Membre

    Le sens d’affichage n’a pas d’importance.
    pourvu qu’ils s’ajoutent après le Sku affiché

    Mais bon.. si ça s’ajoute selon la séquence des cases à cocher, ça ferait bien.
    voici toute la séquence… mais bon je sais que j’exagère
    -316 -BCK -LBT -LIN -INS – LCK – HCB

    Merci!!

    #64778
    bebarth
    Maître des clés

    bonsoir,
    Je t’ai fait les 2 premières cases de la première ligne le plus simplement.
    Après, selon les noms des champs que tu donneras, il serait bien de faire des boucles… ça éviterait d’écrire plein de lignes !
    @+
    :bonjour:

    #64779
    warrenc50
    Membre

    WOW!
    Un immense MERCI!!

    #64780
    bebarth
    Maître des clés

    bonjour,
    Si ça t’intéresse, une fois que tu auras mis en place tous les champs, si tu peux partager ton fichier je t’aiderai à “simplifier” le script pour le minimiser.
    A moins que tu y arrives seul, évidemment…
    @+
    :bonjour:

    #64781
    warrenc50
    Membre

    daccord, mais le forum ne me permet pas de partager un fichier de plus de 1024 ko

    #64782
    bebarth
    Maître des clés

    …par MP via WeTransfer ou autre…
    @+
    :bonjour:

    #64783
    Merlin
    Maître des clés

    le forum ne me permet pas de partager un fichier de plus de 1024 ko

    Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html
    :Smiley03:

    #64784
    warrenc50
    Membre

    Donc à date tout fonctionne
    Par contre, j’aimerais exclure certains choix (cases à cocher) quand on choisit certains types de cabinet.
    Exemple, on ne peut cocher (Isolation de l’évier) si on a choisi un cabinet de rangement.
    Est-ce possible?

    #64785
    bebarth
    Maître des clés

    bonsoir,
    Il faut ajouter une condition !
    Dans le fichier exemple, j’ai masqué la case mais on pourrait aussi la mettre en lecture seule…
    @+
    :bonjour:

    #64786
    warrenc50
    Membre

    Merci!
    j’ai du modifier un peu le code, mais la base était là
    Ça fonctionne

    #64787
    bebarth
    Maître des clés

    j’ai du modifier un peu le code, mais la base était là

    …en même temps, je ne peux pas écrire quelque chose de définitif avec des données inventées !
    @+
    :bonjour:

    #64788
    warrenc50
    Membre

    Ton aide est très apprécié.
    Je n’y serais pas arrivé aussi rapidement sans ton aide.

    Je continue à travailler sur le projet.
    D’autres demandes entrent…
    afficher le prix de chaque item de ma table “Spécifications” dans un autre champ texte.

    Code:
    var f=this.getField(“Cabinets1”);
    var g=this.getField(“Specifications1”);
    var laCabinets1=event.value;
    for (var i=0; iif (laCabinets1==f.getItemAt(i,false)) {
    var laTable1=+f.getItemAt(i,true);
    break;
    }
    }
    g.clearItems();
    switch (laTable1) {
    case 1:
    g.setItems([[“Faire un choix”,””],[“Cabinet bout ouvert (sans panneau Bout – E1)”,”HROK-STOC-8XXXXX”],[“18po 1porte gauche”,”HROK-SB-8XXXXX”],[“18po 1porte droite”,”HROK-SB-8XXXXX”],[“18po 3tiroirs”,”HROK-ST3D-8XXXXX”],[“Ouvert Insert central 18po”,”HROK-STOM-8XXXXX”],[“Ouvert Bout 18po gauche”,”HROK-ST1D-8XXXXX”],[“Ouvert Bout 18po droite”,”HROK-STOC-8XXXXX”],[“36po 2portes”,”HROK-ST2D-8XXXXX”],[“Ouvert Insert central 36po”,”HROK-STOM-8XXXXX”],[“Coin 90 18po 1porte gauche”,”HROK-STC-8XXXXX”],[“Coin 90 18po 1porte droite”,”HROK-STC-8XXXXX”],[“Desserte 18po”,”HROK-STTC-8XXXXX”],[“Chef 12po”,”HROK-STCC-8XXXXX”],[“Poubelle Coulissante 18po”,”HROK-STTR-8XXXXX”],[“Bonbonne 18po 1portegauche”,”HROK-STTK-8XXXXX”],[“Bonbonne 18po 1porte droite”,”HROK-STTK-8XXXXX”]]);
    break;
    case 2:
    g.setItems([[“Faire un choix”,””],[“SMRT_N 18po 1portegauche”,”HROK-SSSM-8XXXXX”],[“SMRT_N 18po 1portedroite”,”HROK-SSSM-8XXXXX”],[“SMRT_E 18po 1portegauche”,”HROK-SSSM-8XXXXX”],[“SMRT_E 18po 1portedroite”,”HROK-SSSM-8XXXXX”],[“Base Évier 18po 1porte gauche”,”HROK-SB-8XXXXX”],[“Base Évier 18po 1doordroite”,”HROK-SB-8XXXXX”],[“BAR SMRT_N 36po 2portes”,”HROK-SSSM-8XXXXX”],[“SMRT_N 36po 2portes”,”HROK-SSSM-8XXXXX”],[“BAR SMRT_E 36po 2portes”,”HROK-SSSM-8XXXXX”],[“SMRT_E 36po 2porte”,”HROK-SSSM-8XXXXX”],[“SocialCorner gauche 36po 2portes”,”HROK-SSSC-8XXXXX”],[“SocialCorner droite 36po 2portes”,”HROK-SSSC-8XXXXX”],[“Base Évier 36po 2portes”,”HROK-SB-8XXXXX”]]);
    break;
    case 3:
    g.setItems([[“Faire un choix”,””],[“Ceramique 30po 2portes”,”HROK-GC-8XXXXX”],[“Grill 36po 2portes”,”HROK-GR-8XXXXX”],[“Grill 42po 2portes”,”HROK-GR-8XXXXX”],[“Grill 48po 2portes”,”HROK-GR-8XXXXX”]]);
    break;
    case 4:
    g.setItems([[“Faire un choix”,””],[“Electroménager 26po”,”HROK-APP-8XXXXX”]]);
    break;
    case 5:
    g.setItems([[“Faire un choix”,””],[“Filler Coin 90 3poX3po”,”HROK-CFLR-8XXXXX”],[“Filler Lineaire 2po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire – 4po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire pour électricité – 4po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire 6po”,”HROK-LFLR-8XXXXX”],[“Filler Lineaire Ajustable”,”HROK-LFLR-8XXXXX”]]);
    break;
    case 6:
    g.setItems([[“Faire un choix”,””],[“Eclairage Lineaire 4po”,”HROK-LEDL-8XXXXX”]]);
    break;
    }
    #64789
    bebarth
    Maître des clés

    bonjour,
    je n’ai pas compris s’il y avait une question !  :geek:
    @+
    :bonjour:

    #64790
    warrenc50
    Membre

    Dans la “table” que j’ai présentée (message précédent plus haut), est-ce possible d’ajouter un prix pour chacun des items et de l’afficher dans une autre zone texte?

    #64791
    bebarth
    Maître des clés

    bonjour,
    Je crois que j’ai oublié de répondre… désolé !

    Dans la “table” que j’ai présentée (message précédent plus haut), est-ce possible d’ajouter un prix pour chacun des items et de l’afficher dans une autre zone texte?

    Ici, dans les tables, on définit chaque élément d’une liste avec 1 ou 2 valeurs. Si on indique une seule valeur, c’est la valeur de l’élément (qui est affichée dans la liste), s’il y a 2 valeurs, la première représente la valeur de l’élément et la seconde la valeur d’exportation (celle qui sera utilisée pour un éventuel “calcul”).
    Dans le premier cas il n’est pas nécessaire de mettre des crochets (“Faire un choix” suffit au lieu de [“Faire un choix”,””]) alors que dans le deuxième cas les crochet sont impératifs pour séparer les différents éléments ([“Cabinet bout ouvert (sans panneau Bout – E1)”,”HROK-STOC-8XXXXX”]).
    Si tu indiques un intitulé et une référence pour chaque élément de ta liste, tu ne pourras donc pas indiquer une troisième valeur. Soit tu indiques le prix avec la référence, soit il faut créer une autre table avec les références/prix. Dans ce cas, il serait préférable que les listes ailles chercher les référence dans cette même table, ce qui évite d’avoir 2 fois à taper la même référence. C’est plus sûr en cas de modifications… Par contre cela demande à réécrire le script, et c’est un peu de boulot !
    J’espère avoir été clair.
    @+
    :bonjour:

    #64792
    warrenc50
    Membre

    Mon premier menu déroulant sert à déterminer quelle “Case” (1,2,3,4,5,6) sera choisie dans la Table. (img : Menu déroulant 1.png)
    Mon 2e menu déroulant choisit l’item et sa valeur d’exportation (Sku) qui est affichée dans un autre champ. (Voir table plus haut)
    Chaque Options qui est cliquée par la suite s’ajoute au Sku en bout de ligne. (img : exemple d’une ligne.png)

    Et là je dois faire afficher le prix de chaque item du 2e menu et des options sélectionnées dans un autre champ (Prix)

    Ça pourrait ressembler à quoi la programmation si j’ajoute une table pour cibler le résultat du Champ SKU et afficher le prix correspondant dans un Champ Prix?

    Merci!

Affichage de 25 réponses de 1 à 25 (sur un total de 68)
  • Vous devez être connecté pour répondre à ce sujet.