OpenERP에는 db에 저장되지 않은 두 개의 기능 필드가 있습니다. 실제로 그들은 db에 열이 없습니다. 다른 테이블에서 즉시 계산됩니다. 나는 그들의 합이나 차이를 계산할 수 있기를 원합니다. 나는 그것을하는 무언가 (calculate sum of fields)를 보았다.하지만 데이터를 가져 오기 위해 db로 간다고 생각한다. 제발 이걸 어떻게 할 수 있니? db에 데이터를 저장하고 거기에서 꺼내는 것이 가장 좋은 방법입니까?OpenERP의 두 기능 필드 합계/차이를 계산하는 방법
1
A
답변
4
그들은 세 번째 계산 필드를 정의하고 "multi = ''"를 사용하여 차이를 계산할 수 있으며 나중에 세 번째 필드를 db에 저장할 수도 있고 나중에 필요할 경우 동적으로 유지할 수도 있습니다 외부 사용.
이점은 계산 후 3 번째 필드에 대한 2 필드 저장소 차이입니다.
예제 코드 조각은 다음과 같다 :
class code_play(osv.osv):
_name = 'code.play'
def _calc_function(self, cr, uid, ids, fields_list, args, context=None):
vals = {}
for id in ids:
fields = {}
for field in fields_list:
fields[field] = 10
fields["calc3"] = fields['calc1'] + fields['calc2']
vals[id] = fields
return vals
_columns = {
'name': fields.char('Name', required=True, size=50),
'calc1': fields.function(_calc_function, type='integer', store=False, multi="compute_person_data"),
'calc2': fields.function(_calc_function, type='integer', store=False, multi="compute_person_data"),
'calc3': fields.function(_calc_function, type='integer', store=False, multi="compute_person_data"),
}
다시 필드까지 설명한 바와 같이 멀티를 계산하지만, 동일한 기능 때문에 유형
# when called with ``ids=[1,2,3]``, ``compute_person_data`` could return:
{
1: {'calc1': 10, 'calc2': 10, 'calc3': 20},
2: {'calc1': 10, 'calc2': 10, 'calc3': 20},
3: {'calc1': 10, 'calc2': 10, 'calc3': 20}
}
감사가 될 것 반환됩니다
4
당신에게 함수 필드를 다중 키워드와 결합하여 하나의 함수 내에서 계산할 수 있으며, 세 번째 기능 필드를 추가하는 것이 쉬울 것입니다.
class your_class(osv.osv):
_inherit = 'whatever'
def calc_fields(self, cr, uid, ids, fields, arg, context=None):
res = {}
for record in self.browse(cr, uid, ids, context=context):
res[record.id] = {
'field1': 5, # Calculate the field values here
'field2': 3,
'field3': 5+3,
}
return res
_columns = {
'field1': fields.function(calc_fields, multi='my_combination', string='Field 1'),
'field2': fields.function(calc_fields, multi='my_combination', string='Field 2'),
'field3': fields.function(calc_fields, multi='my_combination', string='Field 1 + Field 2'),
}
your_class()
이 예를 단순화하고 단지 '다'키워드의 중요성 깨끗한이 예제를 유지하고 지점으로 기능 필드 '형'키워드가 없습니다 명심
관련 문제
- 1. db postgres를 사용하여 openerp의 필드 암호화
- 2. 두 날짜의 차이를 계산하는 방법
- 3. openerp의 인보이스
- 4. 두 직육면체의 교점을 계산하는 방법
- 5. "사용자 지정지도 필드"기능
- 6. OpenERP의 payslip에 'No of leaves'를 표시하는 방법
- 7. openerp의 문서 형식으로보고
- 8. xml Openerp의 코딩
- 9. openerp의 버튼 가시성
- 10. OpenERP의 버튼에서 마법사 시작하기
- 11. openerp의 범위 가격
- 12. openerp의 동적 선택 상자
- 13. 두 DateTimes 사이의 백분율을 계산하는 방법
- 14. 두 데이터 그룹 간의 거리를 계산하는 방법
- 15. 최대 두 개의 size_t 변수를 계산하는 방법
- 16. PHP를 사용하여 두 datetimes의 차이를 계산하는 방법?
- 17. 두 주소 사이의 거리를 계산하는 방법
- 18. C에서 두 세트 간의 차이를 계산하는 방법?
- 19. android : 두 점 사이의 거리를 계산하는 방법
- 20. 두 위치 간의 시간차를 계산하는 방법
- 21. 두 기능
- 22. FPA로이 기능 크기를 계산하는 방법은 무엇입니까?
- 23. 자바 스크립트 기능 필드 추가/제거 기능
- 24. 기능 제한을 계산하는 가장 좋은 방법은 무엇입니까?
- 25. 날짜 변경과 관련하여 두 시간 필드 사이의 시간 차이를 계산하는 방법
- 26. 두 점에서도를 계산하는 정확도 상실
- 27. 월별 NYSE 거래 일수를 계산하는 기능
- 28. MDX 하위 수준의 합계 비율을 계산하는 기능
- 29. 작동하지 않는 문자/단어를 계산하는 기능
- 30. 숫자의 seriers를 계산하는 방법