我想在我的 QWeb 报告中使用元素“项目”。我应该在报告中写些什么?“item”是 tabData 中的一个属性。你可以在下面看到我的 python 代码。我已经配置了报告解析器并且它可以工作。
这是我的python代码:
def getLines (self, objects):
tabData = []
print objects
for i in range (7):
tabData.append({})
tabData [i] ['jour'] = self.tabJour [i]
tabData [i] ['commandes'] = {}
for o in objects:
indJour = int(o.jour) - 1
if indJour not in range(7): continue
commande = o.order_id.name
if not (tabData [indJour]['commandes'].has_key (commande)):
tabData [indJour]['commandes'][commande] = {}
tabData [indJour]['commandes'][commande]['items'] = []
tabData [indJour]['commandes'][commande]['partner'] = o.order_partner_id.name
bois = o.bois1.code_fini
bois2 = o.bois2.code_fini
metal = o.metal.code_fini
tissus = o.tissu.code_fini
poignee = o.poignee.code_fini
patte = o.patte.code_fini
cfg = o.config
optionTissu = o.tissu.couleur_finifr
qty = int(o.product_uom_qty)
qtyEmballe = 0
qtyPeinture = qty - qtyEmballe - int(o.FabPeint)
qtyTeinture = qty - qtyEmballe - int(o.FabTeint)
qtyRembourage = qty - qtyEmballe - int(o.ProdFTissus)
qtyMetal = qtyPeinture - int(o.ProdFMetal)
qtyBois = qtyTeinture - int(o.ProdFBois)
if not (qtyMetal) or qtyMetal < 0:
qtyMetal = 0
if not (qtyBois) or qtyBois < 0:
qtyBois = 0
if not (qtyPeinture) or qtyPeinture < 0:
qtyPeinture = 0
if not (qtyTeinture) or qtyTeinture < 0:
qtyTeinture = 0
if not (qtyRembourage) or qtyRembourage < 0:
qtyRembourage = 0
if bois == '.':
bois = None
if bois2 == '.':
bois2 = None
if metal == '.':
metal = None
if tissus == '.':
tissus = None
if poignee == '.':
poignee = None
if patte == '.':
patte = None
if cfg == '.':
cfg = None
if optionTissu == "NONE":
optionTissu=None
tabData [indJour]['commandes'][commande]['items'].append ({
'item': o.product_id.default_code,
'qty': qty,
'metal': metal,
'bois': bois,
'bois2': bois2,
'tissus': tissus,
'poignee': poignee,
'patte': patte,
'optionTissu': optionTissu,
'cfg': cfg,
'notes': o.notes,
'qtyEmballe': qtyEmballe,
'qtyMetal': qtyMetal,
'qtyBois': qtyBois,
'qtyPeinture': qtyPeinture,
'qtyTeinture': qtyTeinture,
'qtyRembourage': qtyRembourage,
})
print "FIN"
return tabData
谢谢您的帮助。