lua:ajout_fichier
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
lua:ajout_fichier [2021/02/23 19:01] – admin | lua: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é | ||
- | |||
- | **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' | ||
- | |||
- | 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: | ||
- | local ok, | ||
- | if ok then | ||
- | self.dataset.edit() | ||
- | local img=nsbase.fileSystem.readFile(filename,' | ||
- | self.dataset.setFieldname(' | ||
- | end | ||
- | end | ||
- | </ | ||
- | On remarque, que l'on sélection l' | ||
- | |||
- | <code lua> | ||
- | local ok, | ||
- | </ | ||
- | Il faut mettre la table édition par | ||
- | |||
- | <code lua> | ||
- | self.dataset.edit() | ||
- | </ | ||
- | |||
- | Lire le fichier image en format binaire dans une variable " | ||
- | |||
- | <code lua> | ||
- | local img=nsbase.fileSystem.readFile(filename,' | ||
- | </ | ||
- | |||
- | Affecter l' | ||
- | |||
- | <code lua> | ||
- | self.dataset.setFieldname(' | ||
- | </ | ||
- | |||
- | Pour supprimer l' | ||
- | |||
- | <code lua> | ||
- | function frmContacts: | ||
- | self.dataset.edit() | ||
- | self.dataset.setFieldname(' | ||
- | end | ||
- | </ | ||
- | |||
- | **2 Cas des fichiers PDF** | ||
- | |||
- | NSBase n' | ||
- | |||
- | On procède pratiquement de la même manière que pour une image | ||
- | |||
- | <code lua> | ||
- | function frmText: | ||
- | local ok, | ||
- | if ok then | ||
- | self.dataset.edit() | ||
- | local pdf=nsbase.fileSystem.readFile(filename,' | ||
- | self.dataset.setFieldname(' | ||
- | end | ||
- | end | ||
- | </ | ||
- | |||
- | Pour les afficher on utilisera une fonction système | ||
- | |||
- | <code lua> | ||
- | function frmText: | ||
- | local pdf= self.dataset.setFieldname(' | ||
- | local filename=os.getenv (' | ||
- | nsbase.fileSystem.writeFile(filename, | ||
- | nsbase.system.openDoc(filename) | ||
- | end | ||
- | </ | ||
- | |||
- | Extraction du fichier de la base | ||
- | |||
- | <code lua> | ||
- | local pdf= self.dataset.setFieldname(' | ||
- | </ | ||
- | |||
- | Récupération de la variable d' | ||
- | |||
- | <code lua> | ||
- | local filename=os.getenv (' | ||
- | </ | ||
- | |||
- | Ecriture du fichier sur le disque en format binaire | ||
- | |||
- | <code lua> | ||
- | nsbase.fileSystem.writeFile(filename, | ||
- | </ | ||
- | |||
- | Soumission au système pour ouvrir le PDF | ||
- | |||
- | <code lua> | ||
- | nsbase.system.openDoc(filename) | ||
- | </ | ||
- | |||
- | Bien sur il faudra supprimer le fichier temporaire ainsi créé. | ||
- | |||
- | Pour les autres type fichiers, il faudra adapter le code dans le même esprit. | ||
- | |||
lua/ajout_fichier.txt · Dernière modification : 2022/10/24 12:15 de admin