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

Rave Discussion :

jointure entre 2 etats


Sujet :

Rave

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut jointure entre 2 etats
    Bonjour à tous,

    je cherche à trouver un moyen pour joindre deux états (contenant chaqu'un une seule page) dans une seule page.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Bonjour,

    par jointure (terme SQL) je suppose qu'il s'agit en fait d'imprimer les deux états dans un seul et même travail d'impression, on parle alors d''état multiple

    Si les deux états sont de même orientation cela ne pose aucune difficulté , il faut poser un rvSystem et dans l'évènement onPrint de ce dernier coder de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      with Sender as TBaseReport do begin
        RaveProject.ExecuteReport('Report1');
        NewPage;
        RaveProject.ExecuteReport('Report2');
      end; { with }
    pour info, ce code, que j'ai du déjà indiqué dans d'autres posts est donné parun tip nevrona ici
    s'il y a deux orientations différentes voir aussi cette astuce


    enfin je rappelle qu'il est aussi possible de faire un seul état avec plusieurs format de page différents en utilisant les propriétés gotopage et gotoMode de la Page
    (voir l'état MultipageReport dans RaveDemo.rav généralement fournis dans le répertoire RaveReports\demos\visual de l'installation de Delphi)
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut
    Bonjour sergio,

    merci pour ta réponse mais c'est pas ça que je veut faire. En fait, je veut que les canvas des 2 reports se joigne en une seule page

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Bonjour,

    Alors là, je comprends pas !
    Soit tu fais un autre état avec 2 régions <= le plus simple
    Soit tu fais comme indiqué en enlevant le Newpage
    Soit tu essayes un truc à base de miroirs (mais là encore cela revient à faire un nouvel état)

    mais je ne vois toujours pas ce que tu veux faire exactement !
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    ce que je veut faire c'est mettre tout ce qu'il ya dans la page du 1er état avec celui du 2eme état dans une seul page toute en gardant leur position dans initiale pour exple: 1ere page contient un tableau remplie de données en haut de la page et la deuxième page contient un commentaire en bas de page et à la jointure des 2 pages le tableau en haut le texte en bas

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Bonjour,

    ne serait-ce pas la maxime "faire compliqué quand on peut faire simple" que tu appliques ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut
    Bonjour sergio,

    non pas du tout , c'est en relation avec la discussion sur le zoom dont tu m'a solutionné le problème, on appliquant un zoom à 50% tout s'imprime sur la moitie d'une page l'autre moitie de la page reste blanche et c'est le même cas pour la 2eme page.

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Bonjour,
    c'est en relation avec la discussion sur le zoom
    je ne me rappelais plus de cette histoire, mais déjà as tu réussi à mettre deux pages d'un même état sur une même feuille ?
    Citation Envoyé par sergiomaster
    OriginX et OriginY ouvrant des perspectives intéressantes pour imprimer par exemple 2 pages sur une feuille
    cela étant reste que faire un état avec les deux régions (même de taille A8 pour ensuite réduire à A4) me semble quand même plus faisable surtout si tu n'as pas réussi la première performance (c'est de ça que je demandais le retour)

    si tu réduis tes états à 50% tu fournis une loupe à tes utilisateurs
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Pour mieux expliquer, je pose la question autrement.
    comment copier une partie de la page (sous forme d'image par exple) et la coller à n'importe quelle autre page?

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Bonjour,
    Citation Envoyé par chekkal Voir le message
    comment copier une partie de la page (sous forme d'image par exple) et la coller à n'importe quelle autre page?
    Ce qui revient malgré tout à faire 2 états

    dans le principe je dirais que pour sauvegarder une page dans une image il faudrait faire quelque chose de ce genre (non testé)
    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
    19
    20
    21
    22
    23
     
    // imprimer
    procedure TForm1.btnClick(Sender: TObject);
    begin
     rvprojectTest.SelectReport('introductionreport',false);
     rvsystemTest.Execute;
    end;
     
    // capturer
    function TForm2.rvsystemtestPrintPage(Sender: TObject;
      var PageNum: Integer): Boolean;
    var Report : TBaseReport
        Bitmap : TBitmap;
    begin
      Report:=TBaseReport(Sender);
      Bitmap:=TBitmap.Create;
      try
        // Bitmap.Canvas <-Report.Canvas; reste à trouver le moyen de copier le canvas 
        Bitmap.SaveToFile('ImagePage'+intttostr(PageNum)+'.bmp');
      finally
        Bitmap.Free;
      end;
    end;
    Mais, il y a un mais, cela oblige à imprimer quand même
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut
    Bonjour,
    Ce qui revient malgré tout à faire 2 états
    mon objectif c'est de pouvoir formater des pages de plusieurs maniére possible
    // Bitmap.Canvas <-Report.Canvas; reste à trouver le moyen de copier le canvas
    et là toute la difficulté

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par chekkal Voir le message
    et là toute la difficulté
    Oui, enfin pas tant que ça, il y a de nombreuses manières d'y arriver i.e. Canvas.CopyRect sauf que il faut réussir du coup à dégager la taille du rectangle à copier
    [Edit]
    ce qui implique de transformer PageWidth et PageHeight en pixels par l'utilisation des fonctions XI2Dou XU2D et de YI2D ou YU2D (selon Report.Unit mm ou inch)
    pour une page A4 portrait cela doit donner quelque chose comme 4885,6974

    Cependant après y avoir passer ma matinée de Dimanche (je testais des taille de rect certainement trop faibles, c'est ce matin que j'ai pensé aux conversions) je n'ai toujours obtenu que des pages blanches et quelquefois (souvent) des boucles (état de 2 pages passant à 4958 avant interruption )
    [Edit]
    les pages blanches c'est une erreur que je n'arrive pas à déterminer , le RvProject.Execute se fait correctement mais le rvSystem.Execute non ! j'ai déjà eu ce souci il me semble

    Bon courage, quant à moi, le sujet ne m’intéresse que très peu, je trouve que "le jeu n'en vaut pas la chandelle", j'aime faire simple. La solution passe plutôt par les miroirs
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 988
    Points : 35 336
    Points
    35 336
    Billets dans le blog
    54
    Par défaut
    Au temps pour moi,
    il semblerai que utiliser le onPrint de rvSystem permette bien d'accéder au canvas mais un canvas vide qui écrase sans doute le report demandé

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    procedure TForm1.rvsystemTestPrint(Sender: TObject);
    var Report : TBaseReport;
        W, H : Integer;
    begin
    // Calcul taille
    Report:=rvSystemTest.BaseReport;
    case Report.Units of
     unInch :  begin
       w:=Report.XI2D(Report.PageWidth);
       h:=Report.YI2D(Report.PageHeight)
     end;
     unMM : begin
       w:=Report.XU2D(Report.PageWidth);
       h:=Report.YU2D(Report.PageHeight)
     end;
     else  begin
       w:=Trunc(Report.PageWidth);
       h:=Trunc(Report.PageHeight);
      end;
    end;
    ShowMessage(Format('Largeur %d Hauteur %d',[w,h]));
    // Ecrire dans canvas 
    with Sender as TBaseReport do
     begin
       SetFont('Arial',20);
       GotoXY(1,1);
       Print('Hello World of Rave');
     end;
      end;
    // Sauvegarde du canvas 
    Bitmap:=TBitmap.Create;
    try
    Bitmap.Width:=w;
    Bitmap.Height:=h;
    rc:=Rect(0,0,w,h);
    Bitmap.Canvas.CopyRect(rc,Report.Canvas,rc);
    bitmap.SaveTofile('test.bmp');
    finally
    bitmap.free;
    end;
    et même ainsi , je n'obtiens qu'une page blanche, du coup gros doute
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2010
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2010
    Messages : 843
    Points : 87
    Points
    87
    Par défaut
    Bonjour sergio,

    Je te remercie beaucoup pour toute l'aide que tu m'apporte . je vai voir tous ces cas et je te tiens au courant

Discussions similaires

  1. Jointure entre 3 tables
    Par zigune dans le forum Langage SQL
    Réponses: 9
    Dernier message: 15/11/2004, 16h04
  2. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50
  3. [jointure]requete possible de double jointure entre 2 tables
    Par akira_le_gaucher dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2004, 15h03
  4. Jointure entre 2 tables et OR
    Par PyRoFlo dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/02/2004, 18h42
  5. jointure entre deux requete
    Par Youssef dans le forum Langage SQL
    Réponses: 21
    Dernier message: 15/01/2004, 15h13

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