IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XMLRAD Discussion :

XMLC_Culture


Sujet :

XMLRAD

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Par défaut XMLC_Culture
    Bonjour,

    Je voudrais changer le format d'affichage des nombres pour le format US.

    J'ai créé mon projet en 7P1, depuis j'ai mis à jour XMLRad et je suis actuellement en version 7.0.8.708, je suppose que ca correspond à la version 7P8. Ensuite j'ai du créer un projet et regarder quels fichiers il n'y avait pas dans le projet sur lequel je travaille, j'y ai donc ajouté les deux fichiers Cultures.xml et Cultures.Locales.xml.

    J'utilise le initparam XMLC_Culture avec comme valeur EN mais ca ne fonctionne pas.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Par défaut
    As-tu bien mis à jour la DLL de ton ancien projet avec celle générée pour le nouveau projet ?
    Ou as-tu recompilé ton projet ?

    Si c'est le cas, donne nous d'autres infos sur ton problème...

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Par défaut
    J'ai :
    1- Recompilé
    2- Copié les deux fichiers dans le même dossier que mon .dpr
    3- Ajouté dans InitParams XMLC_Culture, valeur EN

    J'utilise une chaine de formatage sur le float dans mon XMLGram : %.2f

  4. #4
    RDM
    RDM est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par défaut
    C'est normal que ca ne marche pas actuellement. seul les dates sont prises en compte par XMLC_Culture actuellement. les flotants devraient l'être prochainement.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Par défaut
    Merci,

    En fait j'ai installé mon application sur un Windows 2000 Version US.

    Il semble que par défaut ce soit la culture de la machine qui soit utilisée car même après avoir choisit dans les paramètres régionaux le format
    français les float sont affiché avec le point comme séparateur décimal.

    Existe il un moyen de changer le séparateur décimal pour la virgule ?

  6. #6
    RDM
    RDM est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par défaut
    XMLC_OSCulture devrait quand meme t'aider:
    dans InitParams, positionne le paramètre
    XMLC_OSCulture à EN
    cela forcera a prendre pour les formats non pas ceux de l'OS mais ceux qui sont définis dans Cultures.xml
    Attention c'est la valeur dans la culture que tu as choisi pour XMLC_OSCulture qui sera envoyée au serveur SQL. cela peut poser d'éventuels problèmes

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Par défaut
    Cela me pose déjà des problèmes car dans un de mes services j'ai :
    - Deux instructions SQL successives
    - La première sert à arrondir un nombre saisi par un utilisateur
    - La seconde utilise ce nombre arrondi pour mettre à jour la base de données

    Etant donné que mon serveur est un windows 2000 US et que j'ai choisi l'affichage en FR, le résultat de la première instruction est un float avec comme séparateur la virgule, je dois donc reconvertir cette valeur en US avant de mettre à jour la base Interbase.

    Et si tu vas voir dans un de mes autres messages je dois ensuite tester dans le code delphi le résultat de ma deuxième instruction pour voir si une des valeurs (un float au format FR) est égale à zéro car le XSL travaillant en US le test n'est pas possible Pas facile ...

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Par défaut Culture ...
    Attention !!! (si tu utilise Ole DB ...)

    il y a un invité surprise dans la gestion des cultures .... c'est la culture de l'utilisateur IUSR_NomMachine.

    en effet, lors de la connexion à la base, c'est le séparateur de décimale de l'utilisateur IUSR_NomMachine qui est pris en compte pour les dialogues IIS-BDD.

    je te recommande donc de bien mettre le même séparateur pour l'utilisateur, XMLC_OSCulture, et XMLC_Culture, car sinon, tu vas devoir créer des fonctions de conversion assez lourdes à appliquer...

  9. #9
    Nouveau candidat au Club
    Inscrit en
    Janvier 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 3
    Par défaut
    Une autre possibilté, forcer les regional Settings en modifiant la base de registre comme ci-dessous :

    Windows Registry Editor Version 5.00

    [HKEY_USERS\.DEFAULT\Control Panel\International]
    "iCountry"="33"
    "iCurrDigits"="2"
    "iCurrency"="3"
    "iDate"="1"
    "iDigits"="2"
    "iLZero"="1"
    "iMeasure"="0"
    "iNegCurr"="8"
    "iTime"="1"
    "iTLZero"="1"
    "Locale"="0000040C"
    "s1159"=""
    "s2359"=""
    "sCountry"="France"
    "sCurrency"="F"
    "sDate"="/"
    "sDecimal"=","
    "sLanguage"="FRA"
    "sList"=";"
    "sLongDate"="dddd d MMMM yyyy"
    "sShortDate"="dd/MM/yyyy"
    "sThousand"="*"
    "sTime"=":"
    "sTimeFormat"="HH:mm:ss"
    "iTimePrefix"="0"
    "sMonDecimalSep"=","
    "sMonThousandSep"="*"
    "iNegNumber"="1"
    "sNativeDigits"="0123456789"
    "NumShape"="1"
    "iCalendarType"="1"
    "iFirstDayOfWeek"="0"
    "iFirstWeekOfYear"="0"
    "sGrouping"="3;0"
    "sMonGrouping"="3;0"
    "sPositiveSign"=""
    "sNegativeSign"="-"

    Radical non ?

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Par défaut
    C'est en effet ce que je fais lors de l'installation de mes applis

    et c'est radical en effet ...

    mais pour accueillir des utilisateurs du monde entier, c'est un peu trop ! car mine de rien, il faut réelleent gérer le séparateur de décimale et SURTOUT le format des langues car XMLRAD gère bien le formatage, mais si on reprend la man dans le code et que l'on veut manipuler des valeurs date contenues dans le contexte, cela se complique vraiment (car delos n'a pas encore développé, à ma connaissance, de fonctions de transformation automatique des dates.

  11. #11
    RDM
    RDM est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par défaut
    en fait si, elles existent mais il faut savoir d'où vienne les valeurs:
    si une date vient du coté utilisateur, pour la convertir en TDateTime
    il faut utiliser
    XMLUtils.StrToDateTimeDef() (XMLC_Culture)
    si la valeur vient du serveur SQL:
    XMLUtils.OSStrToDateTimeDef (XMLC_OSCutlure)

    une fois que l'on a la valeur en TDateTime
    pour la transformé en chaine de caractère:
    XMLUtils.FormatCultureDateTime (XMLC_Culture) pour l'avoir coté utilisateur
    SysUtils.DateTimeToStr (XMLC_OSCulture) pour lenvoyer vers le Serveur SQL

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 214
    Par défaut
    Autant pour moi, je n'avais pas vu.

    Super info. Merci.

  13. #13
    RDM
    RDM est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par défaut
    C'est pas forcément evident. J'ai regardé dans XMLGram.pas pour trouver cela. Dans le TDBExtract.DoProcess.FormatFieldValue et dans le TDataInsturction.FillParams

  14. #14
    Membre confirmé
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Par défaut
    Quand est ce que le support complet des cultures sera disponible dans XMLRad ?

    Je n'arrive pas vraiment à m'en sortir avec le formatage des nombres ... si je force XMLC_Culture et XMLC_OSCulture à EN sur une machine FR (et inversement) j'ai une erreur lors de l'exécution du XMLGram car j'utilise une chaîne de formatage %.2f (si je me souviens bien en Delphi pour formater on passe directement d'un float à une chaîne, XMLRad semble passer par une chaîne intermédiaire).

    J'avais supprimé XMLC_Culture et XMLC_OSCulture car ce n'était pas si grave de voir des points à la place des virgules mais du coup je ne peux pas maîtriser l'affichage des dates, surtout que les chaînes de formatage ne sont pas encore supportées pour les dates.

    La machine sur laquelle je fais tourner mon application est chez AMEN or ils utilisent des serveur Windows 2000 US ... HELP !

  15. #15
    RDM
    RDM est déconnecté
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par défaut
    Dans le prochain build, m'a dit Kurt Crawford d'e-delos ! Ils ont rajoutés des méthods similaires au formatage de dates. Par contre je n'ai pas d'info sur la date du prochain build, car ils sont encore en train de travailler sur la refonte des statistiques avec pleins de nouveautés de ce coté là !!

Discussions similaires

  1. XMLC_CULTURE & XMLC_OSCULTURE team !!!
    Par mchicoix dans le forum XMLRAD
    Réponses: 7
    Dernier message: 10/02/2006, 14h02
  2. Pb de paramètre [XMLC_Culture]
    Par Pm dans le forum XMLRAD
    Réponses: 25
    Dernier message: 25/01/2003, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo