Enregistrement sur le disque en masqué ou en lecture seuleJ'ai un script .jsl qui extrait les données d'un serveur SQL et les enregistre sous .jmp et .xlsx.Le fichier .jmp permet de consulter les données sans attendre la requête SQL. Le fichier .xlsx permet à un autre fichier .xlsm de le lire (également sans attendre) et d'exécuter d'autres macros si nécessaire.
Cependant, certaines personnes sans JMP ouvrent le fichier .xlsx pour lire les données.Et puis ils ne le ferment pas – ce qui signifie que le .jsl ne peut pas enregistrer une nouvelle copie mise à jour (toutes les heures) – ce qui signifie que le .xlsm utilise des données obsolètes.
Je souhaite que le fichier .jsl enregistre une copie cachée (pour le fichier .xlsm) et une copie visible (pour les humains), mais il semble que la sauvegarde .jsl sur un fichier caché soit interdite.Sans surprise, il s’agit d’un enregistrement sur un fichier en lecture seule.
Puis-je enregistrer .jsl sur un fichier caché ? Puis-je d'abord utiliser .jsl pour afficher le fichier ?Existe-t-il une solution beaucoup plus simple que j'oublie ?Merci d'avance.
Re : Sauvegarde sur le disque en masqué ou en lecture seuleSalut Craig, ou public, je suis un vrai HACK chez jsl, si la table Excel que je souhaite enregistrer en lecture seule (sur un fichier *.xlsx actuellement ouvert ou masqué) se trouve dans \\Server\Engineering\Project\qbert .xlsx, comment puis-je appliquer le script ci-dessus ? Dans l’exemple, txt est-il la table qui vous intéresse ? Et si oui, quels sont les termes text, attrib.exe et file ? S'agit-il de fonctions jsl ou de références à la table que je manipule ?Merci d'avance!!-Devin
Re : Sauvegarde sur le disque en masqué ou en lecture seuleMerci Craige, cela ouvre des portes intéressantes.Re : Sauvegarde sur le disque en masqué ou en lecture seuledeux extraits qui pourraient être utiles
// make read only: attrib.exe +R <PATH>
txt=Run Program(executable("attrib.exe"),options({"+R","\!""||file||"\!""}),readfunction("text"));
if(txt!="",show(txt));</PATH>et
// make NOT read only: attrib.exe -R <PATH>
txt=Run Program(executable("attrib.exe"),options({"-R","\!""||convertfilepath(file,windows)||"\!""}),readfunction("text"));
if(txt!="",show(txt));</PATH>Vous devriez probablement également utiliser le convertFilePath(... , windows) sur celui du haut ; l'attribut du programme de ligne de commande attendra un nom de style Windows. Je pense que le code que j'ai récupéré sait que celui du haut est déjà OK. Attrib n'imprime rien quand cela fonctionne. Le if(...show...) sert à déboguer les mauvais noms de chemin. Le document indique que attrib peut également définir et effacer l'attribut caché.
Je pense que la lecture seule est la voie à suivre ; Je soupçonne que cela empêchera d’autres programmes de vous bloquer.