ホーム › フォーラム › ReportsConnect for Kintone › ログインユーザのみのデータを印刷したい場合
-
投稿者投稿
-
2017年7月21日 2:29 PM #523renton参加者
以前も同じ質問をさせて頂いたのですが、もう一度投稿させて頂きます。
たとえば仕入先コードが複数あって、その仕入先コードに対応するログインユーザ毎のレコードだけを表示させるアクセス権を設定した場合に、そのログインユーザのレコードだけを印刷することはできますか。
レコードの条件 ユーザ
例:仕入先コード =(等しい) 15 ○○商事 閲覧にチェックこの設定が仕入先コード毎に複数設定されており、各ユーザでログインすると、そのユーザのみのデータが表示されるようになっています。
現在は一つ印刷用のユーザを登録してありReportsConnectの帳票のログイン名のところに設定してあります。すべての条件に印刷用のユーザを追加して閲覧にチェックをすれば印刷はできるのですが、○○商事以外のデータも印刷されてしまいます。ログインしたユーザのみのデータを印刷する方法は何かありますでしょうか。
2017年7月28日 4:07 PM #526fujita参加者renton様
レコードに設定された表示条件と同じ条件をSOQLに入れてみてください。
この場合ですと、仕入先コード=ログインユーザになるのでしょうか。
データの所有者が各ユーザになっているのであれば
所有者=ログインユーザでも良いかと思います。2017年7月31日 9:27 AM #527renton参加者fujita様
ご返信いただきありがとうございます。
その設定をしてみたいと思うのですが、SOQLというのはどこに
設定するものなのでしょうか。Kintone側ですか、それともireport側ですか。また設定するとして、簡単でいいのでどのような記述をすればいいのか
教えて頂けると幸いです。
(SOQLというのを初めて聞いたので、何か参考になるものを教えて頂けると
大変助かります。)2017年7月31日 10:33 AM #528renton参加者fujita様
追記です。この場合は、仕入先コード=ログインユーザになっています。
2017年7月31日 10:33 AM #529fujita参加者renton様
SOQLはSalesforce版の設定の話でした。
勘違いしており、申し訳ありません。
kintone側の設定を確認いたしますので、少々お待ちください。2017年7月31日 10:39 AM #530renton参加者fujita様
よろしくお願いいたします。
2017年8月2日 6:15 PM #531fujita参加者renton様
遅くなりました。下記をお試しください。
・マニュアル(https://www.reportsconnect.com/dw/manual_kt.pdf)の
P28の④、(kpsrc.rcparms.kps_ql ~)の行を削除
・P30の②、クエリーに今回の条件を記入
例)作成者がログインユーザのものだけ表示したいのであれば
作成者 in (“USER”, LOGINUSER())
となります。2017年8月4日 1:55 PM #532renton参加者fujita様
ご返信頂きありがとうございます。
データにログインユーザの項目がなかったので、データにログインユーザの項目を追加して、教えて頂いた手順で行いましたが、うまくいきませんでした。
なので、kintone.getLoginUser().codeを使用したところログインユーザのデータのみ印刷できました。ただ、一覧画面で絞り込み条件を指定して、印刷をしたい場合があったので下記のようなコードを記載しました。絞り込み条件かつログインユーザの印刷をすることができましたが、一覧画面ですべてを選択して印刷をしようとすると、「入力内容が正しくありません」というエラーで印刷ができません。一覧すべてで印刷をしたい場合もあるのですが、その場合、どのようなコードを書けばよろしいでしょうか?
var user = “\”” + kintone.getLoginUser().code + “\”” ;
kpsrc.rcparms.kps_ql = kintone.app.getQueryCondition() + “and” + ” ” + ‘ユーザー in’ + “(” + user + ”)”;2017年8月4日 2:59 PM #533takase参加者renton様
一度クエリの内容をconsole.logでご確認いただけますでしょうか?
console.log(‘クエリ条件: ‘+kpsrc.rcparms.kps_ql);
シングルクオートやダブルクオートの数や位置で条件にエラーが出ることがよくあります。
また、この記述ですとkintoneのアプリ一覧に条件が設定されていなかった際も不正な条件でエラーとなります。
下記のコードも参考にしてみてください。var user = kintone.getLoginUser().code;
var condition = kintone.app.getQueryCondition();
if(condition != ”){
kpsrc.rcparms.kps_ql = kintone.app.getQueryCondition() + ‘ and ユーザー = \”‘+ user + ‘\”‘;
}else{
kpsrc.rcparms.kps_ql = ‘ユーザー = \”‘+ user + ‘\”‘;
}2017年8月4日 3:32 PM #534renton参加者takase様
ご返信ありがとうございます。
教えて頂いたコードですが、if(condition != “)のところは、if(condition != “”) でよろしいですか。if(condition != “”)にかえて試してみたところ、 クエリの条件は、納品日 = LAST_MONTH() and ユーザー =”ユーザー名”
と表示され問題なさそうですが、印刷時に下記エラーになりました。
エラーにより印刷できません!:id: 252AmJBuMst4UOwm9HJk, code: GAIA_IQ03, message: ユーザーフィールドのフィールドタイプには演算子=を使用できません。/ユーザーフィールドのフィールドタイプには演算子=を使用できません。
この場合は、どこを直したらよろしいでしょうか?
2017年8月4日 4:06 PM #535takase参加者renton様
ユーザー項目のデータ型が分からなかったので、こちらでは文字列のフィールドを想定して比較しておりました。
エラーメッセージの通りで、演算子= をinに変えていただければ良いかと思います。2017年8月4日 4:15 PM #536renton参加者takase様
ご返信ありがとうございます。
すいません。投稿した後に in に変えればいいことに気づきました。 in に変えて試したところ、正常に動作して、望んだデータが印刷されました。
いろいろと教えて頂きありがとうございました。大変助かりました。
2017年8月4日 4:16 PM #537takase参加者※補足です
‘ユーザー in (\”‘+ user + ‘\”)’;
-
投稿者投稿
- このトピックに返信するにはログインが必要です。