程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> OpenERP彈出窗口提示小結

OpenERP彈出窗口提示小結

編輯:關於C
OpenERP彈出提示窗口小結

OpenERP彈出提示窗口有三種方式,詳情可參考:
http://www.cnblogs.com/cnshen/p/3205405.html
http://shine-it.net/index.php?topic=2383.0
這裡注意討論的是raise osv.except_osv()這種方式,效果圖如下:
\
<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgoKPHN0cm9uZz4xPC9zdHJvbmc+PHN0cm9uZz6jqSC1vMjr0OjSqrXExKO/6Twvc3Ryb25nPjxzdHJvbmc+Cjwvc3Ryb25nPjxzdHJvbmc+Cjwvc3Ryb25nPjxzdHJvbmc+Cjwvc3Ryb25nPiA8cHJlIGNsYXNzPQ=="brush:java;">  from openerp.tools.translate import _
  from osv.osv import except_osv

2) 檢查業務邏輯中的錯誤,終止代碼執行,顯示錯誤或警告信息
在類方法中需要提示的地方加如下代碼:

 raiseosv.except_osv(_('Error!'), _('Error Message.'))

  注意:方法osv.except_osv()需要兩個參數,把參數放在_()中是實現了參數的國際化,可以不加_()

Eg:

   
def __assistant_depmanager_prove(self, cr, uid, ids, context=None):
        for qjd in self.browse(cr, uid, ids, context=context):
            if qjd.shenqr.user_id.id == uid:
                raise osv.except_osv(_('Warning!'), _('you cannot prove yourself'))
                return False
            elif qjd.tians > 1:
                raise osv.except_osv(_('Warning!'), _('There are not enough access '))
                return False
            else:
                return True

翻譯提示語
#. module: qingjia
#: code:addons/qingjia/qingjia.py:0
#, python-formatmsgid "Warning!"msgstr "提示!"
#. module: qingjia#: code:addons/qingjia/qingjia.py:0
#, python-formatmsgid "you cannot prove yourself"
msgstr "您不能審批您自己的請假單"

3)  在提示語中可以含有變量,以及對變量的中文翻譯 
 
def assistant_depmanager_proved_new(self, cr, uid, ids, context=None):
        res = self.browse(cr, uid, ids, context=context)
        result = res[0]
        raise osv.except_osv(_(' Error! '), _('Your uid is "%s" ,name is "%s",the state is "%s"')%(_(uid),_('王小波'),_(result.state)))
        result = self.__assistant_depmanager_prove(cr, uid, ids, context=context)
        if result:
            self.write(cr, uid, ids, {'state': 'proved'})

說明:這裡的狀態翻譯後是對應的英文狀態名,如果還需要翻譯成中文,必須使用_()

#. module: qingjia#: code:addons/qingjia/qingjia.py:0
#, python-format
msgid "Your uid is \"%s\" ,name is \"%s\",the state is \"%s\""
msgstr "你的用戶id是:'%s',姓名是:'%s',請假單狀態是:'%s'"

對定義的所有狀態進行翻譯,最後狀態也將是中文的

#. module: qingjia
#: code:addons/qingjia/qingjia.py:0
#, python-format
msgid "wait_prove"msgstr "待批的"

效果圖如下



      
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved