Etat avec photo et champ clone (Trombinoscope)
Bonjour,
je souhaite faire un trombinoscope avec les photos des élèves avec une classe par page.
Dans mon état je n'ai qu'un champ photo (stocké dans la BDD) un champ nom et un prénom.
J'utilise la fonction ChampClone pour placer ces champs à différents endroits en fonction du nombres d'élèves.
L'état se base sur une requête (j'ai été obligé de faire comme ça car sur de la programmation impossible de faire apparaitre mes photos...) et j'ai un champ rupture sur le nom des classes.
Le pb: La première pages est OK.... la seconde j'ai les champs de ma 2eme classe qui se superposent à ceux de la première, puis sur la 3eme les champs de la 3eme se superposent à ceux de la 1er et de la 2sd...et ainsi de suite....
voici le code de mon état:
ouverture de l'état:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| c est un entier=0 // compteur nb classe
tabLeauclasses est un tableau de 1 chaîne
REQ_classes.Paramactive=1
HExécuteRequête(REQ_classes)
HLitPremier(REQ_classes)
TANTQUE PAS HEnDehors(REQ_classes)
//info(REQ_classes.classes)
TableauAjoute(tabLeauclasses,REQ_classes.refclasses)
c++
HLitSuivant
FIN
Vclasses est un entier
g est un entier = 0 //compteur pour changement de classe
REQ_elevesalpha.Paramradie=0
REQ_elevesalpha.Paramclasse=tabLeauclasses[2]
HExécuteRequête(REQ_elevesalpha)
HLitPremier(REQ_elevesalpha) |
Lecture des données:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| SI g= (c*50) ALORS RENVOYER Faux
SELON g // compteur changement classe
CAS 0: Vclasses=tabLeauclasses[2]
CAS 50: Vclasses=tabLeauclasses[3]
CAS 100: Vclasses=tabLeauclasses[4]
CAS 150: Vclasses=tabLeauclasses[5]
CAS 200: Vclasses=tabLeauclasses[6]
CAS 250: Vclasses=tabLeauclasses[7]
CAS 300: Vclasses=tabLeauclasses[8]
CAS 350: Vclasses=tabLeauclasses[9]
CAS 400: Vclasses=tabLeauclasses[10]
CAS 450: Vclasses=tabLeauclasses[11]
CAS 500: Vclasses=tabLeauclasses[12]
CAS 550: Vclasses=tabLeauclasses[13]
CAS 600: Vclasses=tabLeauclasses[14]
CAS 650: Vclasses=tabLeauclasses[15]
CAS 700: Vclasses=tabLeauclasses[16] // parce que 15 classes.....
AUTRE CAS: RENVOYER Faux
FIN
REQ_elevesalpha.Paramradie=0
REQ_elevesalpha.Paramclasse=Vclasses
HExécuteRequête(REQ_elevesalpha)
HLitPremier(REQ_elevesalpha)
// permet de terminer l'impression
SI HEnDehors(REQ_elevesalpha) ALORS
// Arrêt de l'impression du bloc Corps
RENVOYER Faux
SINON
// Impression du bloc Corps et exécution de ses traitements
RENVOYER Vrai
FIN |
code du bloc CORPS:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
x est un entier // postion du champ image
y, y1, y2 sont des entier
i est un entier = 1
// pour avoir le nombre d'élèves
TANTQUE PAS HEnDehors(REQ_elevesalpha)=Vrai
HLitSuivant(REQ_elevesalpha)
i++
FIN
//permet le centrage si pas beaucoup de photo
SI i <7 ALORS
IMG_photoId1..X= (MoiMême..Largeur -(IMG_photoId1..Largeur *i))/(i+1)
SINON
IMG_photoId1..X= (MoiMême..Largeur -(IMG_photoId1..Largeur *7))/(8)
FIN
RUB_nom1..X=IMG_photoId1..X
RUB_prenom1..X=IMG_photoId1..X
HLitPremier(REQ_elevesalpha)
b est un entier=1 // compteur de boucle
j est un entier =(1+g)
TANTQUE PAS j>(i+g)
SI j= (1+g) ALORS
IMG_photoId1=REQ_elevesalpha.PhotoId
RUB_nom1=REQ_elevesalpha.Nom
RUB_prenom1=REQ_elevesalpha.Prénom
ideleve1 est un entier = REQ_elevesalpha.refeleves
y= IMG_photoId1..Y
SINON
nomchamp est une chaîne
sainom est une chaîne
saiprenom est une chaîne
SI b =1 ALORS
nomchamp ="IMG_photoId1"
sainom ="rub_nom1"
saiprenom ="rub_prenom1"
b++
SINON
nomchamp="IMG_photoId"+(j-1)
sainom ="rub_nom"+(j-1)
saiprenom ="rub_prenom"+(j-1)
FIN
test est un entier=((IMG_photoId1..X+IMG_photoId1..Largeur)*6)
SI x >((IMG_photoId1..X+IMG_photoId1..Largeur)*5) ALORS
x = IMG_photoId1..X
y = {nomchamp,indChamp}..Y +50
y1= {sainom,indChamp}..Y +50
y2= {saiprenom,indChamp}..Y +50
SINON
x ={nomchamp,indChamp}..X +{nomchamp,indChamp}..Largeur+IMG_photoId1..X
y = {nomchamp,indChamp}..Y
y1 = {sainom,indChamp}..Y
y2 = {saiprenom,indChamp}..Y
FIN
nomchamp="IMG_photoId"+j
sainom="rub_nom"+j
saiprenom="rub_prenom"+j
ChampClone(IMG_photoId1,"IMG_photoId"+j,x,y)
ChampClone(RUB_nom1,"rub_nom"+j,x,y1)
ChampClone(RUB_prenom1,"rub_prenom"+j,x,y2)
{nomchamp,indChamp}=REQ_elevesalpha.PhotoId
{sainom,indChamp}=REQ_elevesalpha.Nom
{saiprenom,indChamp}=REQ_elevesalpha.Prénom
FIN
j++
HLitSuivant
FIN
g+=50
HExécuteRequête(REQ_elevesalpha)// pour pas que l'état se termine
HLitPremier |
Merci à ceux qui pourront m'aiguiller...... parce que là ça fait 3 jours que je me creuse la tête.....