Bonjour,

je dois faire tourner une appli windows d'édition tournant avec QuickReport, sur une tablette Android via Citrix (Receiver). Cette appli tourne sans problème sur Windows depuis des lustres.

La tablette n'ayant évidemment pas d'imprimante (elle doit juste servir de consultation sur écran, jamais d'impression), nous en avons configuré une par défaut, enfin ce qu'on a pu, l'expert réseau n'a pas pu trouver mieux qu'une imprimante virtuelle, on a bien tenté PDF Creator mais ça ne fonctionnait pas dès l'install apparemment.

Donc maintenant :

1) l'appli se lance

2) on détermine divers choix de visualisation, , mais quand on veut visualiser l'état à l'écran, ça plante.

En désactivant le spouleur de mon PC afin de reproduire le cas de la tablette, j'ai trouvé facilement où le bug de déclenche :

C'est sur cette ligne :

Le message : erreur système 1722, serveur RPC non disponible.

On est sur Andoïd, donc pas de table de registre Windows évidemment. Je dis ça car après recherche sur le Web j'ai compris que le QuickReport cherchait des infos d'imprimante par défaut dans ces clés de registre Windows là.

Auriez vous une idée pour contourner mon problème ?

Peut être peut on modifier quelque chose dans les paramètres du Report qui permette de pas aller lire quoique ce soit lié aux imprimantes par défaut, afin qu'il définisse lui même des paramètres d'impression par défaut ?

Je ne sais pas, c'est une idée...

Merci.


EDIT 1 : tout simplement il me suffisait de faire ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
QRptPlt.PrinterSettings.UseStandardprinter := true;
Me reste plus qu'à le forcer en mode paysage et c'est bon... je pourrais mettre en RESOLU.



EDIT 2 : malgré le bout de code ci dessous écrit bien entendu avant la commande lançant le preview, il s'affiche toujours en portrait, ce qui n'est pas bon, savez vous pourquoi SVP ? Merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
          if Printer.Printers.Count = 0 then
          begin
            QRptPlt.PrinterSettings.UseStandardprinter := true;
            QRptPlt.Page.Orientation := poLandscape;
 
            // edit : pour info j'avais aussi essayé ça, mais en vain : 
            QRptPlt.PrinterSettings.Orientation := poLandscape;
          end;


EDIT 3 : bon ben il n'y a pas de solution. J'ai dupliqué l'état en deux, celui d'origine en paysage n'a pas bougé, j'ai créé une version portrait où j'ai tout fait tenir en plus étroit, faute de mieux. Simple redirection dans le code ensuite, lors de l'appel des procédures d'affichage, suivant qu'il y a des imprimantes de détectées ou pas... Du coup maintenant ça tourne sur PC, et sur tablette Androïd.

Je mets donc ce billet en RESOLU.