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

Bases de données Delphi Discussion :

[D10.0.3][Access] État sur FastReport


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut [D10.0.3][Access] État sur FastReport
    J'ai une table "médicament" 💊 et une table "ordonnance" et je veux créer une ordonnance.
    J'ai un DBGrid et un TEdit.
    Je veux que quand on je fais la recherche d'un médicament, cela s'affiche directement sur l'état FastReport.
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Soyez plus précis.
    Version de Delphi ? VCL ou FMX (vu le dbgrid je suspecte VCL) ? Connecteurs aux bases de données ? Version de Fastreport (enregistrée donc avec fastscript ou pas)
    Le mieux serait quand même de nous montrer un semblant de sortie souhaitée.

    Je qu'on je fait la recherche d'un médicament s'affichent directement sur l'état fastreport.
    Houlà, on arrive là à un fastreport avec interactions, compliqué ça et une fois encire cela va dépendre de la version de FastReport
    un début de réponse : https://www.fast-report.com/en/blog/...-dialog-forms/

    Avec la version FastReport Embarcadero je vous conseille d'utiliser une table mémoire à remplir via l'interface utilisateur de votre application et que vous utiliserez comme frxdataset
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut
    J'utilise fastreport6 est embacadero Rio 10.0.3
    La base de données sous access

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par divil15 Voir le message
    J'utilise fastreport6
    Insuffisant, pouvez-vous écrire des fastreport script ou pas (version enregistrée vs version embarcadero)
    La base de données sous access
    .MG, je déteste ce pseudo SGBD, donc vous utilisez très certainement ADO (ce que je déteste encore plus) ?
    Citation Envoyé par sergiomaster
    Le mieux serait quand même de nous montrer un semblant de sortie souhaitée.
    un tant soit peu de cahier des charges est toujours plus parlant
    Un dbGrid, pour moi, est un affichage de données le rapport avec "la recherche d'un médicament" n'est pas vraiment clair
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Pour ce faire une idée du code
    Vous utilisez des Tables + Filter ? Locate ? MasterSource ? Query + SQL ? Jointure ?

    Les TDBGrid et TDBEdit n'ont aucun rapport avec FastReport, ce qui compte c'est les DataSet sous-jacents, il y a un amalgame qui donne l'impression de deux sujets différents que vous tentez de résoudre en une seule fois, voyez la saisie et l'impression comme deux étapes purement autonomes.

    Il faudrait dissocier toute la partie interaction utilisateur de récolte de données soit la constitution de la liste des médicaments avec pour chacun la posologie associée.
    C'est une formulaire de saisie de base, pour la liste des médicaments un TDBLookupComboBox peut être utilisé

    Ensuite le FastReport doit avec comme DataSet Principal la Table ordonnance et un lien Detail sur Medicatements, sans oublier de préparer une table pour l'entête
    Sinon un Query INNER JOIN permet de créer un DataSet où les données deux tables sont agglomérées/consolidées
    Mais ça c'est un second temps, faut penser l'impression toujours comme une ré-impression cela permet de bien isoler la partie qui récupère les données sans aucune dépendance à la phase de saisie.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    J’ai l’impression au vu des réponses laconiques du demandeur, qu’il s’attend à du code tout fait.

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par der§en Voir le message
    J’ai l’impression au vu des réponses laconiques du demandeur, qu’il s’attend à du code tout fait.
    Encore un utilisateur auquel il faut tirer les verres du nez pour avoir les informations nécessaires

    à propos, il existe un forum pour FastReport
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut Jointer deux tables Adotable
    Slt tout le monde
    J'ai deux tables
    Table ordonnance contient des champs ( code ordonnance ,libellé médicament....etc).
    Table médicament ( num-medicament,medicament ......).
    Je veux créer une ordonnance
    comment faire pour rechercher un médicament et le mettre dans la table ordonnance .
    Merci d'avance

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Vous avez déjà posé cette question !
    10.3 et encore avec ADO

    Il vous faut une table supplémentaire.
    Table Ordonnance (id_ordonnance, patient, nbr mois, ....);
    Table Lignes_Ordonnance(id_ligne,id_ordonnance, id_medicament, posologie ...)
    Table Medicaments(id_medicament, libelle_medicament, ....)

    Liste des Médicaments d'une ordonnance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT l.id_Ordonnance,l.id_medicament,m.libelle_medicament,l.posologie 
             FROM lignes_ordonnance l 
               JOIN Medicaments m on m.id_medicament=l.id_medicament
    Pour un "administrateur de base de données" ce devrait pourtant être du BABA, la connaissance du SQL est vraiment le minium.
    Bien sûr, l'établissement de relations entre tables est aussi un travail de DBA
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Quel est le problème technique ?
    Nous n'avons aucune difficulté visible puisque nous n'avons aucune information utile
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Nouveau Candidat au Club Avatar de divil15
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 45
    Points : 0
    Points
    0
    Par défaut Code pour valider les données
    slt
    jai deux table ado
    medicament(NoH,Medicament,Dosage,Qté,LibelleDetaille.......................................)
    ordonnance detail(Code,Code_Ordonnance,Code_Medicament,Libelle_Medicament,Dose,Prise_Jour,Nombre_Jour,Periode,Quantite,Dosage................)
    1- la table medicament est rempli avec des produits
    ce que je veux ,quand je fais la recherche d'un produit dans la tables medicament s'affiche directement dans la table ordonnance detail.
    jespere que tu ma compris .
    aider moi .
    et merci d'avance

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par divil15 Voir le message
    medicament(NoH,Medicament,Dosage,Qté,LibelleDetaille.......................................)
    ordonnance detail(Code,Code_Ordonnance,Code_Medicament,Libelle_Medicament,Dose,Prise_Jour,Nombre_Jour,Periode,Quantite,Dosage................)
    Vous avez des redondances.
    Comme nous n'avons pas l'interface utilisateur (rien à voir avec FastReport), j'en resterai sur cette remarque
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    On a exactement la même chose pour un sujet "Importer des données via une table dans DBGrid" et ce sujet "État sur FastReport"
    Tout cela n'a pas de rapport, on dirait que vous attendez que l'on vous fasse une application ?!

    Copier 4 fois le même texte ne fera pas avancer le problème

    Citation Envoyé par divil15 Voir le message
    slt
    jai deux table ado
    medicament(NoH,Medicament,Dosage,Qté,LibelleDetaille.......................................)
    ordonnance detail(Code,Code_Ordonnance,Code_Medicament,Libelle_Medicament,Dose,Prise_Jour,Nombre_Jour,Periode,Quantite,Dosage................)
    1- la table medicament est rempli avec des produits
    ce que je veux ,quand je fais la recherche d'un produit dans la tables medicament s'affiche directement dans la table ordonnance detail.
    jespere que tu ma compris .
    aider moi .
    et merci d'avance

    Désolé, c'est informations sont pour le moment totalement inutiles pour vous aider, on ignore où vous bloquez, nous avons besoin d'un code Pascal, d'un code SQL, d'un début de travail de votre part et connaître les messages d'erreur que vous avez à la compilation si le code Pascal est mal écrit, les erreurs à l'exécution si le code Pascal est incohérent ou que le SQL soit faux ...


    Donc commencer par nous fournir votre SQL, clairement il y a trois tables requises pour modéliser correctement une ordonnance avec entête et ses lignes dont chaque pointe vers un médicament.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ...
    FROM ordonnance AS O 
    INNER JOIN ordonnance detail AS OD ON OD.Code = O.Code_Ordonnance
    INNER JOIN medicament AS M ON M.Code = OD.Code_Medicament
    WHERE O.Code = :pCode


    Et si vous ne maitriser pas le SQL, avec TADOTable, suffit d'utiliser MasterSource + MasterField : Création de relations maître/détail et aussi lire Comment faire de la table la partie détail d'un autre ensemble de données

    Evidemment un lien ponctuel, éventuellement avec des DataSet/DataSource dédié alloué dynamiquement sinon cela impacterait toutes l'application si ce sont des objets globaux dans un TDataModule par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    OrdonnanceDetail.MasterSource := Ordonnance;
    OrdonnanceDetail.MasterFields := 'Code_Ordonnance';
    Medicament.MasterSource := OrdonnanceDetail;
    Medicament.MasterFields := 'Code_Medicament';
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [AC-2003] impression d'un état sur access
    Par bmorvan dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/06/2011, 12h13
  2. Etats pour l'impression des états sur access
    Par feratima2008 dans le forum Access
    Réponses: 1
    Dernier message: 18/06/2008, 17h10
  3. tri dans un état sur access 2003
    Par jps2 dans le forum Access
    Réponses: 10
    Dernier message: 28/04/2006, 13h03
  4. appel des états sur access
    Par jamesys dans le forum IHM
    Réponses: 2
    Dernier message: 14/09/2005, 09h56

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