IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

FastReport Discussion :

Erreur avec FastReport


Sujet :

FastReport

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 450
    Par défaut Erreur avec FastReport
    Bonjour,
    Cela fait plusieurs jours que je me bats avec FastReport 6.8.4 dans un projet avec Delphi 10.4.2 Community sous W10.

    Les démos fonctionnent sans problème...
    Dans mon projet j'alimente le Report via un UserDataSet car les données ne viennent pas d'une base de données.
    Voici un projet minimal. Dans le Getdata je n'ai rien mis, c'est juste pour voir si je passe dans cette boucle. La procédure sera remplie ensuite et c'est un projet juste pour pouvoir simplement vous montrer où est mon soucis.
    TestFR.zip

    J'ai connecté ma bande "Master Detail" avec mon "userdataset" mais j'ai cette erreur à l’exécution du report seul ou du projet.
    Nom : ErreurFR.png
Affichages : 128
Taille : 16,3 Ko

    Où est mon erreur ?
    Merci d'avance.
    Bernard

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 450
    Par défaut
    A force de gratter j'ai fini par trouver : j'avais essayé un TagStr sur le memo Titre, il était resté et c'est ça qui me causait le Pb. Pourquoi ???? je n'ai pas cherché.

    J'ai encore un soucis :
    Les TfrxMemoView passent bien dans le OnGetValue pour se faire remplir et cela fonctionne parfaitement.
    Par contre dans ma bande MasterData j'ai une image que je veux remplir à la volée : Picture1 du type TfrxPictureView.

    Dans un post de 2021 SergioMaster donnait une méthode en 2 temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm122.frxReport1BeforePrint(Sender: TfrxReportComponent);
    begin
    frxImage:=FrxReport1.FindObject('picture1') as TfrxPictureView;
    end;

    et ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm122.frxUserDataSet1GetValue(const VarName: string;
      var Value: Variant);
    var S : TFileStream;
    begin
    if SameText(VarName,'Col1') then Value:=StringGrid1.Cells[0,l];
    if SameText(VarName,'Col2') then Value:=StringGrid1.Cells[1,l];
    if SameText(VarName,'Col3') then
       begin
    //     Value:='C:\Users\serge\OneDrive\images\hermioneloire.jpg';
         if assigned(frxImage) then frxImage.Picture.LoadFromFile('C:\Users\serge\OneDrive\images\hermioneloire.jpg');
       end;
    end;
    que j'ai adapté à mon besoin :
    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
     
    procedure TFen_PresenterResultats.FeuilleCommentairesBeforePrint(
      Sender: TfrxReportComponent);
    begin
         frxImage:=FeuilleCommentaires.FindObject('picture1') as TfrxPictureView;
    end;
     
    procedure TFen_PresenterResultats.frxUserDataSet1GetValue(const VarName: string;
      var Value: Variant);
    begin
         if Pos(VarName,'Titre')>0 then Value:='Titre : '+DatasPhotos1[frxUserDataSet1.RecNo].Titre;
         if Pos(VarName,'Notes')>0 then Value:='Notes : '+DatasPhotos1[frxUserDataSet1.RecNo].N1 +' - '
                                                         +DatasPhotos1[frxUserDataSet1.RecNo].N2 +' - '
                                                         +DatasPhotos1[frxUserDataSet1.RecNo].N3;
         if Pos(VarName,'Classement')>0 then Value:='Classement : '+DatasPhotos1[frxUserDataSet1.RecNo].Place;
         if Pos(VarName,'Picture1')>0 then
            if assigned(frxImage) then frxImage.Picture.LoadFromFile(DatasPhotos1[frxUserDataSet1.RecNo].Fichier);
    end;

    Mon soucis c'est que je ne passe jamais dans le GetValue pour remplir l'image ?? Picture1 doit être défini autrement que par le nom de l'objet ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Impossible pour moi d'ouvrir le fastreport (erreur abstraite).
    Est-il possible de fournir le .fr3

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 450
    Par défaut
    Bonjour Sergio,

    J'ai résolu le pb de l'image sur mon application cible, pas sur le fichier joint, en ajoutant un mémo invisible dans le report mais qui me permet de déclencher le remplissage de l'image.

    De plus je ne comprend pas pourquoi le OnGetData du UserDataSet n'est jamais déclenché et qu'il faut utiliser celui du Report lui même pour pouvoir passer les données.
    En PJ le .fr3

    Merci
    Fichiers attachés Fichiers attachés

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    De plus je ne comprend pas pourquoi le OnGetData du UserDataSet n'est jamais déclenché
    peut-être parce que le userdataset n'est pas lié
    Nom : Capture.PNG
Affichages : 111
Taille : 23,2 Ko

    PS. perso je n'aime pas trop ces if Pos(VarName,.... les fonctions contains, containstext, sametext seraient mieux AMHA

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 450
    Par défaut
    Effectivement le Dataset du TfrxReport n'est pas lié au frxUserDataSet car ce DataSet est déjà relié à la bande MasterDetail et on ne peut pas avoir le même Dataset pour les 2.

    Je crois avoir compris que le OnGetDatas du frxUserDataSet se déclenche si on déclare des "Fields', on peut relier les Memos ou autres objets du report à ces fields et là le OnGetDatas du frxUserDataSet part.
    Quelle est la meilleure méthode : pas de Fields déclarés et le OnGetDatas du frxReport ou des Fields et le OnGetDatas du frxUserDataSet ?
    Il semble qu'avec cette dernière méthode j'ai des opérations pointer invalides qui montent, il faut que je les piste.

    C'est un vrai casse tête FastReport et la doc n'aide pas à grand chose, pas plus que les exemples.
    S'il y a une méthode efficace, je suis preneur !!

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo