report_table_builder 1.0.6
report_table_builder: ^1.0.6 copied to clipboard
A report table builder flutter widget for your flutter applications.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:report_table_builder/report_table/models/report_table_model.dart';
import 'package:report_table_builder/report_table/models/table_data_place_holder.dart';
import 'package:report_table_builder/report_table/report_table_builder.dart';
import 'package:report_table_builder/report_table/utils/report_table_utils.dart';
class TableDataSource {
static List<String> mainHeadersTitle = [
"Today",
"Last Day",
];
static Map<String, List<String>> subHeadersTitleList = {
"Today": ["Target", "Sales", "%"],
"Last Day": ["Target", "Sales", "%"],
};
static List<String> rightTableRowData = [
"5023", "5000", "99", "8000", "8000", "100",
];
static int noColumn = ReportTableUtils.countTotalHeaderItem(mainHeadersTitle, subHeadersTitleList);
static List<TableDataPlaceHolder> rowData = List.generate(20, (index) {
return TableDataPlaceHolder(
leftCellValue: "Outlet ${index + 1}",
leftCellItemColor: (index+1) % 5 == 0 ? Colors.red : ReportTableUtils.cellTextColor,
leftCellItemIsBold: (index+1) % 5 == 0,
rightCellValues: List.generate(TableDataSource.noColumn, (i) {
return (i < rightTableRowData.length) ? rightTableRowData[i] : "N/A"; //this is Right Table Row data
}),
);
});
ReportTableModel table = ReportTableModel(
leftPortionHeader: "Channel",
leftPortionSubHeader: "Region",
rightPortionHeadersTitle: mainHeadersTitle,
rightPortionSubHeadersTitleList: subHeadersTitleList,
rowItems: rowData,
);
ReportTableModel getTableModel() => table;
}
void main() {
runApp(const MaterialData());
}
class MaterialData extends StatelessWidget {
const MaterialData({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: Text("Report Table Builder"), centerTitle: true,),
body: Center(
child: ReportTableBuilder(
cellHeight: ReportTableUtils.headerHeight,
subCellHeight: ReportTableUtils.subHeadersHeight,
cellWidth: ReportTableUtils.columnCellWidth,
stickyCellWidth: ReportTableUtils.stickyColumnWidth,
tableModel: TableDataSource().getTableModel(),
itemTextSize: 12,
),
),
),
);
}
}