begin process at 2010 02 10 13:13:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

Autre

 > 

Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

mercredi 19 novembre 2008 à 19:58:04 | Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

galabes

Bonjour à tous,

Je souhaite "synthetiser" le resultat de plusieurs Adoquery dans une stringgrid...
Je ne sais pas comment m'y prendre :
j'ai une table "tbarticle", une table "tbvente" et une "tbachat" (c'est simplifié evidemment, mais le probleme est le meme).

Champs table article :
Codearticle - Libelle - Unitecomptage - Prixachat - etc...

je fais 1 Adoquery pour mes achats, et 1 Adoquery pour mes ventes
Ma question : comment remplir une Stringgrid avec ces resultats, sachant que je veux ma correspondance code article / Info achats / Infos ventes ??
SOIT :
Codearticle - Ca Achats - Ca Ventes - etc...
ABC01       - 5000         - 8000        - etc...
etc...

Merci d'avance pour vos reponses...


mercredi 19 novembre 2008 à 22:00:36 | Re : Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

beckerich

bonsoir,

j'ai fait une petite base de test :
create table art (
  codart varchar(5),
  libart varchar(5),
  prxach integer,
  prxven integer
);

create table achat (
  codart varchar(5),
  qteach integer);

create table vente (
  codart varchar(5),
  qteven integer);

insert into art (codart,libart,prxach,prxven) values ('02art', 'art 2', 4, 13);
insert into art (codart,libart,prxach,prxven) values ('01art', 'art 1', 5, 15);
insert into art (codart,libart,prxach,prxven) values ('03art', 'art 3', 6, 25);

insert into achat (codart, qteach) values ('01art', 100);
insert into achat (codart, qteach) values ('01art', 100);
insert into achat (codart, qteach) values ('01art', 50);
insert into achat (codart, qteach) values ('01art', 75);
insert into achat (codart, qteach) values ('01art', 50);
insert into achat (codart, qteach) values ('02art', 10);
insert into achat (codart, qteach) values ('02art', 60);
insert into achat (codart, qteach) values ('03art', 55);
insert into achat (codart, qteach) values ('03art', 30);

insert into vente (codart, qteven) values ('01art', 15);
insert into vente (codart, qteven) values ('01art', 13);
insert into vente (codart, qteven) values ('01art', 10);
insert into vente (codart, qteven) values ('01art', 6);
insert into vente (codart, qteven) values ('02art', 14);
insert into vente (codart, qteven) values ('03art', 22);
insert into vente (codart, qteven) values ('03art', 4);

select a.codart, a.libart, sum(b.qteAch * a.prxach) CAAchat, sum(v.qteVen * a.Prxven) CAVente
from art a, achat b, vente v
where
v.Codart = a.Codart
and b.codart = a.Codart
group by a.codart, a.libart

ensuite, tu sélectionnes comme tu veux...
J'espère que cela te mets sur la voie.
Luc.
jeudi 20 novembre 2008 à 10:15:16 | Re : Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

cantador

Membre Club

@beckerich :
si tu as un nombre d'enregistrements d'achats différents du nombre d'enregistrements de vente (ce qui est une situation très courante)
ça ne fonctionne pas..

il faudrait aussi préciser le type de SGBD car le sql access par exemple est différent du SQL interbase..

dans access :
where
v.Codart = a.Codart
and b.codart = a.Codart


Cette écriture est interprétée comme un passage de paramètre alors que le but de l'opération est de montrer pour l'ensemble des articles, le total des achats et des ventes.

cantador

jeudi 20 novembre 2008 à 10:52:22 | Re : Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

galabes

Bonjour, Merci de vos reponses

Concernant mes tables : Db2 sur serveur I520...
J'utilise Adoconnection avec : IBM DB2 UDB For Iserie / IBMDA400 Ole Provider
Version :Delphi7

Mon probleme est que les tables sont assez nombreuses, donc c'est difficile de faire qu'une seule requete pour tout recuperer... je fais donc plusieurs requetes (obligé car en une seule requete je deviens fou...).

J'utilise un array dans lequel je mets tous mes articles, j'inscris mes codes articles dans la colonne 1 de ma stringgrid, et je boucle dessus avec des array qui contiennent les infos venant de mes differentes Adoquery...quand il y a correspondance, j'inscris l'info dans la bonne colonne de la ligne correspondante...

Je suis pas sur que ce soit le meilleur moyen d'y arriver ???

jeudi 20 novembre 2008 à 16:57:57 | Re : Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

cantador

Membre Club
C'est une piste comme une autre mais pour répondre correctement à ta question il faudrait disposer du modèle conceptuel des données de la base.

cantador
vendredi 21 novembre 2008 à 09:48:52 | Re : Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

galabes


Merci à tous,

Mais je vais me debrouiller comme indiqué plus haut (array et boucle)...ca fonctionne pas trop mal.
1 seule requete me parait pas faisable de toute façon....j'ai aussi besoin de ressortir les infos du stock et d'autres elements en fonction de date et de critères par options car plusieurs depots, c'est compliqué (enfin pour moi)


A tres bientot

vendredi 12 décembre 2008 à 13:03:50 | Re : Remplir 1 Stringgrid avec le resultat de plusieurs Adoquery

JeremyLecouvert

Salut!

Je sais pas si tu as trouvé ta réponse, alors en voilà une (qui reprend la base de test de Beckerich):
select a.codart, a.libart,
(select sum(qteAch * prxach) from achat, art  where achat.Codart=art.Codart group by art.codart having art.Codart=a.codart) as Tot_Ach,
(select sum(qteVen * Prxven) from vente, art  where vente.Codart=art.Codart group by art.codart having art.Codart=a.codart) as Tot_Ven
from art a, achat b, vente v
where v.Codart = a.Codart
and b.codart = a.Codart
group by a.codart, a.libart

Il faut utiliser des requêtes imbriquées pour calculer indépendamment les valeurs calculées, pour éviter le pb du nbre d'enregistrements soulevé par Cantador.

L'avantage d'utiliser une requête unique, outre le fait de limiter les accès à la base, c'est que tu peux utiliser un DBGrid, quand même vachement + pratique que de se faire chier à coller toutes tes valeurs à la mano dans un StringGrid!

@+.


Cette discussion est classée dans : table, stringgrid, remplir, resultat, adoquery


Répondre à ce message

Sujets en rapport avec ce message

remplir des chanps de table paradox depuis un stringgrid [ par mohamedredha ] bonjour a tous !!je voudrais savoir s'il est possible de remplir des champs précis d'une table a partir d'un stringgrid ?? biensur si c'est possible l Remplir un Treeview avec une table paradox [ par codial ] Bonjour,j'ai quelques difficultés  à remplir un treview à partir d'une table Paradox. Est ce que quelqu'un aurait un exemple pour m'aider ?Structure d remplir un stringgrid sans effacer la premiere l igne [ par saravana ] salut a tous, j'ai 3 edit et un boutton qui envoi les contenus des edit dans un stringgrid , mais lorsque je repete cette procédure il efface les donn isEmpty [ par jimmy69 ] Salut salut,Voila j'i un p'tit stress j'espre que certains pourront m'aider ....Voila je me sers de ado d6 et sql serveur je lsite ma table ds un dbgr ADOQuery et excel en écriture [ par yvessimon ] Bonjour, Avec ADOConnexion et ADOQUery il est possible de lire (visualiser) une table contenue dans un dossier Excel. Par contre je n'arrive pas à remplir des enregistrements d'une table [ par badyinfo ] Salut à tous, voilà:j'ai une table Tab1 avec une clé : Num1 et une table Tab2 avec la clé Num2Dans la table Tab2 j'ai un champ Num11 qui est référencé Multie_Table_modifie [ par vergil3a ] Bonsoir:    jai une question concerne La modification de plusieur table qui affichent dans une dbgridexplication :un programme contient les composante Remplir un record à partir d'une table [ par ikremnitz ] Bonjour, j'ai d'un coté un record TMonRecord = record Champ1 : string; Champ2 : string; ... et de l'autre un table avec au mois ces 2 donné remplir des edit depuis un stringgrid [ par mohamedredha ] boujour tous le monde ou a ceux qui sont entrain de me lire  je vient de débuter dans ce domaine et mes premiers pas sont baser sur les forums, voila stringgrid et bdd [ par deubal ] Salut à tous les delphi-developpeurs,voila je commence depuis seulement quelques jours le Delphi grace aux quelques bouquins mis à ma disposition ou e


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,482 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales