2016-08-23 4 views
0

最大配列インデックスの値を取得:odoo私は配列にデータを追加する機能を持っ

def _get_maxstate(self, cr, uid, context=None): 
    res = [] 
    arr_state = _get_state(self, cr, uid, context) 
    states = len(arr_state) - 1 
    res = arr_state[0][states] 
    return res 

しかし:その後、

def _get_state(self, cr, uid, context=None): 
    idemployee = _default_employee(self, cr, uid, context=None) 
    sql = " SELECT C.id AS id, C.sequence, C.name \ 
        FROM wf_group_member A \ 
      LEFT JOIN wf_group B ON B.id = A.group_id \ 
      LEFT JOIN wf_process BB ON BB.id = B.process_id\ 
      LEFT JOIN wf_state C ON C.group_id = B.id \ 
      LEFT JOIN hr_employee D ON D.id = A.member_id \ 
      WHERE LOWER(code) = 'ca' AND member_id = %s ORDER BY sequence " 
    res = [] 
    cr.execute(sql, [(idemployee)]) 
    ardata = cr.fetchall() 
    for data in ardata: 
     res.append((data[1], data[2])) 
    return res 

をとし、私は最大の配列インデックスの値を取得しようとしました私はそれがエラーを発生させ、アクションボタンで_get_maxstateを呼び出す:

res = arr_state[0][states] 
IndexError: tuple index out of range 

私のコードで間違って何、私を助けてください

答えて

1

statesは、arr_stateの最後の要素のインデックスです。ただし、arr_statestatesでインデックス付けしない場合は、0でインデックス付けし、結果をstatesでインデックスします。他の方法でインデックスを作成する場合は、arr_state[states][0]と思われます。

+0

お返事ありがとうございます、私はその部分を逃して、あなたの答えで解決しました – yogakumboro

関連する問題