2009-11-06 5 views
2

Je veux demander comment ajouter une colonne calculée dans BIRT qui calcule un nombre à sa représentation de mot? (ex. 100 à « cent ») Donc, dans mon ensemble de données que je peux avoir une colonne qui contient la chaîneBIRT nombre à mot comme colonne calculée

Je suis nouveau à BIRT je l'espère, il y a un pointeur ou deux pour moi

Répondre

2

I Je suis conscient que c'est un vieux post, mais si vous êtes toujours intéressé, voici comment je vais le faire:

Ajoutez un script ou un pot contenant une fonction/méthode qui convertirait un nombre en un texte représentation. Pour ce faire, par exemple, créez un fichier server-side-utilities.js et dans l'onglet 'Explorateur de ressources' ajoutez la ressource. Ensuite, dans l''éditeur de propriétés' du rapport lui-même, cliquez sur l'onglet 'ressources' et ajoutez ce fichier JS.

Ensuite, éditez le fichier JS pour inclure une fonction qui convertit un nombre en texte et l'enregistre. Ensuite, dans votre boîte de dialogue, ajoutez une colonne calculée, nommez-la, définissez le type de données sur chaîne et définissez l'expression pour appeler la fonction définie, en transmettant à la fonction la valeur de la colonne appropriée, par ex. convertNumberToText(row["NUMERIC_COL"]).

Une mise en œuvre partielle de convertNumberToText() pourrait être:

function convertNumberToText(number) 
{ 
    var text; 

    switch (number) 
    { 
    case 1: 
    { 
     text = "One"; 
     break; 
    } 
    default: text = "Unsupported number"; 
    } 

    return text; 
} 
0

En fait, je vais proposer une autre solution, même si cette question a une réponse acceptée.

Créer une table de conversion dans la base de données elle-même le long des lignes de:

number as_one  as_first 
------ ----------- ------------ 
    1 one   first 
    2 two   second 
    99 ninety-nine ninety-ninth 

et il suffit d'utiliser une requête (ou sous-requête ou implicite/explicite join) pour récupérer la valeur textuelle du numéro » re intéresse.

Cela simplifie grandement le code sur le client au prix d'un stockage minimal et d'un peu de configuration de table.

Questions connexes