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

C++Builder Discussion :

bdd, et aussi récupérer des infos d'une autre form


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut bdd, et aussi récupérer des infos d'une autre form
    bonjour tlm
    j'ai plusieurs questions à vous poser (pour ne pas ouvrir plusieurs discussions) esperant avoir ses réponses.

    permièrement j'ai deux form (Form1,Form2) dans la premiere form il y a button quand je clique dessus la deuxieme apparet sert à remplir un formulaire (nom, prenom) quand je valide les information doivent etre recupérées par la premiere form (pour les mettres dans ma base de données).

    deuxiement je developpe un logiciel pour la gestion d'une entreprise j'ai deux tables (paradox) la premiere contient les matieres premieres et la deuxieme les produits finis, sachant que chaque produit nécessite quelques matières premieres par exemple:

    produit soja blé mais
    p1 124 100 0

    apparament il faut faire la jointure entre la premiere et la deuxieme table
    les lignes de la premiere table deviennent des colonnes dans la deuxieme voila, désolé d'etre un peu long, et aussi si il y a des fautes d'orthographe le français n'est pas ma langue maternelle et merci d'avance

  2. #2
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Pour la premiere question, tu as plusieurs solution,
    tu peut ecrire une fonction dans la classe de ta Form1, cette fonction devra récupéré les donnée de Form2 et les enregistrer dans la base, et cette fonction sera appelé lors du click sur le bouton de ta Form2, exemple :

    la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void TFForm1::RecupererDonnees(void)
    {
      AnsiString texte ;
      texte = Form2->Edit1->Text ;
      ...
      enregistrement dans la base
    }
    l'appelle de la fonction dans l'evenement OnClick du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Form1->RecupererDonnees() ;
    Pour la deuxieme question il faudrais que tu l'as reformule, car la on ne voit pas ou est ton probleme.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    pour pouvoir montrer la deuxieme form j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "Unit2.h"  (le header de la deuxieme form)
    ensuite dans le fichier cpp j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TForm2 *form2;
    form2->show;
    si je me trompe pas la deuxieme ne va pas reconnaitre la premiere
    je me souviens que pour faire comuniquer deux classes en java je faisait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAclasse class1=new MAclass(this)
    class1 signifie la nouvelle classe créer et this signifie la classe courant passer comme paramettre à la nouvelle classe créer pour que cette derniere puisque faire des changement dans la premiere,


    ma deuxieme question j'ai une table produit et une table matieres premieres ces matieres doivent aparaitre dans la table produit comme des colonnes pour savoir un tel produit combien il a consommé de chaque matiere premiere
    donc c'est dynamique à chaque fois que j'ajoute une matiere premieres une nouvelle colonne doit etre créer danzs la table produit

  4. #4
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Citation Envoyé par stayka
    pour puisque montrer la deuxieme form j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "Unit2.h"  (le header de la deuxieme form)
    ensuite dans le fichier cpp j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TForm2 *form2;
    form2->show;
    si je me trompe pas la deuxieme ne va pas reconnaitre la premiere
    je me souviens que pour faire comuniquer deux classes en java je faisait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MAclasse class1=new MAclass(this)
    class1 signifie la nouvelle classe créer et this signifie la classe courant passer comme paramettre à la nouvelle classe créer pour que cette derniere puisque faire des changement dans la premiere
    Il te suffit, pour que Form2 connaisse Form1 de mettre dans Unit2.h

    Citation Envoyé par stayka
    ma deuxieme question j'ai une table produit et une table matieres premieres ces matieres doivent aparaitre dans la table produit comme des colonnes pour savoir un tel produit combien il a consommé de chaque matiere premiere
    donc c'est dynamique à chaque fois que j'ajoute une matiere premieres une nouvelle colonne doit etre créer danzs la table produit
    Pour faire cela il faut que tu créé une liaison entre ta base et ton programme, une fois que c'est fait il te suffit d'utiliser des requete SQL envoyer par ton programme a ta base pour ajouter tes colonnes. Pour connecter ta base regarde du coté des composant ADO ou BDE.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    j'ai mis ce que vous m'avez dit et sur la deuxieme form j'ai posé un boutton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm2::SpeedButton1Click(TObject *Sender)
    {
    Form1->Label1->Caption="juste pour tester";
    }
    juste pour ecrire quelque chose sur la premiere form et à ce moment la un joli message dexception apparait "violation d'acces bblabla"

    il y a pas une astuce comme utilisée dans mon exemple en java la haut?

  6. #6
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    j'ai trouvé le probleme il y avait une ambiguité j'ai enlevé la declaration que j'ai mis sur la deuxieme (TForm1 *Form1) mais comment faire que lorsque la deuxieme sera affichée il y a que cette derniere qui a la main la form1 sera tjr en arriere désactivée?

  7. #7
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Si tu as bien mis en haut du fichier "Unit2.h" la ligne :et que le composant Label1 existe bien sur ta Form1 il ne devrait pas y avoir de probleme, sinon donne moi un peut plus de code ou ton message d'erreur en entier.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  8. #8
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Pour réafficher la premiere Form il suffit de mettre dans ton speedbouton par exemple, mais il ne peut pas y avoir deux fenetres active en même temps.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  9. #9
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par pottiez
    Pour réafficher la premiere Form il suffit de mettre dans ton speedbouton par exemple, mais il ne peut pas y avoir deux fenetres active en même temps.
    si si les deux fenetres sont actives en meme temps je peu basculer de l'une vers l'autre je veux désactivé la premiere le moment ou la deuxieme apparait vous me comprenez?

  10. #10
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Ok lorsque tu fait apparaitre ta fenetre 2 tu ajoute cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1->Visible = false ;
    pour la faire réaparaitre il suffit de mettre PS: j'ai vu une petite erreur lorsque tu fait apparaitre ta form2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TForm2 *form2;[FONT=monospace]
    [/FONT]form2->show;
    a transformer en :
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  11. #11
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    c'est bon j'ai mis Form1->Enabled=false merci beaucoup potiez pour les réponses

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

Discussions similaires

  1. Récupérer des info dans une page html
    Par DORBRITZ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/03/2008, 11h13
  2. Récupérer des infos par une variable session
    Par nebil dans le forum Langage
    Réponses: 4
    Dernier message: 03/09/2006, 23h02
  3. Récupérer des infos sur une page externe
    Par Horrigan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/07/2006, 14h46
  4. [ADO.Net][C#] Comment récupérer des infos d'une table SQL ?
    Par lamojuli dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/01/2006, 16h00
  5. Récupérer des infos d'une date
    Par mister3957 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 25/10/2005, 10h08

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