Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonsoir à tous,
Je voulais exporter sous format Excel les données qui se trouvent dans la partie group de mon rapport .
Actuellement notre appalication permet d'exporter seulement les lignes qui se trouvent dans le détail d'un rapport.
Est-ce que c'est possible en PB ?
Dernière modification par mattdamon (04-10-2010 07:56:54)
Hors ligne
Est ce que quelqu'un peux me confirmer que la bibliothèque DW2XLS se trouve dans http://www.desta.com.ua/dw2xls/ répond à ce sujet.
Si oui je peux l'acheter...
Hors ligne
Une seconde...
Je suis en train de tester un code je l'ai trouvé sur pbadonf et je crois que ça fonctionne bien pour mon cas :
http://pbadonf.fr/forum/viewtopic.php?id=1277
Hors ligne
mattdamon a écrit:
Une seconde...
Je suis en train de tester un code je l'ai trouvé sur pbadonf et je crois que ça fonctionne bien pour mon cas :
http://pbadonf.fr/forum/viewtopic.php?id=1277
Bonjour,
Ce code ne permet pas d'exporter le rapport comme je veux.
Une piste svp.
Hors ligne
http://www.desta.com.ua/dw2xls/ -> pas cher, efficace
Hors ligne
erasorz a écrit:
http://www.desta.com.ua/dw2xls/ -> pas cher, efficace
Juste 3 questions :
D'après le site, si j'ai bien compris, dw2xls est une bibliothèque (.pbd) contient des fonctions de conversion DW to XLS. c'est bien ça ?
Est-ce que lee fichier excel est bien structurer (coté ergonomie) ?
En utilisant dw2xls pour exporter en excel... le fichier en sortie, est ce que on peux l'utiliser par la suite pour calculer par exemple la valeur de 2 cellule :
Exp :
A2 + B5 = affchage du résultat mais pas #VALUE!
Merci d'avance
Dernière modification par mattdamon (04-10-2010 08:50:25)
Hors ligne
erasorz a écrit:
http://www.desta.com.ua/dw2xls/ -> pas cher, efficace
Bonjour,
Il n'existe pas une autre solution sans utiliser une bibliothèque spécifique ?
Merci
Hors ligne
Salut Matt,
Le mieux est que tu développes sous PB un objet de gestion des exports Excel
via OLE.
Il y a déjà des exemples de codes dans le forum. Pour le reste,
regarde le site de MSDN.
Tu as tout ce qu'il faut pour traduire les exemples VB en PB.
N'hésites pas à nous faire part de tes découvertes.
PS: Attention: il existe des différences notables entre Excel 2007 et les versions précédentes d'Excel,
au niveau de l'OLE. A toi de voir en fonction des besoins de ton client.
Hors ligne
foon a écrit:
Salut Matt,
Le mieux est que tu développes sous PB un objet de gestion des exports Excel
via OLE.
Il y a déjà des exemples de codes dans le forum. Pour le reste,
regarde le site de MSDN.
Tu as tout ce qu'il faut pour traduire les exemples VB en PB.
N'hésites pas à nous faire part de tes découvertes.
PS: Attention: il existe des différences notables entre Excel 2007 et les versions précédentes d'Excel,
au niveau de l'OLE. A toi de voir en fonction des besoins de ton client.
Bonjour foon,
Merci infiniment pour ton aide.
Je pense de passer par une datawindow intermédiaire pour faire le même calcul qui a été fait au niveau de group datawindow (group, compute field, sum ...) puis exporter la datawindow finale ayant seulement les lignes en group. Mais je crois que ça va prendre beaucoup de temps surtout le les champs de group sont nombreux et en plus ils sont parametrables, le client peux choisir comme il veux.
Si quel qu'un a une piste merci de me dire?
Hors ligne
erasorz a écrit:
http://www.desta.com.ua/dw2xls/ -> pas cher, efficace
à toi de voir s'il vaut mieux dépenser 70€ ou développer pendant 1 mois...
sans compter que tu vas devoir coder ça pour chaque DW et que l'outil te servira pour les autres exports également (avec la mise en forme, les couleurs, etc)
Hors ligne
Enfin, j'ai décidé de coder les données du group en excel
Juste, j'ai un pétit souci : dans mon code powerbuilder je fait GroupCalc () pour calculer les compute field du rapport en suite, je voulais récupérer la valeur de ces compute field ainsi que les différents champs qui se trouvent dans le group.
Quelq'un peux me dire comment ?
Merci d'avance !
Dernière modification par mattdamon (02-11-2010 17:26:20)
Hors ligne
Il faut que tu scannes les lignes ou ton groupe change et après tu peux faire une getItem de ton champ compute sur la dernière ligne de ton groupe pour avoir le total. C'est la seule façon que j'ai trouvé pour avoir la bonne valeur d'un total par group dans un champ compute.
Hors ligne
Allin a écrit:
Il faut que tu scannes les lignes ou ton groupe change et après tu peux faire une getItem de ton champ compute sur la dernière ligne de ton groupe pour avoir le total. C'est la seule façon que j'ai trouvé pour avoir la bonne valeur d'un total par group dans un champ compute.
Bonjour,
Merci Allin pour ta réponse.
tu peux mettre un bout de code pour voir comment cela fonctionne...
Merci d'avance !
Dernière modification par mattdamon (23-11-2010 10:07:48)
Hors ligne
This code finds the number of the row at which a break occurs in group 1. It then checks whether the department number is 121. The search begins at row 0:
Code: pb
boolean lb_found long ll_breakrow lb_found = false ll_breakrow = 0 DO WHILE NOT (lb_found) ll_breakrow = dw_1.FindGroupChange(ll_breakrow, 1) // If no breaks are found, exit. IF ll_breakrow <= 0 THEN EXIT // Have we found the section for Dept 121? IF dw_1.GetItemNumber(ll_breakrow, & "dept_id") = 121 THEN lb_found = true END IF // Increment starting row to find next break ll_breakrow = ll_breakrow + 1 LOOP IF lb_found = false THEN MessageBox( & "Not Found", & "The Department was not found.") ELSE ... // Processing for Dept 121 END IF
Hors ligne
yo
j'espère que tu pourras nous faire profiter de ton super outil d'export quand tu l'auras fini
Hors ligne
JCZ a écrit:
yo
j'espère que tu pourras nous faire profiter de ton super outil d'export quand tu l'auras fini
Bonsoir,
J'ai pas encore commencé ... actuellement, je bosse sur une autre chose... normalement je commencerai la semaine prochaine.
L'outil devrais être un peut spécifique ( concerne un rapport spécifique avec des group et des compute field bien déterminé...) par ce que c'est difficile de faire un outil générique...
Mais comme même, dès que je le finis, je le met sur le forum
Hors ligne
erasorz a écrit:
This code finds the number of the row at which a break occurs in group 1. It then checks whether the department number is 121. The search begins at row 0:
Code: pb
boolean lb_found long ll_breakrow lb_found = false ll_breakrow = 0 DO WHILE NOT (lb_found) ll_breakrow = dw_1.FindGroupChange(ll_breakrow, 1) // If no breaks are found, exit. IF ll_breakrow <= 0 THEN EXIT // Have we found the section for Dept 121? IF dw_1.GetItemNumber(ll_breakrow, & "dept_id") = 121 THEN lb_found = true END IF // Increment starting row to find next break ll_breakrow = ll_breakrow + 1 LOOP IF lb_found = false THEN MessageBox( & "Not Found", & "The Department was not found.") ELSE ... // Processing for Dept 121 END IF
Bonsoir à tous,
Je reviens sur ce sujet parce que je dois livrer ce module dans les jours qui viennent...
C'est OK pour la fonction
ll_breakrow = dw_1.FindGroupChange(2, 1)
cette dernière permet par exemple de chercher la repture suivante dans le group 2.
Mais ce que j'ai pas compris, le GetItem pour récuperer une valeur qui se trouve dans ce group.
Par exemple si je fais comme ça :
dw_1.GetItemNumber(ll_breakrow, "dept_id")
Est-ce que cette commande permet de récuperer la valeur du champ dept_id qui se trouve dans le detail ou dans le group 2 ?
Merci pour votre éclaircissement...
Dernière modification par mattdamon (01-12-2010 16:53:48)
Hors ligne
Pour répondre à ma question, j'ai trouvé ce post sur le forum :
http://pbadonf.fr/forum/viewtopic.php?pid=23434#p23434
Hors ligne