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 19/01/2011, 17h17   #1
Membre habitué
 
Inscription : juin 2002
Messages : 256
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 256
Points : 108
Points : 108
Par défaut [D2007 / Rave 7.5.2] Pb communication DataBand et TRvCustomConnection

Bonjour,
J'ai un problème de communication entre mon appli Delphi et Rave, plus particulièrement entre :

> coté Delphi un TRvCustomConnection relié à une requête simple (correctement exécutée, contenant plusieurs lignes de résultats pour son seul champ)

> coté Rave un DataBand contenant un seul DataText, connecté au bon champ via un DataView connecté lui aussi au bon TRvCustomConnection Delphi

Les évènements (Delphi) du TRvCustomConnection sont tous appelés (OnOpen, OnEOF et surtout OnGetCols pour définir le champ à "transférer"), excepté OnGetRow qui n'est jamais exécuté !
J'ai défini le nombre de lignes à envoyer par la propriété Connection.DataRows (je ne sais si c'est nécessaire), tous les composants sous Rave ont leur propriété Visible à True... je ne sais plus trop vers où chercher ! Surtout que cela fonctionne parfaitement pour une autre requête du même style.

Des idées svp ?

Code :
1
2
3
4
5
6
7
8
9
10
procedure TDM.RvCustomConnectionGetCols(Connection: TRvCustomConnection);
begin
  Connection.WriteField('MyField', dtString, 80, '', '');
end;
 
procedure TDM.RvCustomConnectionGetRow(Connection: TRvCustomConnection);
begin
  Connection.WriteStrData('', myQuery.FIELDS.ByNameAsString['C_UTILISATION']);
  myQuery.Next;
end;
paradise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 07h40   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 611
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 611
Points : 4 508
Points : 4 508
Un RvCustomConnection n'est ce pas se compliqué la vie ? a en juger par ton code un RvDataSetConnection serait plus simple , maintenant je n'ai pas tout les éléments .
Citation:
J'ai défini le nombre de lignes à envoyer par la propriété Connection.DataRows (je ne sais si c'est nécessaire)
non , et je dirais même que c'est a exclure lorsque l'on connait pas de façon sure le nombre d'enregistrement sauf si l'on ne veut q'une partie de ceux-ci et encore le SQL permet en général de le faire , pas la peine de passer par Rave

[edit après un petit test]

Code ok :
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
procedure TForm9.RvCustomConnection1EOF(Connection: TRvCustomConnection;
  var Eof: BOOLEAN);
begin
  EOF:=Query1.EOF;
end;
 
procedure TForm9.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
  Connection.WriteField('MyField', dtString, 80, '', '');
end;
 
procedure TForm9.RvCustomConnection1GetRow(Connection: TRvCustomConnection);
begin
 Connection.WriteStrData('',Query1.FieldByName('LIBELLE_APPOSE').asString);
end;
 
procedure TForm9.RvCustomConnection1Next(Connection: TRvCustomConnection);
begin
 Query1.Next;
end;
 
procedure TForm9.RvCustomConnection1Open(Connection: TRvCustomConnection);
begin
 Query1.First;
end;
ma question : est-ce que ton EOF est bien géré ?
__________________
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/01/2011, 16h02   #3
Membre habitué
 
Inscription : juin 2002
Messages : 256
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 256
Points : 108
Points : 108
Oui un TRvDataSetConnection serait l'idéal mais mes données sont récupérées par un JvUIBQuery, qui d'ailleurs ne s'interface pas non plus avec un TRvQueryConnection malheureusement.

Je suis arrivé à résoudre mon pb d'hier (cad mon 1er message) en supprimant le TRvCustomConnection pour en déposer un nouveau sur ma fiche et réaffecter ses évènements. Moralité de l'histoire : ne jamais copier/coller un TRvCustomConnection !! Ne me demandez pas pourquoi

Mais aujd : nouveau rapport et nouveaux soucis avec des databands, du même ordre d'ailleurs alors j'aurai certainement besoin de toi
Merci pour ton aide SergioMaster.
paradise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 18h53   #4
Membre habitué
 
Inscription : juin 2002
Messages : 256
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 256
Points : 108
Points : 108
Bon toujours le même problème de communication TRvCustomConnection Delphi / DataBands Rave

Le "MyField" ci-dessous :
Code :
1
2
3
4
procedure TForm9.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
  Connection.WriteField('MyField', dtString, 80, '', '');
end;
doit correspondre à quelle propriété du champ du DataView sous Rave :
- FieldName ?
- FullName ?
- Name ?

J'imagine "FieldName" mais bon là je cherche un peu partout...
paradise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 07h51   #5
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 611
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 611
Points : 4 508
Points : 4 508
C'est le nom que 'connaitra' Rave donc en fait Name serait le plus exact .

C'est vrai que cette fonction n'est pas ou est mal documentée (je viens d'essayer sans succès d'avoir l'aide ). Il a fallu chercher dans mes divers PDF Rave pour trouver
Citation:
Envoyé par Appendix/lessons/customdataconnexion
procedure WriteField(Name: string;
DataType: TRPDataType;
Width: integer;
FullName: string;
Description: string);
Citation:
JvUIBQuery, qui d'ailleurs ne s'interface pas
je ne savais pas ça, il faudrait que je teste avec les UIBQuery (que je recommande d'ailleurs en lieu et place des JvUIBxxxx)



un ps . Il vaut mieux ajouter un DoGetCols , je savais qu'il me manquait quelque chose hier (plus ou moins un équivalent de Clear)

Code :
1
2
3
4
5
6
 
procedure TForm9.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
  Connection.DoGetCols;
  Connection.WriteField('MyField', dtString, 80, '', '');
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
Vieux 21/01/2011, 15h35   #6
Membre habitué
 
Inscription : juin 2002
Messages : 256
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 256
Points : 108
Points : 108
Merci. J'essaierai ça lundi et te tiendrai au courant...
Bon week end !
paradise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 09h53   #7
Membre habitué
 
Inscription : juin 2002
Messages : 256
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 256
Points : 108
Points : 108
Salut,
Citation:
Envoyé par paradise Voir le message
Le "MyField" ci-dessous :
Code :
1
2
3
4
procedure TForm9.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
  Connection.WriteField('MyField', dtString, 80, '', '');
end;
doit correspondre à quelle propriété du champ du DataView sous Rave :
- FieldName ?
- FullName ?
- Name ?

J'imagine "FieldName" mais bon là je cherche un peu partout...
Bon d'après les démos Rave il s'agit bien de FieldName.

Citation:
Envoyé par SergioMaster
Citation:
Envoyé par paradise Voir le message
JvUIBQuery, qui d'ailleurs ne s'interface pas
je ne savais pas ça, il faudrait que je teste avec les UIBQuery (que je recommande d'ailleurs en lieu et place des JvUIBxxxx)
Oui et c'est bien dommage, j'aurais bien utilisé des TRvQueryConnection au lieu de me prendre la tête avec ces CustomConnection !

D'ailleurs hier matin plus rien ne marchait
J'ai bricolé, j'ai trouvé et pour l'instant ça marche --> ce que je retiens de mon expérience perso, et là je vais te contredire : il faut impérativement définir la propriété DataRows dans le OnOpen de toute TRvCustomConnection !! Sinon (toujours en ce qui me concerne) aucune donnée n'est transmise.
paradise 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 01h31.


 
 
 
 
Partenaires

Hébergement Web