首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在web2py中生成/打印票据?

如何在web2py中生成/打印票据?
EN

Stack Overflow用户
提问于 2016-04-03 12:07:47
回答 1查看 140关注 0票数 0

我正在用web2py做一个示例应用程序。其中涉及客户、产品和票据,如下所示

代码语言:javascript
运行
复制
db=DAL('sqlite://Navale.db')
db = DAL(lazy_tables=True)

STATE= ('Andaman and Nicobar Islands','Andhra Pradesh','Arunachal Pradesh','Assam','Bihar','Chandigarh','   Chhattisgarh','Dadra and Nagar Haveli','Daman and Diu','Delhi','Goa','Gujrat','Haryana','Himachal Pradesh','Jammu and Kashmir','Jharkhand','    Karnataka','Kerala','Lakshadeep','Madhya Pradesh','Maharashtra','Manipur','Meghalaya','Mizoram','Nagaland','Odisha','Puducherry','Punjab','Rajasthan','Sikkim','Tamil Nadu','Telangana','Tripuru',' Uttar Pradesh','Uttarakhand','West Bengal')

db.define_table('Customer',
                Field('Customer_ID', type='id', requires=IS_NOT_EMPTY()),
                Field('Customer_Type', requires=IS_IN_SET(['Retail','Local'])),
                Field('Name', type='string', requires=IS_NOT_EMPTY()),
                Field('Contact_Number', type='integer', requires=IS_NOT_EMPTY()),
                Field('Address', type='string'),
                Field('City', type='string', requires=IS_NOT_EMPTY()),
                Field('State', requires=IS_IN_SET(STATE)),
                Field('PIN', type='integer', requires=IS_NOT_EMPTY())
                )
db.define_table('Product',
                Field('Product_ID',  requires=IS_NOT_EMPTY()),
                Field('Product_Name'),
                Field('Category', requires=IS_IN_SET(['Gents', 'Ladies', 'Kids'])),
                Field('Rate', type='double'))
db.define_table ('Bill',
                 Field('Bill_ID', type='id', requires=IS_NOT_EMPTY()),
                 Field('Date', type='datetime'),
                 Field('Customer_ID', db.Customer),
                 Field('Customer_Name', db.Customer),
                 Field('Total_cost', type='double'))

当我试图在“Bill”中添加客户名称时,它显示了错误。

我想要生成/打印一个帐单,其中包含客户详细信息、产品信息(如产品名称、产品类型、数量、价格)和所有产品的总价。

帮帮我。

注:-本条例草案由产品的动态价值组成。这意味着比尔可以有1/2/3/./n个产品。

EN

回答 1

Stack Overflow用户

发布于 2016-04-05 00:44:53

在web2py中,引用字段存储引用表的主键,即引用表的整数"id“字段。因此,将"Customer_Name“字段定义为引用字段是没有意义的(这样的字段可能会存储名称,但引用字段存储整数ID)。"Customer_ID“字段已经是对"Customer”表的引用--您不需要对"Customer“表进行额外的引用。因此,您应该简单地删除"Customer_Name“字段。

注意,您可以向"Customer“表添加一个"format”属性:

代码语言:javascript
运行
复制
db.define_table('Customer', ..., format='%(name)s')

现在,每当定义引用"Customer“表的字段时,例如:

代码语言:javascript
运行
复制
    Field('Customer_ID', db.Customer)

引用字段将获得(a)一个显示客户名称的默认表单小部件(即使相关的“客户”记录ID将插入数据库中),以及(b)默认的“表示”属性,该属性在只读窗体和网格中显示客户名称而不是客户ID。

如果您需要与账单或票据集一起访问客户详细信息,则可以通过加入进行访问。您还可以利用web2py的内置递归选择功能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36385195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档