PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Débutant: afficher le résultat d'une requête dans un champs de saisie
Débutant: afficher le résultat d'une requête dans un champs de saisie
Iniciado por fred, ago., 10 2005 4:59 PM - 5 respostas
Publicado em agosto, 10 2005 - 4:59 PM
bonjour,

en cliquant sur un bouton, je souhaiterai faire apparaître le résultat d'une requête dans un champs de saisie.

Quelle est l'instruction me permettant de lancer cette requête dans la rubrique "clic sur bouton"?

merci d'avance

fred
Publicado em agosto, 16 2005 - 9:18 PM
Bonjour


LOCAL
nTotal, nTotDébit, nTotCrédit sont des réels
SrcReq est une Source de Données
sReqSQL, sIDCpte sont des chaînes

SELON nType
CAS 6 : sIDCpte = "( '61', '62', '63', '64', '65', '66', '67', '68', '69' ) "
CAS 7 : sIDCpte = "( '70', '71', '72', '73', '74', '75' ) "
FIN

// [< Code requête >]
sReqSQL = [
SELECT SUM ( TotDébit ) AS TotalDébit , SUM ( TotCrédit ) AS TotalCrédit
FROM BalCompte
WHERE Exercice = '%1'
AND BalCompte.IDCompte IN %2
]

// [< Construire requête >]
sReqSQL = ChaîneConstruit(sReqSQL, sExerc, sIDCpte)

SI PAS HExécuteRequêteSQL(SrcReq, sReqSQL) ALORS

Ouvre(MsgBox, " Requête", ">>> Erreur d’initialisation de la requête ... "+RC+HErreurInfo(),2)

SINON

nTotDébit = SrcReq.TotalDébit
nTotCrédit = SrcReq.TotalCrédit

SELON nType
CAS 6 : nTotal = nTotdébit - nTotcrédit
CAS 7 : nTotal = nTotcrédit - nTotDébit
FIN

FIN

HAnnuleDéclaration(SrcReq)

RENVOYER nTotal


Dans votre cas

Nomchamp = SrcReq.TotalDébit
ou
Nomchamp = SrcReq.TotalCrédit

Cordialement
Albert
Publicado em agosto, 17 2005 - 1:24 PM
oula, c'est un peu compliqué pour moi!!!

Je vois que ton code permet de créer une requête. Moi, c'est une requête "union" me renvoyant 1 seul chiffre (suite à un comptage de valeur).

Je voudrai que la requête fasse quelquechose comme:

SI PAS HExécuteRequête(ReqUNION) ALORS
Info("erreur")
SINON
Saisie1=ReqUNION.Comptage_1
FIN

J'ais mis ces instruction dans la partie "sortie" du superchamps "période".

Peux-tu me donner un autre exemple?


je te remercie encore

fred
Publicado em agosto, 17 2005 - 3:25 PM
Bonjour,

Pour une meilleure compréhension de ton probème, je pense qu'il serait utile de communiquer le code de ta requete ce serait un peu plus facile.

... suite a un comptage de valeur ??? s'agirait il du nbre d'enregistrement ?

Cordialement
Albert
Publicado em agosto, 17 2005 - 6:22 PM
bonjour,

en effet, je compte ne nb d'enregistrements (Comptage_1)qui remplisse une certaine condition.

voici le code sql de la req:

SELECT COUNT(*) AS Comptage_1
FROM Saisie
WHERE Saisie.IDSondes > '0'
AND Saisie.zone = 'zone1'

Je souhaite que "Comptage_1" apparaisse dans un champs de saisie.

merci

fred
Publicado em agosto, 17 2005 - 8:15 PM
Bonjour

Sur base de votre requête :
NomChamp = NomRequete.Comptage_1

Voici un test d'exemple qui fonctionne corretement dans
une requete programmée directement en SQL

LOCAL
ReqMvts est une Source de Données
sReqSQL, sExerc sont des chaînes

sExerc = "2004"

sReqSQL = [
SELECT Count(*) AS nNbre
FROM LigneMvt
WHERE Exercice = '%1'
]

sReqSQL = ChaîneConstruit( sReqSQL, sExerc)
SI HExécuteRequêteSQL(ReqMvts, sReqSQL) ALORS

ChpNbre = ReqMvts.nNbre

SINON

Ouvre(MsgBox, " Requête Mvts", ">>> Erreur d’initialisation de la requête ... "+RC+HErreurInfo(), 1 )
FIN

HAnnuleDéclaration(ReqMvts)

L'instruction ChaineConstruit() est une fonction très utile
Pensez également a l'utilisation des [ ] pour la construction de chaines complexes

J'espère avoir pu vous éclairer

Cordialement
Albert