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 17/09/2008, 14h16   #1
Membre confirmé
 
Avatar de delphichem
 
Inscription : octobre 2002
Messages : 279
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 279
Points : 241
Points : 241
Par défaut [Rave Report 7.5.2][D2007 Edition] Boucle infinie

Bonjour à tous
J’ai un sérieux problème avec Rave Report (7.5.2 livré avec D 2007).
J’ai besoin de rendre paramétrable un affichage de champs, pour cela, j’utilise la procédure suivante :

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
procedure TEtatcheque.OpInterRejReqGetRow(Connection: TRvCustomConnection);
var
  RvBand: TRaveBand;
  I: Integer;
begin
  Connection.DoGetRow;
 
  WITH opinterrej.ProjMan do
  begin
    RvBand := TRaveDataBand(FindRaveComponent('Detail', TRavePage(FindRaveComponent(
      'Report1.Page1', nil))));
  end;
 
  IF listoperinterrec.InfoTire.Checked then
    RvBand.Height := 0.787
  else
    RvBand.Height := 0.507;
 
{Visibilité début}
  FOR I := 0 TO RvBand.ChildCount - 1 do
    IF (UpperCase(RvBand.Child[I].Name) = 'DATAMEMO4') OR
       (UpperCase(RvBand.Child[I].Name) = 'TEXT24') OR
       (UpperCase(RvBand.Child[I].Name) = 'TEXT25') OR
       (UpperCase(RvBand.Child[I].Name) = 'DATAMEMO3') then
      RvBand.Child[I].Visible := listoperinterrec.InfoTire.Checked;
{Visibilité fin}
end;
Le problème est que mon état qui ne contient que 11 pages, boucle à l’infini.
J’ai même changé d’évènement (OnValidateRow) j’ai le même résultat.
Si je supprime ce qu'il y a entre Visibilité début et fin, cela fonctionne.

Le même problème survient en utilisant OnBeforeReport de ma bande dans Rave.

J’espère sincèrement qu’il existe une solution à part créer et livrer deux états car cette solution ne me convient pas.
delphichem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2008, 18h10   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
Salut.

Quelques infos supplémentaires pour répondre . Je crois comprendre que la bande détail a ensuite 4 bandes enfants . je n'ai que la version 6.5 donc cette notion n'existait pas encore
cependant pourquoi ne pas rechercher directement ces bandes plutôt que de passer par RvBand.Child[i]

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
procedure TEtatcheque.OpInterRejReqGetRow(Connection: TRvCustomConnection);
var
  RvBand,RVBandMemo4,RvBandMemo3 etc..: TRaveBand;
  I: Integer;
begin
  Connection.DoGetRow;
 
  WITH opinterrej.ProjMan do
  begin
    RvBand := TRaveDataBand(FindRaveComponent('Detail', TRavePage(FindRaveComponent(
      'Report1.Page1', nil))));
   rvBandMemo4:=TRaveDataBand(FindRaveComponent('DATAMEMO4', TRavePage(FindRaveComponent(
      'Report1.Page1', nil))));
  rvBandMemo4.visible:=listoperinterrec.InfoTire.Checked;
 
  etc...  
  end;
je sais c'est moins 'beau' mais ? qui dit qu'il n'y a pas encore un lézard dans cette version aussi
__________________
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 18/09/2008, 10h33   #3
Membre confirmé
 
Avatar de delphichem
 
Inscription : octobre 2002
Messages : 279
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 279
Points : 241
Points : 241
Citation:
Envoyé par SergioMaster
Quelques infos supplémentaires pour répondre . Je crois comprendre que la bande détail a ensuite 4 bandes enfants . je n'ai que la version 6.5 donc cette notion n'existait pas encore
Non il n y a pas de sous bande ses des TRaveDataMemo et TRaveText.
Malheureusement pour moi ton idée ne fonctionne pas, je l’ai déjà testé.
A vrai dire le même problème survient en utilisant OnBeforeReport.
Il suffit de mettre
Code :
DataMemo4.Visible := False ;
Pour tester, et là il boucle infiniment.
Le problème et apparemment connut de Nevrona qui ne veut pas le corriger voir ici.
Depuis quelques mois que j’utilise Rave, je n’arrête pas de trouver des surprises. En ce qui me concerne QuickReport et bien mieux.
delphichem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 11h23   #4
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
Citation:
Envoyé par delphichem Voir le message
Depuis quelques mois que j’utilise Rave, je n’arrête pas de trouver des surprises. En ce qui me concerne QuickReport est bien mieux.
on est deux (au moins ) toutefois je lui trouve aussi ses bons cotés ma solution est en général un mix


Citation:
Envoyé par delphichem Voir le message
A vrai dire le même problème survient en utilisant OnBeforeReport.
Il suffit de mettre Code : DataMemo4.Visible := False ;
Pour tester, et là il boucle infiniment.
je vais tester, je n'ai jamais essayer avec un Memo toujours avec des images (jusqu'a présent)
__________________
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 18/09/2008, 11h39   #5
Membre confirmé
 
Avatar de delphichem
 
Inscription : octobre 2002
Messages : 279
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 279
Points : 241
Points : 241
Citation:
Envoyé par SergioMaster Voir le message
je vais tester, je n'ai jamais essayer avec un Memo toujours avec des images (jusqu'a présent)
Je te remercie de l'intérêt que tu portes a mon problème.
delphichem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2008, 11h44   #6
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
Citation:
Envoyé par delphichem Voir le message
Je te remercie de l'intérêt que tu portes a mon problème.
ce n'est pas de l'intérêt
plutôt de la curiosité et que ce problème pourrait aussi m'arriver
de plus , si tu lis un peu ce forum , depuis que je me suis mis à Rave je me sens comme Rocky j'en ai pris plein et je veux que mon adversaire reste au tapis
__________________
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 20/09/2008, 08h33   #7
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
1° round - j'étudie l'adversaire
Effectivement j'en ai pris plein la poire 10 enrg 490..... pages va falloir éviter le truc ou alors le contourner

[2° round] - je teste une stratégie : essayer de lui passer un mémo vide ( pour mon test avec ' rien ' à l'intérieur )
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm6.RvDataSetConnection1GetCols(Connection: TRvCustomConnection);
begin
Connection.DoGetCols;
Connection.WriteField('MyMemo', dtMemo, 0, 'MyMemo', 'un Memo');
end;

procedure TForm6.RvDataSetConnection1GetRow(Connection: TRvCustomConnection);
var Buffer : string; // ici j'ai un doute , mais le compilateur accepte 
begin
Connection.DoGetRow;
Buffer:=' rien ';
Connection.WriteBlobData(Buffer,10);
end;
round plus équilibré (j'ai le bon nombre de page) mais je ne sais pas passer mon Mymemo correctement j'ai (invalid) au lieu de ' rien '

[3° round] Autre stratégie 'retailler' le dataMemo
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm6.RvDataSetConnection1ValidateRow(
  Connection: TRvCustomConnection; var ValidRow: BOOLEAN);
var MyPage : TRavePage;
    MyMemo : TRaveMemo;
begin
   myPage:= RvProject1.ProjMan.FindRaveComponent('Report2.Page1',nil) AS TRavePage;
   MyMemo:=RvProject1.ProjMan.FindRaveComponent('DataMemo1',myPage) AS TRaveMemo;
   IF Assigned(MyMemo) then
     begin
      Mymemo.Height:=0.00; // rien ne se passe
      Mymemo.Width:=0.00; // rein ne se passe
      Mymemo.LEFT:=1000 ; // là je l'envoi dans le cordes
      end;
end;
Rave reste debout mais est sonné , le fait de "pousser" hors de la région le mémo cache ce dernier par contre sa hauteur elle est prise en compte
nota : j'ai essayé mymemo.hide et même chose qu'au 1°round

[4°round] au moins une solution rave glisse au tapis
c'est un pis aller mais cela fonctionne . J'ai mis une bande de plus définie comme RawFooter (bandStyle) , dans laquelle j'ai mis mon DataMemo

puis :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
procedure TForm6.RvDataSetConnection1ValidateRow(
  Connection: TRvCustomConnection; var ValidRow: BOOLEAN);
var MyPage : TRavePage;
    MyBand : TRaveBand;
begin
  myPage:= RvProject1.ProjMan.FindRaveComponent('Report2.Page1',nil) AS TRavePage;
  myBand:= RvProject1.ProjMan.FindRaveComponent('BandeduMemo',myPage) AS TRaveBand;
  IF Assigned(myBand) then  // juste au cas où
     myband.Visible:=(condition);
end;
grâce à cette recherche je crois également avoir trouvé la solution à deux autres discussions ouvertes par badilou
__________________
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 21/09/2008, 10h51   #8
Membre confirmé
 
Avatar de delphichem
 
Inscription : octobre 2002
Messages : 279
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 279
Points : 241
Points : 241
Round 4 est une solution qui me convient parfaitement

Merci beaucoup

Mais je constate que malheureusement le problème existe depuis au moins la version 6.5 que tu utilises, mais n'a pas été corrigé par nervrona. Dommage
delphichem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2008, 20h14   #9
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
Dommage j'allais passer au round 5 en utilisant les miroirs mais je n'ai pas encore pu comprendre cette notion , je le mettrai quand même.

Citation:
Mais je constate que malheureusement le problème existe depuis au moins la version 6.5 que tu utilises, mais n'a pas été corrigé par nervrona.
Helas ce n'est que trop vrai, cela est reporte depuis la version 5
__________________
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 23/09/2008, 11h35   #10
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
Par défaut pour ceux que cela interesse Round 2 suite

Dans le round 2 j'essayais de passer un mémo vide mais sans résultat évident. En fait la solution était plus complexe mais je l'expose ici pour faire profiter aux lecteurs de ma découverte des subtilités 'Ravesque' de la RvCustomConnexion . Après bien des galères ( il n'y a pas de smyleys pour ça dommage ) et des prises de tête

1° poser une RvCustomConnection sur la Form
2° code // cette partie là est empruntée à Nevrona, pas simple leur histoire
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
 
procedure TForm6.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
Connection.DoGetCols;
// ici je rajoute le fameux mémo
Connection.WriteField('MyMemo', dtblob, 30, '', '');
end;
 
procedure TForm6.RvCustomConnection1GetRow(Connection: TRvCustomConnection);
var
  Stream: TMemoryStream;
  Memo: TMemo;
begin
  WITH Connection do begin
    DoGetRow; // get DATA FOR TABLE FIELDS
Stream := TMemoryStream.CREATE;
Memo := TMemo.CREATE(self);
try
  // ici je met quelque chose dans le mémo
  Memo.Text := 'Rien de rien'; // <- ça c'est pour voir si ça fonctionne
  Memo.Lines.SaveToStream(Stream);
  Stream.Position := 0;
  WriteBlobData(Stream.Memory^, Stream.Size);
finally
  Stream.Free;
  Memo.Free;
end;// tryf
end; { with }
end;
3° passer à Rave
Ajouter une DataConnection/Direct Connection et .... c'est là ou ça se corse si on fait refresh on obtient bien un champ mais pas le bon en fait il faut exécuter le programme (sans appel de l'état rave)
puis retourner dans Rave et faire Refresh (oh miracle ) pour que le champ apparaisse (attention oter le premier que rave avait mis par défaut , j'ai bien passer une heure à comprendre pourquoi il me parlait de champ 1/2 )
après cela devient du classique .....

Allez hop Rocky va se reposer, mais j'envisage un 5° round avec les miroirs (toute une histoire)
__________________
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 28/04/2010, 14h14   #11
Invité de passage
 
Inscription : décembre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 4
Points : 1
Points : 1
Bonjour,

Je viens vous voir aujourd'hui car je rencontre le même problème.

J'ai un memo dans une band qui elle même est contenu dans une région. J'aimerais bien rendre invisible ce dernier (le memo).
j'ai donc implémenter ce code :

MyMemo := FindRaveComponent('Memo4', MyPage) as TRaveMemo;
MyMemo.Visible := False;

Mais le soucis est que la génération du fichier se me a boucler a l'infini.

Avez vous une réponse a mon soucis ?

Bonne journée,

NeMMo
NeMModu80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2010, 18h33   #12
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 634
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 634
Points : 4 537
Points : 4 537
c'est pas du récent , et depuis je n'ai pas avancé avec les miroirs (pas assez de temps et de motivation) .
Relis bien les différents essais que j'ai fait , il y a certainement solution a ce problème
__________________
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 06h02.


 
 
 
 
Partenaires

Hébergement Web