Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Rave
Rave Forum d'entraide sur Rave Reports
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2011, 09h57   #1
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 624
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 624
Points : 4 529
Points : 4 529
Par défaut Créations dynamiques et mesures

Bonjour,

encore un match Rocky vs Rave !!

Dans mon état je dois créer une Grille (soit un ensemble de TRaveRectangle) dans une Bande particulière cela en soit n'est pas un problème

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
 
procedure TFormInventaire.RaveGridCreate(rvBand : TRaveBand; myFont : TRaveFontMaster);
var i : Word;
    LEFT,top,height,width : Double;
    myRect : TRaveRectangle;
    myText : TRaveText;
begin
FOR i:=1 TO 18 do
  begin
    width:=10.2;
    LEFT:=1+(width*(i-1));
    top:=0;
    height:=5.6;
  // rectangle du haut  myRect:=TRaveRectangle(rvBand.CreateChild(TRaveRectangle,'RP'+inttostr(i)));
    myRect.Top:=top/25.4;
    myRect.LEFT:=LEFT/25.4;
    myRect.Width:=width/25.4;
    myRect.Height:=Height/25.4;
// texte rectangle haut
    myText:=TRaveText(rvBand.CreateChild(TRaveText,'TP'+inttostr(i),(LEFT+1)/25.4,(top+1)/25.4,(width-2)/25.4,(Height-2)/25.4));
    myText.FontMirror:=myFont;
    myText.FontJustify:=pjCenter;
    myText.Text:='340';  // test
    top:=top+Height;
// rectangle du bas    myRect:=TRaveRectangle(rvBand.CreateChild(TRaveRectangle,'RP'+inttostr(i)));
    myRect.Top:=top/25.4;
    myRect.LEFT:=LEFT/25.4;
    myRect.Width:=width/25.4;
    myRect.Height:=Height/25.4;
// texte rectangle bas
    myText:=TRaveText(rvBand.CreateChild(TRaveText,'TP'+inttostr(i),(LEFT+1)/25.4,(top+1)/25.4,(width-2)/25.4,(Height-2)/25.4));
    myText.FontMirror:=myFont;
    myText.FontJustify:=pjRight;
    myText.Text:='10'; // test
  end;
end;
mais je suis las d'avoir a transformer mes valeurs normalement en millimètres en inchs (unité de sauvages merci la révolution française) et donc d'avoir un /25.4 partout

il existe bien des fonctions rave incorporées XU2I et YU2I mais elles s'appliquent a un TbaseReport et non au RvProject .

mes questions :
comment obtenir le TBaseReport (en passant par un rvSystem au moment de la création de ces composants j'obtiens nil )
à défaut comment obtenir l'unité de mesure du report et un moyen plus élégant que ces divisions ?
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 10h20   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 624
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 624
Points : 4 529
Points : 4 529
Par défaut on progresse

Comment obtenir le TBaseReport ?

Code :
1
2
3
4
5
6
var report: TBaseReport;
      x : double;
begin
report:=TBaseReport(rvproject1.ProjMan.Project);
x:=10;
ShowMessage(format('%2.5f  --> %2.5f',[top,rvproject1.ProjMan.Project.YU2I(x)]));
on obtient
Citation:
10,00000 --> 0,39370
[OK]
le hic maintenant
Code :
1
2
3
 
top:=10.000;
myRect.Top:=Report.YU2I(top);
donne une jolie
Citation:
Opération en virgule flottante incorrecte.

EDIT

L'erreur de conversion était due a un trans-typage inadéquat
si report est déclaré en TRaveProjectItem , plus d'erreur

nb. je devrais plus souvent posté des questions sur le forum 2h que je m'acharnais moralité : un problème énoncé se résout mieux
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 10h55   #3
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 624
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 624
Points : 4 529
Points : 4 529
Par défaut [FAQ?] utiliser l'unité définie dans le fichier .RAV



je me suis affranchi des conversions en Pouces tout en restant compatible quelque soit l'unité indiquée dans le fichier RAV.

on utilisera YU2I pour les positions verticales et XU2I pour les Horizontales

voici l'exemple de ma 'petite grille'
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
 
var i : Word;
    LEFT,top,height,width : Double;
     myRect : TRaveRectangle;
begin
WITH rvproject1.ProjMan.Project do
FOR i:=1 TO 18 do
  begin
    width:=10.2;   // largeur de mon rectangle
    LEFT:=1+(width*(i-1));   // départ à 1mm du bord
    top:=0;                        // en haut de ma bande
    height:=5.6;   // hauteur de mon rectangle
    myRect:=TRaveRectangle(rvBand.CreateChild(TRaveRectangle,'RP'+inttostr(i)));
    myRect.Top:=YU2I(top);
    myRect.LEFT:=XU2I(LEFT);
    myRect.Width:=XU2I(width);
    myRect.Height:=XU2I(Height);
 end;
top:=top+Height;
myRect:=TRaveRectangle(rvBand.CreateChild(TRaveRectangle,'RQ'+inttostr(i)));
    myRect.Top:=YU2I(top);
    myRect.LEFT:=XU2I(LEFT);
    myRect.Width:=XU2I(width);
    myRect.Height:=XU2I(Height);
 end;
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h13.


 
 
 
 
Partenaires

Hébergement Web