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 Discussion :

table memoire d'une page a l'autre


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut table memoire d'une page a l'autre
    Bonjour tout le monde!
    Voila je rencontre un petit soucis en fait voilà j'ai un petit soucis j'aimerai passer le contenu d'une table memoire d'une page x a une autre table memoire d'une page y sans pour autant enregistrer les données dans une base de donnée intermédiaire qui ne me servira pas et prendra au fil du temps de l'espace...

    En gros dupliquer un tableau1 d'une page x vers un tableau2 page y sans ecriture en base.

    Cordialement.
    Marc

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour,

    Le principe est simple :

    Gérer une boucle de lecture de la table 1, de la première ligne de la page x (connue ou à déterminer par programme) à la dernière ligne de cette page.

    Après la lecture de chaque ligne, écriture de cette ligne dans la table 2, à partir de la première ligne de la page y (connue ou à déterminer ...), en gardant le même incrément de ligne à partir de l'origine de la page.

    Les précautions :
    - vous assurer de la cohérence des types de colonne ;
    - si les types ne sont pas identiques, il vaut mieux gérer la conversion, même si une conversion implicite est possible dans un certain nombre de cas ;
    - gérer le nombre de lignes dont vous disposez en table 2 pour recevoir les données et éventuellement passer en insertion de lignes ou, si vous recopiez en fin de table, en ajout de lignes.

    Les questions générales :
    - comment connaissez-vous les indices de départ et de fin ?
    - vous parlez de "pages" mais leur nombre de lignes dépend de votre situation et peut différer entre la table 1 et la table 2.
    - accessoirement, les noms de colonne sont-ils être identiques , ce qui pourrait simplifier la programmation ?

    Voilà de quoi vous permettre de commencer à travailler ...

    Bon courage
    Hemgé

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    voila ce que j'ai produit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    POUR TOUTE LIGNE DE Intervention.TABLE_SansNom1
     
    	TableAjouteLigne(exe_enregistrement.TABLE_enregistrement_intervention, Intervention.TABLE_intervention_ajoute.COL_SansNom2, Intervention.TABLE_intervention_ajoute.COL_SansNom3, Intervention.TABLE_intervention_ajoute.COL_SansNom4, Intervention.TABLE_intervention_ajoute.COL_SansNom5, Intervention.TABLE_intervention_ajoute.COL_SansNom6, Intervention.TABLE_intervention_ajoute.COL_SansNom7)
    FIN
     
    Ouvre(exe_enregistrement)
    bien sur ça ne fonctionne pas d'une page sur l'autre mais sur la même page oui

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Vous devriez prendre des noms plus courts, ce serait plus simple à (re)lire. Non ?
    Col1, Colonne1, Col_SN1 etc...

    Pages ? Vous travaillez en Webdev ? Quelle version ?

    Si je comprends bien, vous voulez copier de la page / fenêtre courante vers la page / fenêtre "exe_enregistrement".
    Il faut qu'elle soit ouverte avant de tenter d'y écrire quelque chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ouvre(exe_enregistrement)
    devrait se trouver avant la boucle POUR TOUTE LIGNE de.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    Bonjour, Ma solution n'est pas forcement celle que tu veux. mais mon point vu :

    1) tu définies une structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    str_Table_interv est une structure
          sCol1 est une chaine  
          sCol2 est une date  
          sCol3 est un entier  
          sColn est une chaine  
    fin
    tab_ListeTable est un tableau de 0 de str_Table_interv
    2) tu remplies ton tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    nNbreLigne est un entier=tableoccurence(Table)
    nIndice est un entier
    nLigne est un entier
     
    pour nIndice = 1 a nNbreLigne 
            nLigne=tableauajouteligne(tab_ListeTable)
            tab_ListeTable[nLigne]:sCol1=table.col1[nIndice]
            tab_ListeTable[nLigne]:sCol2=table.col2[nIndice]
            tab_ListeTable[nLigne]:sColn=table.coln[nIndice]
    fin
    3) tu passes ton tableau à l'autre fenêtre dans l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ouvre(y,tab_ListeTable)
    4) et à l'init de l'autre fenêtre tu parcours ton tableau de structure pour remplir ta table.

    Si tu as entre 10 a 100 informations dans ta table tu n'auras pas de temps de chargement. après si tu as 1000 à 10 000 enregistrement oui la tu auras un peu de temps de chargement et encore ça ne sera pas long quelques seconde.

  6. #6
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par Hemgé Voir le message
    Vous devriez prendre des noms plus courts, ce serait plus simple à (re)lire. Non ?
    Col1, Colonne1, Col_SN1 etc...

    Pages ? Vous travaillez en Webdev ? Quelle version ?

    Si je comprends bien, vous voulez copier de la page / fenêtre courante vers la page / fenêtre "exe_enregistrement".
    Il faut qu'elle soit ouverte avant de tenter d'y écrire quelque chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ouvre(exe_enregistrement)
    devrait se trouver avant la boucle POUR TOUTE LIGNE de.
    La fonction Ouvre n'est à priori pas disponible en Webdev, donc je soupçonne que c'est bien du Windev et la fonction Ouvre ouvre une fenêtre en modal, le code après l'exécution de Ouvre ne sera exécuté qu'après la fermeture de la fenêtre.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    ... la fonction Ouvre ouvre une fenêtre en modal, le code après l'exécution de Ouvre ne sera exécuté qu'après la fermeture de la fenêtre.
    Si j'ai bien lu,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAjouteLigne(exe_enregistrement.TABLE_enregistrement_intervention, ....
    C'est dans cette fenêtre exe_enregistrement que la TABLE_enregistrement_intervention se trouve.
    C'est dans la fenêtre que cela doit se passer.
    Ni avant son ouverture, ni après sa fermeture.
    Donc, sauf erreur de ma part, il faut l'ouvrir.

  8. #8
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par Hemgé Voir le message
    Si j'ai bien lu,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableAjouteLigne(exe_enregistrement.TABLE_enregistrement_intervention, ....
    C'est dans cette fenêtre exe_enregistrement que la TABLE_enregistrement_intervention se trouve.
    C'est dans la fenêtre que cela doit se passer.
    Ni avant son ouverture, ni après sa fermeture.
    Donc, sauf erreur de ma part, il faut l'ouvrir.
    Je n'ai pas dit qu'il ne fallait pas l'ouvrir, mais s'il l'ouvre avec la fonction Ouvre et que le code de remplissage est après la fonction Ouvre, le code de remplissage ne sera jamais exécuté. La fonction Ouvre ouvre une fenêtre en modal.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  9. #9
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Vous avez raison, DelphiManiac
    J'ai raté le "modal" dans votre intervention. Désolé.

    Donc, pour Marcossan, si c'est encore d'actualité pour lui :

    - ouvrir sa fenêtre exe_enregistrement ;
    - en utilisant une instruction d'ouverture non modale : MDIouvre, OuvreFille ou OuvreSoeur ;
    - puis remplir sa table.

Discussions similaires

  1. remplissag de champ d'une page d'un autre domaine
    Par max.onyx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/12/2005, 14h01
  2. [Cookies] passage de variable d'une page a l'autre
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2005, 01h50
  3. Réponses: 34
    Dernier message: 25/03/2005, 22h59
  4. [FLASH MX2004] loadVar vers une page d'un autre serveur
    Par j0hnmerrick dans le forum Flash
    Réponses: 3
    Dernier message: 22/03/2005, 12h49
  5. [JSP][Debutant]recuperer un objet d'une page a l'autre
    Par zozolh2 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/05/2004, 10h25

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