Bonjour
le troubadour a écrit :lorsque l'on veut supprimer le filtre ça ne supprime pas le critère de recherche
Normal, le contrôle n'est pas inclus dans la macro.
Il suffit de l'ajouter.
Code : Tout sélectionner
With oForm
.getByName("lstAnnee").SelectedItems = Array()
.getByName("lstMotifs").SelectedItems = Array()
.getByName("lstPRest").SelectedItems = Array()
.getByName("rechNom").Text = ""
.getByName("numDoss").Text = ""
End With
Pour l'ouverture du formulaire ça ne peut pas fonctionner. Le champ IdDossier étant de type Integer,
doit être remplacé par
Mais la macro
PositionParSignet2 balaie tous les enregistrements (7193) et n'affiche le bon enregistrement dans le formulaire que lorsqu'il est trouvé.
Si l'enregistrement est dans les derniers de la recherche, c'est long (voir très long ; le temps est relatif
)
Tu aurais peut-être intérêt à filtrer le formulaire.
Code : Tout sélectionner
Sub PositionParFiltre(oEv as Object)
Dim oForm as Object, ctrlListeChoix as Object, NouveauFormulaire as Object, Grille as Object
Dim ValeurChoix as Integer, nomFormulaire As String, Motif as Integer
oForm = oEv.Source.Model.Parent
Grille = oForm.getByName("Dossiers_Grid")
vueGrille = thisComponent.CurrentController.getControl(Grille)
lignesSel = vueGrille.Selection
If UBound(lignesSel)<> 0 Then
MsgBox("Vous devez sélectionner une ligne",64)
Exit Sub
Else
ValeurChoix = oForm.getInt(2)
Motif = oForm.getInt(3)
End If
Select case Motif
Case 0
nomFormulaire = "fDossiersAbsent"
Case 1
nomFormulaire = "fDossiersCandidatlibre"
Case 2
nomFormulaire = "fDossiersDuplicata"
Case 3
nomFormulaire = "fDossiersEtablisFerme"
Case 4
nomFormulaire = "fDossiersRetenus"
Case 5
nomFormulaire = "fDossiersVerifAdm"
Case 6
nomFormulaire = "fDossiersVM"
End Select
NouveauFormulaire = OuvrirFormulaire(nomFormulaire)
With NouveauFormulaire.drawpage.forms.getbyname(nomFormulaire)
.Filter="""IdDossier"" =" & ValeurChoix
.Applyfilter = True
If .isloaded = False Then
.load
Else
.reload
End If
End With
FermerFormulaire("flstDossiers1")
End Sub
Je suis actuellement sous une version 4.4.7.2 de LibO et l'affichage du Formulaire avec le bon enregistrement se fait tout de suite.
je testerais ce soir sous LibO 5.0.5.2.
A+