新規投稿
フォローする

別のアプリから、チェックボックスの該当レコード数を集計したい

kintone,javascriptを勉強し始めの初心者です。以下ご教授お願いいたします。

アプリAに日付フィールド、部門フィールド、条件1~3チェックボックスがあります。

別の集計用アプリ(以下アプリB)に集計開始日フィールドと集計終了日フィールド、部門フィールドが入力してあります。上記の条件でアプリAから抽出したレコード件数をアプリBの部門件数フィールドに格納することは、以下の質問から行うことができました。

別のアプリから条件に合うレコード集を取得したい – cybozu developer network

ただ、条件1のチェックボックスにチェックが入っているレコード数を条件1件数フィールドに格納することができません。

ご教授のほど、よろしくお願いいたします。

 

0

10件のコメント

Avatar
juridon

こんにちは!

条件2,3のチェックボックスでは集計できるけど、条件1のチェックボックスだけ集計できないということでしょうか👀?

ソースの分からないところと、画面を差し支えない範囲で添付いただけると答えやすいかもしれないです^^!

1
Avatar
T.H

juridon さん

コメントありがとうございます。

条件2.3も集計できません。紛らわしくてすみません。

ある期間の特定部門のレコード数と、特定部門の条件1のレコード数をそれぞれ

フィールドに格納したいのですが、

チェックボックスにチェックが入っているものを

どのように記述して判断するのかがわからないのです。

以下のようにしています。

よろしくお願いいたします。

 

(function() {
"use strict";
kintone.events.on(["app.record.edit.submit", "app.record.create.submit"], function(event) {
var end, record, start, appId, staff;
appId = xxx;
record = event.record;
start = record["開始日"].value;
end = record["終了日"].value;
staff = record["部門"].value;
check1= "条件1";
return kintone.api(kintone.api.url('/k/v1/records', true), "GET",{
app: appId,
totalCount: true,
query: '日付 >= "' + start + '" and 日付 <= "' + end + '" and 部門 = "' + staff + '" and 条件1 = "' + check1 + '"'
}).then(function(res){
record["件数"].value = res.totalCount;
return event;
});
});
})();

 

 

0
Avatar
juridon

なるほどです!状況理解できました^^

チェックボックスのqueryはちょっと特殊で、

↓のドロップダウンと同じように、inを使って書きます。

https://developer.cybozu.io/hc/ja/articles/900001057206

 

↓こちらの下の方には、フィールドと対応しているクエリの書き方が一覧になっています。

https://developer.cybozu.io/hc/ja/articles/202331474#q1

 

なので、queryの、

 条件1 = "' + check1 + '"'

のところを in を使って書き換えると良いかと思います^^

1
Avatar
T.H

juridon さん

早速のご返答ありがとうございます。

試してみます。

ありがとうございました。

1
Avatar
T.H

juridonさん

無事にカウントすることができました。

ありがとうございました。

 

条件1のレコード数を件数フィールドに

条件2のレコード数を件数2フィールドに格納することができません。

ご教授いただけないでしょうか?

ご確認のほど、よろしくお願いいたします。

0
Avatar
juridon

こんにちは!

カウントはできたのですね!良かったです。

格納できないのところなのですが、
想像がつかないため、動かない部分のソースを(個人情報などの差し支えない範囲で)貼っていただけますでしょうか👀!?

1
Avatar
T.H

juridon様

早速のご連絡ありがとうございます。

 

(function() {
"use strict";
kintone.events.on(["app.record.edit.submit", "app.record.create.submit"], function(event) {
var end, record, start, appId, staff;
appId = xxx;
record = event.record;
start = record["開始日"].value;
end = record["終了日"].value;
staff = record["部門"].value;

return kintone.api(kintone.api.url('/k/v1/records', true), "GET",{
app: appId,
totalCount: true,
query: '日付 >= "' + start + '" and 日付 <= "' + end + '" and 部門 = "' + staff + '" and check1 in("条件1")'
}).then(function(res){
record["件数1"].value = res.totalCount;
return event;
});
});
})();

 

上記に

query: '日付 >= "' + start + '" and 日付 <= "' + end + '" and 部門 = "' + staff + '" and check2 in("条件2")'
}).then(function(res){
record["件数2"].value = res.totalCount;

 

を追加し、

条件1のレコード数を件数1に、条件2のレコード数を件数2に格納したいのですが、

上手くいきません。どのように追加すればよいのかがわかりません。

お手数おかけしますが、ご確認のほど、よろしくお願いいたします。

0
Avatar
juridon

そういうことですか~!なるほど!
チェックボックスによって集計する数が変わりますよね!

return kintone.api~~

のところですが、↓下の記事の下から2番めのサンプルコードを参考にされるといいかもしれません!

https://developer.cybozu.io/hc/ja/articles/900001244323

 

param1,param2,param3というのは

param1= {
app: appId,
totalCount: true,
query: '日付 >= "' + start + '" and 日付 <= "' + end + '" and 部門 = "' + staff + '" and check1 in("条件1")'
}

みたいなかんじにして

resp1.totalCount
resp2.totalCount
・・・
を件数に入れたらいいと思います👀!た、たぶんですが!

1
Avatar
T.H

juridon様

 

早速のご回答ありがとうございます。

いろいろ試して路頭に迷っていたのですが、

これでまた動くことができます。

ありがとうございます!

0
Avatar
T.H

juridon様

 

ありがとうございます。

ご教授いただいた記事をもとに記述しましたところ

無事に希望通りのものができました。

高度なものは無理ですので、

とりあえず数珠つなぎで記述してみたところうまくいきました。

どうしようか数か月悩んでいたものが一気に解決いたしました。

本当にありがとうございました。

 

0
サインインしてコメントを残してください。