Показать сообщение отдельно
Старый 11.07.2007, 10:28   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA

Вы забыли указать, что источник формы - это "временная таблица".

X++:
    CustVendGroupTable _custVendTable;
    CustVendGroupTable _tempCustVendTable;
    ;
    CustVendGroupTable.setTmp();
    _tempCustVendTable.setTmp();
    while select _custVendTable group by CustVendGroupId
    {
    //info(_custVendTable.CustVendGroupId);
        _tempCustVendTable.data(_custVendTable.data());
        _tempCustVendTable.doInsert();
    }
    CustVendGroupTable.setTmpData(_tempCustVendTable);

    super();
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
сделайте промежуточный буфер, и дайте ему значение, равное "":
X++:
CustVendGroupId buf = "";
;
потом бежите по таблице сортировав по Вашему полю, и если выбранное значение не совпадает с буфером, то doInsert();
иначе просто пропускаете итерацию:
X++:
while select _custVendTable order by CustVendGroupId
{
    if (custVendTable .CustVendGroupId != buf)
    {
           _tempCustVendTable.data(_custVendTable.data());
           doInsert();
           buf = custVendTable .CustVendGroupId ;
    }
}
Так не стоит делать, если записей у вас много в таблице.