Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

[Basic] dialogs.FilePicker setDefaultName ne fonctionne pas [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre émérite Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 1 229
    Points : 2 641
    Points
    2 641
    Par défaut [Basic] dialogs.FilePicker setDefaultName ne fonctionne pas
    Bonjour,

    Je débute avec LO Basic (avec Libre Office 6.2.7.1) et
    je n'arrive pas à définir le nom par défaut du fichier dans une boite FilePicker, il n'apparaît pas dans la boite de dialogue

    Avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub DemanderNomFichier
     Dim dlgArgs(0) as Integer 
     Dim dlg as Object            'dialogs.FilePicker
     Dim url as string            'url fichier macro
     Dim nom as string            'nom fichier
     
        ' nom du fichier
        nom = "Mon fichier.ods"
        ' url du répertoire courant 
        url = ThisComponent.getURL() 
        url = urlDossierParent(url)
        ' boite de dialogue
        dlg = CreateUnoService("com.sun.star.ui.dialogs.FilePicker") 
        dlgArgs(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE
        With dlg
            .Initialize(dlgArgs()) 
            .setTitle("Choisir le dossier de destination")
            .CurrentFilter = "Calc Documents"
            .setDisplayDirectory(url)
            .appendFilter("Calc Documents", "*.ods")
            .setDefaultName(nom) 
        End With
        ' - affiche la boîte de dialogue "Ouvrir" 
         If dlg.Execute() <> 1 Then Exit Sub 
        Msgbox ConvertFromUrl(dlg.Files(0))
     
    End Sub
     
    Function urlDossierParent(sUrl as String)
     Dim s As String
     Dim n As Long
     
       s = sUrl
       For n = Len(s) To 1 Step -1
          If Mid(s, n, 1) = "/" Then Exit For
       Next n
       urlDossierParent = Left(s, n - 1)
     
    End Function
    Voici le fichier : Test dialog.ods

    Quelqu'un saurait-il pourquoi ?
    Serait-ce un bug ?
    A défaut, y aurait-il une solution alternative ?
    Cordialement,
    Patrice
    Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  2. #2
    Membre émérite Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 1 229
    Points : 2 641
    Points
    2 641
    Par défaut [Basic] dialogs.OfficeFilePicker setDefaultName fonctionne bien
    Bonjour le fil,

    Citation Envoyé par Patrice740 Voir le message
    Quelqu'un saurait-il pourquoi ?
    Serait-ce un bug ?
    A défaut, y aurait-il une solution alternative ?
    Je pose les questions et j'y réponds
    Après plusieurs essais infructueux avec FilePicker et SystemFilePicker,
    j'ai opté pour une alternative : utiliser OfficeFilePicker moins esthétique mais entièrement fonctionnel.


    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub DemanderNomFichier
     Dim dlgArgs(0) as Integer 
     Dim dlg as Object            'dialogs.FilePicker
     Dim url as string            'url fichier macro
     Dim nom as string            'nom fichier
     
        ' nom du fichier
        nom = "Mon fichier.ods"
        ' url du répertoire courant 
        url = ThisComponent.getURL() 
        url = urlDossierParent(url)
        ' boite de dialogue
        dlg = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker") 
        dlgArgs(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE
        With dlg
            .Initialize(dlgArgs()) 
            .setTitle("Choisir le dossier de destination")
            .appendFilter("Calc Documents", "*.ods")
            .CurrentFilter = "Calc Documents"
            .setDisplayDirectory(url)
            .setDefaultName(nom) 
        End With
        ' - affiche la boîte de dialogue "Ouvrir" 
         If dlg.Execute() <> 1 Then Exit Sub 
        Msgbox ConvertFromUrl(dlg.Files(0))
     
    End Sub
     
    Function urlDossierParent(sUrl as String)
     Dim s As String
     Dim n As Long
     
       s = sUrl
       For n = Len(s) To 1 Step -1
          If Mid(s, n, 1) = "/" Then Exit For
       Next n
       urlDossierParent = Left(s, n - 1)
     
    End Function
    Cordialement,
    Patrice
    Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    mars 2003
    Messages
    1 213
    Détails du profil
    Informations forums :
    Inscription : mars 2003
    Messages : 1 213
    Points : 1 875
    Points
    1 875
    Par défaut
    Le code joint fonctionne comme attendu sous AOO 4.1.6 et Windows 7
    Nom : filepicker_rocks.gif
Affichages : 18
Taille : 744,2 Ko
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  4. #4
    Membre émérite Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    mars 2007
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : mars 2007
    Messages : 1 229
    Points : 2 641
    Points
    2 641
    Par défaut
    Citation Envoyé par Bidouille Voir le message
    Le code joint fonctionne comme attendu sous AOO 4.1.6 et Windows 7
    Ce n'est pas le cas avec Libre Office 6.2.7.1 et Windows 10-1903 (32 bits)
    Cordialement,
    Patrice
    Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PrimeFaces] Dialog et draggable ne fonctionne pas
    Par denisduval75 dans le forum JSF
    Réponses: 2
    Dernier message: 12/03/2018, 18h05
  2. Réponses: 0
    Dernier message: 03/11/2016, 20h49
  3. UI Dialog. Close ne fonctionne pas
    Par jby43 dans le forum jQuery
    Réponses: 2
    Dernier message: 12/05/2010, 16h38
  4. [2008 Team Suite] Rajout Visual Basic ne fonctionne pas
    Par CUCARACHA dans le forum Visual Studio
    Réponses: 7
    Dernier message: 21/11/2009, 09h43
  5. Common Dialog ne fonctionne pas
    Par Mariquiqui dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/08/2008, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo