﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-bob-文章分类-Openbravo</title><link>http://www.blogjava.net/keweibo/category/46695.html</link><description>一专  Java 多能  C#,Delphi,Powerbuilder ... </description><language>zh-cn</language><lastBuildDate>Mon, 20 May 2013 09:44:10 GMT</lastBuildDate><pubDate>Mon, 20 May 2013 09:44:10 GMT</pubDate><ttl>60</ttl><item><title>OB:如何在Java类中获取在Message中定义的消息</title><link>http://www.blogjava.net/keweibo/articles/399487.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Mon, 20 May 2013 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/399487.html</guid><description><![CDATA[Code:<br /><br /><div>String text = OBMessageUtils.getI18NMessage("HT_OBEXAPP_MinGtMax",</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new String[] { Double.toString(min), Double.toString(max) });<br /></div><div>其中HT_OBEXAPP_MinGtMax其中为在Message中定义的<strong>Search Key<br />Message中的Message Text字段内容通过 %0 来接受传递进来的参数<br /></strong><div>eg: Min %0 不能大于 Max &nbsp;%1</div></div><img src ="http://www.blogjava.net/keweibo/aggbug/399487.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2013-05-20 09:56 <a href="http://www.blogjava.net/keweibo/articles/399487.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iReport Configuration (Openbravo)</title><link>http://www.blogjava.net/keweibo/articles/398936.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Tue, 07 May 2013 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/398936.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/398936.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/398936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/398936.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/398936.html</trackback:ping><description><![CDATA[url: http://wiki.openbravo.com/wiki/Reports#iReport_Configuration<br /><br /><p><a href="http://jasperforge.org/projects/ireport"  text"="" rel="nofollow">iReport</a> is a graphical tool you can use to create/edit templates (jrxml files) that will be later processed by JasperReports engine. </p> <div style="border:solid 1px #BBBBAA; padding:0em 1em 0em 1em; margin:0.5em 0.5em 0.5em 0.5em; background-color:#F7F8FF;"> <table> <tbody><tr> <td valign="top"><a href="http://wiki.openbravo.com/wiki/File:Bulbgraph.png"><img alt="Bulbgraph.png" src="http://wiki.openbravo.com/w/images/6/60/Bulbgraph.png" height="22" width="18" /></a>&nbsp;&nbsp; </td><td>You <strong>must</strong> use <a href="http://sourceforge.net/projects/ireport/files/iReport/iReport-4.0.1/"  text"="" rel="nofollow"><strong>iReport 4.0.1</strong></a> </td></tr></tbody></table></div> <h3> <span id="Fonts"> Fonts </span></h3> <p>JasperReports introduced a change in version <strong>3.6.1</strong> that it should fail (throw an exception) when you're trying to use a font that is not available.  </p> <pre>JasperReports 3.6.1 (2009-10-26, SVN 3170) --------------------------------------------- - net.sf.jasperreports.awt.ignore.missing.font configuration property added to control font availability verifications during report filling and report AWT rendering; </pre> <p>If you open a JasperReports template and is using a font not  available in your system, you won't see the text of label. To avoid this  problem you need to configure your iReport to skip this check. </p> <ul><li> Go to Tools &gt; Options &gt; JasperReports Properties </li><li> Set to <strong>true</strong> the property <em>net.sf.jasperreports.awt.ignore.missing.font</em> </li></ul> <div><div><a href="http://wiki.openbravo.com/wiki/File:Ireport-conf-1.png"><img alt="Ireport-conf-1.png" src="http://wiki.openbravo.com/w/images/thumb/2/23/Ireport-conf-1.png/640px-Ireport-conf-1.png" height="611" width="640" /></a></div></div> <h3> <span id="Scriplet_Class"> Scriplet Class </span></h3> <p>Openbravo 3 doesn't support out of the box any Scriplet class. Make  sure your template doesn't contain any class in the template properties. </p> <ul><li> <em>Window</em> &gt; <em>Report Inspector</em> </li><li> Scroll down in the <strong>More</strong> section </li><li> Make sure the <strong>Scriptlet class</strong> property is empty </li></ul> <div><div><a href="http://wiki.openbravo.com/wiki/File:Ireport-conf-2.png"><img alt="Ireport-conf-2.png" src="http://wiki.openbravo.com/w/images/f/fe/Ireport-conf-2.png" height="323" width="335" /></a></div></div> <h3> <span id="Language"> Language </span></h3> <p>The default language for expressions in Openbravo 3 is <strong>Java</strong>. Make sure that your template uses Java as language expression. </p> <ul><li> <em>Window</em> &gt; <em>Report Inspector</em> </li><li> Scroll down to the <strong>More</strong> section </li><li> Pick <strong>Java</strong> in the Language property </li></ul> <div><div><a href="http://wiki.openbravo.com/wiki/File:Ireport-conf-3.png"><img alt="Ireport-conf-3.png" src="http://wiki.openbravo.com/w/images/6/66/Ireport-conf-3.png" height="261" width="318" /></a></div></div><img src ="http://www.blogjava.net/keweibo/aggbug/398936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2013-05-07 15:32 <a href="http://www.blogjava.net/keweibo/articles/398936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbravo Developers_Guide Notes</title><link>http://www.blogjava.net/keweibo/articles/398701.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 03 May 2013 01:23:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/398701.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/398701.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/398701.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/398701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/398701.html</trackback:ping><description><![CDATA[<h1>How to create a Table</h1><div><u>http://wiki.openbravo.com/wiki/How_to_create_a_Table<br /></u></div><br />The new table must include the <em><strong>AD_Client_ID</strong></em>, <em><strong>AD_Org_ID</strong></em>, <em><strong>IsActive</strong></em>, <em><strong>Created</strong></em>, <em><strong>CreatedBy</strong></em>, <em><strong>Updated</strong></em> and <em><strong>UpdatedBy</strong></em> fields that are <strong>mandatory</strong> and required for security and auditory purposes of the application.&nbsp;<br /><br />Each table must have at least one column marked as an identifier. The  actual values of identifier columns later get concatenated to be shown  to the user as a representation of a particular record (see the link to  the Sales Order within the Sales Invoice window). These identifiers will  also be used to construct dropdown lists of records of that particular  table. By default all columns with column name <em>Name</em> are set as an identifier. In case there is no column with this <em>Name</em>, no identifier is set and needs to be done so manually or compilation will fail.&nbsp;<br /><br /><span style="background-color: #f7f8ff;"> <strong>NOTE:</strong> The columns that are named <em><strong>line</strong></em> or <em><strong>seqNo</strong></em> are used to contain the sequence number of a record (i.e. the number of a line in an invoice). They take a default value like: <p>@SQL=SELECT COALESCE(MAX(ColumnName),0)+10 AS DefaultValue FROM TableName WHERE xxParentColumn=@xxParentColumn@  </p><p>The <em>WHERE</em> part of this clause needs to be replaced with  the required values. The code that should appear here is the name of the  column which links with the <em>id</em> of the parent one. For example,  each record of the C_InvoiceLine belongs to a particular C_Invoice  record and they are all sequenced. C_Invoice is the parent table for the  lines saved in <em>C_InvoiceLine</em>. This table has a column named line and the default value that it takes is: </p><p>@SQL=SELECT COALESCE(MAX(LINE),0)+10 AS DefaultValue FROM <strong>C_INVOICELINE</strong> WHERE <strong>C_INVOICE_ID=@C_INVOICE_ID@<br /><br /></strong></p><h1 class="pagetitle">How to add Columns to a Table</h1><div><u>http://wiki.openbravo.com/wiki/How_to_add_Columns_to_a_Table</u></div><p><br />These changes can be done in two different locations:
</p>
<ol><li> Add columns to the <strong>original</strong> module (dbprefix <strong>HT</strong>)
</li><li> Create a <strong>second</strong> module (dbprefix <strong>HT2</strong>) which adds the columns to the first module
</li></ol>
<p>The first option can be chosen if the original module author wants to
 add more columns to his/her module. The second option is possible for 
anyone as the columns are added by a new module to the existing one 
which is not changed directly.
</p><p>The main difference between these two methods is the names which 
need to be chosen for the columns to comply with the modularity naming 
rules.
</p>
<ol><li> Adding column to same module: Any valid column name can be picked
</li><li> Via second module: New column name must comply to the pattern <strong>EM_&lt;DBPREFIX&gt;_</strong> where <em>&lt;DBPREFIX&gt; must be the dbprefix if the new module contaning the column to be added. In this example: <strong>EM_HT2_</strong></em></li></ol></span><h1 class="pagetitle">How to add a Constraint</h1><div><u>http://wiki.openbravo.com/wiki/How_to_add_a_Constraint<br /><br /></u></div><p>In the <strong>Application Dictionary || Message</strong> window create a new record using the following details: </p> <ul><li> <strong>Module</strong> <em>Openbravo Howtos 2</em> as this is the module containing the constraint also. </li><li> <strong>Search key</strong>: <strong>The search key must be exactly the same as the constraint's one</strong>, in this case <em>em_ht2_ht_salary_dates_chk</em> as this is the link between the constraint and the message. </li></ul> <ul><li> <strong>Message type</strong>: Depending on the type the UI for the  message box will be different (green for success, yellow for  warning...), in our case we want a red error message box, so we select <em>Error</em>. </li><li> <strong>Message text</strong>: It is the user friendly message that will be displayed inside the message box. So let's enter: <em>The Valid To date may not be before the Valid From date</em>.&nbsp;</li></ul><span style="background-color: #f7f8ff;"><p>&nbsp;<br /><h3> <span id="Creating_a_new_instance_of_a_Business_Object">&nbsp;Creating a new instance of a Business Object </span></h3> <p><div>http://wiki.openbravo.com/wiki/How_to_work_with_the_Data_Access_Layer#A_.27Hello_World.27_Example</div><br />A business object may never be created using the Java new operator. All business objects should be created using the <a href="https://code.openbravo.com/erp/devel/pi/file/d128f84ed546/src/org/openbravo/base/provider/OBProvider.java"  text"="" rel="nofollow">OBProvider</a> factory class: </p> <pre>&nbsp;  <span style="color: #808080; font-style: italic;">// create the object through the factory</span>   <span style="font-weight: bold;">final</span> Category bpg = OBProvider.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>.<span style="color: #006600;">get</span><span style="color: #66cc66;">(</span>Category.<span style="font-weight: bold;">class</span><span style="color: #66cc66;">)</span>;</pre> <p>Hibernate will detect that a business object is new when: </p> <ul><li> the id of the business object is not set </li><li> when the flag newOBObject is set to true explicitly </li></ul> <p>So if you want to create a new business object with a specific id (by  calling setId(...)) then you explicitly need to call  businessObject.setNewOBObject(true). Otherwise, Hibernate will throw an  exception ('count of batch update operation....').&nbsp;</p><br /></p></span><img src ="http://www.blogjava.net/keweibo/aggbug/398701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2013-05-03 09:23 <a href="http://www.blogjava.net/keweibo/articles/398701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OB学习笔记（不定期更新）</title><link>http://www.blogjava.net/keweibo/articles/391068.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 09 Nov 2012 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/391068.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/391068.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/391068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/391068.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/391068.html</trackback:ping><description><![CDATA[<p>（1）通用设置--应用--国家区域和城市<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IBAN码：也就是The International Bank Account Number，国际银行帐户号码，由欧洲银行标准委员会按照其标准制定的一个银行帐户号码。<br />国际汇款需要用到这个银行代码，但是IBAN码只是欧洲的标准，我国的银行是没有这个码的。如果需要国际汇款，你向国内银行的国际业务部可询问得到该银行的SWIFT代码。 <br /><br />（2）解决导出CSV文件中文乱码（CSV Text Encoding=GBK）<br /></p>
<h3><span id="Configuring_export_parameters_in_your_Openbravo_environment">Configuring export parameters in your Openbravo environment </span></h3>
<p>You can change the decimal separator, the field separator, and the encoding of the file you get when you use the Export to Spreadsheet functionality in Openbravo if you need them to be different from the default values. </p>
<p>This is done via preferences. After logging in to Openbravo, go to the Preference window and do the following: </p>
<ul><li>If you want to change the decimal separator: create a new record. Select the "CSV Decimal Separator" in the "Property" field. In the "value" field, type your selected decimal separator (for example, the comma character (,), or the decimal point (.)). Save the record. </li></ul>
<ul><li>If you want to change the field separator: create a new record. Select the "CSV Field Separator" in the "Property" field. In the "value" field, type your selected field separator. Save the record. </li></ul>
<ul><li>If you want to change the file encoding: create a new record. Select the "CSV Text Encoding" field in the "Property" field. In the "value" field, type the selected file encoding (for example, UTF-8 should work in most non-Windows non-Excel environments). Save the record. </li></ul>
<p>After creating the preference (or preferences), log out of the application. Log in again, and try the Export to Spreadsheet functionality, to see the results. <br /><br />（3）<strong><span>&nbsp;</span></strong><strong>Create Shipment from orders </strong><strong><span>提示库存不足</span></strong></p>
<p><span>检查</span>Order<span>所在的</span>Org<span>，其</span>Warehouse Tab<span>没有配置相应的</span>Warehouse<span>。</span></p>
<p>&nbsp;</p>
<p><strong><span>（4）</span></strong><strong>Quotation</strong><strong><span>无法转换成</span>Sale Order</strong></p>
<p>Document Type<span>中的</span>Quotation<span>项目必须指定</span>Document Type For Order</p>
<p>the "Quotation" <a title="Document Type" href="http://wiki.openbravo.com/wiki/Document_Type"><span>document type</span></a> requires a sales order document type (i.e. Standard Order) to be defined as "Document Type for Order" to allow the conversion of a sales quotation into a sales order.</p>
<p><br /></p><p><strong>(5)There are three ways of accounting in Openbravo: </strong></p> <ul><li> <strong>To manually post each document</strong> by using the process button "Post".<br />  The process button "Post" can be found in the window used to create a  given document. For instance a purchase invoice is created and therefore  could be posted in the <a href="http://wiki.openbravo.com/wiki/Purchase_Invoice" title="Purchase Invoice"> Purchase Invoice</a> window. <ul><li> This button is shown for accounting users if the Attribute  "ShowAcct" is visible for them. This configuration is enabled through a   <a href="http://wiki.openbravo.com/wiki/Preference#Preferences_Definition" title="Preference">Preference</a>. </li></ul> </li><li> <strong>To manually post all the documents/transactions related to a given database table</strong> for instance the table "Invoices", by using the process <a href="http://wiki.openbravo.com/wiki/GL_Posting_by_DB_Tables" title="GL Posting by DB Tables">GL posting by DB Tables</a> </li><li> <strong>or to automatically post accounting transactions of any type</strong> by scheduling the "Accounting Server Process" in the <a href="http://wiki.openbravo.com/wiki/Process_Request" title="Process Request">Process Request</a> window.&nbsp;</li></ul><p><br /><strong style="font-size: 14pt;">&nbsp;(6) Payment Status</strong> <p>To better understand the configuration of the payment method, it is also necessary to understand the <strong>payment status</strong> related to the process steps. </p><p>During the whole Payment Cycle, the payment is defined by one  status so the user knows the last step of the process that took place  and the following step that should take place.  </p><p>In the following explanation and diagram below, the different Payment Statuses are explained.   </p> <ul><li> <strong>Awaiting Payment:</strong> This status appears when a Receipt/Payment has been created in either the <a href="http://wiki.openbravo.com/wiki/Payment_In" title="Payment In">Payment In</a> window or in the <a href="http://wiki.openbravo.com/wiki/Payment_Out" title="Payment Out">Payment Out</a> window, but it has no details of what it is going to be received or paid.  </li><li> <strong>Awaiting Execution:</strong> This status appears when the  Receipt/Payment has been created and processed and there is an automated  execution process to be executed.<br />This is an <em>optional</em> status which will be skipped if: <ul><li> the Payment Method is Manual </li><li> or if the Payment Method is Automatic and it is not set as "Deferred". </li></ul> </li><li> <strong>Payment Received/Made:</strong> This status appears when the Receipt/Payment has been completed and processed. </li><li> <strong>Deposited/Withdrawn not Cleared:</strong> This status appears when the Receipt/Payment has been added to the <a href="http://wiki.openbravo.com/wiki/Financial_Account"  text"="" rel="nofollow">Financial Account</a> screen, therefore the corresponding Deposit/Withdrawal transaction has been created in the Financial Account. </li><li> <strong>Payment Cleared:</strong> This status appears when the Deposit/Witdrawal reconciliation has been executed.&nbsp;</li></ul><br /></p><img src ="http://www.blogjava.net/keweibo/aggbug/391068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2012-11-09 10:09 <a href="http://www.blogjava.net/keweibo/articles/391068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbravo ERP - Localization Process</title><link>http://www.blogjava.net/keweibo/articles/344687.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Sun, 20 Feb 2011 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/344687.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/344687.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/344687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/344687.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/344687.html</trackback:ping><description><![CDATA[参照：http://wiki.openbravo.com/wiki/Localization_Process/zh_cn<br />
<br />
<h4> <span class="mw-headline">注册翻译模块</span></h4>
<p>When you register the module, fill in the fields as follows:
</p>
<ul>
    <li>从<strong>Module Type</strong>列表，选<strong>Module</strong>.
    </li>
    <li>在<strong>Name</strong>字段，输入Java package name of the translation, using the correct naming convention.
    </li>
    <li>Complete the <strong>Description</strong> and <strong>Help</strong> fields, using the language that you are translating into.
    </li>
    <li><strong>Select</strong> the <strong>Is translation module</strong> option.
    </li>
    <li>Clear the <strong>Has reference data</strong>, <strong>Translation required</strong> and <strong>Has chart of accounts</strong> options.
    </li>
    <li>Select the <strong>In development</strong> option. Remember that you cannot work on a module unless the <strong>In development</strong> option is selected.
    </li>
    <li>From the <strong>Module language</strong> menu, select the translation language. For example if you are translating into Czech, select <strong>Czech</strong> from the list.
    </li>
    <li>On the <strong>Dependencies</strong> tab, specify the module you are
    translating as the dependent module. For example if you are translating
    the Core module, select <strong>Core</strong> as the dependent module.
    </li>
</ul>
<p>When you click <strong>Register Module</strong> you will be asked to supply your username and password for the Openbravo Forge
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name=".E5.AF.BC.E5.87.BA.E6.95.B0.E6.8D.AE.E5.BA.93"></a>
<h4> <span class="mw-headline">导出数据库</span></h4>
<p>When you have registered the module, the next stage is to export the database to create the necessary module folders.
</p>
<ol>
    <li>执行下列命令：
    <dl><dd>
    <pre>ant export.database</pre>
    </dd><dd>Exporting the database creates a new subfolder within the <em>Modules</em> folder. The new folder has the same name as the java package of the translation module, for example <em>modules/org.openbravo.translation.es_ES</em>.
    </dd></dl>
    </li>
    <li>Within the <em>Modules</em> folder, manually create a subfolder called <em>referencedata</em>. You must use this exact name, note that it is all lower case and has no spaces.
    </li>
    <li>Within the <em>referencedata</em> folder,  create another subfolder called <em>translation</em>.
    </li>
    <li>Within the '<em>translation</em> folder create another folder for
    the translation, using the xx_YY language / country code naming
    convention. For example en_US for US English.
    </li>
    <li>Place the translated .xml files within the folder for its respective language.
    </li>
</ol>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name=".E7.BF.BB.E8.AF.91.xml.E6.96.87.E4.BB.B6"></a>
<h4> <span class="mw-headline">翻译.xml文件</span></h4>
<p>You can now translate the .xml files using your preferred editor.
When you have finished translating, copy them into the translation
subfolder you have already created.
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name=".E6.8A.8A.E6.A8.A1.E5.9D.97.E6.89.93.E5.8C.85.E6.88.90.obx.E6.96.87.E4.BB.B6"></a>
<h4> <span class="mw-headline">把模块打包成.obx文件</span></h4>
<p>To package the module, 执行下列命令 <em>ant package.module -Dmodule=modulename</em>, where modulename is the Java package name of the module.
</p>
<br />
<br />
<img src ="http://www.blogjava.net/keweibo/aggbug/344687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2011-02-20 14:19 <a href="http://www.blogjava.net/keweibo/articles/344687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbravo ERP - Human Capital Management-代码修改</title><link>http://www.blogjava.net/keweibo/articles/344062.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 11 Feb 2011 08:26:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/344062.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/344062.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/344062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/344062.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/344062.html</trackback:ping><description><![CDATA[<h3> <span class="mw-headline"> Tree Icon </span></h3>
<p>It is a known issue that the tree icon in the teams window does not
work. If it is clicked it throws an error. Openbravo ERP does not
support trees on modules yet.
Still, the module has been designed to provide a mean to workaround this
issue. As for that, some java files needs to be modified and the
application recompiled to make the changes visible.
Take into account that this is a core modification (and core
modifications should not be done). If a core modification is done,
whenever the system is updated with the next maintenaince pack, the
changes will be lost (you will have to remember to do them again after
updating the system).
</p>
<p>Making this changes will make the tree icon work and so, the drag
and drop functionality will be usable. The changes consist on adding
the following lines in the following files:
</p>
<ul>
    <li> src/org/openbravo/erpCommon/utility/WindowTreeChecks.java - Line 132
    </li>
</ul>
<pre>   } else if (TreeType.equals("HCMC_TE")) {<br />
<br />
result = "";<br />
<br />
</pre>
<ul>
    <li> src/org/openbravo/erpCommon/utility/WindowTreeUtility.java - Line 73
    </li>
</ul>
<pre>   else if (keyColumnName.equals("Hcmc_Team_ID"))<br />
<br />
TreeType = "HCMC_TE";<br />
<br />
</pre>
<ul>
    <li> src/org/openbravo/erpCommon/utility/WindowTreeUtility.java - Line 155
    </li>
</ul>
<pre>   else if (TreeType.equals("HCMC_TE"))<br />
<br />
data = WindowTreeData.selectTeam(conn, vars.getUser(), strEditable, strParentID, strNodeId,<br />
<br />
TreeID);<br />
<br />
</pre>
<ul>
    <li> src/org/openbravo/erpCommon/utility/WindowTree_data.xsql - Line 290
    </li>
</ul>
<pre>  &lt;SqlMethod name="selectTeam" type="preparedStatement" return="multiple"&gt;<br />
<br />
&lt;SqlMethodComment&gt;&lt;/SqlMethodComment&gt;<br />
<br />
&lt;Sql&gt;<br />
<br />
SELECT tn.Node_ID,tn.Parent_ID,tn.SeqNo,tb.IsActive, te.HCMC_TEAM_ID AS ID, te.NAME, ' ' AS Description,te.IsSummary <br />
<br />
FROM AD_TREENODE tn LEFT JOIN AD_TREEBAR tb ON  tn.AD_Tree_ID=tb.AD_Tree_ID<br />
<br />
AND tn.Node_ID=tb.Node_ID <br />
<br />
AND tb.AD_User_ID =&nbsp;?  , <br />
<br />
HCMC_TEAM te<br />
<br />
WHERE tn.Node_ID = te.HCMC_TEAM_ID<br />
<br />
AND tn.AD_Tree_ID =&nbsp;? <br />
<br />
ORDER BY COALESCE(tn.Parent_ID, '-1'), tn.SeqNo<br />
<br />
&lt;/Sql&gt;<br />
<br />
&lt;Parameter name="adUserId"/&gt;<br />
<br />
&lt;Parameter name="editable" optional="true" type="none" after="WHERE " text="tn.IsActive='Y' AND te.isActive='Y' AND "/&gt;<br />
<br />
&lt;Parameter name="parentId" optional="true" after="WHERE " text="tn.Parent_ID =&nbsp;? AND "/&gt;<br />
<br />
&lt;Parameter name="nodeId" optional="true" after="WHERE " text="tn.Node_ID =&nbsp;? AND "/&gt;<br />
<br />
&lt;Parameter name="adTreeId"/&gt;<br />
<br />
&lt;/SqlMethod&gt;<br />
<br />
</pre>
<p>Notice that the line number above may change over time.
Notice that this lines should be eliminated manually if the module is unistalled. <br />
</p>
<p><br />
</p>
<p><strong><span style="font-size: 24pt;">Add Team Manager&nbsp;</span></strong></p>
<p>org.openbravo.hcm.common.ad_process.HCMC_addmanager_process.java</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final Calendar today = Calendar.getInstance();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final SimpleDateFormat sdf = new SimpleDateFormat();<br />
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sdf.applyPattern(bundle.getContext().getJavaDateFormat());</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final Date effectiveFrom = sdf.parse(strEffectiveFrom);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final Date effectiveTo = ((strEffectiveTo != null &amp;&amp; strEffectiveTo != "") ? sdf<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .parse(strEffectiveTo) : null);<br />
<br />
</p>
<p><br />
</p>
<p><br />
</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/keweibo/aggbug/344062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2011-02-11 16:26 <a href="http://www.blogjava.net/keweibo/articles/344062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbravo ERP - Human Capital Management</title><link>http://www.blogjava.net/keweibo/articles/342160.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Sun, 02 Jan 2011 05:59:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/342160.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/342160.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/342160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/342160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/342160.html</trackback:ping><description><![CDATA[原文:http://forge.openbravo.com/plugins/mwiki/index.php/Humancapitalmanagement<br />
<br />
<strong>Module Configuration</strong><br />
<br />
<u><em>Reference data</em></u><br />
<br />
For existing clients in the system, an extra step to install the reference data of the module is required. Logged in as client admin, go to: <strong>General Setup &gt; Enterprise &gt; Enterprise module management</strong>. Select organization '*' and check the module Human Capital Management. Click on 'OK'. <span style="color: #2000ff;">This will install the roles needed by the module</span>.<br />
<br />
<span style="color: #2000ff;">This step is not necessary for new clients, as this reference data will be install at Initial Client Setup phase</span> (performed by the System Administrator).<br />
<br />
<br />
<em><u><br />
Background Process Activation</u><br />
</em><br />
The module provides a background process that updates current data. It is highly recommended to run it on a daily basis. Openbravo provides a mean to schedule processes.As for that, logged as Client Admin, go to <strong>General Setup &gt; Process Scheduling &gt; Process Request</strong> and select the line where the 'Human Capital Management' process is selected. This record provides the recommended configuration, which makes the process run on a daily basis at 00:00. To keep the recommended configuration, without doing any change, click on the schedule process button. Make sure a green success message is displayed.<br />
<br />
In <strong>General Setup &gt; Process Scheduling &gt; Process Monitor</strong> every process execution can be monitored. <br />
<br />
<h4> <span class="mw-headline"> Assign roles to users </span></h4>
<p>Logged in as client admin, users can be created navigating to <em>General Setup || Security || User </em>. In the <em>user roles</em>
tab, roles can be assigned to this users. Later on, once the employees
are inserted in the system, each employee can be associated to a user.
This way, the employee can access the system with his/her own user and
see their personal information.
</p>
<p>Example: <em>Creation of a user for an employee called Peter:</em>
</p>
<ul>
    <li> Go to General Setup &gt; Security &gt; User
    </li>
    <li> Fill mandatory fields and set a password.
    </li>
    <li> Select Peter as business partner. <strong><em>Notice that this step can only be done after the employees are inserted in the system (explained below)</em></strong>
    </li>
    <li> Go to <em>User Roles</em> and enter a new record for <em>Employee</em> role.
    </li>
    <li> Now Peter can log in in the application with the username and
    password provided. He will only have access to his own information in
    the employee self service tab.
    </li>
</ul>
<p>Example: <em>Creation of a user for a manager called Mary:</em>
</p>
<ul>
    <li> Go to General Setup &gt; Security &gt; User
    </li>
    <li> Fill mandatory fields and set a password.
    </li>
    <li> Select Mary as business partner.<strong> <em>Notice that this step can only be done after the employees are inserted in the system (explained below)</em></strong>
    </li>
    <li> Go to <em>User Roles</em> and enter a new record for <em>Manager</em> role.
    </li>
    <li> Now Mary can log in in the application with the username and
    password provided. She will have access to her own information in the
    employee self service tab. She will also have access to the window <em>employee (manager view)</em> where the information of the employees reporting to her can be seen. <em>Notice
    that Mary has to be the current manager of at least one team. she will
    see the information of the employees associated to those teams.</em>
    </li>
</ul>
<br />
<br />
<img src ="http://www.blogjava.net/keweibo/aggbug/342160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2011-01-02 13:59 <a href="http://www.blogjava.net/keweibo/articles/342160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbravo ERP Development Environment - Stack Setup</title><link>http://www.blogjava.net/keweibo/articles/342030.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Fri, 31 Dec 2010 00:31:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/342030.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/342030.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/342030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/342030.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/342030.html</trackback:ping><description><![CDATA[<h2>原文:http://wiki.openbravo.com/wiki/ERP/2.50/Development_Stack_Setup</h2>
<br />
<h2> <span class="mw-headline"> Summary </span></h2>
<p>This article explains in detail how to install and configure the
whole stack required for a Openbravo ERP development environment,
including:
</p>
<ul>
    <li> PostgreSQL.
    </li>
    <li> Oracle.
    </li>
    <li> Sun JDK.
    </li>
    <li> Apache Ant.
    </li>
    <li> Apache Tomcat.
    </li>
</ul>
<p>The whole guide is valid for all the hardware architectures the stack
supports, such as x86 or x86_64. A minimum of 2GB or RAM is recommended
for x86 and 3GB for x86_64.
</p>
<p><br />
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Motivation"></a>
<h2> <span class="mw-headline"> Motivation </span></h2>
<p>A development setup has different needs than a <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_environment_installation" title="ERP/2.50/Openbravo environment installation"> production environment</a>. The main goal is to make the developer's life as easy as possible, while increasing the productivity.
</p>
<p>Some of the components are configured in the same way as in a
production system. In those cases a link to the production environment
setup is provided.
</p>
<p><br />
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Operating_System"></a>
<h2> <span class="mw-headline"> Operating System </span></h2>
<p>We recommend using Linux or another UNIX-alike flavor (*BSD, OS-X,
OpenSolaris). The amount of useful development tools provided by these
operating systems are vastly superior to the rest, at least regarding
Openbravo ERP. Do not use Windows.
</p>
<p>Create an unprivileged user for you in this operating system. And
once the environment is configured, avoid using the root user for
anything related to Openbravo ERP development. Specially, do not compile
as root.
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="PostgreSQL"></a>
<h2> <span class="mw-headline"> PostgreSQL </span></h2>
<p>Follow the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_environment_installation#PostgreSQL_database" title="ERP/2.50/Openbravo environment installation"> installation steps</a>
to install PostgreSQL, configure an admin (postgres) password, and
setup the MD5 password authentication. 8.3.5 or higher is the
recommended version. Additionally, make sure the postgresql-contrib
modules is installed (UUID requires it). Once it is installed, and to
make the database accessible from anywhere, so that external developers
or yourself can access it easily with PgAdmin3, psql or any other
development tool. Locate and edit the postgresql.conf file, and
uncomment the following line, assigning this new value:
</p>
<pre>listen_addresses='*'<br />
</pre>
<p>This makes the database be listening in all the interfaces available in your system and not only in localhost (default).
</p>
<p>Locate and edit the pg_hba.conf file, and add this line at the end:
</p>
<pre>host    all         all         0.0.0.0/0          md5<br />
</pre>
<p>Or if you want more security you can change the 0.0.0.0/0 with the
concrete IP that you want to give access for example 1.2.3.4/32.
</p>
<p>Just for safety purposes, this assumes you have a firewall in your local LAN preventing outsiders to access the database.
</p>
<div style="border-left-color: #bbbbaa; padding-top: 0em; padding-right: 1em; padding-bottom: 0em; padding-left: 1em; margin-top: 0.5em; margin-right: 0.5em; margin-bottom: 0.5em; margin-left: 0.5em; background-color: #f7f8ff; ">
<table style="background-color: #f7f8ff; ">
    <tbody>
        <tr>
            <td valign="top"><a href="http://wiki.openbravo.com/wiki/Image:Bulbgraph.png" class="image" title="Image:Bulbgraph.png"><img alt="Image:Bulbgraph.png" src="http://wiki.openbravo.com/wiki/images/6/60/Bulbgraph.png" width="18" border="0" height="22" /></a>&nbsp;&nbsp; </td>
            <td><span style="background-color: #f7f8ff;">
            As an example, in Ubuntu 10.04, these file are located in
            /etc/postgresql/8.4/main, assuming that you have installed PostgreSQL
            8.4.x</span>
            </td>
        </tr>
    </tbody>
</table>
</div>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Oracle"></a>
<h2> <span class="mw-headline"> Oracle </span></h2>
<p>Do <strong>not</strong> use Oracle XE 10g. It's 4GB storage limitation makes it useless for heavy development in a few days, and it has a <a href="https://issues.openbravo.com/view.php?id=2591" class="external text" title="https://issues.openbravo.com/view.php?id=2591" rel="nofollow">bug</a> that happens usually when using Openbravo ERP. Therefore, the recommended version is <em>Standard Edition</em> 11g (&gt;=11.1.0.6.0).
</p>
<p>The number of open cursors should be 3000 at least. To verify this:
</p>
<pre>SELECT value FROM v$parameter WHERE name = 'open_cursors';<br />
</pre>
<p>To increase it:
</p>
<pre>ALTER SYSTEM SET open_cursors = 3000 SCOPE=BOTH;<br />
</pre>
<p>Make sure that the number of processes is 150 at least. To verify this:
</p>
<pre>SELECT value FROM v$parameter WHERE name = 'processes';<br />
</pre>
<p>To increase it:
</p>
<pre>ALTER SYSTEM set processes=150 SCOPE=SPFILE;<br />
</pre>
<p>And restart Oracle after doing this change.
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Sun_JDK"></a>
<h2> <span class="mw-headline"> Sun JDK </span></h2>
<p>Follow the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_environment_installation#Sun_JDK" title="ERP/2.50/Openbravo environment installation"> installation steps</a> to set up the Sun JDK. Notice that version JDK 1.6 must be used for version &gt;=2.50 developments.
</p>
<p>The IBM JDK works well too, but almost all the developers use Sun's version. It is therefore the recommended one.
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Apache_Ant"></a>
<h2> <span class="mw-headline"> Apache Ant </span></h2>
<p>Follow the <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_environment_installation#Apache_Ant" title="ERP/2.50/Openbravo environment installation"> installation steps</a>
to set up the Apache Ant. Since version 2.50 Ant needs its memory
settings to be tweaked. Otherwise some basic tasks like a compilation
are likely to fail. Assuming you are using Bash as your shell, append
the following line to your ~/.bashrc file:
</p>
<pre><span style="color: red; ">export ANT_OPTS="-Xmx1024M"</span><br />
</pre>
<p>For 64bit machines:
</p>
<pre><span style="color: red; ">export ANT_OPTS="-Xmx1024M -XX:MaxPermSize=128M"</span><br />
</pre>
<p>See the Apache Tomcat section for an <a href="http://wiki.openbravo.com/wiki/ERP/2.50/Development_Stack_Setup#Apache_Tomcat" title="ERP/2.50/Development Stack Setup"> explanation</a> of what these options mean.
</p>
<p>Close your current shell session and open a new one to apply changes.
</p>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Apache_Tomcat"></a>
<h2> <span class="mw-headline"> Apache Tomcat </span></h2>
<p>Do not use the Tomcat version provided by your operating system's
package manager. The packaged version of Tomcat is very unfriendly in
terms of development due to web application deployment specifics. This
especially applies to Linux distributions.
</p>
<p>Instead, <a href="http://tomcat.apache.org/download-60.cgi" class="external text" title="http://tomcat.apache.org/download-60.cgi" rel="nofollow">download</a>
the official distribution (version 6.0.x), and extract the files in
your home directory. We recommend you to place it in ~/servers/tomcat.
</p>
<p>Every Linux distribution and operating system packages Tomcat in a
different way, with different security settings, permissions, memory
setting and logging configuration. Some of these configurations are not
development friendly. This is the reason of the recommendation to use
the official distribution.
</p>
<p>The default memory settings of Tomcat are not enough for a proper
Openbravo ERP functioning. Thus append the following line to your
~/.bashrc
</p>
<pre><span style="color: red; ">export CATALINA_OPTS="-Djava.awt.headless=true -Xms384M -Xmx512M -XX:MaxPermSize=256M"</span><br />
</pre>
<ul>
    <li> <strong>-Djava.awt.headless</strong>: this setting controls running the
    environment with a headless implementation. In Openbravo ERP the client
    is always a web browser, so the JVM does not need to run any graphical
    window at all.
    </li>
</ul>
<ul>
    <li> <strong>-Xms</strong>: this setting controls the initial size of the Java
    heap. Properly tuning this parameter reduces the overhead of garbage
    collection, improving server response time and throughput.
    </li>
</ul>
<ul>
    <li> <strong>-Xmx</strong>: this setting controls the maximum size of the Java
    heap. Properly tuning this parameter reduces the overhead of garbage
    collection, improving server response time and throughput.
    </li>
</ul>
<ul>
    <li> <strong>-XX:MaxPermSize</strong>: this setting controls the section of
    the heap reserved for the permanent generation, and holds all of the
    reflective data for the JVM.
    </li>
</ul>
<p>These options are the same ones as for production environment, except for the <strong>-server</strong>
option. This is useful only in production servers,  because it makes
the JVM to use the optimizing compiler instead of the standard one. And
while this change increases significantly the performance of the server,
it takes longer to warm up. And deployment speed is something that a
developer appreciates.
</p>
<p>In order to avoid the <em>Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK</em>
error when trying to compile the application from Tomcat using the
Openbravo ERP web interface, add the tools.jar library to Tomcat's
classpath:
</p>
<pre>cp $JAVA_HOME/lib/tools.jar ~/servers/tomcat/lib/<br />
</pre>
<p>In order to avoid Tomcat from auto-reloading itself, comment the WatchedResource line in conf/context.xml:
</p>
<pre>&lt;!-- &lt;WatchedResource&gt;WEB-INF/web.xml&lt;/WatchedResource&gt; --&gt;</pre>
<p>Configure a username and password for the Tomcat Manager, by replacing the conf/tomcat-users.xml file with these contents:
</p>
<pre>&lt;?xml version='1.0' encoding='utf-8'?&gt;<br />
&lt;tomcat-users&gt;<br />
&lt;role rolename="manager"/&gt;<br />
&lt;role rolename="admin"/&gt;<br />
&lt;user username="admin" password="admin" roles="admin,manager"/&gt;<br />
&lt;/tomcat-users&gt;<br />
</pre>
<p>Replace <em>password="admin"</em> with your own password.
</p>
<p>Finally, to start and stop tomcat use the following commands:
</p>
<pre>cd ~/servers/tomcat/bin<br />
./startup.sh<br />
./shutdown.sh<br />
</pre>
<a style="width: 20px; height: 20px; text-indent: 20px; background-repeat: no-repeat; background-image: url(&quot;/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif&quot;);" name="Mercurial"></a>
<h2> <span class="mw-headline"> Mercurial </span></h2>
<p>Follow the <a href="http://wiki.openbravo.com/wiki/Mercurial_Manual_for_Openbravo_Developers" title="Mercurial Manual for Openbravo Developers"> Mercurial manual for Openbravo developers</a> to install and configure it.
</p>
<img src ="http://www.blogjava.net/keweibo/aggbug/342030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2010-12-31 08:31 <a href="http://www.blogjava.net/keweibo/articles/342030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>openbravo中圖片 IMG 顯示方式 2010-12-5</title><link>http://www.blogjava.net/keweibo/articles/339834.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Sun, 05 Dec 2010 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/339834.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/339834.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/339834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/339834.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/339834.html</trackback:ping><description><![CDATA[<p>系統中的HTML文件的IMG標籤的SRC屬性都是類似以下的<br />
方式<br />
<font style="background-color: #cce8cf">&lt;img class="Menu_ToolBar_Button_Icon Menu_ToolBar_Button_Icon_logout" <span style="color: red">src="../../../../../web/images/blank.gif"</span> border="0" alt="Close session" title="Close session" /&gt;</font></p>
顯示時卻可以顯示出圖片.剛開始有點費解,今天終於了解清楚了.<br />
原來是根據class屬性的值,再到相應的CSS文件中定義.<br />
<span style="color: red">--Openbravo_ERP_250.css<br />
</span><font style="background-color: #cce8cf">.Menu_ToolBar_Button_Icon_logout {<br />
&nbsp; background-repeat: no-repeat;<br />
&nbsp; background-position: center center;<br />
&nbsp; background-image: url(Menu/ToolBar/iconLogout.png);&nbsp; /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */<br />
}</font><br />
例外,有些地方還要到數據庫中讀取出來.如下<br />
<span style="color: red">--Logos.css<br />
</span><font style="background-color: #cce8cf">.Login_Logo_Company {<br />
&nbsp; width: 197px;<br />
&nbsp; height: 55px;<br />
&nbsp; margin-top: 3px;<br />
&nbsp; margin-bottom: 3px;<br />
&nbsp; background: url(../../utility/ShowImageLogo?logo=yourcompanylogin) no-repeat center center;<br />
}</font><br />
<br />
<br />
 <img src ="http://www.blogjava.net/keweibo/aggbug/339834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2010-12-05 12:12 <a href="http://www.blogjava.net/keweibo/articles/339834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>openbravo Error received in IO response: liveGrid.getBackendPageSize is not a function 2010/11/3</title><link>http://www.blogjava.net/keweibo/articles/336929.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Wed, 03 Nov 2010 06:46:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/336929.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/336929.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/336929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/336929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/336929.html</trackback:ping><description><![CDATA[異常<br />
<pre>Error received in IO response:
liveGrid.getBackendPageSize is not a function<br />
<br />
解決方法:<br />
清除流覽器的Cookie后 OK<br />
<br />
</pre>
<br />
<br />
<img src ="http://www.blogjava.net/keweibo/aggbug/336929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2010-11-03 14:46 <a href="http://www.blogjava.net/keweibo/articles/336929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>openbravo 执行ant install.source时报get_uuid()函数错误－2010／10／25</title><link>http://www.blogjava.net/keweibo/articles/336119.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Mon, 25 Oct 2010 12:41:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/336119.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/336119.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/336119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/336119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/336119.html</trackback:ping><description><![CDATA[<br />
原因：<br />
在unbuntu 系统上只安装了<br />
<pre> postgresql-8.4</pre>
没有安装<br />
<pre>postgresql-contrib-8.4</pre>
安装后OK<br />
<br />
<br />
参考：http://wiki.openbravo.com/wiki/ERP/2.50/Openbravo_environment_installation#PostgreSQL_database<br />
<br />
<img src ="http://www.blogjava.net/keweibo/aggbug/336119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2010-10-25 20:41 <a href="http://www.blogjava.net/keweibo/articles/336119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Openbravo2.5 開發環境的搭建-2010/10/20</title><link>http://www.blogjava.net/keweibo/articles/335666.html</link><dc:creator>Ke</dc:creator><author>Ke</author><pubDate>Wed, 20 Oct 2010 02:32:00 GMT</pubDate><guid>http://www.blogjava.net/keweibo/articles/335666.html</guid><wfw:comment>http://www.blogjava.net/keweibo/comments/335666.html</wfw:comment><comments>http://www.blogjava.net/keweibo/articles/335666.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/keweibo/comments/commentRss/335666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/keweibo/services/trackbacks/335666.html</trackback:ping><description><![CDATA[<p>折騰了好一陣子的時間,今天終於將開發環境搭建OK<br />
完全是參照以下說法<br />
http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/Development_Environment/Setting_up_Development_Environment_with_Eclipse_IDE<br />
</p>
不過在ant install.source的最后一個過程中拋出以下異常<br />
<span style="color: red;">[applyModule] 0&nbsp;&nbsp;&nbsp; [main] ERROR org.openbravo.base.exception.OBException - org.d<br />
om4j.DocumentException: Error on line 202 of document&nbsp; : The element type "symbo<br />
l" must be terminated by the matching end-tag "&lt;/symbol&gt;". Nested exception: The<br />
&nbsp;element type "symbol" must be terminated by the matching end-tag "&lt;/symbol&gt;".</span><br />
好像網上也有好多朋友都遇到過,在網上也找不到解決的方法.<br />
不過好像沒影響,因為後面的操作同樣都成功了.<br />
<br />
2010/10/20 開始我的Openbravo ERP之旅.加油! <br />
路漫漫其修远兮 吾将上下而求索<br />
<span style="color: red;"><br />
补充：<br />
2010/10/25 今天用相同的源代码在Ubuntu上配置开发环境，竟然没有报上面的错误...</span><br />
<img src ="http://www.blogjava.net/keweibo/aggbug/335666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/keweibo/" target="_blank">Ke</a> 2010-10-20 10:32 <a href="http://www.blogjava.net/keweibo/articles/335666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>