

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
8 messages in org.openoffice.fr.progRe: [prog] format des annotations dan...| From | Sent On | Attachments |
|---|---|---|
| Pascal Duterme | Apr 20, 2006 11:07 pm | |
| Bernard Marcelly | Apr 21, 2006 4:15 am | |
| Pascal Duterme | Apr 21, 2006 11:38 pm | |
| Bernard Marcelly | Apr 22, 2006 3:37 am | |
| Francois Gatto | Apr 23, 2006 10:59 am | |
| Bernard Marcelly | Apr 23, 2006 1:50 pm | |
| Francois Gatto | Apr 23, 2006 10:24 pm | |
| pac | Apr 24, 2006 5:12 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] format des annotations dans une feuille de calcul | Actions... |
|---|---|---|
| From: | Francois Gatto (oo...@volcar.org) | |
| Date: | Apr 23, 2006 10:59:28 am | |
| List: | org.openoffice.fr.prog | |
Bonsoir Bernard, ... et les autres,
J'ai fait quelques tests sur les fonds de notes. La réalisation présentée ci-après permet de conserver la colorisation, mais après réouverture un élément parasite (Ancre) s'affiche.
Sans doute une propriété mal maîtrisée (?)
Si tu avais/quelqu'un avait une idée ...
<code_exemple> Sub InsertNote dim oCellule as object dim sNomFeuille as string dim sAdresseCellule as string dim sTexte as string Dim sPos as new com.sun.star.table.CellAddress
sNomFeuille = "Feuille1" sAdresseCellule = "G8" sTexte = "dimanche en couleur"
oCellule = ThisComponent.sheets.getByName( sNomFeuille ).getCellRangeByName( sAdresseCellule )
oCellule.String = "La cellule comporte une note" InsertAnnotation( oCellule, sTexte ) ModifAnnotation( oCellule, sTexte ) MsgBox( "Le fond de la note est en couleur", 64, "Note colorisée")
End Sub
Sub InsertAnnotation( oCell as Object, sText as String )
Dim sPos as new com.sun.star.table.CellAddress
sPos.Sheet = oCell.RangeAddress.Sheet sPos.Column = oCell.RangeAddress.StartColumn sPos.Row = oCell.RangeAddress.StartRow xray ThisComponent oCell.Spreadsheet.Annotations.insertNew( sPos, sText )
' la méthode ci-dessous ne me satisfait pas car elle génère ' une note aux dimensions exagérées ;) 'oCell.Annotation.AnnotationShape.createTextCursor.setString ("couleur verte")
end sub
Sub ModifAnnotation( oCell as Object, sText as String )
Dim sPos as new com.sun.star.table.CellAddress
sPos.Sheet = oCell.RangeAddress.Sheet sPos.Column = oCell.RangeAddress.StartColumn sPos.Row = oCell.RangeAddress.StartRow
With oCell .Annotation.AnnotationShape.FillStyle = 1 .Annotation.AnnotationShape.FillColor = 253672 'ou rgb(x,y,z) '.Annotation.AnnotationShape.FillColor2 = 10079487 End With
End Sub </code_exemple>
Bernard Marcelly a écrit :
Bonjour Bernard Marcelly Message du 2006-04-21 13:15:
Bonjour Pascal Duterme Message du 2006-04-21 08:08:
Bonjour,
J'utiliise pour le planning horaire d'une équipe de travail une feuille calc, avec quelques routines dont une qui permet d'insérer des annotations avec des remarques définies par l'utilisateur. Si l'annotation se met correctement, après peu de temps, la couleur de l'annotation disparaît (le fond devient transparent et peu lisible) et l'annotation se déplace loin de la cellule. Comment est-il possible de fixer définitivement le format des annotations?
Pour le fond transparent, c'est une régression de la version 2.0 <http://www.openoffice.org/issues/show_bug.cgi?id=63053> Mais il y a plusieurs méthodes pour écrire une annotation, qui évitent cette anomalie. Voir un autre fil de discussion récent dans cette liste.
Je me corrige. Il y a en fait deux méthodes, qui marchent toutes deux avec OOo 1.x mais posent problème toutes deux avec 2.0.x :
- celle décrite dans le livre Programmation maCellule.Annotation.String = "bla bla bla" Inconvénient : avec OOo 2.0.2 on obtient des caractères énormes
- la méthode officielle, décrite plusieurs fois ici : lesNotes = maFeuille.Annotations lesNotes.insertNew(maCellule.CellAddress, "Ceci est une note V2") Inconvénient : avec OOo 2.0.2 après sauvegarde en xxx.ods et fermeture du document, la note devient transparente à la réouverture du document.
Contournement de la bogue : sauver le document au format xxx.sxc. La note garde sa couleur, mais évidemment on ne profite pas des possibilités de formatage (manuel) de la note, qui sont spécifiques à la version 2.
Pour ce qui est de formater une note V2 par programmation, mes essais avec Xray m'ont montré que l'API n'y donne pas accès. On peut créer un curseur de texte mais on n'a aucune propriété de formatage (interface XSimpleText comme avec la V1). Si on accède à la forme de la note (pseudo-propriété AnnotationShape) on obtient bien des propriétés de formatage, mais tout essai se solde par une note transparente sans format. Ici aussi il y a une bogue (ou une limitation fonctionnelle). Le Developer's Guide du SDK n'apporte aucune aide car la description (chap 8.3.1 Cells) n'est pas mise à jour pour OOo 2.0.
Bonne journée Bernard
-- Francois GATTO







