|
fenetre de saisie, et impression dans un etat |
Iniciado por budylove0, jul., 22 2005 1:56 PM - 8 respostas |
| |
| | | |
|
| |
Publicado em julho, 22 2005 - 1:56 PM |
Bonjour
Je suis entrain de créer un logiciel permettant d'editer les demandes d'absences des employés!
Pour cela dans ma fenetre j'ai des champs de saisie texte, numerique, et heure.
Une fois la saisie terminé l'utilisateur clique sur imprimer pour lui donner son papier.
les données sont alors transmise à une feuille etat dans laquelle j'ai inséré dans libéllé. par exemple si l'utilisateur saisi le motif de l'absence dans la fenetre j'ai crée le libelle Motif : [%Motif%] qui me renvoi le motif saisi.
mon programme fonctionne lorsque je le lance depuis windev mais lorsque je créer l'executable il ne fonctionne plus.
au lieu de m'imprimer Motif : besion de vacance, il m'imprime Motif : [%Motif%].
y'a t'il queqlue chose a faire pour eviter la perte de données entre ma fenetre et mon etat?
merci et j'espere que quelqu'un pourra m'aiclairer car j'ai fais appelle a tous les developpeur que je connais mais personne ne sait!
cordialement julien |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 22 2005 - 2:25 PM |
bonjour
voici comment je passe des données entre mes fenetres et mes etats :
=========[1 je cree dans le code du projet une variable globale PU_cargo en texte
=========[2 je crée une procédure globale ga_cargo, dont voici le code :
procedure ga_cargo( p_ope, p_data) local l_rep est une chaine l_occ est un entier l_car est une chaine
l_rep = ""
selon p_ope cas "A" PU_cargo = PU_cargo + p_data + tab cas "L" IF p_data <= 0 l_occ = g_occurence(PU_cargo, tab) IF l_occ > abs(p_data) l_rep = extraitchaine(PU_cargo, l_occ + p_data) end else l_rep = extraitchaine(PU_cargo, p_data) end cas "S" l_occ = g_occurence(PU_cargo, tab) IF l_occ > 0 l_car = extraitchaine(PU_cargo, l_occ) PU_cargo = gauche(PU_cargo, taille(PU_cargo) - taille(l_car) - 1) end cas "I" PU_cargo = "" fin
=========[3
dans les fenetres je fais :
ga_cargo("I") //on initialise la zone de partage ga_cargo(champ1) ... ga_cargo(champn)
imprimetat(etat,...)
ga_cargo("I")
=========[4
dans l'état, je lis le contenu par
champetat1 = ga_cargo("L",1) champetat2 = ga_cargo("L",2) .... champetatn = ga_cargo("L",n)
et comme cela je gère entierement les données
titou44 chez freesurf.fr
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 22 2005 - 2:48 PM |
petit correctif dans le point 3
=========[3
dans les fenetres je fais :
ga_cargo("I") //on initialise la zone de partage ga_cargo("A",champ1) ... ga_cargo("A",champn)
imprimetat(etat,...)
ga_cargo("I")
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 22 2005 - 3:58 PM |
Merci titou44 d'avoir repondu mais j'ai quelques petites questions.
Ne connaissant windev que depuis le debut de la semaine, je me suis permis de recopier betement ton code avant de l'essayer sur mon programme.
1) Ou dois-je copier ton paragraphe 2?
2) Lorsque je l'ai recopier la variable g_occurence était inconu.
3) Pour ton petit 3 tu le rentre dans ta fenetre de saisi à l'initialisation?
4) La je vais abuser de ton temps mais pourrais tu m'expliquer comment fonctionne ta procédure?
Je suis vraiment désolé de t'embeter, mais je patoge reelement !
Merci encore. |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 22 2005 - 4:07 PM |
En faite c'est un petit tutoriel qui me faudrait, un guide pas à pas.
Pourrais tu m'envoyer un petit programme qui fonctionne comme ca avec une fenetre de saisie (car tu ne le mentionen pas la)
Merci énormément |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 22 2005 - 5:38 PM |
julien a écrit :
En faite c'est un petit tutoriel qui me faudrait, un guide pas à pas.
Pourrais tu m'envoyer un petit programme qui fonctionne comme ca avec une fenetre de saisie (car tu ne le mentionen pas la)
Merci énormément
je n'ai pas d'exemple simple.
mais j'ai oublié de donner le code d'une 2eme procédure à déclarer en globale en meme temps que g_cargo :
procedure g_occurence( p_chaine, p_separ) local l_Debut est un entier l_Cpteur est un entier
l_Debut = 0 l_Cpteur = 0
Boucle l_Debut = Position(p_chaine,p_separ,l_Debut+1) Si l_Debut = 0 alors Sortir l_Cpteur = l_Cpteur + 1 Fin
renvoyer l_cpteur
le 1 : dans le code d'initialisation du projet le 2 : dans les procédures globales de la 1ere fenetre du projet les 2 procédures g_occurence et g_cargo doivent être crées en tant que procédures globales du projet. en WD9, cela s'appelle collection_de procédures dans le "kouglof" le 3 : dans la fenetre préparant le "imprimetat" le 4 : dans l'initialisation de l'état
cdt titou44
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 24 2005 - 12:40 PM |
Qu'est ce que c'est que tout cela ?
Perso, je trouve cela un peu compliqué, non ?
J'ai moi aussi dans un prog. un état devant imprimer des données issuent non pas d'une base, mais d'une fenêtre.
Et bien, dans l'état, j'utilise tout bètement le référencement aux champs de ma fenêtre :
MaFenêtre.MonChamp
dans les évènements d'initialisation des champs de mon état.
(Biensûr, il faut que la fenêtre soit ouverte au moment de l'impression).
A moins que j'ai loupé quelque chose, je peux vous affirmer que cela marche parfaitement.
Bon courage. |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 24 2005 - 11:19 PM |
Stephon avait énoncé :
Qu'est ce que c'est que tout cela ?
Perso, je trouve cela un peu compliqué, non ?
J'ai moi aussi dans un prog. un état devant imprimer des données issuent non pas d'une base, mais d'une fenêtre.
Et bien, dans l'état, j'utilise tout bètement le référencement aux champs de ma fenêtre :
MaFenêtre.MonChamp
dans les évènements d'initialisation des champs de mon état.
(Biensûr, il faut que la fenêtre soit ouverte au moment de l'impression).
A moins que j'ai loupé quelque chose, je peux vous affirmer que cela marche parfaitement.
Bon courage.
bonsoir
cela suppose que dans ton état tu n'utilises que des champs de la fenetre. quand il y a des résultats de calculs, comment fais-tu ? tu es alors obligé de créer des champs éventuellement invisibles. moi je mets tout (champs, résultats de calcul, paramètres, textes à imprimer,..) dans une zone de travail que je donne à l'état ou aux états. par ailleurs : - il y a indépendance de l'état et de la fenêtre. l'état ne sait pas comment s'appelle les champs. application du principe d'indépendance de l'interface et des traitements. - le même état peut facilement être appelé par des fenetres ou des procédures différentes. il suffit de lui donner le bonne zone de travail. - je peux modifier le nom des champs sans que mon état ou mes états se "cassent la figure". - et quand je veux garder ce qui a été imprimé, je stocke la zone de travail dans un fichier texte - c'est rustique mais efficace.
je pratique comme cela depuis longtemps et je ne m'en plains pas.
titou44 chez freesurf.fr
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com |
| |
| |
| | | |
|
| | |
| |
Publicado em julho, 25 2005 - 11:03 AM |
Oui pour mon niveau c'est un peu compliqué ! mais je te remercie titou44 d'avoir bien voulus me répondre...
J'ai essayer ta façon Stephon j'avoue que c'est beaucoup plus simple et que ca marche, je me demande meme pourquoi je n'y ai pas songé !
Encore merci a vous deux !
julien |
| |
| |
| | | |
|
| | | | |
| | |
|