kSQL Dashboard Pro は、kintone のレコード一覧画面に kSQL(read-only な SQL ライク構文)で集計したデータを、KPI カード・表・グラフのダッシュボードとして表示するプラグインです。SQL を書くだけで、一覧の上部が本格的なダッシュボードになります。
📌 本記事の位置づけ
無償版 kSQL Dashboard の上位版です。kSQL 本体(アプリを SQL ライクに操作するプラグイン)、無償版 kSQL Dashboard については別記事を参照してください。
実践例は SFA(営業支援)パックに SQL でダッシュボードを作る にまとめています(SQL・ペイン設定・表示結果を 9 ペインぶん掲載)。
🔥 主な特徴
- 📊 12 種類の表示タイプ: KPI カード / 高度データ表 / 棒(縦・横・積み上げ・横積み上げ)・折れ線・面・円・ドーナツ・複合グラフ / マークダウン
- 🗂️ タブ(最大 6): 1 つのダッシュボードをタブで分割。表示中のタブだけを集計するので、中身を増やしても表示は重くならない
- 📅 期間コントロールバー: 閲覧者が今日〜来年・任意期間を切り替え。SQL は
受注予定日 = @periodと 1 行書くだけで、kintone の相対日付関数がそのまま入る - 🖱️ WYSIWYG 設定画面: 実データのプレビューを見ながらドラッグ&ドロップで自由にレイアウト(最大 12 ペイン・60 カラムフリーグリッド)
- 📈 読み違えさせない作り: 上位 N + その他(件数つき)・目標線は軸を伸ばして必ず描く・区切りのいい目盛り・データバーと増減記号
- 🎨 6 テーマ + 利用者切り替え: ライト / クール / ウォーム / グレー / ミッドナイト / ブラック。一覧画面で利用者が自分好みに変更可能
- 🚀 性能への配慮: レコードの共有キャッシュ、kintone 関数(THIS_MONTH() 等)の REST プッシュダウン、折りたたみ中は SQL 未実行
- 🔁 環境に依存しない設定: SQL を論理アプリ名(
LAPP_顧客管理など)で書けば、別環境への移行は対応表の差し替えだけ。実行計画(EXPLAIN)で性能の裏付けも確認可能 - 🌏 日英中対応: UI はログインユーザーの言語設定(ja / en / zh)に自動追従
- 🔒 外部依存なし & CSP 安全: kSQL エンジン同梱・外部 CDN 不要
概要
📌 用語: ペイン
ダッシュボードを構成する 1 枚 1 枚の部品(タイル)をペインと呼びます。1 ペイン = 1 つの SQL + 1 つの表示タイプ(KPI カード・表・グラフなど)で、ペインを自由に並べたものがダッシュボードです。
- レコード一覧画面のヘッダースペースに、60 カラムのフリーグリッドでダッシュボードを表示します(1 タブ 12 ペイン・最大 6 タブ)。
- 各ペインに SQL 文と表示タイプ(KPI カード / 表 / グラフ 9 種 / マークダウン)、表示オプションを設定します。
- 一覧(ビュー)ごとにダッシュボードを出し分けできます(共通 / 個別 / 非表示)。
- データ取得は kSQL エンジン(read-only) を同梱。集計・結合・CASE 式などをクライアント側で安全に実行します。
ダッシュボード表示(一覧画面)
- ペインの幅は画面幅に比例してスケーリングし、ブラウザーズームや画面サイズが変わっても縦横比を保ちます(基準幅 1280px)。
- 幅 1024px 未満では 1 カラム縦積みに自動フォールバックします。
タブ(最大 6)
同じダッシュボードを 4 枚のタブに分けた例です。1 段の高さのまま、タブで中身を切り替えます。
1 つのダッシュボードを最大 6 枚のタブに分けられます。タブ列はダッシュボード名と同じ行に出るので、タブのために高さは増えません。
-
表示中のタブだけを集計します。 描画しないタブは SQL・レコード取得を実行しません。
3 タブ × 4 ペインなら、開いた瞬間に走るのは 4 ペインぶんだけ。タブを増やしても表示は重くなりません。 - 一度開いたタブの結果は保持され、タブを往復しても再実行しません(更新は再集計か自動更新)。
- 選んだタブはブラウザに記憶され、次に開いたときも同じタブが出ます。
- ← → で隣のタブへ移動できます。
一覧画面のヘッダーはレコードが主役なので、ダッシュボードは 1 段に抑えたい場所です。
タブは、その高さの制約を「深さ」に変換する機能です。
期間の切り替え(変数コントロールバー)
ダッシュボード上部のバーで、閲覧者が集計期間を切り替えられます。SQL の修正も、期間別のペイン複製も不要です。
- 選択肢は kintone の相対日付関数と 1:1(今日・昨日・明日・今週・先週・来週・今月・前月・来月・今年・去年・来年)+ 期間指定(任意の開始〜終了)。必要なものだけに絞れて、5 個以下なら横並びボタン、多ければドロップダウンで表示されます
- ペインの SQL は変数で 1 行書くだけ:
SELECT 商談フェーズ, SUM(売上) AS 売上
FROM APP4149
WHERE 受注予定日 = @period
GROUP BY 商談フェーズ
- バーで「前月」を選ぶと、
@periodにLAST_MONTH()が kintone の関数としてそのまま入ります(kintone サーバー評価なので、日時フィールドの境界やタイムゾーンも kintone 任せ。値として束縛されるため SQL インジェクションは起きません) -
期間指定(任意区間)に追従させたいペインは半開区間で書きます:
WHERE 受注予定日 >= @period_from AND 受注予定日 < @period_to_next(日付・日時フィールド共通)。期間指定の初期値は「当日から 1 か月前 〜 今月末」のような相対ルールで指定でき、いつ開いても正しい日付が入ります - 変数を使わないペインは切り替えの影響を受けません(再実行されない)。選択はブラウザに記憶されます
- コントロールは全タブ共通とタブ専用の 2 層 — 「プリセットで切り替えるタブ」「期間指定で絞り込むタブ」のように、タブごとに使い分けられます(設定はビュー設定の「期間コントロール…」とタブの右クリックから)
設定のようす
ヘッダー操作
たたむ ∨ はダッシュボード名・タブ列のすぐ隣(左)に、残りは右端に並びます。
たたむのは「このダッシュボードをどかす」操作で、右端の 3 つは「見た目の設定」なので分けてあります。
- たたむ ∨: ダッシュボードを細いバーにたたみます。折りたたみ中は SQL・レコード取得を実行しないため、重いダッシュボードを普段は閉じておけます。切替はブラウザに記憶されます(初期状態はプラグイン設定で指定可能)。
- テーマ切り替え 🎨: メニューから 6 テーマを選択。選択はブラウザに記憶され、管理者設定より優先されます(「管理者設定に従う」で解除)。
- フル画面表示 ⛶: ダッシュボードをブラウザ全面に表示します(Esc で復帰)。上部にダッシュボード名を表示。
ペインの操作(ホバーで表示)
- 再集計: そのペインだけ再実行(キャッシュ破棄)。
- CSV エクスポート: 表示中の結果を CSV ダウンロード(管理者が許可した場合のみ表示)。
- 拡大表示: ペイン 1 枚をフル画面オーバーレイで表示。再クエリなしで大きく確認できます。
- リンク: 作成者がリンクを設定したペインには、アイコン群の先頭にリンクアイコンが付きます。集計元のアプリや関連資料へ別タブで遷移できます(1 件なら直押し、2 件以上はメニュー)。
- ペインの説明 ⓘ: 作成者が説明を書いたペインには、タイトル横に ⓘ が付きます。カーソルを合わせるだけで「金額は税抜」「毎朝 9 時更新」のような集計条件・注意書きがポップアップ表示されます — 「この数字は何?」がダッシュボードの中で解決できます。説明はペインの枠を越えて表示され、幅も小・中・大から選べるので、対比表のような長めの説明も読めます。
表のレコード遷移
表ペインで $id 列を SELECT すると、行の左端に「レコードを開く」アイコンが表示され、クリックでレコード詳細を別タブで開きます(誤操作防止のため行全体のクリックでは遷移しません)。
自動更新
一覧ごとに自動更新の間隔を設定できます。最短 10 分・10 分単位(0 で無効)。
折りたたみ中は停止します。
表示タイプ
KPI カード
数値 1 つを大きく表示するカードです。SQL の列は次の優先順位で解決されます。
- 列の割り当て(設定画面で列名を直接指定)
-
予約列名(日英エイリアス・大文字小文字区別なし):
メイン値|value|main、タイトル|title、比較値|delta|comparison、基準値|前月値|base|previous、目標値|target|goal、達成率|rate|achievement -
1 列目フォールバック: 予約列名がなければ 1 列目をメイン値に使用(
SELECT COUNT(*) FROM APP1がそのまま動きます)
- 基準値があれば増減率(▲ 15% など)を自動計算、目標値があれば達成率を自動計算(プログレスバー表示も可)。
- 条件付きカラー: 閾値ルールで文字色・背景・カード枠をステータス色に変更(上限 10 ルール)。
高度データ表
- 複数列ソート(クリックで昇順→降順→解除、Shift で追加)。列の型に応じた比較。
- 集計行(合計・平均・件数など)を末尾固定表示。
- 条件付き書式: 閾値による文字色・行背景・太字、ヒートマップ(4 段階)。
- データバー: セルの背景に、列の最大値を 100% とした棒を敷きます(数値列のみ)。数字の羅列から大小を読むには、色の濃淡より長さのほうが速いからです。
- 増減記号: 正なら ▲・負なら ▼ を付け、色も分けます。「増えると良い / 悪い」を選べるので、コストや不良率も正しい向きで色が付きます。記号を添えるので白黒印刷でも読めます。
-
上位 N + その他: 上から N 行を残し、残りを 1 行の「その他(件数)」にまとめます。
並べ替えはしません(順序は SQL のORDER BYと初期ソートで決めます)。
「その他」は列見出しで並べ替えても最下段に固定され、集計行は元の全行から計算するので合計・平均は変わりません。
集計行を設定した表では、「その他」行も集計行の指定に従います(集計を指定していない数値列は空欄)— 順位のような合算に意味のない列へ、誤った合計を出しません。 - 行番号: 表示順に 1, 2, 3… を振る列を先頭に出せます(並べ替えると振り直し)。RANK() を書かなくてもランキング表が作れます。「その他」行・集計行には付きません。
- 単位を見出しにまとめる: 表示スケール(千・万・百万)を設定した数値列で、セルを素の数字だけにし、単位を「売上(万)」のように列見出しへ 1 回だけ出します。隣に置いたグラフ(単位を軸の端にまとめる)と数字の見た目が揃います。
- マルチヘッダー(2 階層のグループ見出し)。
- ゼブラストライプ・コンパクト密度・列幅/折り返し指定。
- 1,000 行超は行仮想化(既定)またはページングで軽快に表示。
列の設定(表示名 / 幅 / 揃え / 折り返し / 表示 / フォーマット / 集計 / 棒 / 増減)・条件付き書式・初期ソートは、それぞれ専用のダイアログで一覧のまま編集します。
グラフ(9 種)
棒(縦・横・積み上げ・横積み上げ)/ 折れ線 / 面 / 円 / ドーナツ / 複合(棒 + 線の 2 軸)。
横積み上げは、業種名のような長いカテゴリ名 × 内訳の組み合わせで読みやすい形です。
- ワイド形式(1 行 = 1 カテゴリ + 複数系列列)・ロング形式(カテゴリ列 + 系列列 + 値列)の両方に対応。
- 系列色は CVD(色覚多様性)検証済みパレットを全テーマ共通で使用。
- 軸の目盛りは既定で整数のみ。件数のグラフに
0.75のような目盛りが出ません(率や平均は「軸に小数を許す」で切り替え)。 - 複合グラフは左右で数値の書式を分けられます。金額(単位: 万)と件数を並べても、件数が「0万」になりません。
上位 N + その他
- 系列が 8 を超えると自動で「その他」へ集約します。円・ドーナツ・カテゴリ軸のグラフでは上位 N を指定できます(値の降順で N 件を残し、残りは 1 本にまとめます — 捨てません)。
-
「その他」には件数が付きます(例:
その他(10))。1 件を隠しているのか 50 件かで読み方が変わるからです。 - 並びが値の降順になるため、月次のように並びに意味があるグラフでは使いません。
値とラベルの見せ方
- 値ラベル: 棒の脇に値を出せます(横棒は右・縦棒は上)。いちばん長い値のぶん余白を作るので切れません。複合グラフでは棒の系列にだけ付きます(線に付けると棒のラベルと見分けが付かないため)。
- ラベルをすべて表示: 既定は重なる分を間引くため、棒はあるのに名前が出ない行ができます。すべて出す指定にすると全カテゴリを表示し、入りきらないラベルは水平のまま末尾を … で省略します(傾けません)。
- 横棒のカテゴリ軸は最長ラベルに合わせて自動で広がります(上限 = グラフ幅の 40%)。px での明示指定も可能です。
- 単位を軸の端にまとめる: 値ラベルと目盛りから「百万」などの単位を外し、軸の端に 1 回だけ出します。
- ヘッダーに合計: タイトルの横に合計を出せます。上位 N でまとめていても、「その他」を含む全件の合計です(見えている棒だけの合計にすると総額と食い違います)。
軸と目標線
- 目標線・基準線: 値軸に破線を引けます(複数可)。目標がデータの最大を超えても軸を伸ばして必ず描きます — 届いていない場面がいちばん見たいからです。名前はグラフの上に破線の見本つきで出すので、棒と重なりません。
- 目盛りは 1・2・2.5・5・10 の倍数で刻みます。
7.5のような位置を換算できない刻みは出ません。 - 値軸の上限を指定できます(ペインを並べたときに目盛りを揃えられます)。下限は折れ線・面のみ — 棒を 0 以外から始めると長さの比が実際と変わって誤読するためです。
- 100% 積み上げ(積み上げ棒・横積み上げ棒)、円・ドーナツのラベル(値 / 割合 / 両方)。
マークダウン
説明文・手順・リンク集をダッシュボードに置けます。数字を文章に埋め込むのが本領です。
- SQL は任意。書かなければクエリを実行せず即描画します。
-
kSQL 結果の埋め込み: 埋め込み用 SQL を設定すると、本文の
{{列名}}が結果 1 行目の値に、{{rowCount}}が行数に置き換わります。
### 今期サマリー
- 受注 **{{受注件数}}** 件 / **{{受注金額万}}** 万円
- 目標 5,000 万円に対する進捗は左の KPI カードを参照
- HTML はサニタイズします(script / iframe などの危険タグとイベント属性を除去、リンクは
rel="noopener noreferrer"を強制)。styleは色・文字サイズなど装飾系のプロパティだけ許可します。
プラグイン設定画面
左ナビ(全体設定・一覧・ペイン)/ プレビュー の 2 段構成です。プレビューは実データで描画されるため、保存前に見た目と数字を確認できます。
ペイン設定はプレビューに重ねて出ます(列にすると開閉のたびに編集領域の幅が変わるため)。編集中のペインが隠れたときは、見出しを掴んで動かせます。置いた位置はブラウザが覚え、見出しのダブルクリックで元へ戻ります。
レイアウト編集
- ペインをクリックで選択し、選択中はペインのどこを掴んでもドラッグ移動できます。右下ハンドルでリサイズ。
- 複数まとめて移動: Ctrl+クリック、または背景をドラッグして範囲指定で複数選択。どれを掴んでも並びを保ったまま一緒に動きます(一緒に動く相手は移動中うすく表示)。
- 右クリックメニュー: ペインの複製・削除。削除は Ctrl+Z で戻せます。
- ペインは 1 タブあたり 12 枚まで(タブは 6 枚まで = 最大 72 ペイン)。
- 自由配置: 置いた位置・空白行がそのまま保持されます。ペインとペインの間に挿入すると、重なった相手が右または下へ自動退避します。
- ドラッグ中はガイド線(行・カラム)を表示。
- 行分割クイック設定(1〜6): ペインを等幅で並べ直す整列ボタン。
- undo / redo: 移動・リサイズ・行分割を Ctrl+Z / Ctrl+Y で戻せます(上限 50 件)。
タブの編集
タブ列は一覧画面に出るものと同じがステージの直上に出ます。専用の設定画面はありません。
-
+ タブを押すと空のタブが 1 枚増えます。見出しのダブルクリックで改名、ドラッグで並べ替え。 - タブの右クリックで複製・削除。ペインの右クリックには「タブへ移動 / 複写」が出ます。
- 見出しの数字はそのタブのペイン枚数です。切り替えても中身が残っていることが分かります。
- 削除はペイン数を示して確認し、「元に戻す」で戻せます。
仮想キャンバスとフル画面編集
編集ステージは基準幅(1280 / 1536 / 1920px)の仮想キャンバスとして描画され、編集する PC の画面幅に配置が左右されません。
- フィット: 縮尺して全体を表示 / 原寸: 横スクロールで実寸編集
- フル画面編集: ステージをブラウザ全面に展開。ペインをクリックするとペイン設定が重なって出るので、フル画面のまま SQL 修正 → プレビュー確認まで完結します。
ペイン設定
- 基本: 表示タイプ / タイトル / 説明(閲覧者にタイトル横の ⓘ で表示。Markdown 可。幅は小・中・大)/ リンク(ヘッダーのアイコンから対象アプリ・関連資料へ遷移する導線。アプリ番号で指定すればゲストスペースや環境移行でも壊れません。最大 5 件)/ SQL(0.6 秒デバウンスで構文チェック)、実行統計(件数・時間)とエラー詳細(長いメッセージは「詳細」で全文表示・コピー)。実行計画(EXPLAIN) ボタンで、レコードを取得せずに WHERE の押し下げ・取得方法・取得上限の効き方を確認できます(「なぜこのペインは遅いのか」を実行前に見られます)
-
表示: タイプ別オプション(KPI の列割り当て・フォント、表の密度・上位 N、グラフの凡例・値ラベル・目標線など)。
項目数の多いもの — 列の設定 / 条件付き書式 / 初期ソート — は専用のダイアログで開き、一覧のまま編集します(ボタンに設定済みの件数が出ます) - 詳細: 取得件数上限(500〜50,000)、オプション JSON
テンプレートギャラリー(ヘッダー「+ ペインを追加」)から、件数 KPI・月次推移・構成比などの雛形をワンクリックで追加できます。
ツール(入出力・複写・概要)
-
JSON エクスポート / インポート: 設定のバックアップ・移行。エクスポートはプラグイン名・バージョン・アプリ情報つきのファイル(名前に日付・時刻入り)で出力し、インポートは確認ダイアログで出力元の情報を確かめてから取り込みます。
-
アプリ番号の変換: SQL が参照しているアプリ番号を、取り込み時にこの環境の番号へ置き換えてから取り込めます(空欄はそのまま)。別環境で作った設定の移行が、JSON の手書き換えなしで完結します。
論理アプリ名を使った設定ファイルでは、番号の変換の代わりに論理名の扱いを選べます(後述の「論理アプリ名」を参照)。
-
ビューへ取り込む: 一覧 1 つにだけ入れる取り込み。ファイルに複数のダッシュボードが入っていればどれを入れるか選べ、取り込み先の一覧もダイアログで選択します。取り込み後もダイアログが残るので、同じファイルから続けて別の一覧へも入れられます。
- 設定の概要(Markdown): 現在の設定を人が読める Markdown で表示・コピー・.md ダウンロード。版数・設定サイズ・全体設定(論理アプリ名の対応表)・タブ構成・ペインごとの要約(タイトル / タイプ / 取得上限 / SQL)が 1 枚にまとまります。「SQL を含める」の切り替えつき。引き継ぎ・レビュー資料や、設定 JSON と並べた Git 管理に使えます(設定の正本はあくまでエクスポートした JSON です)。
- ペインの複写・入れ替え: 同じダッシュボード内でペイン設定を上書きコピー / 交換(レイアウト位置は維持)。
- 一覧の複写・入れ替え: ダッシュボード設定を別の一覧へコピー / 交換。
論理アプリ名(環境に依存しない設定ファイル)
SQL のアプリ参照を APP4148 のような番号ではなく、論理アプリ名で書けます。
SELECT c.業種, SUM(d.売上) AS 売上
FROM LAPP_案件管理 d
JOIN LAPP_顧客管理 c ON d.顧客No_ = c.顧客No
GROUP BY c.業種
名前と番号の対応は、全体設定の**「論理アプリ名」**の表で 1 か所だけ管理します(アプリ番号を入れるとアプリ名を自動表示)。
- 設定ファイルが環境非依存になります。 開発 → 本番、テンプレートの複数環境への配布は、対応表の差し替えだけ。SQL は書き換わらないので、再エクスポートしても環境依存が戻りません
- 既存の設定も 2 クリックで移行: 「SQL から検出」が SQL 中のアプリ番号を洗い出して論理名を提案し、「SQL へ適用」が事前確認(どのペインの何箇所が変わるか)つきで一括書き換えします
- 未定義の論理名は実行前に名前入りのエラーで止まり、実行計画にも
LAPP_案件管理 -> APP4149の対応が併記されます
インポート時の「論理名の扱い」
論理アプリ名を使った設定ファイルを取り込むときは、確認ダイアログで扱いを 4 択から選べます(それぞれ「SQL がどうなるか / 対応表がどうなるか」の説明つき):
- そのまま取り込む — 別アプリの設定を同じ環境で使うとき。対応表はファイルの内容のまま
- 取り込み先の定義を優先する — テスト設定を運用アプリへ入れるとき。この環境の対応表を保つ
- 割り当てを指定する — 別環境へ移すとき。SQL は無傷で、名前 → 番号だけ差し替える
-
論理名を取り込まない —
APP<番号>へ展開してから取り込む。展開後の番号は「アプリ番号の変換」でさらに置き換え可能
その他
- 共通 / 個別ダッシュボード: 個別設定のない一覧には共通を表示。一覧ごとに有効/無効・共通/個別を選択。
- ダッシュボード名: ビューごとに名前を設定(一覧画面のヘッダー・フル画面に表示)。
- 初期は折りたたむ: ビューごとに指定。
- 表示サイズ: 文字と余白の倍率(小 100% / 標準 110% / 大 125% / 特大 150%。既定は標準)。管理者が既定を決め、見る人は自分の PC だけ変えられます。ブラウザのズームと違い、ペインの枠に収まったまま大きくなります。
- 保存時に運用環境へ反映: オンなら保存後にアプリ更新まで自動実行。
- サイズメーター: 設定データの使用量(上限 256KB)を常時表示。
SQL の書き方
kSQL エンジン(read-only)の SQL ライク構文で記述します。APP<アプリ番号> を FROM に指定します。
SELECT 業種, COUNT(*) AS 件数
FROM APP123
GROUP BY 業種
ORDER BY 件数 DESC
- SELECT / WHERE / GROUP BY / HAVING / ORDER BY / LIMIT、JOIN、CASE 式、各種関数に対応。
- kintone の関数(TODAY() など)は WHERE 句で REST API に直接プッシュダウンされ、取得レコード数を大幅に削減できます。
- 文法の詳細は kSQL 本体の記事・言語仕様を参照してください。
無償版との違い
| 無償版 kSQL Dashboard | kSQL Dashboard Pro | |
|---|---|---|
| レイアウト | 1〜4 分割(固定) | 最大 12 ペイン・60 カラム自由配置 |
| タブ切り替え | なし | 最大 6 タブ(表示中のタブだけを集計) |
| 期間切り替え | なし | 変数コントロールバー(kintone 関数対応・期間指定) |
| 表示タイプ | 表・棒グラフ | KPI カード・高度データ表・グラフ 9 種・マークダウン |
| 設定画面 | フォーム型 | WYSIWYG(実データプレビュー + D&D) |
| テーマ | なし | 6 テーマ + 利用者切り替え |
| 条件付き書式 | なし | KPI・表の閾値ルール、ヒートマップ |
| フル画面・折りたたみ | なし | あり(折りたたみ中は SQL 未実行) |
| CSV エクスポート | なし | あり(許可制) |
| 多言語 | 日本語 | 日英中 |
| 設定の複写・JSON 入出力 | あり | あり(取り込み時のアプリ番号変換つき) |
動作環境・注意事項
- kintone 公式対応ブラウザの最新版(PC)。モバイルは対象外です。
- データ取得はログインユーザーの権限の範囲内です(閲覧権限のないレコードは集計されません)。
- 取得件数上限はペインごとに 500〜50,000 件(既定 10,000)。10,000 件を超える取得は時間がかかるため(約 500 件 = 1 リクエスト)、まず WHERE や kintone 関数で絞り込むことを推奨します。取得中はペインに件数を表示します。
- 試用版は利用期限付きです。製品版は買い切りとサブスクリプション(セット販売)を用意しています。詳細はお問い合わせください。
















































