kintone上の複数アプリを横断集計し、ダッシュボード表示する無料のJSカスタマイズ
krewDashboard(月額1万円〜)と同等の集計機能を、無料のJavaScriptカスタマイズで実現します。 有料プラグインの代替として、kintoneユーザーコミュニティに貢献するOSSプロジェクトです。
- ExcelのCOUNTIFS相当の集計 - 期間 + 任意条件でレコードをカウント
- 複数アプリ合算 - 複数アプリのデータを1つの列に合算
- サブテーブル対応 - テーブル内フィールドも展開して集計
- パーセンテージ・計算式 - 列間の四則演算、%自動算出
- 期間プリセット - 今日/昨日/今週/先週/今月/先月/カスタム
- テンプレート保存 - 集計表の形式を保存し、開くだけで即表示
- GUI条件ビルダー - コード不要でフィルタ条件を視覚的に設定
- 権限制御 - レコードアクセス権 + グループベースのデータフィルタリング
- CSV一括インポート - 設定をCSVで管理、Claude for Excelとの連携も可能
| 機能 | krewDashboard | 本プロジェクト |
|---|---|---|
| 料金 | 月額1万円〜 | 無料 |
| COUNTIFS集計 | あり | あり |
| 複数アプリ横断 | あり | あり |
| サブテーブル集計 | 限定的 | 行レベルで対応 |
| 条件設定 | GUI | GUIビルダー搭載 |
| 計算式(列間演算) | あり | あり |
| アクセス制御 | 標準機能連携 | グループフィルタ対応 |
| カスタマイズ性 | プラグイン設定のみ | ソースコード改変自由 |
2つのアプリを作成します(詳細は セットアップガイド を参照):
- 集計列設定アプリ - テンプレート・列定義・データソース・条件を管理
- 集計ダッシュボードアプリ - テンプレート選択・期間指定・集計結果の表示
// src/config/constants.js
export const CONFIG_APP_ID = 999; // ← 集計列設定アプリのアプリIDに変更npm install
npm run builddist/dashboard.js→ ダッシュボードアプリの「JS/CSSカスタマイズ」dist/settingsApp.js→ 集計列設定アプリの「JS/CSSカスタマイズ」
集計列設定アプリでレコードを作成し、集計テンプレートを定義します。 設定アシスタント(GUI)が表示されるので、直感的に設定できます。
詳しくは セットアップガイド をご覧ください。
集計列設定アプリ 集計ダッシュボードアプリ
┌──────────────┐ ┌──────────────────┐
│ テンプレート定義 │ │ テンプレート選択 │
│ 列名・条件・権限 │◄──参照──►│ 期間指定・結果表示 │
│ データソース設定 │ │ │
└──────────────┘ └──────────────────┘
│
kintone REST API
│
┌────────────┬────────────┐
▼ ▼ ▼
対象アプリA 対象アプリB 対象アプリC
- JavaScript (ES2017+)
- esbuild でバンドル
- kintone REST API でデータ取得
- 外部ライブラリ依存なし(esbuildは開発時のみ)
src/
├── config/constants.js # 定数・初期設定値
├── api/kintoneApi.js # kintone REST API ラッパー
├── aggregation/aggregator.js # 集計ロジック
├── dashboard/
│ ├── dashboard.js # メインイベントハンドラ
│ ├── renderer.js # 集計結果テーブルの描画
│ └── datePresets.js # 期間プリセット計算
├── settings/
│ ├── settingsApp.js # 設定アシスタントUI
│ ├── settingsHelper.js # ヘルプパネル
│ └── components/ # UIコンポーネント
└── utils/
├── queryBuilder.js # kintoneクエリ構築
├── conditionEvaluator.js # 行レベル条件評価
└── formulaParser.js # 計算式パーサー
Contributionを歓迎します!
- Fork してください
- Feature branch を作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add amazing feature') - Branch に push (
git push origin feature/amazing-feature) - Pull Request を作成
git clone https://github.com/EitoFukuda/kintone-aggregation-dashboard.git
cd kintone-aggregation-dashboard
npm install
npm run build- kintone JS カスタマイズの制約を遵守(グローバル汚染禁止)
- kintone REST API のレート制限に注意(同時リクエスト数を制御)
- レコード取得は500件制限があるため、ページング処理を実装
- グラフ・チャート表示
- エクスポート機能(CSV/Excel)
- リアルタイム自動更新
- 多言語対応(English)
- プラグイン形式での配布
