[]
• new ReportSheet(name
)
レポートシートを表します。
実例
const spread = new GC.Spread.Sheets.Workbook('spread-host', { sheetCount: 0 });
const reportSheet = spread.addSheetTab(0, 'orders-report', GC.Spread.Sheets.SheetType.reportSheet);
const templateSheet = reportSheet.getTemplate();
const ordersTable = spread.dataManager().addTable('Orders', {
remote: {
read: {
url: 'https://demodata.mescius.io/northwind/api/v1/orders'
}
}
});
// リモートからデータをロードします。
ordersTable.fetch().then(() => {
// テンプレートのスタイルを設定します。
const headerStyle = new GC.Spread.Sheets.Style();
headerStyle.backColor = '#80CBC4';
headerStyle.foreColor = '#424242';
headerStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.right;
headerStyle.font = '12px Maine';
const dataStyle = new GC.Spread.Sheets.Style();
dataStyle.foreColor = '#424242';
dataStyle.hAlign = GC.Spread.Sheets.HorizontalAlign.right;
dataStyle.font = '12px Maine';
const border = new GC.Spread.Sheets.LineBorder('#E0E0E0', 1);
dataStyle.borderBottom = border;
dataStyle.borderTop = border;
dataStyle.borderLeft = border;
dataStyle.borderRight = border;
const colWidthArray = [90, 90, 90, 80, 220, 150, 110];
colWidthArray.forEach((width, i) => {
templateSheet.setColumnWidth(i, width);
});
templateSheet.getRange('A1:G1').setStyle(headerStyle);
templateSheet.getRange('A2:G2').setStyle(dataStyle);
templateSheet.setFormatter(1, 2, 'yyyy-MM-dd');
// テンプレートの値とバインディングを設定します。
const columns = ['orderId', 'customerId', 'orderDate', 'freight', 'shipName', 'shipCity', 'shipCountry'];
columns.forEach((columnName, i) => {
templateSheet.setValue(0, i, `${columnName[0].toUpperCase()}${columnName.substring(1)}`);
templateSheet.setTemplateCell(1, i, {
type: 'List',
binding: `Orders[${columnName}]`,
});
});
reportSheet.refresh();
});
名前 | 型 | 説明 |
---|---|---|
name |
string |
レポートシートの名前。 |
• options: IReportOptions
レポートシートのオプションを示します。
プロパティ
[dirtyStyle] このスタイルは、プレビューモードで変更されたセルを描画するために使用されます。
プロパティ
[printAllPages] すべてのページを印刷するかどうかを示します。
▸ addRecordAt(row
, col
): void
指定されたセル位置にレコードを追加します。
実例
// レコードを A2 セルに追加します。
reportSheet.addRecordAt(1, 0);
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
void
▸ bind(type
, data?
, fn?
): void
イベントをレポートシートに連結します。
実例
// 次のサンプルコードは、ReportSheetDataChangedイベントをレポートシートに連結します。
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.setTemplateCell(0, 1, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.setDataEntrySetting([ {
name: "Write Back Rule 1",
tableName: "Orders",
fields: [
{ dbColumnName: "orderId", formula: "A1", isPrimary: true },
{ dbColumnName: "customerId", formula: "B1" },
],
includeUnmodified: false,
skipRecordWithEmptyValue: false
} ]);
report.renderMode("Preview");
report.bind(GC.Spread.Sheets.Events.ReportSheetDataChanged, (event, args) => {
let reportsheet = args.sheet, changes = reportsheet.getChanges();
if (allowSubmit(changes)) { // この変更を送信または削除できます。
reportsheet.submit(); // 変更を送信します。
} else {
reportsheet.refresh(); // 変更を削除します。
}
});
// レポートシートのレコードを UI で編集/更新/削除すると、ReportSheetDataChanged イベントがトリガーされます。
名前 | 型 | 説明 |
---|---|---|
type |
string |
イベントタイプ。 |
data? |
any |
オプション。関数に渡す追加データを指定します。 |
fn? |
Function |
イベントが発生したときに実行する関数を指定します。 |
void
▸ currentPage(page?
): number
現在のページインデックスを取得または設定します。
実例
//現在のページインデックスを取得します。
const page = reportSheet.currentPage();
// 次のページに進みます。
reportSheet.currentPage(page + 1);
名前 | 型 | 説明 |
---|---|---|
page? |
number |
ページインデックス(0 から始まる)。 |
number
現在のページインデックスを返します。
▸ deleteRecordAt(row
, col
): void
指定されたセルを削除します。
実例
// A2 セルのレコードを削除します。
reportSheet.deleteRecordAt(1, 0);
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
void
▸ generatePageSheets(addToSpread
, sheetNameGenerator?
): Worksheet
[]
現在のレポートの各ページをワークシートとして生成し、配列で返します。
実例
// ページを生成し、スプレッドに追加します。
const pageSheets = reportSheet.generatePageSheets(true);
// ページを生成し、スプレッドに追加し、シート名をカスタマイズします。
const pageSheets = reportSheet.generatePageSheets(true, (i) => `report-page-${i + 1}`);
名前 | 型 | 説明 |
---|---|---|
addToSpread |
boolean |
現在のスプレッドにページシートを追加するかどうかを制御します。 |
sheetNameGenerator? |
SheetNameGenerator |
オプションのシート名ジェネレーター。 |
生成されたワークシートを返します。
▸ getActualStyle(row
, col
): Style
現在の表示モードでセルの実際のスタイルを取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.getCell(0, 0).backColor("red");
templateSheet.setTemplateCell(1, 0, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.getCell(1, 0).backColor("green");
const designActualStyle1 = report.getActualStyle(0, 0); // backColor: red
const designActualStyle2 = report.getActualStyle(1, 0); // backColor: green
report.renderMode("Preview");
const previewActualStyle1 = report.getActualStyle(0, 0); // backColor: red
const previewActualStyle2 = report.getActualStyle(1, 0); // backColor: red
report.renderMode("PaginatedPreview");
const paginatedPreviewActualStyle1 = report.getActualStyle(0, 0); // backColor: red
const paginatedPreviewActualStyle2 = report.getActualStyle(1, 0); // backColor: red
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
セルの実際のスタイルを返します。
▸ getCells(templateRow
, templateCol
, currentRow?
, currentCol?
): IDataCell
[]
プレビューモードに現在のセルに基づいてテンプレートセルの展開されたセルを取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.setTemplateCell(1, 0, {
binding: "Orders[orderId]",
type: "Group",
});
report.regenerateReport();
const allCustomerIdCells = report.getCells(0, 0); // すべての 89 個のセル。
const fistCustomerIdCell = report.getCells(0, 0, 0, 0); // value: VINET
const allOrderIdCells = report.getCells(1, 0); // すべての 830 個のセル。
const firstOrderIdCell = report.getCells(1, 0, 89, 0); // value: 10248
名前 | 型 | 説明 |
---|---|---|
templateRow |
number |
テンプレート内の行インデックス。 |
templateCol |
number |
テンプレート内の列インデックス。 |
currentRow? |
number |
プレビューモードに現在のセルの行インデックス。 |
currentCol? |
number |
プレビューモードに現在のセルの列インデックス。 |
現在のセルに基づいてテンプレートセルの展開されたセルを返します。
▸ getChanges(): Change
[]
レポートシートのデータの変更や挿入、削除の更新情報を返します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
showCollapseButton: true
});
templateSheet.setTemplateCell(0, 1, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.setDataEntrySetting([ {
name: "Write Back Rule 1",
tableName: "Orders",
fields: [
{ dbColumnName: "orderId", formula: "A1", isPrimary: true },
{ dbColumnName: "customerId", formula: "B1" },
],
includeUnmodified: false,
skipRecordWithEmptyValue: false
} ]);
report.renderMode("Preview");
report.updateCellValue(0, 1, "test");
report.addRecordAt(1, 0);
report.updateCellValue(2, 0, 111);
report.updateCellValue(2, 1, "test2");
report.deleteRecordAt(3, 0);
report.getChanges(); // 1 つの削除レコードと 2 つの更新レコード。
Change
[]
レポートシートのデータの変更や挿入、削除の更新情報を返します。
▸ getCollapseState(row
, col
): boolean
指定したセルの折りたたみ状態を返します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
showCollapseButton: true
});
templateSheet.setTemplateCell(0, 1, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.addSpan(0, 0, 2, 1);
report.renderMode("Preview");
report.getCollapseState(0, 0); // false
report.toggleCollapseState(0, 0);
report.getCollapseState(0, 0); // true
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
boolean
▸ getColumnWidth(col
): number
列インデックスによって列幅を取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
spillDirection: "Horizontal"
});
templateSheet.setColumnWidth(0, 100);
const designColumnWidth1 = report.getColumnWidth(0); // ColumnWidth: 100
const designColumnWidth2 = report.getColumnWidth(1); // ColumnWidth: 62
report.renderMode("Preview");
const previewColumnWidth1 = report.getColumnWidth(0); // ColumnWidth: 100
const previewColumnWidth2 = report.getColumnWidth(1); // ColumnWidth: 100
report.renderMode("PaginatedPreview");
const paginatedPreviewColumnWidth1 = report.getColumnWidth(0); // ColumnWidth: 100
const paginatedPreviewColumnWidth2 = report.getColumnWidth(1); // ColumnWidth: 100
名前 | 型 | 説明 |
---|---|---|
col |
number |
列インデックス。 |
number
列幅を返します。
▸ getPagesCount(): number
レポートのページ数を取得します。
実例
// ページ数を取得します。
const pagesCount = reportSheet.getPagesCount();
number
レポートのページ数を返します。
▸ getRange(): Range
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(199, 0, {
binding: "Orders[customerId]",
type: "Group",
});
const designRange = report.getRange(); // row: 0, col: 0, rowCount: 200, colCount: 20.
report.renderMode("Preview");
const previewRange = report.getRange(); // row: 0, col: 0, rowCount: 288, colCount: 1.
report.renderMode("PaginatedPreview");
const paginatedPreviewRange = report.getRange(); // row: 0, col: 0, rowCount: 45, colCount: 1.
レポートシートの範囲を返します。表示モードがDesign(デザイン)の場合、テンプレートシートの範囲を返します。表示モードがPreview(プレビュー)の場合、レポート範囲全体を返します。表示モードがPaginatedPreview(改ページプレビュー)の場合、現在のページの範囲を返します。
▸ getRowHeight(row
): number
行インデックスによって行の高さを取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.setRowHeight(0, 30);
const designRowHeight1 = report.getRowHeight(0); // RowHeight: 30
const designRowHeight2 = report.getRowHeight(1); // RowHeight: 20
report.renderMode("Preview");
const previewRowHeight1 = report.getRowHeight(0); // RowHeight: 30
const previewRowHeight2 = report.getRowHeight(1); // RowHeight: 30
report.renderMode("PaginatedPreview");
const paginatedPreviewRowHeight1 = report.getRowHeight(0); // RowHeight: 30
const paginatedPreviewRowHeight2 = report.getRowHeight(1); // RowHeight: 30
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
number
行の高さを返します。
▸ getSpan(row
, col
): Range
現在の表示モードでセルの範囲を取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.addSpan(0, 0, 2, 1);
const designSpan1 = report.getSpan(0, 0); // span: row: 0, col: 0, rowCount: 2, colCount: 1
const designSpan2 = report.getSpan(2, 0); // span: null
report.renderMode("Preview");
const previewSpan1 = report.getSpan(0, 0); // span: row: 0, col: 0, rowCount: 2, colCount: 1
const previewSpan2 = report.getSpan(2, 0); // span: row: 2, col: 0, rowCount: 2, colCount: 1
report.renderMode("PaginatedPreview");
const paginatedPreviewSpan1 = report.getSpan(0, 0); // span: row: 0, col: 0, rowCount: 2, colCount: 1
const paginatedPreviewSpan2 = report.getSpan(2, 0); // span: row: 2, col: 0, rowCount: 2, colCount: 1
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
セルの範囲を返します。
▸ getStyle(row
, col
): Style
現在の表示モードでセルのスタイルを取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.getCell(0, 0).backColor("red");
templateSheet.setTemplateCell(1, 0, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.getCell(1, 0).backColor("green");
const designStyle1 = report.getStyle(0, 0); // backColor: red
const designStyle2 = report.getStyle(1, 0); // backColor: green
report.renderMode("Preview");
const previewStyle1 = report.getStyle(0, 0); // backColor: red
const previewStyle2 = report.getStyle(1, 0); // backColor: red
report.renderMode("PaginatedPreview");
const paginatedPreviewStyle1 = report.getStyle(0, 0); // backColor: red
const paginatedPreviewStyle2 = report.getStyle(1, 0); // backColor: red
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
セルのスタイルを返します。
▸ getTemplate(): TemplateSheet
現在のレポートシートのテンプレートシートを取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate(); // レポートシートのテンプレートシートを取得します。
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
report.renderMode("Preview");
現在のレポートシートのテンプレートシートを返します。
▸ getTemplateCell(row
, col
): TemplateCell
指定したセルのテンプレートシートを取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.setTemplateCell(1, 0, {
binding: "Orders[orderId]",
type: "Group",
});
const designTemplateCell1 = report.getTemplateCell(0, 0); // binding: Orders[customerId]
const designTemplateCell2 = report.getTemplateCell(1, 0); // binding: Orders[orderId]
report.renderMode("Preview");
const previewTemplateCell1 = report.getTemplateCell(0, 0); // binding: Orders[customerId]
const previewTemplateCell2 = report.getTemplateCell(1, 0); // binding: Orders[customerId]
const previewTemplateCell3 = report.getTemplateCell(89, 0); // binding: Orders[orderId]
report.renderMode("PaginatedPreview");
const paginatedPreviewTemplateCell1 = report.getTemplateCell(0, 0); // binding: Orders[customerId]
const paginatedPreviewTemplateCell2 = report.getTemplateCell(1, 0); // binding: Orders[customerId]
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
指定したセルのテンプレートシートを返します。表示モードがDesign(デザイン)の場合、指定された行列にあるテンプレートシートのテンプレートセルを返します。表示モードがPreview(プレビュー)の場合、指定されたセルのテンプレートセルを返します。表示モードがPaginatedPreview(改ページプレビュー)の場合、指定されたセルのテンプレートセルを返します。
▸ getValue(row
, col
): any
現在の表示モードでセルの値を取得します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.setValue(1, 0, "test");
const designValue = report.getValue(1, 0); // test
report.renderMode("Preview");
const previewValue = report.getValue(1, 0); // TOMSP
report.renderMode("PaginatedPreview");
const paginatedPreviewValue = report.getValue(1, 0); // TOMSP
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
any
セルの値を返します。
▸ isDirty(): boolean
レポートに未送信の変更があるかどうかを示すブール値を返します。
実例
// 現在のレポートシートに未送信の変更がある場合、isDirty は true になります。
const isDirty = reportSheet.isDirty();
boolean
レポートに未送信の変更がある場合は true を返し、それ以外の場合は false を返します。
▸ loadTemplate(templateJson
): void
レポートシートのテンプレートを更新します。また、新しいテンプレートとパラメーター値に基づいてレポートが再生成されます。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
const templateSheet = new GC.Spread.Report.TemplateSheet("Template");
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
report.loadTemplate(templateSheet.toJSON());
名前 | 型 | 説明 |
---|---|---|
templateJson |
Object |
JSONテンプレート。 |
void
▸ name(value?
): any
レポートシートの名前を取得または設定します。
実例
// レポートシートの名前を取得します。
const name = reportSheet.name();
// レポートシートの名前を設定します。
reportSheet.name('new-name');
名前 | 型 |
---|---|
value? |
string |
any
レポートシートの名前を返します。
▸ parameter(parameter?
): IParameter
レポートシート内のパラメータを取得または設定します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
report.getTemplate().setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
filter: {
condition: {
column: "customerId",
operator: "Equal",
parameter: "customerId"
}
}
});
report.renderMode("Preview");
let parameter = report.parameter(); // レポートシートのパラメータを取得します。
parameter.customerId = "VINET";
report.parameter(parameter); // パラメータを設定します。
report.regenerateReport(); // 新しいパラメータに従ってレポートシートを再生成します。
名前 | 型 |
---|---|
parameter? |
IParameter |
レポートシートの現在のパラメータを返します。
▸ printInfo(value?
): ReportSheet
| PrintInfo
レポートシートの印刷情報を取得または設定します。
実例
// 用紙サイズを設定します。
const printInfo = reportSheet.printInfo();
printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a3));
名前 | 型 |
---|---|
value? |
PrintInfo |
値が設定されていない場合は、レポートシートの印刷情報を返します。それ以外の場合は、レポートシートを返します。
▸ printPageIndexes(pageIndexes?
): number
[]
印刷するページインデックスの配列を取得または設定します。空の配列はすべてのページを印刷することを示します。
実例
// 現在のレポートの最初のページと 5 ページ目のみを印刷します。
reportSheet.printPageIndexes([0, 4]);
reportSheet.options.printAllPages = true;
spread.print();
// 印刷するページインデックスの設定をクリアします。
reportSheet.printPageIndexes([]);
名前 | 型 | 説明 |
---|---|---|
pageIndexes? |
number [] |
印刷するページインデックスの配列(0 から始まる)。 |
number
[]
印刷するページインデックスの配列を返します。
▸ refresh(): void
現在のレポートシートを更新します。この機能はすべての表示モードをサポートします。デザイン: テンプレートシートのキャッシュを更新して再描画します。プレビュー: 現在のテンプレートシートに基づいてレポートを再生成して再描画します。改ページプレビュー: 現在のテンプレートシートに基づいてレポートを再生成して再描画します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
report.refresh();
void
▸ regenerateReport(): void
現在のテンプレートに基づいてレポートを再生成します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
report.regenerateReport();
void
▸ renderMode(renderMode?
): RenderMode
表示モードを取得または設定します。
実例
// デザインモードに切り替えます。
reportSheet.renderMode('Design');
// プレビューモードに切り替えます。
reportSheet.renderMode('Preview');
// 改ページプレビューモードに切り替えます。
reportSheet.renderMode('PaginatedPreview');
名前 | 型 | 説明 |
---|---|---|
renderMode? |
RenderMode |
表示モード。 |
表示モードを返します。
▸ repaint(): void
現在のレポートシートを再描画します。
void
▸ resetCellValue(row
, col
): void
指定したセルの値をリセットします。
実例
// A2 セルの値が変更された場合、setCellValue は A2 セルを元の値にリセットします。
reportSheet.resetCellValue(1, 0);
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
void
▸ setParametersUI(host
, initParametersUI
, onChange
): void
レポートシートのパラメータUIを設定します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
report.parameter({ customerId: "VINET" });
report.getTemplate().setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
filter: {
condition: {
column: "customerId",
operator: "Equal",
parameter: "customerId"
}
}
});
report.renderMode("Preview");
const host = document.getElementById("parameterUIHost");
report.setParametersUI(host, initParametersUI, onChanged);
function initParametersUI (sheet) {
sheet.getCell(3, 3).value("CustomerId:"); // スタティックセルを追加します。
sheet.getCell(3, 4).bindingPath("customerId").tag("customerId"); // このセルにパラメータのバインディングパスとタグを追加します。
const submitButton = new GC.Spread.Sheets.CellTypes.Button(); // 送信ボタンを追加します。
submitButton.text("Submit");
sheet.getCell(3, 5).cellType(submitButton).tag("submitButton"); // このセルにボタン型セルとタグを設定します。
}
function onChanged (reportSheet, changedArgs) {
if (changedArgs.tag === "submitButton") { // 送信ボタンをクリックしました。
reportSheet.regenerateReport();
}
if (changedArgs.tag === "customerId") {
changedArgs.newValue = changedArgs.newValue.toUpperCase(); // newValueを更新します。
}
}
名前 | 型 | 説明 |
---|---|---|
host |
string | HTMLElement |
パラメータUIのホスト要素またはホスト ID を表します。 |
initParametersUI |
InitParametersUIFunctionType |
パラメータUIシートを変更するコールバック。 |
onChange |
OnChangeFunctionType |
パラメータUI値が変更されたとき、またはボタンがクリックされたときに呼び出されるコールバック。 |
void
▸ submit(): void
データマネージャでデータ操作の設定に基づいてデータベースに変更を送信します。
実例
// 変更を送信します。
reportSheet.submit();
void
▸ toWorksheet(): Worksheet
現在のレポートシートに基づいて、静的ワークシート (数式なし、セルの連結なし) を生成します。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
});
report.renderMode("Preview");
const reportWorksheet = report.toWorksheet();
生成されたワークシートを返します。
▸ toggleCollapseState(row
, col
): void
指定したセルの折りたたみ状態を切り替えます。
実例
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[customerId]",
type: "Group",
showCollapseButton: true
});
templateSheet.setTemplateCell(0, 1, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.addSpan(0, 0, 2, 1);
report.renderMode("Preview");
report.toggleCollapseState(0, 0);
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
void
▸ unbind(type
, fn?
): void
レポートシートへのイベントの連結を解除します。
実例
// 次のサンプルコードは、最初のデータ変更後に ReportSheetDataChanged イベントの連結を解除します。
const report = spread.addSheetTab(0, "Report", GC.Spread.Sheets.SheetType.reportSheet);
report.renderMode("Design");
const templateSheet = report.getTemplate();
templateSheet.setTemplateCell(0, 0, {
binding: "Orders[orderId]",
type: "Group",
});
templateSheet.setTemplateCell(0, 1, {
binding: "Orders[customerId]",
type: "Group",
});
templateSheet.setDataEntrySetting([ {
name: "Write Back Rule 1",
tableName: "Orders",
fields: [
{ dbColumnName: "orderId", formula: "A1", isPrimary: true },
{ dbColumnName: "customerId", formula: "B1" },
],
includeUnmodified: false,
skipRecordWithEmptyValue: false
} ]);
report.renderMode("Preview");
report.bind(GC.Spread.Sheets.Events.ReportSheetDataChanged, (event, args) => {
let reportsheet = args.sheet, changes = reportsheet.getChanges();
console.log(changes);
reportsheet.unbind(GC.Spread.Sheets.Events.ReportSheetDataChanged);
});
// レポートシートのレコードを UI で編集/更新/削除すると、ReportSheetDataChanged イベントがトリガーされます。
名前 | 型 | 説明 |
---|---|---|
type |
string |
イベントタイプ。 |
fn? |
Function |
連結を解除する関数を指定します。 |
void
▸ updateCellValue(row
, col
, value
): void
指定したセルの値を更新します。
実例
// A2 セルの値を更新します。
reportSheet.updateCellValue(1, 0, 'test');
名前 | 型 | 説明 |
---|---|---|
row |
number |
行インデックス。 |
col |
number |
列インデックス。 |
value |
any |
セルの新しい値。 |
void