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

4D Discussion :

déclarer un tableau pour le compilateur


Sujet :

4D

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut déclarer un tableau pour le compilateur
    Bonjour,

    je passe en paramètre d'une fonction un tableau et dans cette fonction je déclare les $1, $2 ,$3, etc.
    J'ai un gros trou de mémoire, je me rappelle plus comment déclarer ($1 par exemple) quand il s'agit d'un tableau ?

    Merci !

  2. #2
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    Autant pour moi, j'ai oublié de préciser que je passe une variable locale de type tableau (je ne peux pas passer une variable process) et sauf erreur on ne peut pas utiliser les pointeurs sur ces variables d'où ma question : comment déclarer un tableau ?

  4. #4
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    ça dépends des versions de 4D..


    Note sur les variables locales : Les pointeurs vers des variables locales permettent dans de nombreux cas d’économiser des variables process. Les pointeurs vers des variables locales peuvent être utilisés uniquement à l’intérieur d’un même process.
    Dans le débogueur, lorsque vous affichez un pointeur vers une variable locale déclarée dans une autre méthode, le nom de la méthode d’origine est indiquée entre parenthèses, derrière le pointeur. Par exemple, si vous écrivez dans Méthode1 :
    $MaVar:="Bonjour"
    Méthode2(->$MaVar)
    Je crois que ça fonctionne aussi sur les tableaux.. m'en souviens plus...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    en tout cas pas avec la v11 ou v12.

  6. #6
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    je viens de tester avec la 12.4 c'est bon..

    méthode d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TABLEAU TEXTE($tt_test;0)
    0_test2 (->$tt_test)
    Méthode appelée :
    Bizarre que cela ne fonctionne pas chez toi...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    et dans ta méthode appelée tu déclares $1 comme ça ?

  8. #8
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    bin vi !

    ceci dit c'est une locale...
    certains parmis nous ne les typent pas,
    sans doute à tort quand il s'agit du web....

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    je suis encore en 12.3 et quand je fais le code à l’identique j'ai droit à une belle erreur de la part de 4D

    je télécharge la v12.4 et je refais le test

    ps ce n'est pas pour du web mais ça ne change rien à la demande

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    IDEM en 12.4 :

    méthode appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TABLEAU ENTIER LONG SUR SELECTION([Factures];$t_Factures)
    $process:=Numero du process courant
    $proc:=Nouveau process("Traitement_Factures";128*1024;"Impression & Copie Factures";->$t_Factures;$select_ImpressionPapier;$selectServLocal;$selectServDistant;$selectPDF;$template;$duplicata;$serveurFTP;$loginFTP;$passwordFTP;$relanceFactureMail;$process)
    et la méthode appelée :
    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
     
    C_POINTEUR($1)
    C_BOOLEEN($2;$3;$4)
    V_Select_ImpressionPapier:=$2
    V_SelectServLocal:=$3
    V_SelectServDistant:=$4
    C_ALPHA(100;$5;$6;$7;$8;$9;$10)
    V_SelectEmail:=$5
    V_Template:=$6
    V_Duplicata:=$7
    V_ServeurFTP:=$8
    V_LoginFTP:=$9
    V_PasswordFTP:=$10
    C_ENTIER($11)
    CB_RelanceFactureMail:=$11
    C_ENTIER LONG($12)
    V_Ref_Process:=$12
    C_BOOLEEN(V_Creation_FichierTemporaire)
    V_Creation_FichierTemporaire:=Faux
     
    CREER ENSEMBLE SUR TABLEAU([Factures];$1)
    Message d'erreur :
    Erreur d'exécution à la ligne 57 : il manque une variable.

    et c'est pareil si j'ajoute un nom d'ensemble.

  11. #11
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    Note sur les variables locales : Les pointeurs vers des variables locales permettent dans de nombreux cas d’économiser des variables process. Les pointeurs vers des variables locales peuvent être utilisés uniquement à l’intérieur d’un même process.
    Dans le débogueur, lorsque vous affichez un pointeur vers une variable locale déclarée dans une autre méthode, le nom de la méthode d’origine est indiquée entre parenthèses, derrière le pointeur. Par exemple, si vous écrivez dans Méthode1 :
    $MaVar:="Bonjour"
    Méthode2(->$MaVar)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    que ce la variable soit locale (->$t_Factures) ou process (->T_Factures), dans les 2 cas je ne récupère pas mon tableau dans le process appelé

  13. #13
    Membre confirmé Avatar de ZeFiF
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 303
    Points : 486
    Points
    486
    Par défaut
    alors faut faire un copier tableau de ta locale vers un interprocess ou passer un blob ou encore utiliser écrire variable process

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    je suis passé par un blob pour me simplifier la vie

    voici le code final dans ma méthode appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TABLEAU ENTIER LONG SUR SELECTION([Factures];$t_Factures)
    VARIABLE VERS BLOB($t_Factures;B_Factures)
     
    $proc:=Nouveau process("Traitement_Factures";128*1024;"Impression & Copie Factures";B_Factures;$select_ImpressionPapier;$selectServLocal;$selectServDistant;$selectPDF;$template;$duplicata;$serveurFTP;$loginFTP;$passwordFTP;$relanceFactureMail;$process)
    et le code dans ma méthode appelée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BLOB VERS VARIABLE($1;T_Factures)  // on récupère le tableau dans le blob passé en paramètre ($1)
     
    CREER ENSEMBLE SUR TABLEAU([Factures];T_Factures)
    DEBUT SELECTION([Factures])
    Tant que (Non(Fin de selection([Factures])))
     
    [......]
     
    ENREGISTREMENT SUIVANT([Factures])
     
    Fin tant que

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2007, 02h25
  2. [HTML] Tableau pour l'enregistrement des données
    Par ghyosmik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 01/11/2005, 15h28
  3. TABLEAU pour video
    Par kevinf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/10/2005, 19h29
  4. Problème tableau pour une requête
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2005, 20h21
  5. [VB.NET] Quel objet tableau pour une recherche indexée ???
    Par Kitano dans le forum Windows Forms
    Réponses: 7
    Dernier message: 02/09/2004, 09h38

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