Source code:
from lino.apps.ledger.ledger_tables import LedgerSchema
from lino.reports import Report
from lino.adamo.rowattrs import Field, Pointer, Detail
class SchemaOverview(Report):
def __init__(self,schema):
self.schema=schema
Report.__init__(self)
def getIterator(self):
return self.schema.getTableList()
def setupReport(self):
self.addVurtColumn(
label="TableName",
meth=lambda row: row.item.getTableName(),
width=15)
self.addVurtColumn(
label="Fields",
meth=lambda row:\
", ".join([fld.name for fld in row.item.getFields()
if isinstance(fld,Field) \
and not isinstance(fld,Pointer)]),
width=20)
self.addVurtColumn(
label="Pointers",
meth=lambda row:\
", ".join([fld.name for fld in row.item.getFields()
if isinstance(fld,Pointer)]),
width=15)
self.addVurtColumn(
label="Details",
meth=lambda row:\
", ".join([fld.name for fld in row.item.getFields()
if isinstance(fld,Detail)]),
width=25)
sch=LedgerSchema()
rpt=SchemaOverview(sch)
rpt.show()
Output:
TableName |Fields |Pointers |Details
---------------+--------------------+---------------+-------------------------
Currencies |id, name | |
Products |id, name, price | |
Journals |id, name, tableName | |
BankStatements |seq, date, closed, |jnl |
|remark, balance1, | |
|balance2 | |
MiscOperations |seq, date, closed, |jnl |
|remark | |
Invoices |seq, date, closed, |jnl, contact |lines
|remark, zziel, | |
|amount, inverted | |
InvoiceLines |line, amount, |invoice, |
|remark, unitPrice, |product |
|qty | |
BalanceItems |name, id, attrib, | |
|dc, type, doc | |
CashFlowItems |name, id, attrib, | |
|dc, type, doc | |
ProfitAndLossIt|name, id, attrib, | |
ems |dc, type, doc | |
Accounts |name, pcmn, id |parent, |
| |balance, |
| |profit, cash |
Bookings |date, amount, dc, |account, |
|label, id |invoice, |
| |contact |
Languages |id, name | |
Nations |id, name, area, | |cities,
|population, curr, | |contacts_by_nation
|isocode | |
Cities |id, name, zipCode, |nation |
|inhabitants | |
Organisations |id, name, name2, | |
|logo, memo | |
Persons |id, name, firstName,| |contacts
|sex, birthDate, | |
|memo, title | |
Functions |id, name | |
Contacts |id, name, email, |org, person, |
|phone, gsm, fax, |function, lang,|
|website, zip, |nation, city, |
|street, house, box |currency |
Refering articles:
- Converting races, ledger, examples (code changes 18.02.06) — commit 302 more