Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 10-11-2010 12:45:25

Thorben  
Membre Geek
Lieu: Luxembourg
Date d'inscription: 18-05-2010
Messages: 36
Pépites: 241
Banque: 0

SaveAs PDF pour datawindow composite

Bonjour à tous,

J'utilise Powerbuilder 11.2 build 8407.
J'ai actuellement des problèmes pour sauver une datawindow composite en un fichier PDF.

Ma datawindow composite contient:
- un champ texte
- une datawindow freeform
- une datawindow tabular
- une datawindow freeform

Dans un premier temps, je n'arrive pas à ce que les 3 datawindows aient bien le format PDF dans les propriétés Data Export.
Idem pour la méthode XSLFOP!.
Quand je les set manuellement dans le painter et que je les sauve. Il ne garde pas mes changements dans les datawindows.

2e point: Je n'arrive pas à changer le format d'export en PDF pour le composite lui-même.

Alors j'essaie de le faire dans le code, mais je ne suis pas sur que mon code pour mettre la méthode XSLFOP! soit correct,
mais cela ne plante pas.

Enfin, le SaveAs() retourne -1 quand j'exécute en mode debug.

Est-ce que vous auriez des idées, des conseils, des corrections..... n'importe quoi !!!!

Code: pb

adw_data.Object.dw_1.Object.DataWindow.Export.PDF.Method = XSLFOP!
adw_data.Object.dw_1.Object.DataWindow.Export.PDF.XSLFOP.Print = 'Yes'
adw_data.Object.dw_2.Object.DataWindow.Export.PDF.Method = XSLFOP!
adw_data.Object.dw_2.Object.DataWindow.Export.PDF.XSLFOP.Print = 'Yes'
adw_data.Object.dw_3.Object.DataWindow.Export.PDF.Method = XSLFOP!
adw_data.Object.dw_3.Object.DataWindow.Export.PDF.XSLFOP.Print = 'Yes'

li_rc = adw_data.SaveAs(as_file_name, PDF!, true)

Merci d'avance de votre aide

Dernière modification par Thorben (16-11-2010 12:38:55)

Hors ligne

 

#2 10-11-2010 16:53:16

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: SaveAs PDF pour datawindow composite

salut,
   Pour ce qui concerne ton problème d'enregistrement de la propriété Format : PDF c'est normal.
   En fait ta sélection est bien enregistrer mais lorsque tu ouvre ta datawindow celle ci n'apparait et pourtant elle est bien sélectionné.
   Pour celà tu dois faire un Edit source de ta datawindow et verras ce type de ligne à la fin

Code: pb

export.xml(usetemplate="t1" headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0  template=(comment="" encoding="UTF-16LE" name="t1" xml="<?xml version=~"1.0~" encoding=~"UTF-16LE~" standalone=~"no~"?><d_admin_policy_holders><d_admin_policy_holders_row __pbband=~"detail~"><id>id</id><userid>userid</userid><password>password</password><titleid>titleid</titleid><fname>fname</fname><lname>lname</lname><dob>dob</dob><addressid>addressid</addressid><phone>phone</phone><email>email</email><bankname>bankname</bankname><branchcode>branchcode</branchcode><accounttypeid>accounttypeid</accounttypeid><accountnumber>accountnumber</accountnumber></d_admin_policy_holders_row></d_admin_policy_holders>"))
import.xml()
export.pdf(method=0 distill.custompostscript="1" xslfop.print="0" )


Tu vois dans cet exemple que j'ai mis un template appelé T1 pour l'export en xml et j'ai choisit la méthode xslfop pour le PDF.
Si j'utilise la fonction  saveas de la datawindow et que je met en argument de la fonction saveas PDF! il me feras du xslfop

Pour ce qui est de la composite as tu vérifier les éléments suivants :

Deployment requirements   
If your application uses the distill method, you must distribute the GNU Ghostscript files and default PostScript printer driver and related files (if using the default printer) with your application. If your application uses the XSL-FO method, you must distribute Apache FOP files and the Java Runtime Environment (JRE) with your application. For more information, see the chapter on deploying your application in Application Techniques.

Hors ligne

 

#3 10-11-2010 17:43:41

Thorben  
Membre Geek
Lieu: Luxembourg
Date d'inscription: 18-05-2010
Messages: 36
Pépites: 241
Banque: 0

Re: SaveAs PDF pour datawindow composite

Merci pour ta réponse.

Pour les fichiers PDF je n'utilise pas la méthode 'Distill'. Mais XLSFOP!, et cela fonctionne très bien sur une datawindow grid.

J'ai modifié les 3 datawindows avec l'Edit source pour mettre

Code: pb

export.pdf(method=0 distill.custompostscript="1" xslfop.print="0" )

Cela n'a rien donné.
Ensuite j'ai changé pour mettre

Code: pb

export.pdf(method=1 distill.custompostscript="0" xslfop.print="1" )

Et ne produit rien non plus. Je l'ai fait aussi pour le composite , sans succès non plus.

Je ne comprend pas où est mon problème.

Dernière modification par Thorben (16-11-2010 12:39:14)

Hors ligne

 

#4 11-11-2010 09:29:00

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: SaveAs PDF pour datawindow composite

Bonjour,

C'est normal, la méthode XSL-FO comporte plusieurs limitations par rapport à la méthode ghostscript :

Chapter 19 Enhancing Datawindows Object => Saving Data in an external file

Limitations
The Ghostscript method currently does not support OLE and RichText DataWindow objects. The XSL-FO method currently does not support OLE, RichText, graph, and composite DataWindow objects.

Hors ligne

 

#5 15-11-2010 11:01:37

Thorben  
Membre Geek
Lieu: Luxembourg
Date d'inscription: 18-05-2010
Messages: 36
Pépites: 241
Banque: 0

Re: SaveAs PDF pour datawindow composite

Merci bien pour cette dernière précision non négligeable !!!
Je change donc pour utiliser la méthode Distill!

Les 2 lignes suivantes ont le même résultat:

Code: pb

ls_ret = adw_data.Modify("DataWindow.Export.PDF.Method = Distill!")
adw_data.Object.DataWindow.Export.PDF.Method = Distill!

Ensuite, je fais ce qui suit pour la datawindow dw_1 qui est dans la composite:

Code: pb

adw_data.Object.dw_1.Object.DataWindow.Export.PDF.Method = Distill!
adw_data.Object.dw_1.Object.DataWindow.Export.PDF.Distill.CustomPostScript='1'
adw_data.Object.dw_1.Object.DataWindow.Printer = "PDF995"

Quand je fais le SaveAs, il me retourne toujours -1.
Est-ce que vous auriez une idée ?

Dernière modification par Thorben (16-11-2010 12:38:21)

Hors ligne

 

#6 15-11-2010 11:07:24

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: SaveAs PDF pour datawindow composite

Bonjour,

Tu as installé le pré-requis pour utiliser la méthode Distill : Ghostscript, ... ?

Hors ligne

 

#7 15-11-2010 13:14:18

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: SaveAs PDF pour datawindow composite

Pour rappel:



Merci d'avance de corriger.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22