Reports
This commit is contained in:
parent
547b687b43
commit
6cfbf3b24a
|
|
@ -53,7 +53,8 @@ class ReportsScreen extends StatelessWidget {
|
||||||
? null
|
? null
|
||||||
: IconButton(
|
: IconButton(
|
||||||
icon: Icon(Icons.menu),
|
icon: Icon(Icons.menu),
|
||||||
onPressed: () => store
|
onPressed: () =>
|
||||||
|
store
|
||||||
.dispatch(UserSettingsChanged(sidebar: AppSidebar.menu)),
|
.dispatch(UserSettingsChanged(sidebar: AppSidebar.menu)),
|
||||||
),
|
),
|
||||||
title: Row(
|
title: Row(
|
||||||
|
|
@ -93,7 +94,8 @@ class ReportsScreen extends StatelessWidget {
|
||||||
kReportTaxRate,
|
kReportTaxRate,
|
||||||
kReportQuote,
|
kReportQuote,
|
||||||
]
|
]
|
||||||
.map((report) => DropdownMenuItem(
|
.map((report) =>
|
||||||
|
DropdownMenuItem(
|
||||||
value: report,
|
value: report,
|
||||||
child: Text(localization.lookup(report)),
|
child: Text(localization.lookup(report)),
|
||||||
))
|
))
|
||||||
|
|
@ -233,7 +235,9 @@ class _ReportDataTableState extends State<ReportDataTable> {
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
DataTable(
|
SingleChildScrollView(
|
||||||
|
scrollDirection: Axis.horizontal,
|
||||||
|
child: DataTable(
|
||||||
columns: reportResult.tableColumns(
|
columns: reportResult.tableColumns(
|
||||||
context,
|
context,
|
||||||
(index, ascending) =>
|
(index, ascending) =>
|
||||||
|
|
@ -250,6 +254,7 @@ class _ReportDataTableState extends State<ReportDataTable> {
|
||||||
...reportResult.tableRows(context),
|
...reportResult.tableRows(context),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -266,13 +271,14 @@ class ReportResult {
|
||||||
final List<String> allColumns;
|
final List<String> allColumns;
|
||||||
final List<List<ReportElement>> data;
|
final List<List<ReportElement>> data;
|
||||||
|
|
||||||
List<DataColumn> tableColumns(
|
List<DataColumn> tableColumns(BuildContext context,
|
||||||
BuildContext context, Function(int, bool) onSortCallback) {
|
Function(int, bool) onSortCallback) {
|
||||||
final localization = AppLocalization.of(context);
|
final localization = AppLocalization.of(context);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
for (String column in columns)
|
for (String column in columns)
|
||||||
DataColumn(
|
DataColumn(
|
||||||
|
tooltip: localization.lookup(column),
|
||||||
label: Text(
|
label: Text(
|
||||||
localization.lookup(column),
|
localization.lookup(column),
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
|
|
@ -282,8 +288,7 @@ class ReportResult {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
DataRow tableFilters(
|
DataRow tableFilters(BuildContext context,
|
||||||
BuildContext context,
|
|
||||||
Map<String, TextEditingController> textEditingControllers,
|
Map<String, TextEditingController> textEditingControllers,
|
||||||
Function(String, String) onFilterChanged) {
|
Function(String, String) onFilterChanged) {
|
||||||
return DataRow(cells: [
|
return DataRow(cells: [
|
||||||
|
|
@ -301,7 +306,10 @@ class ReportResult {
|
||||||
return data
|
return data
|
||||||
.where((row) =>
|
.where((row) =>
|
||||||
row[index].sortString().toLowerCase().contains(filter) &&
|
row[index].sortString().toLowerCase().contains(filter) &&
|
||||||
row[index].sortString().trim().isNotEmpty)
|
row[index]
|
||||||
|
.sortString()
|
||||||
|
.trim()
|
||||||
|
.isNotEmpty)
|
||||||
.map((row) => row[index].sortString())
|
.map((row) => row[index].sortString())
|
||||||
.toSet()
|
.toSet()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
@ -345,7 +353,8 @@ class ReportResult {
|
||||||
DataRow(
|
DataRow(
|
||||||
cells: row
|
cells: row
|
||||||
.map(
|
.map(
|
||||||
(row) => DataCell(
|
(row) =>
|
||||||
|
DataCell(
|
||||||
row.renderWidget(context),
|
row.renderWidget(context),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue