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:
Lecture des données:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.....
Partager