maandag 16 augustus 2010

AttributeError: 'NoneType' object has no attribute '_columns'

Dit is een handige tip voor iedereen die aan open erp modules werkt. Als je volgende error krijgt.

AttributeError: 'NoneType' object has no attribute '_columns'

Wil dit zeggen dat er iets niet juist zit met je dependencies! Hoogstwaarschijnlijk heb je een module vergeten toevoegen in de __terp__.py file. Bijvoorbeeld

'depends': ["hr","hr_holidays","hr_contract","fleet_manager",],

Ik hoop iedereen hiermee wat tijd te besparen.

vrijdag 7 mei 2010

Conditionele paraStyle of hoe je de stijl van een tag kan laten afhangen van bepaalde parameters

Ik wist dat er een manier was om de stijl van een element in een rapport te laten afhangen van een bepaalde parameter. Dus ik op zoek in de "RML User Guide", spijtig genoeg las ik niets dat ik kon gebruiken. Dus na een beetje verder denken en zoeken op de OpenErp forums kwam ik volgend stukje code tegen.

<para style="P6">[[ setTag('para','image',{'width':'100.0','height':'80.0','name':str(o.id)}) ]][[ o.image or setTag('image','para') ]]</para>

Meer bepaald [[ o.image or setTag('image','para') ]], is de oplossing voor onze conditionele stijl formattering.

maandag 12 april 2010

Pagina nummering op rapporten

Om de paginanummering van een rapport goed te krijgen kan je gebruik maken van volgende tags, geplaatst binnen een pageTemplate tag.

<pageTemplate id="next">
<frame id="first" />
<pageGraphics>
<setFont name="Helvetica" size="9"/>
<drawRightString x="18cm" y="3.5cm"> <pageNumber/> / <pageCount/> </drawRightString>
</pageGraphics>
</pageTemplate>


Zoals je kan zien hebben we <pageNumber/> en <pageCount/> binnen een drawString tag. Met behulp van die drawString kan je juist bepalen waar je de nummering zet op het rapport. Niet vergeten het referentie punt is de linker beneden hoek.

donderdag 8 april 2010

Verschil in layout tussen de eerste pagina en de volgende pagina's van je rapport

Bij het maken van een rapport in openerp (report labs,RML) heb ik een lange tijd liggen zoeken naar de mogelijkheid om de layout van de eerste pagina te laten verschillen ten opzichte van de pagina's die er op volgen. Op de eerste pagina begint mijn story tekst langs rechts naast het logo, op de volgende pagina moet die onder het logo beginnen. Wat er dus gebeurd is dat de tekst op de volgende pagina op dezelfde hoogte begint als die van de eerste pagina en omdat die tekst dus links uitgelijnd is loopt deze door het logo. Het is natuurlijk niet de bedoeling de tekst ook rechts te gaan uitlijnen.

De oplossing bestaat er in om 2 pageTemplates aan te maken en de ene te verwisselen van zodra dit nodig is.

<template pageSize="(595.0,842.0)" title="Test" author="Martin" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="10mm" y1="40mm" width="189mm" height="239mm" />
</pageTemplate>
<pageTemplate id="next">
<frame id="first" x1="10mm" y1="40mm" width="189mm" height="209mm"/>
</pageTemplate>
</template>


Eenmaal 2 templates aangemaakt moeten we nog wel duidelijk maken welke moet gebruikt worden voor de eerste pagina. Dit doen we door aan de story tag een extra atribuut mee te geven.

<story firstPageTemplate="first">


Als dat gebeurd is geven we aan welke template er moet worden gebruikt vanaf de tweede pagina. We voegen onder de story tag de NextTemplate tag toe.

<story firstPageTemplate="first">
<setNextTemplate name="next"/>


En dat is het, van zodra je dus op pagina twee komt word er gebruik gemaakt van de tweede pageTemplate (next)

vrijdag 2 april 2010

(MAR) Belgische rekeningenstelsel voor openerp (nederlands)

Download : l10n_be

Na een tijdje met openerp te hebben gewerkt en zelf configuraties te hebben gedaan voor anderen, leek het me wel een idee om het reken-schema te vertalen naar het Nederlands. Ik ben vanuit het bestaande l10n_be uitgegaan en dit naast het MAR - Minimum Algemeen Rekeningenstelsel gelegd. Hierbij heb ik het nodige toegevoegd,weggehaald en vertaald.

Installatie procedure:
  1. Hernoem de bestaande module l10n_be naar iets anders (bvb l10n_be_fr, wilt U de module toch opnieuw gebruiken hernoem deze dan terug naar het origineel)
  2. Extract de nieuwe module naar de directory (module directory)
  3. Maak een nieuwe database aan en tijdens de configuratie fase selecteer je "Belgiƫ - MAR Minimaal Algemeen Rekeningenstelsel"
Normaal kan je ook via module management de oude module verwijderen en de nieuwe installeren (na natuurlijk de lijst met modules te hebben opgefrist), dat heb ik echter nog niet uitgeprobeerd en het kan dus zijn dat er zich dan problemen voordoen.

Tijdens de installatie kan volgende error voorkomen: "Constraint error" : "The code of the account must be unique per company"
Dit kan je oplossen door het aantal getallen na de komma te verminderen (bvb van 6 naar 2).

Moest je de module gebruiken dan had ik maar al te graag feedback gekregen op dit blog. Alvast bedankt en veel succes!