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 :

Comment fixer l'imprimante par défaut dans le "Setup Screen" de Rave


Sujet :

Rave

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 29
    Points
    29
    Par défaut Comment fixer l'imprimante par défaut dans le "Setup Screen" de Rave
    Bonjour,
    Je développe en C++ (BDS2006) avec Rave Report 6.5.
    J'utilise le composant TrvProject associé à un TrvSystem pour imprimer mes états.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    RvSystem->DefaultDest = rdPreview;	// destination par défaut
    // demander l'affichage de l'écran de setup
    RvSystem->SystemSetups = (RvSystem->SystemSetups) << ssAllowSetup;
     
    // ouvrir le projet
    RvProject->Open();
    // exécuter le rapport
    RvProject->ExecuteReport(nomDuRapport);
    A l'exécution, la fenêtre de Setup propose la dernière imprimante utilisée.
    Je voudrais imposer l'imprimante de sortie : comment faire ?
    J'ai essayé la fonction SelectPrinter, mais sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RvSystem->BaseReport->SelectPrinter(imprimanteDestination);
    Ce code a été placé dans un évènement pour être appelé après la création de l'objet "BaseReport", mais ne fonctionne dans aucun évènement, ni de TrvProject, ni de TrvSystem.

    Si quelqu'un connait la méthode pour modifier l'imprimante de cette fiche de Setup, je suis preneur.

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 106
    Points : 41 220
    Points
    41 220
    Billets dans le blog
    63
    Par défaut
    as tu essayé avec le composant rvNDRWriter
    voir ici

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta réponse.

    Le composant rvNDRWriter permet de stocker une impression dans un fichier au format .NDR (format intermédiaire de Rave Report) en vue d'être imprimer plus tard.
    Ce n'est pas ce que je veux faire.

    J'utilise le composant trvSystem qui permet d'afficher une fenêtre permettant de choisir la destination (imprimante, aperçu, fichier), l'imprimante de destination, de modifier le setup ...( voir la pièce jointe).

    Je cherche toujours.
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 106
    Points : 41 220
    Points
    41 220
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par Luc84 Voir le message
    Le composant rvNDRWriter permet de stocker une impression dans un fichier au format .NDR (format intermédiaire de Rave Report) en vue d'être imprimer plus tard.
    Je le sais pertinemment mais il n'empêche que ça marche .
    je sais , c'est totalement loufoque mais cela ne m'étonne même plus de la part de Rave .
    Il y a certainement une solution plus élégante mais je ne l'ai pas encore trouvée .

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    856
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 856
    Points : 266
    Points
    266
    Par défaut meme probleme
    bonjour,

    je reprends ce post car j'ai le meme problème

    j'ai l'impression que rave ne reconnait l'instruction
    "printer.PrinterIndex:=2;"

    il ouvre sa propre boite de dialogue imprimantes et met celle par défaut !!!

    il doit bien y avoir une solution avec le compo RvSystem1 ?

    A+

  6. #6
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    autant que je me souvienne il suffit de renseigner la propriété Printer ou DefaultPrinter du trvsystem ou du report...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Tu as raison chtiot, la propriété Printer de la classe TRaveReport permet de choisir l'imprimante de destination.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyReport->Printer = nomImprimante;
    Ceci fonctionne très bien si tu imprimes directement l'état comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // imprimer directement
    RvSystem->DefaultDest = rdPrinter;	// destination par défaut
    RvSystem->SystemSetups = (RvSystem->SystemSetups) >> ssAllowSetup;
    Le problème se pose lorsque l'on veut faire afficher la fenêtre de Setup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RvSystem->DefaultDest = rdPreview;	// destination par défaut
    RvSystem->SystemSetups = (RvSystem->SystemSetups) << ssAllowSetup;
    Dans ce cas là, l'imprimante proposée dans la fenêtre de Setup de Rave n'est pas celle désirée, c'est l'imprimante par défaut de Windows.

  8. #8
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 106
    Points : 41 220
    Points
    41 220
    Billets dans le blog
    63
    Par défaut
    Justement , j'essaye de trouver la façon plus élégante que de mettre un composant NDRWriter pour le "SelectPrinter('monimprimante')" pour l'instant sans succès ....
    Mon problème : le BaseReport que je n'arrive pas à initialiser !!
    Si je fait ceci , pas de problème , dans ce cas là, l'imprimante proposée dans la fenêtre de Setup de Rave est bien 'Rotary'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    RvNDRWriter1.SelectPrinter('Rotary');
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    RVProject1.Execute;
    end;
    par contre, ceci me plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    RvProject1.projman.RvProject1.ProjMan.BaseReport.SelectPrinter('Rotary');
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    RVProject1.Execute;
    end;
    une recherche plus fouillée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.FormCreate(Sender: TObject);
    var myBaseReport : TBaseReport;
    begin
    myBaseReport:=RvProject1.ProjMan.BaseReport;
    if assigned(mybaseReport) then myBaseReport.SelectPrinter('Rotary')
    else showmesssage('je me suis planté');
    end;
    m'indique que l'objet n'est pas encore créé

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    une recherche plus fouillée
    Code :

    procedure TForm1.FormCreate(Sender: TObject);
    var myBaseReport : TBaseReport;
    begin
    myBaseReport:=RvProject1.ProjMan.BaseReport;
    IF assigned(mybaseReport) then myBaseReport.SelectPrinter('Rotary')
    else showmesssage('je me suis planté');
    end;


    m'indique que l'objet n'est pas encore créé
    En effet, le composant BaseReport est créé après l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RvProject->ExecuteReport(nomDuRapport);
    Pour initialiser l'imprimante par la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RvSystem->BaseReport->SelectPrinter(imprimanteDestination);
    il faut donc placer ce code dans un évènement du composant RvSystem ou RvProject, après que la fonction ExecuteReport() ait été lancée.
    J'ai fait l'essai avec tous les évènements de RvSystem : le code ne change rien ou fait planter.
    Idem avec les évènements du composant RvProject.
    J'ai bien peur que Nevrona n'ai pas prévu cette possibilité dans son composant.

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 106
    Points : 41 220
    Points
    41 220
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par Luc84 Voir le message
    J'ai bien peur que Nevrona n'ai pas prévu cette possibilité dans son composant.
    En effet, toutefois, je vais quand même regarder dans les sources Kylix

    [Edit]
    Eurêka . Pour ceux qui me connaissent Rambo à encore frappé

    la solution est simple , il fallait juste trouver la bonne classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    uses rpdevice  // à ne pas oublier
     
    RpDev.SelectPrinter('Rotary', False );   // la selection de l'imprimante

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Merci SergioMaster.

    Pour ceux que cela intéresse, voici le code C++ avec le choix de l'imprimante fixée par programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <RpDevice.hpp>
     
    RvSystem->DefaultDest = rdPreview;	// destination par défaut
    // demander l'affichage de l'écran de setup
    RvSystem->SystemSetups = (RvSystem->SystemSetups) << ssAllowSetup;
     
    // fixer l'imprimante à proposer dans la fenêtre Setup
    RPDev()->SelectPrinter(nomImprimante,false);		
     
    // ouvrir le projet
    RvProject->Open();
    // exécuter le rapport
    RvProject->ExecuteReport(nomDuRapport);

  12. #12
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 167
    Points : 89
    Points
    89
    Par défaut
    Bonjour tout le monde

    je suis interressé par l'initialisation de l'imprimante Sous Delphi 7 avec Rave

    citation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    par SergioMaster  
     
    uses rpdevice  // à ne pas oublier
     
    RpDev.SelectPrinter('Rotary', False );   // la selection de l'imprimante
    J'ai utilisé la préconisation de SergioMaster, malheureusement je n'arrive pas
    à intialiser mon imprimante 'HP LaserJet P1005'
    sans oublier bien sur le
    rpdevice dans les uses
    et
    RpDev.SelectPrinter('HP LaserJet P1005' , True ); dans Procedure TForme.FormCreate.

    même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RpDev.SelectPrinter('HP LaserJet P1005' , True );
    cela ne marche pas



    Ce que je fais actuellement pour l'initialiser : je lance Word, j'imprime une page vierge et j'utilise alors mon imprimante sous Delpi7.

    Où est-tu Rambo?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD16] Problème d'imprimante par défaut dans un état
    Par thblandeau dans le forum WinDev
    Réponses: 3
    Dernier message: 21/06/2012, 16h36
  2. Réponses: 1
    Dernier message: 19/01/2008, 09h17
  3. Réponses: 6
    Dernier message: 22/10/2007, 15h51
  4. Réponses: 11
    Dernier message: 13/09/2006, 10h56

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