Bonjour,
je développe un module de gestion de commandes clients, et je voudrais afficher un état quand je clique sur un bouton imprimer.
J'ai une requête REQ_Etat_Commande_Client qui ressemble à ça (elle n'est pas optimisée car elle ramène absolument tous les champs mais bon) :
Pour faire court, j'ai une table cc qui comporte les données d'entête d'une commande (client, adresse, tva, conditions de paiment, ....), une table ccl pour les lignes de la commande, table art pour les articles, um c'est les unités de mesure (pc, kg, m, lopin, ....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM cc, ccl, art, um, clt AS client, clt AS livraison WHERE ccl_cc_id = cc_id AND ccl_article_id = art_id AND art_um = um_id AND cc_client = client.clt_id AND cc_livraison = livraison.clt_id;
J'ai réussi tant bien que mal à concocter un état Etat_Commande_Client pas très joli, mais c'est déjà pour tester que ça fonctionne.
Sur clic de mon bouton imprimer, j'ai mis ce code mais ça ne semble pas filtrer correctement ma requête :
Et la fenêtre d'info n'affiche rien (vide).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ccid est un entier = REQ_Commandes_Clients.cc_id // id de ma commande critere est une chaîne = "cc_id = " + ccid HExécuteRequête(REQ_Etat_Commande_Client) HFiltre(REQ_Etat_Commande_Client, critere) Info(REQ_Etat_Commande_Client.clt_denomination)
Plusieurs choses à vous demander donc :
1) Ma requête ne me retourne que les commandes clients qui ont des lignes de commandes, sinon ça ne match pas et ça ne retourne pas une commande qui n'aurait pas de lignes. Comment définir ma requête autrement pour que je puisse quand même avoir dans les résultats de la requête la commande (table cc) mais sans les lignes (table ccl). Il faut faire une jointure externe mais je ne sais pas la définir...
2) Au niveau du filtrage, je préfère passer par les fonctions HFiltre et compagnie, bien que je bute dessus !! Mais sinon, peut-être que je devrais faire une requête paramétrée, le résultat de la requête serait moins volumineux ? Dans ce cas comment fait-on cela ?
3) Enfin, une fois que la requête est correctement positionnée sur le bon record (cc_id = ccid ) comment lancer mon état (qui est affecté à la requête en question) ?
Je précise que j'ai pas mal cherché sur le forum et je n'ai pas trouvé d'aide à ce sujet, je trouve que globalement les questions des gens sont d'un niveau assez relevé, et moi je débute !!! Je vais me payer des bouquins de formation je crois
Merci d'avance pour votre pédagogie !
Partager