OVH Cloud OVH Cloud

Remplissage d'un état par programmation

17 réponses
Avatar
keikun41
Bonjour,

Depuis d=E9j=E0 deux jours je me tape la t=EAte contre les murs afin de
remplir un =E9tat par programmation, j'ai r=E9ussis =E0 afficher =E0 partir
d'une requ=E8te sur ma base mysql une ligne seulement lorsqu'il y'a
plusieurs enregistrement =E0 afficher il m'affiche toujours le dernier.
Quelqu'un pourrait-il me dire comment faire pour afficher tous mes
r=E9sultats ?
J'ai vu que la partie Lectures des donn=E9es semblait importante pour la
lecture par programmation, seulement lorsque je met du code dedans il
tourne en boucle comme si cel=E0 faisait une boucel infini.
Donc si quelqu'un pouvais m'expliquer le principe du remplissage par
programmation d'un =E9tat je lui en serais reconnaissant.

Merci d'avance

10 réponses

1 2
Avatar
Gilles TOURREAU
Il se trouve que a formulé :
Bonjour,

Depuis déjà deux jours je me tape la tête contre les murs afin de
remplir un état par programmation, j'ai réussis à afficher à partir
d'une requète sur ma base mysql une ligne seulement lorsqu'il y'a
plusieurs enregistrement à afficher il m'affiche toujours le dernier.
Quelqu'un pourrait-il me dire comment faire pour afficher tous mes
résultats ?
J'ai vu que la partie Lectures des données semblait importante pour la
lecture par programmation, seulement lorsque je met du code dedans il
tourne en boucle comme si celà faisait une boucel infini.
Donc si quelqu'un pouvais m'expliquer le principe du remplissage par
programmation d'un état je lui en serais reconnaissant.

Merci d'avance



Il faut que tu renvoie Faux pour arreter l'impression des données de
ton état.

Par exemple imagine que tu veux imprimer 1000 fois "toto" :

*** Dans le code Ouverture de l'état ***

GLOBALES
i est un entier
i = 1

*** Dans le code de Lecture de l'état ***

SI i <= 1000 ALORS
MA_RUBRIQUE = "Toto"
i++
RENVOYER Vrai
SINON
RENVOYER Faux
FIN

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
kei-kun41
Merci de ta réponse je vais essayer ça tout de suite.
Avatar
kei-kun41
Re bonjour,
j'ai fait ce que tu as dis et j'ia un léger problème au lieu de
s'afficher une fois mes informations s'affiche autant de foios que la
page leur permettent donc au lieu d'avoir 4 lignes j'ai 4 page avec sur
les lignes de chaque page le meme enregsitrement écris plusieurs foi.
Comment puis-je faire pour empécher ça ??

Merci d'avance
Avatar
Gilles TOURREAU
kei-kun41 a exposé le 12/04/2006 :
Re bonjour,
j'ai fait ce que tu as dis et j'ia un léger problème au lieu de
s'afficher une fois mes informations s'affiche autant de foios que la
page leur permettent donc au lieu d'avoir 4 lignes j'ai 4 page avec sur
les lignes de chaque page le meme enregsitrement écris plusieurs foi.
Comment puis-je faire pour empécher ça ??

Merci d'avance



Tu peux montrer ton code (Ouverture de l'état + Lecture de l'état) ?
J'ai plus l'impression que c'est une erreur d'algo...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
patrice
a écrit dans le message de
news:
Donc si quelqu'un pouvais m'expliquer le principe du remplissage par
programmation d'un état je lui en serais reconnaissant.



et pourquoi ne pas affecter la req sql comme source de données de l'état ??
ca marche tres bien
Avatar
kei-kun41
/**************************************************************************/
Code d'ouverture de l'état
/**************************************************************************/
PROCEDURE ETAT_Manifestations2(gsRequète est une chaîne, Fichier est
une chaîne)
i est un entier=1
LIB_Date..Valeur="Du "+DateVersJourEnLettre(DateSys())+"
"+DateVersChaîne(DateSys(),"JJ")+" "+DateVersMoisEnLettre((DateSys))+"
"+DateVersChaîne(DateSys(),"AAAA")+" Au
"+DateVersJourEnLettre(DateSys())+" "+DateVersChaîne(DateSys(),"JJ")+"
"+DateVersMoisEnLettre(DateSys())+" "+DateVersChaîne(DateSys(),"AAAA")
LIB_Date..PoliceGras=True
Req est une chaîne =" SELECT direction.Libellé AS
libellé,manifestations.date_clair as clair,manifestations.
objet_complémentaire AS complémentaire,manifestations.lieu AS
lieu,manifestations.organisateur AS
organisateur,manifestations.observation AS
observations,manifestations.Conseil_adjoints AS
conseil,manifestations.id_manifestation As
manifestation,manifestations.id_direction AS
direction,direction.id_direction AS iddirection FROM manifestations
INNER JOIN direction ON
manifestations.id_direction=direction.id_direction"
actions::NumConnexion=SQLConnecte(Variable_de_connexion::sNomServeur,Vari able_de_connexion::sNomUser,Variable_de_connexion::sMDP,Variable_de_connexi on::sNomBase,"MySQL")
// Sélection des deux champs de la table direction ou l'id de
direction est égale à celui que l'on cherche
//si actions::NumConnexion<>0 alors
SQLExec(Req, "REQ_SELEC")
// Première ligne
SQLPremier("REQ_SELEC")

/************************************************************************** ***********/
Code de lecture des données
/************************************************************************** **********/


SI PAS SQL.EnDehors=Vrai ALORS
RUB_Lance=SQLCol("REQ_SELEC",1)
RUB_date=SQLCol("REQ_SELEC",2)
RUB_Objet=SQLCol("REQ_SELEC",3)
RUB_Lieu=SQLCol("REQ_SELEC",4)
RUB_Organisateur=SQLCol("REQ_SELEC",5)
RUB_Observations=SQLCol("REQ_SELEC",6)
RUB_Elu=SQLCol("REQ_SELEC",7)
SQLSuivant("REQ_SELEC")
RENVOYER Vrai
SINON
RENVOYER Faux
FIN

/************************************************************************** ***/

Je reconnais que le code est pas ce qu'il y'a de plus beau et qu'il y'a
surement une erreur quelque part, mais bon suivant la logique ce code
devriat marcher.

Encore merci de ton aide
Avatar
kei-kun41
Je ne veux pas affecter la req comme source de données de l'état car
celà me génère des erreur, il arrive pas à se connecter à la base
mysql entre autre, alors que par programmation la base de données
marche très bien. Et de plus je souhaite le faire à la main j'ai
plus confiance et si j'ai un soucis ou quelque chose à rajouter j'ia
aps besoin d'essayer de comprendre le code avant et les 15 fichiers
générés automatiquement qui se croisent et s'entrecroisent.
Avatar
Gilles TOURREAU
kei-kun41 a formulé ce mercredi :
/**************************************************************************/
Code d'ouverture de l'état
/**************************************************************************/
PROCEDURE ETAT_Manifestations2(gsRequète est une chaîne, Fichier est
une chaîne)
i est un entier=1
LIB_Date..Valeur="Du "+DateVersJourEnLettre(DateSys())+"
"+DateVersChaîne(DateSys(),"JJ")+" "+DateVersMoisEnLettre((DateSys))+"
"+DateVersChaîne(DateSys(),"AAAA")+" Au
"+DateVersJourEnLettre(DateSys())+" "+DateVersChaîne(DateSys(),"JJ")+"
"+DateVersMoisEnLettre(DateSys())+" "+DateVersChaîne(DateSys(),"AAAA")
LIB_Date..PoliceGras=True
Req est une chaîne =" SELECT direction.Libellé AS
libellé,manifestations.date_clair as clair,manifestations.
objet_complémentaire AS complémentaire,manifestations.lieu AS
lieu,manifestations.organisateur AS
organisateur,manifestations.observation AS
observations,manifestations.Conseil_adjoints AS
conseil,manifestations.id_manifestation As
manifestation,manifestations.id_direction AS
direction,direction.id_direction AS iddirection FROM manifestations
INNER JOIN direction ON
manifestations.id_direction=direction.id_direction"
actions::NumConnexion=SQLConnecte(Variable_de_connexion::sNomServeur,Variable_de_connexion::sNomUser,Variable_de_connexion::sMDP,Variable_de_connexion::sNomBase,"MySQL")
// Sélection des deux champs de la table direction ou l'id de
direction est égale à celui que l'on cherche
//si actions::NumConnexion<>0 alors
SQLExec(Req, "REQ_SELEC")
// Première ligne
SQLPremier("REQ_SELEC")

/*************************************************************************************/
Code de lecture des données
/************************************************************************************/


SI PAS SQL.EnDehors=Vrai ALORS
RUB_Lance=SQLCol("REQ_SELEC",1)
RUB_date=SQLCol("REQ_SELEC",2)
RUB_Objet=SQLCol("REQ_SELEC",3)
RUB_Lieu=SQLCol("REQ_SELEC",4)
RUB_Organisateur=SQLCol("REQ_SELEC",5)
RUB_Observations=SQLCol("REQ_SELEC",6)
RUB_Elu=SQLCol("REQ_SELEC",7)
SQLSuivant("REQ_SELEC")
RENVOYER Vrai
SINON
RENVOYER Faux
FIN

/*****************************************************************************/

Je reconnais que le code est pas ce qu'il y'a de plus beau et qu'il y'a
surement une erreur quelque part, mais bon suivant la logique ce code
devriat marcher.

Encore merci de ton aide



Le code a l'air correcte...
As tu bien mis comme source de données à ton état : "Ficher texte" ?

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
kei-kun41
Je n'ai pas mis fichier texte vu que ce n'est pas un fichier texte que
je lui donnes j'ai pris l'option "je le remplit par programmation"
donc je fait mes requètes moi même sur ma base de données et ensuite
je veux l'insérer dans les rubriquesdu tableau qui se trouve sur mon
état. Jusque là je ne vois pas ce qu'il y'a de compliqué mais quand
je met le code que j'ai donné, il affiche environ 8-9 fois le même
enregistrement. (il fait 1page = 1enregistrement) Or je ne comprend pas
pourquoi il à ce somportement surtout que le code me semble bon.

Encore merci de ton aide.
Avatar
Gilles TOURREAU
kei-kun41 avait soumis l'idée :
Je n'ai pas mis fichier texte vu que ce n'est pas un fichier texte que
je lui donnes j'ai pris l'option "je le remplit par programmation"
donc je fait mes requètes moi même sur ma base de données et ensuite
je veux l'insérer dans les rubriquesdu tableau qui se trouve sur mon
état. Jusque là je ne vois pas ce qu'il y'a de compliqué mais quand
je met le code que j'ai donné, il affiche environ 8-9 fois le même
enregistrement. (il fait 1page = 1enregistrement) Or je ne comprend pas
pourquoi il à ce somportement surtout que le code me semble bon.

Encore merci de ton aide.



J'ai testé chez moi, et ca fonctionne sans problème (Sous Windev 9)

La hauteur du corps mesure combien ?
Le haut de page mesure combien en hauteur ?
As-tu d'autres lignes de code qui s'execute dans ton état ?

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
1 2