0
votes

Traiter avec des valeurs NULL dans @DBLOOKUP

J'ai une vue Domino avec une colonne de quantité mais certaines valeurs sont vides ... et doivent être. Le problème est que le @sum fonctionne bien jusqu'à ce que j'aie une valeur vide puis il arrête de faire la somme.

par exemple: si les valeurs sont 5,5, "" et 5, je reçois une somme de 10 et pas de 15. P >

J'ai tracé le problème au @DBLOOKUP, qui est qu'il arrête de construire la matrice de retour lorsqu'elle rencontre une valeur vide. Il n'y a pas de méthode intégrée de traiter avec des valeurs nulles. P>

https://www.ibm.com/support/nowledgecenter/fr/ssvrgu_9.0.1/reference/r_wpdr_atfonctions_dblookup_r.html P>

Pour rendre les choses plus difficiles, @DBLOOKUPUP Renvoie une chaîne si une seule est trouvée ou un tableau si plus d'un se trouve. Si les valeurs sont 5,5, "" et 5, il renvoie un tableau de 2 valeurs. P>

var alloc = @Sum(@DbLookup(@DbName(), "SubForms",MainFrmID , "ca_ca_ca_ca_amount"));
if (isNaN(alloc)){
    return "$0.00";
}else{
    return "$" + alloc.toFixed(2);
}


1 commentaires

Besoin d'être vide? Vous ne pouvez pas modifier la formule de colonne de vue sur @if (@isnumber (myfield); myfield; 0)? Que diriez-vous d'ajouter une autre vue cachée avec la même formule de sélection et une même clé, mais en utilisant cela pour la formule de colonne?


3 Réponses :


0
votes

je voudrais essayer @Sum (@Transform (@dblookup (....


2 commentaires

Merci Werner, j'ai donné cela un allé, mais @Transform non trouvé. Je crois (je suis nouveau à cela) que nous ne pouvons appeller que des fonctions qui sont écrits par admin. Erreur lors de l'exécution de l'erreur de script d'expression d'action JavaScript, ligne = 1, COL = 154: [RéférenceError] '@Transform' non trouvé sur [/xpcommon.js.jss] .xpsetv1computedfields () Toutes autres idées?


Si '@dblookup' tronque en effet le tableau retourné, alors "@Transform" ne voudrait pas aider de toute façon, j'ai peur.



0
votes

Si @DBLOOKUP ne fait pas ce dont vous avez besoin, vous pouvez toujours itérer sur des documents ou voir les entrées pour construire la somme.

Le flux serait grossièrement comme ça:
1. Obtenez une poignée à la base de données actuelle.
2. Obtenez une poignée sur la vue "Subforms".
3a. Obtenez une collection de saisie de la vue à l'aide de getallentriesbykey () avec Mainfrmid comme clé, si une colonne de vue existe qui affiche les valeurs dont vous avez besoin.
--Or--
3b. Obtenez une collection de documents à l'aide de getalldocumentsBykey () avec Mainfrmid comme clé, si aucune colonne de vue n'existe qui affiche les valeurs dont vous avez besoin.
4. Itérate sur la collection à résumer des valeurs, à l'aide de getcolumnValues ​​(). Obtenez (colonne) pour accéder à la valeur de chaque entrée de vue ou getItemValueDouble (nom de terrain) pour accéder à la valeur de chaque document.

De cette façon, vous pouvez facilement détecter les valeurs nulles et les jeter.


0 commentaires

1
votes

Je voudrais essayer @sum (@texttonumber (@Trim (@text (@dblookup (...))))


0 commentaires