Показать сообщение отдельно
Старый 17.04.2012, 11:38   #31  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Случайно запостил раньше сообщение, вот полный текст.

У вас должно быть так:
_Счет ( в онпридайтайтем смотрим есть ли операции по учетным группым с которыми связан счет)
___Поставщик1 ( в онпридайтайтем смотрим есть ли операции по данному поставщику)
______Учетная группа1 ( в онпридайтайтем смотрим есть ли операции по данному поставщику и данной учетной группе)
__________Договор1 ( в онпридайтайтем смотрим есть ли операции по данному поставщику, учетной группе, договору)
_____________Документ1 (выводим документы)
_____________Документ2
__________Договор2
__________.......
______Учетная группа2
__________Договор1
_____________Документ1
_____________.....
__________.....
___Поставщик2
______Учетная группа1
__________.....
______Учетная группа2

Хотя разные учетные группы у одного поставщика меня смущают, ну да ладно.

Теперь по производительности. Тут сложнее. Поля дебета и кредита вычесляемые, каждый раз их суммировать не айс. Лучше при подсчете суммы для счет загнать все операции во временную таблицу (например в GL Entry), не забыв указать номер постащика, группу, договор, документ в схожие по типу поля. Например, будем использовать ключик Source Type (оставляем пустым) ,Source No.( номер поставщика) ,G/L Account No. (пустой) ,Global Dimension 1 Code (группа) ,Global Dimension 2 Code (договор) ,Business Unit Code(пустой),Posting Date ( сюда на всякий случай запишем дату учета из операции) на временную табличку и указываем необходимые фильтры в зависимости от датайтема, в котором сейчас находимся. И делаем calcsums по дебету и кредиту.
Выводить придется записи из временной таблицы.
Возможно поля измерений не подойдут по длине и придется мутить другой ключ с подходящими полями, а может и другую табличку брать под временную