report_table_builder 1.0.8 copy "report_table_builder: ^1.0.8" to clipboard
report_table_builder: ^1.0.8 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/left_cell_data_model.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(
      leftCellData: LeftCellDataModel(
        itemId: index + 1,
        itemDisplayText: "Outlet ${index + 1}",
        callback: () {
          print("Tapped on Outlet ${index + 1}");
        },
      ),
      leftCellItemColor:
          (index + 1) % 5 == 0 ? Colors.red : ReportTableUtils.cellTextColor,
      rightCellsItemColor:
      (index + 1) % 5 == 0 ? Colors.red : ReportTableUtils.cellTextColor,
      leftCellItemBackgroundColor: Colors.white,
      rightCellsItemBackgroundColor: Colors.white,
      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(
            headerHeight: ReportTableUtils.headerHeight,
            subHeadersHeight: ReportTableUtils.subHeadersHeight,
            cellWidth: ReportTableUtils.columnCellWidth,
            cellHeight: ReportTableUtils.cellHeight,
            stickyColumnWidth: ReportTableUtils.stickyColumnWidth,
            tableModel: TableDataSource().getTableModel(),
            itemTextSize: 12,
          ),
        ),
      ),
    );
  }
}
2
likes
115
points
13
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A report table builder flutter widget for your flutter applications.

Homepage

License

unknown (license)

Dependencies

flutter

More

Packages that depend on report_table_builder