ダッシュボードでの表示方法について
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-28-2022 02:57 AM - edited 10-28-2022 02:58 AM
お世話になっております。
ダッシュボードでの表示方法について伺いたく、投稿しました。
やりたい内容としては、あるテーブルのフィールドAとフィールドB(ともに時間や金額などのが入っている想定)の
合計値(もしくは平均値)を比較して、例えばA=<Bであれば「達成」、A>Bであれば「未達」のように
ダッシュボードに表示したいです。どのようにすれば良いでしょうか?
よろしくお願いいたします。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2022 05:06 AM
Widget の Dynamic Content で 比較した結果を表示する方法はどうでしょうか。コードは下記のようになります。Configure dynamic blocks (servicenow.com)
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_result">
var result = '';
var sumA;
var sumB;
var gr = new GlideAggregate('u_test_excel_20221031');
gr.addAggregate('SUM', 'u_field_a');
gr.addAggregate('SUM', 'u_field_b');
gr.setGroup(false);
gr.query();
if (gr.next()) {
sumA = Number(gr.getAggregate('SUM', 'u_field_a'));
sumB = Number(gr.getAggregate('SUM', 'u_field_b'));
if (sumA <= sumB) {
result = '達成 A '+sumA+', B '+sumB;
} else {
result = '未達成 A '+sumA+', B '+sumB;
}
}
result;
</g:evaluate>
<p style="text-align:center; font-size: xx-large;">${jvar_result}</p>
</j:jelly>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2022 07:04 PM
リプライありがとうございます。
Content BlocksのDynamic Contentで、いただいた情報を試してみます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-01-2022 07:04 PM
本件、コメントありがとうございました。
追加でご存知でしたら教えていただきたいのですが、
達成の場合には緑文字、未達成の場合には赤文字で
表示させるようなことは可能か、わかりますでしょうか?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-02-2022 03:21 AM
色付きにしました。XMLに記載のjelly についてはServiceNowの説明ページを参照してください。Jelly tags (servicenow.com)
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_result" object="true" >
var result = {};
var sumA;
var sumB;
var valueC;
var valueD;
var gr = new GlideAggregate('u_test_excel_20221031');
gr.addAggregate('SUM', 'u_field_a');
gr.addAggregate('SUM', 'u_field_b');
gr.setGroup(false);
gr.query();
if (gr.next()) {
sumA = parseFloat(gr.getAggregate('SUM', 'u_field_a'));
sumB = parseFloat(gr.getAggregate('SUM', 'u_field_b'));
valueC = sumA / sumB;
valueD = parseFloat(1);
if (valueC <= valueD) {
result = {
"result":'達成 A '+sumA+', B '+sumB + ', valueC ' + valueC.toFixed(2),
"valueC":(valueC*100).toFixed(2),
"color":"green"
};
} else {
result = {
"result":'未達成 A '+sumA+', B '+sumB + ', valueC ' + valueC.toFixed(2),
"valueC":(valueC*100).toFixed(2),
"color":"red"
};
}
}
result;
</g:evaluate>
<p style="text-align:center; font-size: xx-large; color:${jvar_result.color};">${jvar_result.result}</p>
<p style="text-align:center; font-size: xx-large; color:${jvar_result.color}">${jvar_result.valueC} %</p>
</j:jelly>