Retailler un Rectangle en fonction de mes données
Sur mon Rave report, dans une bande principale , j'ai posé un rectangle
j'aimerais, selon une valeur de mes données tailler mon rectangle . ça fait un moment que je planche dessus ( à temps partiel ) sans résultat !!!
bon rave c'est pas mon trip :mouarf:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
procedure TForm2.ReceptionsValidateRow(Connection: TRvCustomConnection;
var ValidRow: Boolean);
var MyPage : TRavePage;
Grid : TRaveRectangle;
begin
MyPage := RvProject1.ProjMan.FindRaveComponent('Report2.MainPage',nil) as TRavePage;
Grid:=RvProject1.ProjMan.FindRaveComponent('rectangle1',MyPage) as TRaveRectangle;
if assigned(Grid) then
With Grid do
begin
grid.Width:=<Ma valeur>; ///<--- c'est là
end;
ValidRow:=True;
end; |
Question 1 : Comment je recupere la valeur de ma donnée ?
QUestion 2 : j'ai beau mettre une valeur fixe , genre grid.width=5.0 j'ai toujours la même taille (celle dessinée au départ sur mon état)
Sur , :evilred:, j'ai raté quelque chose , mais quoi
merci à tous :arf:
Comment je m'en suis sorti
j'ai résolu mon problème , pas simple , tordu mais ça fonctionne
a) la largeur ne peut se modifier qu'a l'intérieur du rapport lui même donc
j'ai rajouté un évènement Rectangle_ONBEFOREPRINT dans l'état .
Quelle ne fut pas ma surprise lorsque j'essayais de donner des valeurs
telle que Self.Width:=5,2635 ou 5,67554 , la largeur était toujours identique
(5) en fait il faut faire self.width:=52635 / 10000 , Rave semble faché avec les valeurs numériques non entières 8O
au fait width est en quelle unité ? inch alors que mon état et mes paramètres sont en mm , pixels , points ? .... pas clair
il y aurait aussi des fonctions XI2U, YI2U mais j'ai pas été plus loin , si quelqu'un a un exemple , je suis lecteur
b) j'ai rajouté un champ calculé à mon dataset , et mis un évènement
oncalcfields pour calculer la valeur requise
c) pour la RvDataSetConnexion j'ai rajouté un évenement qui m'as permis de faire les calculs nécessaires au niveau de l'état
Code:
1 2 3 4 5
| with Connection do
begin
DoGetRow;
// puis le même calcul que dans (b)
end; |
allez donc savoir pourquoi , si j'enlève b) ou c) cela ne marche plus ? :aie:
nota : j'ai simplifié volontairement le problème en ne parlant que d'un rectangle , en fait j'ai utilisé ndgrid pour faire un tableau de nombre de colonnes variable mais de taille fixe etc .....