begin process at 2012 02 09 09:53:18
  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 Administrateur CodeS-SourceS

@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 Administrateur CodeS-SourceS
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 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 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é SQL avec ADOQUERY extraire un champ de table_1 qui n'est pas dans la table_2 [ par yvessimon ] Bonjour, Malgré mes recherches je n'ai pas trouvré de réponse a la syntaxe SQL qui me permet de: Dans la table_1 et la table_2 il y a le même champ debutant en ADO [ par sharifcrd ] sharif j'utilise delphi 7 et Base de Donnee DBASE 1 je suis un bleu debutant et je cherche des explications sur les objets de ADO (adoquery; adocone 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 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 3,307 sec (3)

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