6 messages in org.openoffice.fr.progRe: [prog] Programmer des sous-totaux...
FromSent OnAttachments
Alpha BETAAug 23, 2004 11:00 am 
Alain NowakAug 24, 2004 1:58 am 
Alpha BETAAug 24, 2004 9:18 am 
Alain NowakAug 25, 2004 2:39 am 
Alpha BETAAug 25, 2004 4:07 am 
Alpha BETAAug 25, 2004 4:28 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Programmer des sous-totaux sous calc ?Actions...
From:Alpha BETA (bet@free.fr)
Date:Aug 25, 2004 4:28:33 am
List:org.openoffice.fr.prog

J'ai aussi testé sous OO 1.1.1 ça marche !!!

Merci encore ----- Original Message ----- From: Alain Nowak To: pr@fr.openoffice.org Sent: Wednesday, August 25, 2004 11:39 AM Subject: Re: [prog] Programmer des sous-totaux sous calc ?

Bon, alors voila le code obtenu en transcrivant le Java en Basic (et testé
sous OOo1.1.2) :

Sub sousTotaux Dim oSubTotalColumn(0) as new com.sun.star.sheet.SubTotalColumn

' acces a la zone de cellules oCells = ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1:C5") oSubDesc = oCells.createSubTotalDescriptor(true)

' Somme de la troisième colonne oSubTotalColumn(0).Column = 2 oSubTotalColumn(0).Function = com.sun.star.sheet.GeneralFunction.SUM ' group by first column oSubDesc.addNew( oSubTotalColumn(), 0 ) oCells.applySubTotals( oSubDesc, true ) End sub

Et voili !

-- Alain Nowak - starxpert www.starxpert.fr

Alpha BETA a écrit :

Merci de l'info, toutefois en supposant que je puisse en effet imposer une
plage par cette méthode : ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1:D6") qui pour moi deviendra dans ma macro : Asheet=ThisComponent.CurrentController.ActiveSheet Asheet.getCellRangeByName("A1:O7148")

Je reste coincé pour paramétrer createSubTotalDescriptor . Xray ne m'est
hélas pas très utile sur ce point.

Je coince vraiment .

Puis-je encore solliciter un coup de main ? Alpha

----- Original Message ----- From: Alain Nowak To: pr@fr.openoffice.org Sent: Tuesday, August 24, 2004 10:59 AM Subject: Re: [prog] Programmer des sous-totaux sous calc ?

Bonjour,

D'après l'exemple en Java, tu peux appeler createSubTotalDescriptor
directement sur un objet représentant une zone de cellule, qui est lui à obtenir
par qqchose comme : ThisComponent.Sheets.getByIndex(0).getCellRangeByName("A1:D6") (si la zone de donnée à transformer en sous-totaux est A1:D6 de la
première feuille) Sur l'objet obtenu, tu obtiens un descripteur du sous-total par
createSubTotalDescriptor, que tu vas ensuite paramétrer en indiquant sur quelles
colonnes porte le sous-total et s'il y a des groupements. Ce descripteur est
ensuite appliqué au sous-total par applySubTotals.

Bon courage,

Et si tu ne l'a pas encore fait, récupère l'outil Xray de Bernard Marcelly
(sur le site OOo), c'est souvent + rapide de trouver les méthodes qui vont bien
avec cet outil qu'en cherchant dans le Dev'Guide ...

-- Alain Nowak - starxpert www.starxpert.fr

Alpha BETA a écrit :

Bonjour,

Nouvel écueil pour moi: on vient de me demander de réaliser sous OO des
sous-totaux sur une feuille calc...

Manuelllement, c'est un vrai plaisir à manipuler.

Mais voilà, je veux aller plus loin et je tente depuis ce WE
d'automatiser la chose.

Péniblement je suis tombé sur
createUnoService("com.sun.star.sheet.SubTotalDescriptor") avec lune méthode
createSubTotalDescriptor( [in] boolean bEmpty ).

Mais plouf-plouf je suis bloqué.

Bien-sûr j'ai tenté ma chance avec l'enregistreur de macros qui comme
toujours me renvoie au Dispatcher avec une plage Array() : dispatcher.executeDispatch(document, ".uno:DataSubTotals",
"", 0,Array() )

Tout cela est bien gentil mais outre forcer l'ouverture de la boîte de
dialogue des sous-totaux propree à ma feuille active, je ne sais comment remplir
automatiquement cette boîte et encore moins comment activer ces fameux
sous-totaux. Encore une fois le dispatcher est une voie sans issue....

La seule chose que je sache est donc de devoir chercher la solution de
paramétrage du createUnoService("com.sun.star.sheet.SubTotalDescriptor") ...

Si quelqu'un peut m'aider ce serait super .

A propos le guide du developpeur propose un truc mais en JAva et je ne
sais pas quoi en faire . Même question..

Merci d'avance aux bonnes âmes qui voudront bien me donner un coup de
main!