PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Stockage parametres
Stockage parametres
Iniciado por GB, abr., 08 2020 1:02 PM - 5 respostas
Membro registado
325 mensagems
Popularité : +8 (10 votes)
Publicado em abril, 08 2020 - 1:02 PM
Bonjour.
Pour mon projet d ERP je souhaite créer une fenetre me permettant de paramétrer certaines options du logiciel.

Actuellement je souhaiterai créer des champs paramétrables dans un etat :

- Mentions légales (assurances etc...)
- % acompte
- mentions complementaires diverses.

Ces champs d etat seraient alimentés par ces paramètres.

Que me conseillez vous pour stocker ces données ?
Un fichier parametre ?
Un fichier ini lu et alimentant des variables ?

Merci de vos idées et réponse
Membro registado
3.887 mensagems
Popularité : +227 (347 votes)
Publicado em abril, 08 2020 - 1:27 PM
GB a écrit :
Un fichier ini lu et alimentant des variables ?

Normalement les fichiers INI ne doivent plus être utilisés sous Windows depuis XP, on leur préfère la base de registre.
Regarde du côté de ChargeParamètre, SauveParamètre ou en C/S HSauveParamètre, HChargeParamètre

--
Il y a peut être plus simple, mais, ça tourne
Membro registado
129 mensagems
Popularité : +20 (20 votes)
Publicado em abril, 08 2020 - 1:28 PM
Bonjour,

Pour ma part je dirai que tout dépend de l'utilisation :

- sur un projet qui se connecte sur différentes bases de données suivant le site où il est utilisé j'ai un fichier ini avec les variables de connexion
- pour les valeurs / fichiers ne nécessitant pas d'historique, j'ai une table de paramétrage variable / valeur / fichier (ex. mentions complémentaires)
- pour les valeurs utilisées avec des calculs nécessitant des critères de dates, j'ai une table de définition de variable plus une table IDVariable / date début / date fin / valeur (ex. % acompte qui peut évoluer dans le temps)
Membro registado
325 mensagems
Popularité : +8 (10 votes)
Publicado em abril, 08 2020 - 8:20 PM
Bonsoir,

merci de vos réponse.

A priori le stockage de paramètre dans un fichier XML peut répondre a mon besoin :

- je définis les paramètre,
- je les sauve dans le fichier
- le les charge dans la fenetre, ou là où ils doivent etre utilisés (état ...)


si je passe par un fichier :

- un champ nom_paramètre, un champ valeur

je lis chaque champ dans ma fenetre paramètre ou dans mon état. J'aurais donc un hlit pour chaque champ nécessaire.


J'ai tout bon ... ou presque ??
Membro registado
129 mensagems
Popularité : +20 (20 votes)
Publicado em abril, 09 2020 - 9:16 AM
Bonjour,

oui c'est ça, on peut aussi imaginer lire une fois toutes les variables pour les mettre dans un tableau.

un exemple de ce que je fais :
j'ai un fichier caisse_variable




et 3 petites procédures, une qui récupère unitairement une valeur de variable, une qui récupère unitairement un fichier (chemin généré à la volée)
et une qui récupère un tableau de chemin de fichiers
// Exemple d'utilisation :
// IBAN est une chaine = recuperer_caisse_variable_valeur( "SEPA.IBAN", TypeVar( IBAN ) )

Procedure recuperer_caisse_variable_valeur( _variable est une chaîne, _typeVariable est un entier )

valeur est un Variant

HLitRecherchePremier( caisse_variable, Variable, _variable )
SI HTrouve( caisse_variable ) ALORS

valeur = caisse_variable.Valeur
VariantConvertit( valeur, _typeVariable )

FIN // SI HTrouve( variable ) ALORS

RENVOYER valeur


// Exemple d'utilisation :
// IMG_logo = recuperer_caisse_variable_fichier( "IMG_logo" )

Procedure recuperer_caisse_variable_fichier( _variable est une chaîne )

repertoire, infos, Fichier est une chaîne
fichiers est un tableau de 0 chaîne

repertoire = ComplèteRep( fRepDonnéesCommun() ) + ComplèteRep( "fichiers" )
SI PAS fRepExiste( repertoire ) ALORS

fRepCrée( repertoire )

FIN // SI PAS fRepExiste( repertoire ) ALORS

ChaîneVersTableau( fListeFichier( repertoire + "\" + _variable + ".*", frNonRécursif ), fichiers )
SI TableauOccurrence( fichiers ) = 1 _ET_ fichiers[ 1 ] <> "" ALORS RENVOYER fichiers[ 1 ]

HLitRecherchePremier( caisse_variable, Variable, _variable )
SI HTrouve( caisse_variable ) ALORS

infos = HInfoMemo( caisse_variable, Fichier )
SI infos <> "" ALORS

Fichier = repertoire + [ "\" ] + caisse_variable.Variable + fExtraitChemin( ExtraitChaîne( infos, 2, TAB ), fExtension )
SI PAS fFichierExiste( Fichier ) ALORS
HExtraitMémo( caisse_variable, Fichier, Fichier )
FIN // SI PAS fFichierExiste( fichier ) ALORS

FIN // SI infos <> "" ALORS

FIN // SI HTrouve( variable ) ALORS

RENVOYER Fichier


// Exemple d'utilisation :
//ListeSupprimeTout( COMBO_image )
//ListeAjoute( COMBO_image, gLien( "" ) + "Aucun" )
//variables est un tableau de 0 chaîne = recuperer_caisse_variable_images()
//POUR TOUT v DE variables
//
// ListeAjoute( COMBO_image, gLien( v ) + v )
//
//FIN // POUR TOUT v DE variables

Procedure recuperer_caisse_variable_images()

repertoire, infos, Fichier est une chaîne
variables est un tableau de 0 chaîne

repertoire = ComplèteRep( fRepDonnéesCommun() ) + ComplèteRep( "fichiers" )
SI PAS fRepExiste( repertoire ) ALORS

fRepCrée( repertoire )

FIN // SI PAS fRepExiste( repertoire ) ALORS

HLitPremier( caisse_variable )
TANTQUE PAS HEnDehors( caisse_variable )

infos = HInfoMemo( caisse_variable, Fichier )
SI infos <> "" ALORS

Fichier = repertoire + [ "\" ] + caisse_variable.Variable + fExtraitChemin( ExtraitChaîne( infos, 2, TAB ), fExtension )
SI PAS fFichierExiste( Fichier ) ALORS
HExtraitMémo( caisse_variable, Fichier, Fichier )
FIN // SI PAS fFichierExiste( fichier ) ALORS
SI fFichierExiste( Fichier ) ALORS
TableauAjoute( variables, caisse_variable.Variable )
FIN // SI fFichierExiste( fichier ) ALORS

FIN // SI infos <> "" ALORS

HLitSuivant( caisse_variable )
FIN // TANTQUE PAS HEnDehors( caisse_variable )

TableauTrie( variables )
RENVOYER variables

En espérant que ça peut aider
Membro registado
325 mensagems
Popularité : +8 (10 votes)
Publicado em abril, 09 2020 - 12:35 PM
Plus ou moins. Mais j ai compris l l'idée d d'alimenter un tableau ou autre structure

Je vais poursuivre ma reflexion pour gerer le besoin au mieux