Mettre du texte dans un rapport programmaticilement

Résolu
Signaler
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009
-
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009
-
Bonjour,

Je voudrais faire un rapport .frx mais je voudrais le remplire au moyens
de lignes de code et pouvoir après l'imprimer.

Merci d'avance

10 réponses

Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Bonjour,

un rapport (fichier frx) est une table, que tu peux ouvrir par programmation comme une autre avec un use monfichier.frx.

le contenu des tables frx est documenté dans le dossier filespec (C:\Program Files\Microsoft Visual Studio\Vfp98\Filespec pour VFP6, et C:\Program Files\Microsoft Visual FoxPro 8\Tools\Filespec pour VFP8), soit en ouvrant le 60spec.pjx soit en imprimant les report 60frx1 et 60frx2.

Le plus simple pour faire des reports "à la volée", c'est de partir sur un frx de base, pour ne pas avoir à récréer tous les champs.

Après, c'est juste une affaire de patience...

Attention, même si tu ne l'utilises pas, un frx a toujours besoin d'un alias sur lequel se baser
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

Merci de l'information ,

Il faut t'il modifier les champs de la table que fait le rapport pour
modifier finalement le rapport et comment on enlève le read-only sur les mémos ?
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Que veux-tu dire exactement, je crains de ne pas bien comprendre...

Sur ta table monrapport.frx, tu ne modifies aucun champ, tu ajoutes et/ou modifies des enregistrements. Pour t'entrainer, commence par faire des rapports avec le générateur (comme d'habitude) et à les examiner ensuite en les ouvrant en browse sur la table (tu dois être sorti du générateur) :

1 premier frx avec quelques champs et étiquettes dans la ligne de détail
le même en changeant les attributs des ces controles
1 autre avec en +, des traits, boites, etc... (toujours en ligne de détail)
et la même chose avec les bandes d'en-tête et de pied d'état, de page
et encore la même chose avec des regroupements

à chaque essai, tu fais des modifs dans le générateur, et tu regardes ce qui a changé en mode browse,...
puis l'inverse...

et là, tu sais tout !
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

Ok , merci pour l'information , mais le problème c'est que je ne peut pas changé les enregistrements , car ils sont en read-only , j'ai essayé de faire une copie du frx pis ensuite essayer de changer les enregistrement , mais ils sont aussi en read-only :(. bref , je ne peut pas modifier les enregistrements .
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Peux-tu modifier ce report avec le générateur, et enregistrer tes changements?
si oui, alors ton fichier est ok, si non, vérifie les attributs du fichier.

quand tu ouvres ton fichier pour en faire un browse :
Le générateur d'état est-il bien fermé ?
n'es-tu pas en train de faire un report form dessus ?

si oui à une des questions, alors le read-only est normal, si non, alors :
use monfichier.frx in 0 alias monfichier
select monfichier
copy to montest.frx
use in "monfichier"
use montest.frx

et revérifie
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

oui , je peut modifier ce rapport avec le générateur de foxpro et quand tu parle du générateur d'état est-ce que c'est bien le programme qui te permet de changer les rapport ? ou le générateur du projet ?

et moi j'utilise le code suivant et il me retourne ELECT 0
USE justeun.frx ALIAS _1
BROWSE
SELECT _1
COPY TO fake.frx
SELECT 1
USE IN "_1"
USE fake.frx alias _2
? ISREADONLY('_2')
POS = 1
DO WHILE UNIQUEID <> "_1590JINXM"
GO POS
POS = POS+1
ENDDO
repl expr with ;
strtran(expr,"BONJOUR","salut mon ron") ** cette me génére l'erreur cannot update ** the cursor _2 since it is read-only
BROWSE
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
Oui, le générateur d'état, c'est bien le programme qui permet de créer/modifier les rapports. Je n'ai jamais observé le problème que tu décris, alors on va essayer de comprendre !

que se passe-t-il si tu quittes fox après avoir fait ton copy to fake.frx ?
que se passe-t-il si tu copies ton justeun.frx (et son frt) par l'explorateur windows, et que tu essaies tes replace sur ce fichier ensuite ?
et quand tu es en browse sur ta copie, peux tu modifer un memo

et que se passe-t-il si tu fais (je ne suis pas très partisan d'utiliser des alias de la forme"_1", d'expérience on risque des cafouillages...) :

USE justeun.frx ALIAS "essai1" in 0
SELECT essai1
COPY TO fake.frx
USE fake.frx alias "essai2" again in 0

select essai2
replace user with "test"

PS : Quelle est ta version de VFP?
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

Ma version de foxpro est la version 8 , quand j'ai faite exécuté les lignes de code que tu me donner , il a y générer une erreur "cannot update the cursor ESSAIE2, since it is read-only" , non je ne peut pas modifier un mémo quand je suis en browse, je peut quitter fox normalement apres avoir faite un copy to .

Ha oui , juste une question hors sujet on peut tu utiliser des dll en visual basic dans des programme de foxpro ? , genre le dll de pageset.dll
Messages postés
828
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
7 mai 2013
1
tu es certain que tu travailles sur un support sur lequel tu as le droit d'écrire (pas sur un CD, par exemple...) parceque malgré tous mes efforts, je n'arrive pas à reproduire cette erreur!
Messages postés
131
Date d'inscription
jeudi 21 octobre 2004
Statut
Membre
Dernière intervention
27 octobre 2009

ha oui , c'était des files qui étaient protéger par l'administrateur ,donc la maintenant
ca fonctionne parfaitement. je te remercie de ton aide.