Accueil Blog (en) Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Samvel Petrosov | Le 4 février 2021

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Aujourd’hui, je veux partager avec vous un petit truc sur la façon dont nous pouvons utiliser les styles de ligne avec des valeurs agrégées dans les demandes génériques. Ce n’est pas exactement évident ou intuitif comment on pourrait faire cela. D’après un examen superficiel, il semble que le système ne fournisse pas du tout cette fonctionnalité.

Regardons un scénario pour illustrer cela clairement.  Disons que nous devons créer un GI qui fournira du temps facturé et non facturable agrégé passé sur le projet spécifique par jour qui dépend de la productivité (100 * [temps facturable] / 8, en supposant que nous travaillons 8 heures par jour) mettre en évidence les lignes avec différentes couleurs (vert - productivité> = 70, orange - productivité> = 40 ou rouge).

Commençons à construire l’IG en ajoutant simplement une table PMTimeActivity et PMProject .

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Maintenant, fournissons les relations qui sont nécessaires. Nous le ferons avec une jointure interne sur l’ID de projet comme suit:

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Ensuite, nous devons ajouter un paramètre pour project CD afin que nous puissions diminuer le jeu de résultats pour le rendre plus lisible.

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Ensuite, nous ajoutons un regroupement par ID de projet pour l’instant . Acumatica nous permet d’obtenir le résultat directement à partir de la page d’enquête générique en cliquant sur le bouton Aperçu (en utilisant l’icône « œil » sur le panneau de droite). Maintenant, nous pouvons voir le résultat sans quitter la page.

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

La prochaine étape que nous devons faire est de changer le groupement en groupe; également à la date.

Personnellement, je n’aime pas la façon dont le regroupement fonctionne avec dates, donc j’utilise la formule ci-dessous pour le regroupement par jour = année ([PMTimeActivity.Date])* 10000 +[PMTimeActivity.Date_Month] * 100 + [PMTimeActivity.Date_Day] que vous pouvez voir en rouge ci-dessous.

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

AVERTISSEMENT : Cette formule peut ne pas fonctionner correctement en raison de la différence de fuseau horaire. Acumatica conserve les dates en UTC.

Nous allons maintenant ajouter quelques styles de ligne. La formule que nous utiliserons est la suivante:

=IIF(100 * CDec([PMTimeActivity.TimeBillable]/60) / 8>=70,'good', IIF(100 * CDec([PMTimeActivity.TimeBillable]/60) / 8>=40, 'orange40','bad'))

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Comme vous pouvez le voir ci-dessus dans la capture d’écran, le surbrillance n’a pas si bien fonctionné. La première ligne est surlignée en rouge, mais la productivité est > = 40 , ce qui signifie qu’elle doit être orange.

Le problème ici est dû au fait que la formule que nous avons fournie fonctionne sans regroupement et que le calcul prend la première activité pour la première fois pour ce groupe, que dans ce cas, vous pouvez voir ci-dessous comme 0 (zéro) temps facturable dans la deuxième ligne des activités de temps des employés répertoriées.

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Pour résoudre ce problème, nous devons avoir un moyen de dire au style de ligne que nous voulons que la valeur soit prise après le regroupement lui-même, bien qu’il n’y ait aucun moyen documenté de le faire à l’heure actuelle. Ce n’est pas une façon intentionnellement cachée de le faire, cependant.

Nous devons simplement utiliser la formule suivante à la place:

=IIF(PMTimeActivity_FormulaA4A7ACEFFCC1444DA018CE78DD1BFCA3>=70,'bon', IIF(PMTimeActivity_FormulaA4A7ACEFFCC1444DA018CE78DD1BFCA3>=40, 'orange40','mauvais'))

Comme vous l’avez peut-être remarqué ci-dessous, la ligne est maintenant mise en surbrillance correctement.

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Passons à autre chose et analysons les scripts SQL travaillant derrière le GI pour comprendre pourquoi cette formule a fonctionné et comment. Si nous vérifions le journal des demandes SQL, nous verrons le script ci-dessous. Comme vous pouvez le voir sur la capture d’écran, notre formule pour la colonne Productivité est sélectionnée avec un alias et correspond à la valeur que nous avons utilisée dans la formule pour le style de ligne.

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Ceci est généré par le code ci-dessous du graphique PXGenericInqGrph :

GIST: https://tinyurl.com/msu6dx4b

Et la méthode GetExtFieldId renvoie simplement la valeur RowID .

GIST: https://tinyurl.com/msu6dx4b

Par conséquent, le code ci-dessus ajoute l’ID de formule et de ligne. Examinons maintenant l’ID de ligne du GIResult pour cette ligne particulière:

Comment utiliser Acumatica Generic Inquiry Row Styles avec des valeurs agrégées

Comme vous pouvez le voir, le code ajoute _FormulaA4A7ACEF-FCC-1444D-A018-CE78DD1BFCA3 à l’alias de table qui est PMTimeActivity dans ce cas et c’est ainsi que le « PMTimeActivity_FormulaA4A7ACEF-FCC-1444D-A018-CE78DD1BFCA3 » généré.

Voici le lien vers le GIST: https://tinyurl.com/yck94f5y

J’espère que vous avez trouvé ces informations utiles dans votre propre travail de développement.

Bon codage!

 

Auteur du blog

Samvel est architecte logiciel chez Information Integration Group Inc. (IIG). Sa carrière a commencé en tant que développeur C # et a rapidement fusionné dans un rôle de développement d’analyste pour résoudre les limitations ERP standard. Il a plus de 5 ans d’expérience dans le développement de logiciels dans l’espace ERP et a géré tous les aspects du cycle de développement. Dans ses temps libres, il aime jouer aux échecs et lire des livres.

Recevez des mises à jour de blog dans votre boîte de réception.