キャッシュフロー カレンダー

このデモは、SpreadJSを使用してキャッシュフローカレンダーを作成する方法を示します。 Cash-Flow シートでは、 Cell Template シートで定義したテンプレートを使用してカレンダーの各セルに日毎のキャッシュフロー結果を表示します。 Data シートにはサンプルデータが含まれています。

このデモでは、SpreadJSの以下の機能を使用しています。 - SEQUENCE/FILTER ひとつの数式による複数の結果をセル範囲に返します。 - RANGEBLOCKSPARKLINE 複数行/複数列を使用したテンプレートを定義し、カスタマイズしたテンプレートをセルに適用します。 また、条件付き書式を使用して、一日の収支がマイナスになった日は赤、プラスになった日は緑、それ以外は黒で表示しています。 さらに、カレンダーからユーザーが選択した日に発生した会計処理の詳細を表示するのに、SelectionChanged イベントを使用しています。
window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 5 }); initSpread(spread); }; function initSpread(spread) { if (!spread) { return; } spread.fromJSON(cashflow_calendar); var cashflowSheet = spread.getSheetFromName("Cash-Flow"); // on day selection, update a cell used in filtering the data to show detailed transaction list cashflowSheet.bind(GC.Spread.Sheets.Events.SelectionChanged, function (sender, args) { const sheet = args.sheet; const row = args.newSelections[0].row; const col = args.newSelections[0].col; if ((row < 3 || row >= 3 + 6) || (col < 1 || col >= 1 + 7)) return; // set the current date cell so that FILTER would update. sheet.setValue(10, 1, sheet.getValue(row, col)); }); }
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta charset="utf-8" /> <meta name="spreadjs culture" content="ja-jp" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ja/purejs/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/ja/purejs/node_modules/@mescius/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ja/purejs/node_modules/@mescius/spread-sheets-resources-ja/dist/gc.spread.sheets.resources.ja.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ja/purejs/node_modules/@mescius/spread-sheets-shapes/dist/gc.spread.sheets.shapes.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/js/license.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/data/cashflow_calendar.js" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div class="sample-tutorial"> <div id="ss" style="width:100%;height:100%"></div> </div> </body> </html>