Outils pour utilisateurs

Outils du site


lua:ajout_fichier

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
info:lua:ajout_fichier [2022/10/23 20:59] adminlua:ajout_fichier [2022/10/24 12:15] – supprimée - modification externe (Unknown date) 127.0.0.1
Ligne 1: Ligne 1:
-**Ajout de fichiers dans NSBase de type PDF, image....** 
- 
-NSBase peut gérer des fichiers dans sa base. 
-Pour cela il faut créer une table contenant des champs de type image ou fichier 
- 
-Créer ensuite un formulaire, mettre dans la propriété  datasource du formulaire, le nom de la table précédemment créée 
- 
-** Les différents cas : ** 
-  - [[https://www.nsbase.neuts.fr/doku.php?id=lua:ajout_fichier#1|Cas des images]] 
-  - [[https://www.nsbase.neuts.fr/doku.php?id=lua:ajout_fichier#2|Cas des fichiers PDF]] 
-  - [[https://www.nsbase.neuts.fr/doku.php?id=lua:ajout_fichier#3|Cas des autres fichiers]] 
-  - [[https://www.nsbase.neuts.fr/doku.php?id=lua:ajout_fichier#4|Utilisation du composant "Attachments"]] 
- 
-{{anchor:1:}}**1 Cas des images** 
- 
-Pour les images, on peut les afficher directement par le composant image. il faudra documenter la propriété fieldname de cette image en relation avec le champ image de la table. Le composant image gère l'importation des images directement dans la base  (click). 
- 
-On peut également le réaliser par code LUA, exemple sur le clic d'un bouton (code extrait de la base Contact.nsb): 
- 
-<code lua> 
-function frmContacts:btnLoadImageActionOnClick() 
-  local ok,filename=nsbase.dialog.fileOpen('Open image','All files|*.*','','') 
-  if ok then 
-    self.dataset.edit() 
-    local img=nsbase.fileSystem.readFile(filename,'bin') 
-    self.dataset.setFieldname('Photo',img) 
-  end 
-end 
-</code> 
-On remarque, que l'on sélectionne l'image par une boite de dialogue. 
- 
-<code lua> 
-local ok,filename=nsbase.dialog.fileOpen('Open image','All files|*.*','','') 
-</code>   
- 
-Il faut mettre la table édition par 
- 
-<code lua> 
-self.dataset.edit() 
-</code> 
- 
-Lire le fichier image en format binaire dans une variable "img" 
- 
-<code lua> 
-local img=nsbase.fileSystem.readFile(filename,'bin') 
-</code> 
- 
-Affecter l'image dans le champ de la table 
- 
-<code lua> 
-self.dataset.setFieldname('Photo',img) 
-</code> 
- 
-Pour supprimer l'image de la base sans supprimer l'enregistrement complet: 
- 
-<code lua> 
-function frmContacts:btnClearImageActionOnClick() 
-  self.dataset.edit() 
-  self.dataset.setFieldname('Photo','') 
-end 
-</code>  
- 
- 
-{{anchor:2:}}**2 Cas des fichiers PDF** 
- 
-NSBase n'affiche pas les PDF(autres que les rapports) dans l'application. On va les visualiser via le système d'exploitation par Acrobat Reader ou autre. 
- 
-On procède pratiquement de la même manière que pour une image 
- 
-<code lua> 
-function frmText:btnLoadPDFActionOnClick() 
-  local ok,filename=nsbase.dialog.fileOpen('Open PDF|*.pdf|All files|*.*','','') 
-  if ok then 
-    self.dataset.edit() 
-    local pdf=nsbase.fileSystem.readFile(filename,'bin') 
-    self.dataset.setFieldname('PDFFile',pdf) 
-  end 
-end 
-</code> 
- 
-Pour les afficher on utilisera une fonction système 
- 
-<code lua> 
-function frmText:btnShowPDFActionOnClick() 
-  local pdf= self.dataset.setFieldname('PDFFile') 
-  local filename=os.getenv ('TEMP') .. '\\tmp.pdf' 
-  nsbase.fileSystem.writeFile(filename,pdf,'bin') 
-  nsbase.system.openDoc(filename) 
-end 
-</code> 
- 
-Extraction du fichier de la base 
- 
-<code lua> 
-local pdf= self.dataset.setFieldname('PDFFile') 
-</code> 
- 
-Récupération de la variable d'environnement contenant le chemin des fichiers temporaires, ect concaténation avec le nom du fichier PDF que l'on va créer 
- 
-<code lua> 
-local filename=os.getenv ('TEMP') .. '\\tmp.pdf' 
-</code> 
- 
-Ecriture du fichier sur le disque en format binaire 
- 
-<code lua> 
-nsbase.fileSystem.writeFile(filename,pdf,'bin') 
-</code> 
- 
-Soumission au système pour ouvrir le PDF 
- 
-<code lua> 
-nsbase.system.openDoc(filename) 
-</code>  
- 
-Bien sûr il faudra supprimer le fichier temporaire ainsi créé. 
- 
- 
-{{anchor:3:}}**3 Cas des autres type de fichiers** 
- 
-Pour les autres type fichiers, il faudra adapter le code dans le même esprit que [[https://www.nsbase.neuts.fr/doku.php?id=lua:ajout_fichier#2|que les fichiers PDF]] 
-. 
- 
-{{anchor:4:}}**4 Utilisation du composant "Attachments"** 
- 
-Depuis la V1.9.6 vous pouvez utiliser la fonctionnalité de pièces jointes dans NSBase pour ajouter un ou plusieurs fichiers (documents, présentations, images, etc.) aux enregistrements de votre base de données. 
- 
-Pourquoi devrais-je utiliser des pièces jointes ? 
- 
-Vous pouvez utiliser des pièces jointes pour stocker plusieurs fichiers dans un seul champ, et vous pouvez même stocker plusieurs types de fichiers dans ce champ. Par exemple, supposons que vous possédiez une base de données de contacts professionnels. Vous pouvez maintenant joindre un ou plusieurs CV à l’enregistrement pour chaque contact, ainsi que d'autres documents, images... 
- 
-Vous pouvez ajouter un ou plusieurs composants "Attachment" dans le formulaire précédemment créé 
-Un double clic vous permettre en runtime d'ajouter, supprimer des fichiers, images... 
- 
-il faudra documenter la propriété fieldname de cette image en relation avec le champ image de la table (ce champ devra être impérativement de type fichier) 
- 
-Différentes propriétés spécifique permettent de contrôler le management des pièces jointes : 
-  * MaxFiles : Nombre de fichiers maximun 
-  * MaxKoSize  : taille maximale de l'ensemble des fichiers 
-  * Thum.... : Taille des vignettes 
-  * Image... : Réglage affichage des images 
-  * Layout : Mode d'affichage des vignettes 
- 
-Propriétés atteignables uniquement en LUA: 
-  * SelectedIndex : Fichier sélectionné 
-  * SelectedPicture : Image séléctionnée 
-  * Entries : Liste des fichiers  
- 
-Voir exemple [[https://sourceforge.net/projects/nsbase/files/applications%20sources/demoattachment.nsb/download|"demoattachment.nsb"]] 
- 
  
lua/ajout_fichier.txt · Dernière modification : 2022/10/24 12:15 de admin