Donnez vie à vos documents numériques !
 

RafaelLopes

Toutes mes réponses sur les forums

Affichage de 21 réponses de 1 à 21 (sur un total de 21)
  • Auteur
    Réponses
  • en réponse à : Sauvegarde et compteur. – RÉSOLU #53146
    RafaelLopes
    Membre

    @ maxwyss : Oui j’ai bien pensé à ça, mais le problème est qu’il faut sauvegarder par dessus le modèle un nouveau modèle dans lequel est présent dans une variable le nombre d’enregistrement précédents… Or comme le modèle est ouvert, avec la fonction saveAs la sauvegarde échoue. De plus un autre problème se pose avec cette méthode, le fichier sera distribué sur un réseau d’entreprise, imaginons que deux personnes l’ouvrent en même temps, le dernier à sauvegarder remplacera le modèle sans prendre en compte l’augmentation de la variable que le 1er a engendré, je ne sais pas si je suis très clair ^^’.
    Dans tous les cas, j’ai trouvé une autre solution, je met tout simplement la date complète, année, mois, jour, heure, minute, seconde à la fin. Cela permet de classer les éléments et assure qu’il ne peut y avoir de doublons !
    Merci à vous !

    en réponse à : Sauvegarde et compteur. – RÉSOLU #53144
    RafaelLopes
    Membre

    Bonjour maxwyss, merci pour ta réponse.
    La liaison avec une BDD ne peut être réalisé (manque du temps) mais il est vrai que ça rendrait les choses plus facile.
    Concernant ta solution locale avec Adobe Reader, pourrais tu m’en dire un peu plus? que je voie si c’est réalisable sur Foxit.
    Merci d’avance.

    en réponse à : Sauvegarde et compteur. – RÉSOLU #53142
    RafaelLopes
    Membre

    Oui c’est bien ce qui me fait peur, en javascript c’est possible avec le FileSystemObject grâce au plugin ActiveX mais que sur IE, pas en pdf que ce soit sur Acrobat Reader ou Foxit Reader. Du coup je cherche une “astuce” pour contourner ce problème grâce à un code bien pensé en Javascript, mais ce n’est peut être pas du tout possible. D’où l’idée de sauvegarder par dessus le modèle un nouveau modèle avec une variable incrémentée pour chaque sauvegarde. Mais la encore je n’y arrive pas, c’est peut être tout bonnement impossible!
    En tout cas merci pour ta réponse !

    en réponse à : Calcul jours ouvrés entre deux dates. – RÉSOLU #53070
    RafaelLopes
    Membre

    Oui Merlin je viens de voir, sur Foxit Reader ça marche parfaitement tandis que sur Acrobat reader ca ne marche pas du tout… Je ne sais pas vraiment pourquoi, désolé  :Smiley02:
    Concernant mon script… ça marche, j’ai réglé mon problème!
    Je crois que le soucis venait du fait que je ne compares pas des dates au formats standard mais un nombre de millisecondes écoulées depuis le 1er janvier 1970… Ce qui veut dire que mon script interprétait le 1er janvier 2012 différemment en fonction de l’heure. Pour m’assurer que le problème venait pas de choses comme le décalage horaire ou encore les changements d’heures, j’ai décidé de passer par la fonction Date.UTC pour que ce soit plus fiable et tout marche nickel :D
    Je met le code pour les intéressés(que j’ai grandement allégé et optimisé en passant !)

    /* principe de fonctionnement, on calcule le jour de la semaine de la date de départ, on génère tous les jours fériés des années entre les deux dates, on calcul le nombre de jours hors weekend, on y soustrait les jours fériés hors weekend */
    function joursOuvres()
    {
    var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value);
    var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);
    var diffA=this.getField(“fA”).value-this.getField(“dA”).value; /* calcule le nombre d’années entre les deux dates pour générer les jours fériés */

    Dateuh= new Array();
    ferie= new Array();
    for(var q=0; q<=diffA; q++)
    {
    ferie[q]= new Array();
    ferie[q][0]= Date.UTC(this.getField(“dA”).value+q, 0, 1);
    ferie[q][1]= Date.UTC(this.getField(“dA”).value+q, 4, 1);
    ferie[q][2]= Date.UTC(this.getField(“dA”).value+q, 4, 8);
    ferie[q][3]= Date.UTC(this.getField(“dA”).value+q, 6, 14);
    ferie[q][4]= Date.UTC(this.getField(“dA”).value+q, 7, 15);
    ferie[q][5]= Date.UTC(this.getField(“dA”).value+q, 10, 1);
    ferie[q][6]= Date.UTC(this.getField(“dA”).value+q, 10, 11);
    ferie[q][7]= Date.UTC(this.getField(“dA”).value+q, 11, 25);
    var G = (this.getField(“dA”).value+q)%19;
    var C = Math.floor((this.getField(“dA”).value+q)/100);
    var H = (C – Math.floor(C/4) – Math.floor((8*C+13)/25) + 19*G + 15)%30;
    var I = H – Math.floor(H/28)*(1 – Math.floor(H/28)*Math.floor(29/(H + 1))*Math.floor((21 – G)/11));
    var J = ((this.getField(“dA”).value+q)*1 + Math.floor((this.getField(“dA”).value+q)/4) + I + 2 – C + Math.floor(C/4))%7;
    var L = I – J;
    var MoisPaques = 3 + Math.floor((L + 40)/44);
    var JourPaques = L + 28 – 31*Math.floor(MoisPaques/4);
    var dPaques = Date.UTC((this.getField(“dA”).value+q), MoisPaques-1, JourPaques);
    ferie[q][8]= dPaques+(1000*60*60*24);
    ferie[q][9]= ferie[q][8]+(38*(1000*60*60*24));
    ferie[q][10]= ferie[q][8]+(49*(1000*60*60*24));
    }/* génération des jours fériés*/
    var Date11= Date.UTC(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value)
    var Date22= Date.UTC(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);

    this.getField(“jO”).value=0;
    this.getField(“listeFeries”).clearItems();
    var index=Date1.getDay();
    var Dateuh2=0;

    for(var n=Date11; n<=Date22; n=n+(1000*60*60*24))
    {
    if((index>0) && (index<6))
    {
    for(var j=0; j<=diffA; j++)
    { for(var g=0; g{
    if(n==ferie[j][g])
    {
    Dateuh[Dateuh2]= new Date();
    Dateuh[Dateuh2].setTime(n);
    this.getField(“listeFeries”).insertItemAt(Dateuh[Dateuh2]);
    Dateuh2+=1;
    }}}
    this.getField(“jO”).value+=1;
    index+=1;
    }

    else if(index>5)
    {
    index=0;
    }
    else if(index<1)
    {
    index+=1;
    }

    }
    var nbrItems=this.getField(“listeFeries”).numItems;
    this.getField(“jO”).value=this.getField(“jO”).value-nbrItems;

    }

    Merci à vous pour votre aide !
    Cordialement,
    Rafaël Lopes

    en réponse à : Calcul jours ouvrés entre deux dates. – RÉSOLU #53068
    RafaelLopes
    Membre

    Merci merlin mais ça ne m’aide pas pour le problème actuel(mais merci quand même ! )
    Bon je fais de nombreux test, j’me suis mis sur un nouveau document pdf pour que ce soit plus clair et j’essaye de faire plein de tests. Je met le PDF en pièce jointe pour que vous puissiez voir de quoi je parle !
    ainsi que le code de ce document :

    /* principe de fonctionnement, on calcule le jour de la semaine de la date de départ, on génère tous les jours fériés des années entre les deux dates, on calcul le nombre de jours hors weekend, on y soustrait les jours fériés hors weekend */
    function joursOuvres()
    {
    var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value);
    var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);
    var Date0= new Date(2000, 00, 03); /* Lundi de référence */
    var diffA=this.getField(“fA”).value-this.getField(“dA”).value; /* calcule le nombre d’années entre les deux dates pour générer les jours fériés */

    ferie= new Array();
    for(q=0; q<=diffA; q++)
    {
    ferie[q]= new Array();
    ferie[q][0]= new Date(this.getField(“dA”).value+q, 0, 1).getTime();
    ferie[q][1]= new Date(this.getField(“dA”).value+q, 4, 1).getTime();
    ferie[q][2]= new Date(this.getField(“dA”).value+q, 4, 8).getTime();
    ferie[q][3]= new Date(this.getField(“dA”).value+q, 6, 14).getTime();
    ferie[q][4]= new Date(this.getField(“dA”).value+q, 7, 15).getTime();
    ferie[q][5]= new Date(this.getField(“dA”).value+q, 10, 1).getTime();
    ferie[q][6]= new Date(this.getField(“dA”).value+q, 10, 11).getTime();
    ferie[q][7]= new Date(this.getField(“dA”).value+q, 11, 25).getTime();
    var g = (this.getField(“dA”).value+q) % 19;
    var c = Math.floor((this.getField(“dA”).value+q) / 100);
    var c_4 = Math.floor(c / 4);
    var h = (19 * g + c – c_4 – Math.floor((8 * c + 13) / 25) + 15) % 30;
    var k = Math.floor(h / 28);
    var i = (k * Math.floor(29 / (h + 1)) * Math.floor((21 – g) / 11) – 1) * k + h;
    var jourSemaine = (Math.floor( (this.getField(“dA”).value+q) / 4) + (this.getField(“dA”).value+q) + i + 2 + c_4 – c) % 7; //jour de Pâques (0=dimanche, 1=lundi….)
    var presJour = 28 + i – jourSemaine; //Jour de Pâques en jours en partant de 1 = 1er mars
    var moisP=0;
    var jourP=0;
    if(presJour>31) {moisP=3;}
    else{moisP=2;}
    if(mois==2) {jourP=presJour;}
    else{jourP=presJour – 31;}
    var dPacques= new Date(this.getField(“dA”).value+q, moisP, jourP).getTime();
    ferie[q][8]= dPacques+(1000*60*60*24);
    ferie[q][9]= ferie[q][8]+(38*(1000*60*60*24));
    ferie[q][10]=ferie[q][8]+(49*(1000*60*60*24));
    }/* génération des jours fériés, pour Pacques et les 2 autres jours mobiles je me suis servi de formules trouvés sur le net */
    index=1;
    var Date11=Date1.getTime();
    var Date22=Date2.getTime();
    var Date00=Date0.getTime();

    if(Date00{
    for(m=Date00; m<=Date11; m=m+(1000*60*60*24))
    {
    if(index<7)
    { index+=1;}
    else if(index>6)
    {
    index=1;
    }
    }/* permet de savoir le jour de la semaine de la date de départ en se servant du lundi de référence */
    var index2=index;
    this.getField(“jO”).value=0; /* Nombre de jours ouvres */
    this.getField(“nbrJT”).value=0; /* ombre total de jours */
    this.getField(“nbrF”).value=0; /* nombre de feries EN SEMAINE */
    this.getField(“nbrJWE”).value=0; /* nombre de jours de week-end */

    for(n=Date11; n<=Date22; n=n+(1000*60*60*24))
    {
    this.getField(“nbrJT”).value+=1;
    if(index<=5)
    {
    this.getField(“jO”).value+=1;
    index+=1;
    }

    else if(index<7)
    {
    index+=1;
    this.getField(“nbrJWE”).value+=1;
    }
    else if(index>6)
    {
    index=1;
    this.getField(“nbrJWE”).value+=1;
    }

    } /* compte le nombre de jours hors weekend entre les deux dates */

    for(o=Date11; o<=Date22; o=o+(1000*60*60*24))
    {
    if(index2<=5)
    {
    for(j=0; j<=diffA; j++)
    { for(g=0; g{if(o==ferie[j][g])
    {this.getField(“jO”).value-=1;
      this.getField(“nbrF”).value+=1;}
    }}
    index2+=1;
    }
    else if(index2<7){index2+=1;}
    else if(index2>6){ index2=1;}
    } /* exclue les jours fériés hors weekend du nombre de jours hors hors weekend calculé précédemment */
    }

    }

    pour toute l’année 2012 j’ai donc 366 Jours (ça c’est bon =D ), 259 jours ouvres(à la place de 253), 3 jours feries en semaine(à la place de 8!!!) et 104jours de weekend(à la place de 105) !

    [attachment deleted by admin]

    en réponse à : Calcul jours ouvrés entre deux dates. – RÉSOLU #53066
    RafaelLopes
    Membre

    Voilà j’ai rajouté les 3 jours fériés mobiles (grâce à des formules trouvés dans wikipedia), j’ai de plus vérifié avec toute une panoplie de test que ça me calculait les bon jours et ça marche bien :) cependant … mon problèmé de jours ouvrés “en trop” n’est pas rélgé et en plus de ça, ces 3 derniers jours fériés ne son pas comptés(Why !?), voila mon script:

    /* principe de fonctionnement, on calcule le jour de la semaine de la date de départ, on génère tous les jours fériés des années entre les deux dates, on calcul le nombre de jours hors weekend, on y soustrait les jours fériés hors weekend */
    function joursOuvres()
    {
    var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value);
    var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);
    var Date0= new Date(2000, 00, 03); /* Lundi de référence */
    var diffA=this.getField(“fA”).value-this.getField(“dA”).value; /* calcule le nombre d’années entre les deux dates pour générer les jours fériés */

    ferie= new Array();
    for(j=0; j<=diffA; j++)
    {
    ferie[j]= new Array();
    ferie[j][0]= new Date(this.getField(“dA”).value+j, 0, 1).getTime();
    ferie[j][1]= new Date(this.getField(“dA”).value+j, 4, 1).getTime();
    ferie[j][2]= new Date(this.getField(“dA”).value+j, 4, 8).getTime();
    ferie[j][3]= new Date(this.getField(“dA”).value+j, 6, 14).getTime();
    ferie[j][4]= new Date(this.getField(“dA”).value+j, 7, 15).getTime();
    ferie[j][5]= new Date(this.getField(“dA”).value+j, 10, 1).getTime();
    ferie[j][6]= new Date(this.getField(“dA”).value+j, 10, 11).getTime();
    ferie[j][7]= new Date(this.getField(“dA”).value+j, 11, 25).getTime();
    var g = (this.getField(“dA”).value+j) % 19;
    var c = Math.floor((this.getField(“dA”).value+j) / 100);
    var c_4 = Math.floor(c / 4);
    var h = (19 * g + c – c_4 – Math.floor((8 * c + 13) / 25) + 15) % 30;
    var k = Math.floor(h / 28);
    var i = (k * Math.floor(29 / (h + 1)) * Math.floor((21 – g) / 11) – 1) * k + h;
    var jourSemaine = (Math.floor( (this.getField(“dA”).value+j) / 4) +  (this.getField(“dA”).value+j) + i + 2 + c_4 – c) % 7; //jour de Pâques (0=dimanche, 1=lundi….)
    var presJour = 28 + i – jourSemaine;            //Jour de Pâques en jours en partant de 1 = 1er mars
    var moisP=0;
    var jourP=0;
    if(presJour>31) {moisP=3;}
    else{moisP=2;}
    if(mois==2) {jourP=presJour;}
    else{jourP=presJour – 31;}
    var dPacques= new Date(this.getField(“dA”).value+j, moisP, jourP).getTime();
    ferie[j][8]= dPacques+(1000*60*60*24);
    ferie[j][9]= ferie[j][8]+(38*(1000*60*60*24));
    ferie[j][10]=ferie[j][8]+(49*(1000*60*60*24));
    }/* génération des jours fériés, pour Pacques et les 2 autres jours mobiles je me suis servi de formules trouvés sur le net */
    index=1;
    var Date11=Date1.getTime();
    var Date22=Date2.getTime();
    var Date00=Date0.getTime();

    if(Date00{
      for(i=Date00; i<=Date11; i=i+(1000*60*60*24))
      {
          if(index<7)
          { index+=1;}
          else if(index>6)
          {
          index=1;
          }
      }/* permet de savoir le jour de la semaine de la date de départ en se servant du lundi de référence */
    var index2=index;
    this.getField(“jO”).value=0;

      for(i=Date11; i<=Date22; i=i+(1000*60*60*24))
      {
          if(index<=5)
          {
            this.getField(“jO”).value+=1;
            index+=1;
            }

          else if(index<7)
          {
          index+=1;
          }
          else if(index>6)
          {
          index=1;
          }

      } /* compte le nombre de jours hors weekend entre les deux dates */

    for(i=Date11; i<=Date22; i=i+(1000*60*60*24))
      {
    if(index2<=5)
    {
    for(j=0; j<=diffA; j++)
    { for(g=0; g {if(i==ferie[j][g])
    {this.getField(“jO”).value-=1;}
    }}
    index2+=1;
    }
    else if(index2<7){index2+=1;}
    else if(index2>6){ index2=1;}
    }/* exclue les jours fériés hors weekend du nombre de jours hors hors weekend calculé précédemment */
    }

    }

    Du coup théoriquement c’est fini et ça devrait marcher(enfin selon moi  :Smiley08:) … mais en pratique pas vraiment, je me demande bien où est le problème :/

    en réponse à : Calcul jours ouvrés entre deux dates. – RÉSOLU #53064
    RafaelLopes
    Membre

    Bonjour,
    J’ouvre un nouveau sujet concernant cette question bien qu’il en à déjà été discuté sur le topic suivant : http://abracadabrapdf.net/forum/index.php/topic,1624.0.html
    [Edit du modo : les sujets ont été déplacés et ré-ordonnés)

    Voila mon script fait maison permettant de calculer le nombre de jours ouvrés entre deux dates. Pour l’instant il ne gère pas les jours fériés qui changent de dates chaque année(type Paques).

    function joursOuvres()
    {
    var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value); /* récupération du jours, mois et année dans les champs correspondant */
    var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);
    var Date0= new Date(2000, 00, 03); /* Lundi de référence qui permettra de connaitre le jour de la date de départ */
    var diffA=this.getField(“fA”).value-this.getField(“dA”).value; /* calcule la différence d’années entre la date de départ et la date de fin, cette variable sera ensuite utilisée pour “générer” les jours fériés de chaque année. */

    ferie= new Array();
    for(j=0; j<=diffA; j++)
    {
    ferie[j]= new Array();
    ferie[j][0]= new Date(this.getField(“dA”).value+j, 0, 1).getTime();
    ferie[j][1]= new Date(this.getField(“dA”).value+j, 4, 1).getTime();
    ferie[j][2]= new Date(this.getField(“dA”).value+j, 4, 8).getTime();
    ferie[j][3]= new Date(this.getField(“dA”).value+j, 6, 14).getTime();
    ferie[j][4]= new Date(this.getField(“dA”).value+j, 7, 15).getTime();
    ferie[j][5]= new Date(this.getField(“dA”).value+j, 10, 1).getTime();
    ferie[j][6]= new Date(this.getField(“dA”).value+j, 10, 11).getTime();
    ferie[j][7]= new Date(this.getField(“dA”).value+j, 11, 25).getTime();
    } /* création des jours fériés dans des tableaux imbriqués */

    index=1; /* initialisation de l’index(jour actuel), index=1 signifie qu’on est lundi */

    var Date11=Date1.getTime();
    var Date22=Date2.getTime();
    var Date00=Date0.getTime(); /* conversion des dates dans un format exploitable */

    if(Date00{
      for(i=Date00; i<=Date11; i=i+(1000*60*60*24))
      {
          if(index<7)
          { index+=1;}
          else if(index>6)
          {
          index=1;
          }
      } */ permet de connaitre le jour de la date de départ */
    var index2=index;
    this.getField(“jO”).value=0;

      for(i=Date11; i<=Date22; i=i+(1000*60*60*24))
      {
          if(index<=5)
          {
            this.getField(“jO”).value+=1;
            index+=1;
            }

          else if(index<7)
          {
          index+=1;
          }
          else if(index>6)
          {
          index=1;
          }

      } /* calcul des jouurs hors weekend */

    for(i=Date11; i<=Date22; i=i+(1000*60*60*24))
      {
    if(index2<=5)
    {
    for(j=0; j<=diffA; j++)
    { for(g=0; g<=ferie[j].length; g++)
    {if(i==ferie[j][g])
    {this.getField(“jO”).value-=1;}
    }}
    index2+=1;
    }
    else if(index2<7){index2+=1;}
    else if(index2>6){ index2=1;}
    } /* on soustrait les jours féries entre les deux dates au nombre de jours ouvres, seulement s’ils sont dans la semaine */
    }

    }

    Voilà où j’en suis, j’étais persuadé que ça marcherait parfaitement, or j’observe des écarts lorsque je fais le calcul sur une année entière. En 2012 j’ai par exemple 258 jours ouvrés alors qu’il y’en a réellement 250. Sachant que je prend pas encore compte dans mon script des jours feries qui change (comme Pacques) je devrais arriver à 255, j’ai donc 5 jours ouvres en trop et je dois admettre que je ne comprend absolument par où se situe le problème, quelqu’un aurait une idée?
    Merci d’avance

    en réponse à : Calcul jours ouvrés entre deux dates. – RÉSOLU #53062
    RafaelLopes
    Membre

    @alex : pas besoin pour la conversion du script, j’arrive à m’en sortir tout seul, j’aurai fini ça ce soir normalement et je pourrais donc le poster ici pour aider ceux qui peuvent en avoir besoin dans le futur. Merci quand même !

    Voilà où j’en suis pour le moment, me manque plus que la gestion des fériés.

    function joursOuvres()
    {
    var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value);
    var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);
    var Date0= new Date(2000, 00, 03); /* Lundi de référence */

    index=1;

    var Date11=Date1.getTime();
    var Date22=Date2.getTime();
    var Date00=Date0.getTime();

    if(Date00{
      for(i=Date00; i<=Date11; i=i+(1000*60*60*24))
      {
          if(index<7)
          {
          index+=1;
          }
          else if(index>6)
          {
          index=1;
          }
      }

    this.getField(“jO”).value=0;

      for(i=Date11; i<=Date22; i=i+(1000*60*60*24))
      {
          if(index<=5)
          {
          this.getField(“jO”).value+=1;
          index+=1;
          }
          else if(index<7)
          {
          index+=1;
          }
          else if(index>6)
          {
          index=1;
          }
      }
    }
    }

    en réponse à : Calcul jours ouvrés entre deux dates. – RÉSOLU #53061
    RafaelLopes
    Membre

    Que je suis bête !
    J’avais pensé a essayer de mettre un point à la place d’une virgule dans le résultat mais pas dans la condition de mon if … Pardon  :Smiley05:
    voila une chose de réglée.
    Concernant la date j’ai un peu avancé, je n’arrivais pas à récupérer et exploiter la date d’un champ au format Date. J’ai donc créé 3 champs alignés et je les ai utilisé dans les scripts suivant, maintenant cela calcule correctement le nombre de jours entre deux dates(pour l’instant ça ne tient pas compte des weekend et fériés).
    Voila mes scripts :

    function joursOuvres()
    {
    var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value);
    var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);

    this.getField(“jO”).value=diffDate(Date1,Date2);
    }

    function diffDate(d1,d2)
    {
    var diff = d2.getTime() – d1.getTime();
    return Math.ceil(diff/(1000*60*60*24));
    }
    Merci beaucoup pour ton aide alex.

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53033
    RafaelLopes
    Membre

    Bonjour,
    Me revoilà  :Smiley11:
    La conception de mon formulaire touche (enfin) à sa fin!
    Il  me reste juste deux petits soucis.
    certains nombres sont arrondis, par exemple si je crée une fonction comme celle ci si (x=blabla) alors y=12.07 j’aurai dans le champs y la valeur 12. rien à faire, j’ai beau mettre des points, des virgules, des guillemets, sans guillemets, j’aurai toujours 12 en résultat. Auriez vous une solution à ce problème?
    Enfin, il me reste une fonction à implémenter, un calcule de nombre de jours ouvrés entre deux dates, qui exclue donc weekend et fériés.
    Je saurais probablement le faire si je mettais 4 Champs, un pour le jour (Lundi Mardi …), un pour le jour (12, 23…), le mois( Novembre…) et l’année (1992) que doit remplir l’utilisateur, mais ça me donnerait une énorme fonction avec plusieurs boucles for … un joyeux bordel donc, je me demandais s’il n’y avait pas un moyen plus “simple”.
    Merci d’avance !

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53032
    RafaelLopes
    Membre

    La solution d’alex fonctionne à merveille, Cependant ça fout un peu la zizanie si on remplace les if/else if par des switch case ! La syntaxe de mon switch case devrait être bonne puisqu’elle fonctionnait avant mais une fois adaptée à ton script, cela rempli bien la deuxieme liste mais des que je clique sur celle ci(la deuxieme) les items disparaissent  :Smiley07:, je vais donc faire ca avec des if, la syntaxe est plus lourde mais cela a le mérite de fonctionner au moins !

    Merci à vous deux.  :Smiley08:
    Sous Scribus il faut mettre le script d’alex dans l’onglet Format (de la liste) -> Sur Mesure -> Frappe. (je le dis au cas où certains auraient le même problème que moi à l’avenir.  :Smiley01: )

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53028
    RafaelLopes
    Membre

    Merci à vous deux !
    @ alex: merci je vais tester ça!
    @ Merlin: Merci, cependant es tu sur que c’est sous scribus? je ne trouve pas cette option sur ma version :/

    Merci encore pour vos réponses rapides !

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53025
    RafaelLopes
    Membre

    Je me permet un petit UP.
    En effet la réalisation du formulaire touche à sa fin et j’ai toujours ce “problème” dérangeant.
    Auriez vous une solution?
    J’ai mis en pièce jointe un exemple du problème.
    Merci d’avance

    [attachment deleted by admin]

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53024
    RafaelLopes
    Membre

    Bonjour,
    je reviens moi et mes problèmes, décidément  :Ooops:
    J’explique mon problème:
    Les données ne sont pas prises en comptes en “temps réel”, par exemple, je choisi France dans la liste1 et j’aimerais cliquer juste après dans la liste 2 et avoir comme option “Paris – Lyon – Marseille …”. Or la je choisi un élément dans la première liste et je suis obligé de cliquer ailleurs, me repositionner sur la première liste et ensuite appuyer sur Entrée et enfin la deuxième liste est remplie.
    J’ai essayé de lancer la fonction via d’autre actions javascript, par exemple lorsque la souri se positionne sur la deuxième liste etc… mais cela provoque aussi des bugs de la même nature :/
    J’ai testé avec Adobe Reader et Foxit Reader, le problème ne vient donc pas du reader je pense.
    Question supplémentaire concernant le deleteItemAt(); il ne supprime qu’un élément, n’y a-t-il pas moyen  de supprimer tous les éléments?
    Edit : Trouvé, c’est la fonction”clearItems”
    Pardon encore pour mes problèmes “bidons” et Merci d’avance pour votre aide.
    Cordialement,
    Rafaël Lopes

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53022
    RafaelLopes
    Membre

    Parfait,
    Exactement ce qu’il me fallait.
    merci encore.
    Edit: Dans tes 2 syntaxes pour la 4 tu as oublie le ” ” ” après “Europe” et le “.” entre “this” et “getField”, je le dis juste au cas où d’autres personnes se serviraient de ce topic a l’avenir :)
    Aussi le script 4 ne marche pas chez moi (étrange) je l’ai modifié comme cela et maintenant ça marche : “if (this.getField(“myList”).value == “France”) {this getField(“champNonModifiable”).value = “Europe;}

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53020
    RafaelLopes
    Membre

    Hmm, oui sauf que je fais ça dans le cadre du travail, je ne peux donc pas profiter de tous ces logiciels :/
    J’aurais besoin d’un peu d’aide pour quelques syntaxes de base et après je pourrais me dérouiller tout seul, avec scribuc créer les champs et la mise en page et facilement faisable, j’ai juste des problèmes de syntaxe.
    En gros j’ai besoin de savoir faire en Javascript ces 4 choses:
    1-) Récupérer la valeur d’un champ/d’une liste, ca c’est bon vous m’avez donné la syntaxe auparavant, soit “var Valeur1 = this.getField(“Nom”).value;
    2-) Attribuer une valeur à un champ via Javascript: J’ai testé “Texte1.value = “Miam”;” lorsque j’appuie sur un bouton mais ça ne marche pas, ça aurait été trop simple.
    3-) Attribuer une liste de valeur à une liste via Javascript, la je sais pas trop, faut passer par un tableau peut être?
    4-) Afficher un texte dans un champ NON MODIFIABLE par l’utilisateur via Javascript(genre si il choisi France je dois pouvoir afficher dans un champ le mot Europe, pas dans une alerte mais dans un champ)
    Alors voilà pourriez vous m’aider avec ces 4 formules? je suis sur que ce n’est pas bien dur, après c’est de l’application toute bête que je pourrais faire. Par avance désolé de ne pas pouvoir faciliter le travail en téléchargeant un logiciel payant ou une version d’essai mais dans le cadre de l’entreprise je ne peux pas trop me permettre.
    PS: Merci merlin pour toute l’aide que vous m’apportez !

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53018
    RafaelLopes
    Membre

    D’accord, le fait est que je réalise ce formulaire dans le cadre d’un stage, du coup l’entreprise aimerait mieux ne pas acheter Acrobat, d’autant plus que si j’ai bien compris Acrobat me serait d’une grande aide mais ne m’est pas indispensable? Si je dois me taper des masses de Javascript alors Soit, ça me fera un gros projet a présenter pour mon rapport de stage  :Smiley08:
    Bon vu qu’apparemment je vais avoir beaucoup de JS, je vais aller me retaper des tutos dessus plutôt que de venir vous embêter pour des idioties comme je viens de le faire.
    Merci pour les deux liens mais le deuxième est mort!
    Merci encore pour le coup de pouce!
    Edit:”Pour le coup, si tu peux attendre la fin de journée ou demain, je pourrais te les ressortir en texte mais c’est un problème que tu rencontreras souvent.”
    Hm oui je veux bien, au moins pour un exemple parce que la je n’arrive pas à démarrer, et si après je vois que j’en ai encore besoin je téléchargerai Acrobat et je me débrouillerai!
    PS:Merci pour tes réponses si rapides !

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53016
    RafaelLopes
    Membre

    Je ne comprend pas vraiment en quoi j’aurai besoin D’Acrobat, j’ai besoin d’être un peu plus éclairé sur ce point s’il vous plait.
    Je veux créer un formulaire PDF avec Scribus qui sera ensuite ouvert sous Foxit Reader. Or on peut intégrer du javascript depuis Scribus, à quel moment aurais-je besoin d’Acrobat? J’ai l’impression que mon problème vient du fait que je n’utilise pas la bonne syntaxe. Exemple pour faire un truc bidon. J’ai deux champs Texte, un nommé “Nom” et l’autre nommé “Prenom”, j’aimerais que lorsque l’on remplisse Nom, puis Prénom, un message d’alerte apparaisse. J’ai essayé le code suivant rentré en tant que Validation pour le champ Prenom.

    Code:
    var Valeur1 = this.getField(“Nom”);
    var Valeur2 = this.getField(“Prenom”);
    alert(‘vous vous appellez’ Valeur1 Valeur2 ‘?’);

    cependant ça ne m’affiche rien, je suppose que c’est parce que ma syntaxe est mauvaise et je pense que pour les listes liées le problème est similaire.
    Pardon d’avance si je ne suis pas très clair.
    Cordialement,
    Rafaël Lopes

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53014
    RafaelLopes
    Membre

    Oui je sais où mettre les script cependant je ne comprend pas comment récupérer le choix d’une liste en javascript? quelle syntaxe faut il utiliser et où mettre ce code? dans le code validation de la première liste? dans le code action d’une seconde? De plus comment “créer” les différents choix d’une liste en javascript?
    Pardon si mes questions sont basiques mais je pense que je bloque au démarrage, une fois lancé ça devrait aller ^^’
    Merci d’avance pour vos réponses

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53012
    RafaelLopes
    Membre

    Bonjour.
    J’ai essayé de m’habituer à l’interface de Scribus, c’est pas encore ça mais ça commence à venir. Du coup j’ai essayé de résoudre mon problème, soit faire deux listes déroulante liées, j’ai essayé de prendre exemple sur ce topic “http://abracadabrapdf.net/forum/index.php/topic,1178.msg5648.html&#8221; mais l’interface de script de Scribus me parait bien différente des logiciels Adobe et je n’ai rien réussi à faire.
    Auriez vous un petit coup de pouce à me donner?
    Merci d’avance.

    en réponse à : Formulaire PDF, listes en cascades. – RÉSOLU #53010
    RafaelLopes
    Membre

    Je vous remercie.
    Je vais télécharger Scribus et essayer de résoudre mon problème tout seul. J’ai eu peur pendant un moment que ce ne soit pas possible sans Acrobat mais le problème vient du fait que le Javascript n’est pas géré avec OpenOffice je crois, je vais donc passer par Scribus!
    Je reposterais dans ce topic si je n’y arrive pas.
    Merci encore

Affichage de 21 réponses de 1 à 21 (sur un total de 21)