Changer la devise de tous le champs

Le logiciel, quand une nouvelle base de données est créée automatiquement, définit tous les champs devise à la monnaie utilisée par le système.

Groupe Script

Programme

Événement

Action

Il peut arriver qu’il soit nécessaire d’avoir une devise qui ne correspond pas avec la standard et pour la changer il faudrait modifier chaque champ devise présent.

Cet exemple permet d’agir directement sur les paramètres des champs.

ATTENTION. EN CAS D’ERREURS IL EST POSSIBLE DE GÉNÉRER DES DYSFONCTIONNEMENTS ET DES BLOCAGES DU LOGICIEL. IL FAUT FAIRE ATTENTION ET ESSAYER D‘ABORD SUR UNE BASE DE DONNÉES DE TEST.

Nous allons agir directement sur le tableau so_fields, c’est-à-dire le tableau qui gère tous les champs de la base de données.

{"ND":2,"CU1":"it-IT","CU2":"EUR","FCO":0,"def":""}

Le dictionnaire ci-dessus décrit les caractéristiques d’un champ devise. Au dedans ils sont indiqués. La première valeur CU1 indique le code dit culturinfo. À ce lien vous pouvez trouver la liste complète. Le deuxième code est celui de la devise et vous pouvez trouver la liste complète à ce lien.

En modifiant ces valeurs nous pouvons donc changer la devise du champ.

t = database.getsql("SELECT * FROM so_fields WHERE fieldtype=5")

nrows = t.countrows()

rows = t.getrows()


for i = 1, nrows do

parameters= rows[i].getvalue("param")

parameters = string.gsub(parameters,"it--IT","en-US")

parameters = string.gsub(parameters,"EUR","USD")

database.setsql("UPDATE so_fields SET tid=" .. tostring(utility.tid()) .. ",param='" .. utility.convap(parameters) .. "' WHERE gguid='" ..

rows[i].getvalue("gguid") .. "'")

database.addsyncbox("so_fields",rows[i].getvalue("gguid"))

output.print(parameters)

end

Comme vous pouvez voir dans l’exemple, d’abord nous récupérons du tableau so_fields tous les champs de type 5, c’est-à-dire les champs devise. Après en utilisant les commandes de Lua nous remplaçons les valeurs actuelles avec celles souhaitées et nous enregistrons dans la base de données.

De cette façon nous avons forcé la mise à jour de tous le champs.

Vu le type d’opération fermez le logiciel et ouvrez-le à nouveau pour permettre le chargement de nouvelles valeurs.