flexprint 0.0.1+a copy "flexprint: ^0.0.1+a" to clipboard
flexprint: ^0.0.1+a copied to clipboard

outdated

Dart library allowing flex layout to console print. Console Printing tabular reports is made easier using this library. Flexprint allows great flexibilty to the programmer to specify the table's appearance.

example/flexprint_example.dart

import 'dart:convert';

import '../lib/flexprint.dart';

void main() {
  final fp = FlexPrint();
  fp.horizontalLine(doubleLine: true);
  fp.write('Customer Name', flex: 3);
  fp.write('Amount Due', flex: 2, alignment: Alignment.end);
  fp.write('Invoice Details', flex: 3);
  fp.write('Status', flex: 2, alignment: Alignment.center);
  fp.write('\n');
  fp.horizontalLine(doubleLine: true);
  invoices.forEach((row) {
    fp.write(row.name, flex: 3);
    fp.write(row.amountDue.toString(), flex: 2, alignment: Alignment.end);
    fp.write(row.invoiceDetail, flex: 3);
    fp.write(row.status, flex: 2, alignment: Alignment.center);
    fp.write('\n');
  });
  fp.horizontalLine(char: '_');
}

final invoices = [
  Invoice(
      name: 'John Doe & Co',
      amountDue: 6789.12,
      invoiceDetail: "Inv No 66987 of 06/15/2020",
      status: "Due"),
  Invoice(
      name: 'M D Rao & Co',
      amountDue: 16789.12,
      invoiceDetail: "Inv No 66989-92 of 08/12/2020",
      status: "Paid 10/05"),
];

class Invoice {
  String name;
  double amountDue;
  String invoiceDetail;
  String status;
  Invoice({
    this.name,
    this.amountDue,
    this.invoiceDetail,
    this.status,
  });

  Map<String, dynamic> toMap() {
    return {
      'name': name,
      'amountDue': amountDue,
      'invoiceDetail': invoiceDetail,
      'status': status,
    };
  }

  factory Invoice.fromMap(Map<String, dynamic> map) {
    if (map == null) return null;

    return Invoice(
      name: map['name'],
      amountDue: map['amountDue'],
      invoiceDetail: map['invoiceDetail'],
      status: map['status'],
    );
  }

  String toJson() => json.encode(toMap());

  factory Invoice.fromJson(String source) =>
      Invoice.fromMap(json.decode(source));
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Dart library allowing flex layout to console print. Console Printing tabular reports is made easier using this library. Flexprint allows great flexibilty to the programmer to specify the table's appearance.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

More

Packages that depend on flexprint