|
Débuté par bmalisan, 07 mar. 2006 12:32 - 5 réponses |
| |
| | | |
|
| |
Posté le 07 mars 2006 - 12:32 |
bonjour , requète en SQL fonctionne mais elle ne fonctionne pas sous windev voiçi le code bouton HExécuteRequête(REQ_CONTRATS_03,hRequêteDéfaut,DateDuJour(),VP_Numsoc ) iAperçu(iPage, "Aperçu écran", Vrai) iImprimeEtat(Etat_contrats_03)
code de la requête SELECT EKKO.EBELN AS EBELN, EKKO.LIFNR AS LIFNR, EKKO.KDATE AS KDATE, EKPO.MATNR AS MATNR, EKPO.KONNR AS KONNR, EKPO.KTMNG AS KTMNG, EKPO.MATKL AS MATKL, EKPO.EBELN AS EBELN, EKPO.MENGE AS MENGE, EKPO.TXZ01 AS TXZ01, EKPO.NETPR AS NETPR, EKPO.PEINH AS PEINH, EKPO.BPRME AS BPRME, LFA1.NAME1 AS NAME1, KONM.KSTBM AS KSTBM FROM EKKO,LFA1,EKPO LEFT OUTER JOIN KONH ON ((EKPO.EBELN + EKPO.EBELP) = LEFT(KONH.VAKEY,15)) LEFT OUTER JOIN KONM ON (KONH.KNUMH = KONM.KNUMH) AND (EKPO.NETPR = KONM.KBETR) WHERE EKKO.KDATE >={param1} AND EKKO.BUKRS = {param2} AND EKKO.MANDT = EKPO.MANDT AND EKKO.MANDT = LFA1.MANDT AND EKKO.LIFNR = LFA1.LIFNR AND (EKKO.EBELN = EKPO.EBELN OR EKKO.EBELN = EKPO.KONNR) ORDER BY EKPO.MATKL,EKPO.MATNR,EKKO.EBELN à bientôt |
| |
| |
| | | |
|
| | |
| |
Posté le 07 mars 2006 - 14:18 |
Salut, W10 n'est pas très au point quand il sagit de jointures externes...
Utilise la méthode suivante :
sMaRequete est une chaine
sMaRequete = ChaîneConstruit( [ SELECT EKKO.EBELN AS EBELN, EKKO.LIFNR AS LIFNR, EKKO.KDATE AS KDATE, EKPO.MATNR AS MATNR, EKPO.KONNR AS KONNR, EKPO.KTMNG AS KTMNG, EKPO.MATKL AS MATKL, EKPO.EBELN AS EBELN, EKPO.MENGE AS MENGE, EKPO.TXZ01 AS TXZ01, EKPO.NETPR AS NETPR, EKPO.PEINH AS PEINH, EKPO.BPRME AS BPRME, LFA1.NAME1 AS NAME1, KONM.KSTBM AS KSTBM FROM EKKO,LFA1,EKPO LEFT OUTER JOIN KONH ON ((EKPO.EBELN + EKPO.EBELP) = LEFT(KONH.VAKEY,15)) LEFT OUTER JOIN KONM ON (KONH.KNUMH = KONM.KNUMH) AND (EKPO.NETPR = NM.KBETR) WHERE EKKO.KDATE >= %1 AND EKKO.BUKRS = %2 AND EKKO.MANDT = EKPO.MANDT AND EKKO.MANDT = LFA1.MANDT AND EKKO.LIFNR = LFA1.LIFNR AND (EKKO.EBELN = EKPO.EBELN OR EKKO.EBELN = EKPO.KONNR) ORDER BY EKPO.MATKL,EKPO.MATNR,EKKO.EBELN ],DateDuJour(),VP_Numsoc)
Il faut, dans la chaine construite, remplacer {param1} et {param2} par %1 et %2
Apres tu instancie une Source de Données:
sdMaSource est une Source de Données
et tu execute la requete avec HExécuteRequêteSQL(sdMaSource,hRequêteSansCorrection,sMaRequete)
Voili-voila ! |
| |
| |
| | | |
|
| | |
| |
Posté le 07 mars 2006 - 15:49 |
As tu testé ton etat sans passer iimprimeetat et fonctionne-t-il avec la requête SQL ?
abflm a écrit :
bonjour , requète en SQL fonctionne mais elle ne fonctionne pas sous windev voiçi le code bouton HExécuteRequête(REQ_CONTRATS_03,hRequêteDéfaut,DateDuJour(),VP_Numsoc ) iAperçu(iPage, "Aperçu écran", Vrai) iImprimeEtat(Etat_contrats_03)
code de la requête SELECT EKKO.EBELN AS EBELN, EKKO.LIFNR AS LIFNR, EKKO.KDATE AS KDATE, EKPO.MATNR AS MATNR, EKPO.KONNR AS KONNR, EKPO.KTMNG AS KTMNG, EKPO.MATKL AS MATKL, EKPO.EBELN AS EBELN, EKPO.MENGE AS MENGE, EKPO.TXZ01 AS TXZ01, EKPO.NETPR AS NETPR, EKPO.PEINH AS PEINH, EKPO.BPRME AS BPRME, LFA1.NAME1 AS NAME1, KONM.KSTBM AS KSTBM FROM EKKO,LFA1,EKPO LEFT OUTER JOIN KONH ON ((EKPO.EBELN + EKPO.EBELP) = LEFT(KONH.VAKEY,15)) LEFT OUTER JOIN KONM ON (KONH.KNUMH = KONM.KNUMH) AND (EKPO.NETPR = KONM.KBETR) WHERE EKKO.KDATE >={param1} AND EKKO.BUKRS = {param2} AND EKKO.MANDT = EKPO.MANDT AND EKKO.MANDT = LFA1.MANDT AND EKKO.LIFNR = LFA1.LIFNR AND (EKKO.EBELN = EKPO.EBELN OR EKKO.EBELN = EKPO.KONNR) ORDER BY EKPO.MATKL,EKPO.MATNR,EKKO.EBELN à bientôt
|
| |
| |
| | | |
|
| | |
| |
Posté le 07 mars 2006 - 15:50 |
merci d'avance mais ou mets tu cette partie dans une requète ou dans l'editeur de code du bouton...
sMaRequete = ChaîneConstruit( [ SELECT EKKO.EBELN AS EBELN, EKKO.LIFNR AS LIFNR, EKKO.KDATE AS KDATE, ............
et que signifie tu instancie une Source de Données:
sdMaSource est une Source de Données
@+ bruno |
| |
| |
| | | |
|
| | |
| |
Posté le 08 mars 2006 - 09:51 |
bonjour , je débute sue W10 Que signifie tu instancie une source de données... et ou dis-je déclarer sdmaSource @+ merci d'avance bruno |
| |
| |
| | | |
|
| | |
| |
Posté le 08 mars 2006 - 10:39 |
Bonjour,
il faut tout ecrire dans le code du bouton.
instancier signifie (en gros) que le programme va créer un espace mémoire qui sera réservé à la l'objet que tu vas instancier:
quand tu écris par exemple: sMaChaine est une chaine le programme va créér un espace mémoire réservé uniquement pour cette variable
le source de donnée est comme un fichier HF.
tu peux t'en servir pour remplir automatiquement un tableau par exemple FichierVersTableMémoire(TonTableau,sdMaSource)
tu peux egalement l'utiliser de la facon suivante : sdMaSource.EBELN sdMaSource.LIFNR sdMaSource.KDATE ... |
| |
| |
| | | |
|
| | | | |
| | |
|