[Résolu] [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 19 sept. 2024 07:48
[Résolu] [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
Bonjour,
je sélectionne une ligne sur ma grille dans la listbox (ligne "pare-brise" dans l'exemple ci-dessous), je gère correctement l'affichage pour la modifier.
Mon problème survient si l'utilisateur, après la sélection de la ligne, fait un tri sur une colonne par exemple sur Traité et fait de nouveau une modification Il voit maintenant la ligne "Révision" sélectionnée mais l'affichage dans la modification est resté sur "Pare-brise"
J'ai déclaré un listener pour gérer les sélections dans la grille mais je n'arrive pas à détecter un tri sur colonne pour annuler la sélection.
J'ai cherché également une solution pour ne pas autoriser le tri sur colonne mais sans succès.
Auriez-vous une idée ?
Le code et les copies d'écran en pjs
Merci Dan
je sélectionne une ligne sur ma grille dans la listbox (ligne "pare-brise" dans l'exemple ci-dessous), je gère correctement l'affichage pour la modifier.
Mon problème survient si l'utilisateur, après la sélection de la ligne, fait un tri sur une colonne par exemple sur Traité et fait de nouveau une modification Il voit maintenant la ligne "Révision" sélectionnée mais l'affichage dans la modification est resté sur "Pare-brise"
J'ai déclaré un listener pour gérer les sélections dans la grille mais je n'arrive pas à détecter un tri sur colonne pour annuler la sélection.
J'ai cherché également une solution pour ne pas autoriser le tri sur colonne mais sans succès.
Auriez-vous une idée ?
Le code et les copies d'écran en pjs
Merci Dan
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 20 sept. 2024 08:34, modifié 1 fois.
Raison : Balisage
Raison : Balisage
LibreOffice 7.6.7.2 sous Windows 10
-
- RespOOnsable forum
- Messages : 9580
- Inscription : 28 août 2010 08:45
Re: comment désactiver la sélection sur un Grid suite à un tri sur colonne
Bonjour et bienvenue,
1- Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.
Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
Avez-vous remarqué comment étaient postées les autres questions ?
Lisez ce fil pour savoir quelle balise utiliser : sutra27295.html#27295
N'oubliez pas que les termes Macro, OpenOffice, LibreOffice ne doivent pas être employés car il sont implicites. Essayez de synthétiser au mieux ce que vous cherchez à faire.
Nous vous remercions de le faire lors de votre prochain passage.
2- Remarque : Vous joignez un document au format .doc, format propriétaire. Ici on utilise les formats ODF.
Veuillez séparer le code et la copie d'écran.
Pour poster votre code ou vos formules utilisez le bouton Afficher du code (balises [ code] et [ /code]) et collez-le code entre ces balises.
Ceci afin d'éviter aux bénévoles qui prennent sur leur temps, de télécharger votre fichier puis de l'ouvrir pour inspecter la macro en question.
Et la copie d'écran peut être jointe séparément, les formats images sont acceptés.
Merci de votre collaboration.
1- Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.
Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.
Avez-vous remarqué comment étaient postées les autres questions ?
Lisez ce fil pour savoir quelle balise utiliser : sutra27295.html#27295
N'oubliez pas que les termes Macro, OpenOffice, LibreOffice ne doivent pas être employés car il sont implicites. Essayez de synthétiser au mieux ce que vous cherchez à faire.
Nous vous remercions de le faire lors de votre prochain passage.
2- Remarque : Vous joignez un document au format .doc, format propriétaire. Ici on utilise les formats ODF.
Veuillez séparer le code et la copie d'écran.
Pour poster votre code ou vos formules utilisez le bouton Afficher du code (balises [ code] et [ /code]) et collez-le code entre ces balises.
Ceci afin d'éviter aux bénévoles qui prennent sur leur temps, de télécharger votre fichier puis de l'ouvrir pour inspecter la macro en question.
Et la copie d'écran peut être jointe séparément, les formats images sont acceptés.
Merci de votre collaboration.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
-
- GourOOu
- Messages : 9659
- Inscription : 18 juil. 2008 15:29
- Localisation : F-Oise + F-Savoie
Re: comment désactiver la sélection sur un Grid suite à un tri sur colonne
Bonjour et bienvenue,
En plus du code et, joignez le fichier dépersonnalisé vous faciliteriez l'obtention d'une solution adaptée.
En plus du code et, joignez le fichier dépersonnalisé vous faciliteriez l'obtention d'une solution adaptée.
AOO 4.1.15 et LibO 24.2.6 / macOS Intel 13.7.1 Ventura
Adoptium-temurinJDK-jre_1.8.0_432 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Adoptium-temurinJDK-jre_1.8.0_432 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 19 sept. 2024 07:48
Re: désactiver la sélection sur un Grid suite à un tri sur colonne
bonjour,
voici le fichier complet dépersonnalisé.
Comme il y a beaucoup de macros, il faut regarder le module Entretien
merci
Dan
voici le fichier complet dépersonnalisé.
Comme il y a beaucoup de macros, il faut regarder le module Entretien
merci
Dan
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.7.2 sous Windows 10
-
- RespOOnsable forum
- Messages : 12457
- Inscription : 08 nov. 2005 16:23
- Localisation : Caen, France
Re: désactiver la sélection sur un Grid suite à un tri sur colonne
Et donc, où est le balisage obligatoire dans votre titre ?
Modifié à votre place.
Inutile de nous fournir un document au format Microsoft.
Les images doivent être insérées directement ici sans avoir à télécharger quoi que ce soit. Afin d'optimiser la recherche et l'indexage, il convient de publier le code directement dans le message :
Merci de nous aider à garder la qualité de ce forum.
Modifié à votre place.
Inutile de nous fournir un document au format Microsoft.
Les images doivent être insérées directement ici sans avoir à télécharger quoi que ce soit. Afin d'optimiser la recherche et l'indexage, il convient de publier le code directement dans le message :
Code : Tout sélectionner
Sub AfficherEntretien()
Dim ligneEntretienAuto As Integer
Dim ColTab0 As Object, ColTab1 As Object, ColTab2 As Object, ColTab3 As Object, oFont As Object, Columnmodel As Object, Cell as object
dim oEvt(1) as new com.sun.star.beans.PropertyValue
'déclaration de la listebox qui sera insérée pour les interventions
DlgModelEntretien = oDlgEntretien.getModel("ListEntretien")
If DlgModelEntretien.hasByName("ListEntretien") Then
DlgModelEntretien.RemoveByName("ListEntretien")
end if
'déclaration du tableau à l'intérieur de la listbox qui contiendra les données de résa
GridModelEntretien = DlgModelEntretien.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
'taille et police du tableau
With GridModelEntretien
.PositionX = 12 : .PositionY = 110 : .Width = 406 : .Height = 136 : oFont = .FontDescriptor : oFont.Name = "Courrier" : oFont.Height = 12 : oFont.Width = 5
'permet de faire des selections multiples dans un grid control
.SelectionModel = com.sun.star.view.SelectionType.MULTI
End With
'déclaration des colonnes du tableau
Columnmodel = GridModelEntretien.ColumnModel
ColTab0 = Columnmodel.createColumn() : ColTab0.Title = "Date Demande" : Columnmodel.addColumn(ColTab0)
ColTab1 = Columnmodel.createColumn() : ColTab1.Title = "Date Intervention" : Columnmodel.addColumn(ColTab1)
ColTab2 = Columnmodel.createColumn() : ColTab2.Title = "Lieu Intervention" : Columnmodel.addColumn(ColTab2)
ColTab3 = Columnmodel.createColumn() : ColTab3.Title = "Type" : Columnmodel.addColumn(ColTab3)
ColTab4 = Columnmodel.createColumn() : ColTab4.Title = "Observations" : Columnmodel.addColumn(ColTab4)
ColTab5 = Columnmodel.createColumn() : ColTab5.Title = "Traité" : Columnmodel.addColumn(ColTab5)
With ColTab0
.ColumnWidth = "50"
.Resizeable = False
' .ColumnSortMode = 0
end With
With ColTab1
.ColumnWidth = "50"
.Resizeable = False
end With
With ColTab2
.ColumnWidth = "80"
.Resizeable = False
end With
With ColTab3
.ColumnWidth = "61"
.Resizeable = False
end With
With ColTab4
.ColumnWidth = "132"
.Resizeable = False
end With
With ColTab5
.ColumnWidth = "20"
.Resizeable = False
.HorizontalAlign = 1
end With
'insertion du tableau dans la boite de dialogue
DlgModelEntretien.InsertByName("ListEntretien", GridModelEntretien)
'création d'un listener qui gère la ligne sélectionnée dans listbox des indispo
oGridEntretien = oDlgEntretien.getControl("ListEntretien")
oListenerEntretien = CreateUnoListener("gridModelEntretien_", "com.sun.star.awt.grid.XGridSelectionListener")
oGridEntretien.addSelectionListener(oListenerEntretien)
DataModelEntretien = GridModelEntretien.GridDataModel
'remplissage de la listbox avec les données du tableau mémoire
For indiceTab = 0 To indtabEntretien - 1
DataModelEntretien.AddRow(indiceTab, Array(tabEntretien(indiceTab, 0), tabEntretien(indiceTab, 1), tabEntretien(indiceTab, 2), tabEntretien(indiceTab, 3), tabEntretien(indiceTab, 4), tabEntretien(indiceTab, 5)))
Next
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
Salut,
A lire ta routine, tu utilises un contrôle table dans un dialogue.
Comme stipulé dans le suprême de code, mis à part l'écoute sur le changement de sélection, il n'existe pas d'autre événement disponible.
Et dans ton cas, Calc n'est pas l'outil idéal dans ce qui s'apparente à une base de données.
Les formulaires dans Base et le contrôle de table seraient sans nul doute plus souples.
A lire ta routine, tu utilises un contrôle table dans un dialogue.
Comme stipulé dans le suprême de code, mis à part l'écoute sur le changement de sélection, il n'existe pas d'autre événement disponible.
Et dans ton cas, Calc n'est pas l'outil idéal dans ce qui s'apparente à une base de données.
Les formulaires dans Base et le contrôle de table seraient sans nul doute plus souples.
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 19 sept. 2024 07:48
Re: [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
merci pour ce retour, et à ma proposition de désactiver le tri sur les colonnes dans un grid, est-ce possible ?
Pour ma part, je n'ai pas trouvé.
Dan
Pour ma part, je n'ai pas trouvé.
Dan
LibreOffice 7.6.7.2 sous Windows 10
-
- IdOOle de la suite
- Messages : 25602
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
En utilisant XRay, on peut voir qu'il y a une propriété booléenne ShowColumnHeader au niveau de la couche objet UnoGridModel :
En désactivant l'entête des colonnes, le tri sera impossible.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 19 sept. 2024 07:48
Re: [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
effectivement il suffit d'ajouter ce paramètre à False pour ne pas afficher les entêtes et de "dessiner" ces entêtes dans la boîte de dialogue indépendamment de la grid section
Excellente Idée
merci beaucoup
comme je suis nouveau, je tente de fermer la discussion en mettant résolu
Excellente Idée
merci beaucoup
comme je suis nouveau, je tente de fermer la discussion en mettant résolu
LibreOffice 7.6.7.2 sous Windows 10
-
- RespOOnsable forum
- Messages : 9580
- Inscription : 28 août 2010 08:45
Re: [Calc] désactiver la sélection sur un Grid suite à un tri sur colonne
La coche accrochée au titre du dernier message ne correspond pas au balisage recommandé.
Comment clore un sujet lorsqu'il est résolu
Comment clore un sujet lorsqu'il est résolu
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Outils > Options sur Windows = OpenOffice > Préférences sur macOS