Показать сообщение отдельно
Старый 26.05.2017, 15:23   #2  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
365 / 542 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Баг в классе SysTableLookupBase, можно поправить например вот так метод formRun
X++:
    queryBuildDataSource = formDataSource.queryBuildDataSource();
    if (queryBuildDataSource)
    {
        // Update the Query's select list.
        this.buildSelectionList(queryBuildDataSource);

        uniqueId = queryBuildDataSource.uniqueId();
    }

    queryBuildDataSource = formDataSource.queryRunQueryBuildDataSource();
    if (queryBuildDataSource)
    {
        // Update the QueryRun's select list.
        this.buildSelectionList(queryBuildDataSource);

        uniqueId = queryBuildDataSource.uniqueId();
    }

    if(query != null && query.queryType() == QueryType::Union)
    {
        for(i = 1; i <= query.dataSourceCount(); i++)
        {
            queryBuildDataSource = query.dataSourceNo(i);

            if(queryBuildDataSource.uniqueId() != uniqueId)
            {
                this.buildSelectionList(queryBuildDataSource);
                //simple fix srf
                if (formDataSource.queryRun() && formDataSource.queryRun().query().dataSourceUniqueId(queryBuildDataSource.uniqueId()))
                {
                    queryBuildDataSource = formDataSource.queryRun().query().dataSourceUniqueId(queryBuildDataSource.uniqueId());
                    if (queryBuildDataSource)
                    {
                        // Update the QueryRun's select list.
                        this.buildSelectionList(queryBuildDataSource);
                    }                
                }
                //simple fix srf
            }
        }
    }
Смысл в том, что поля, которые отображаются в лукапе, добавляются в запрос 2 раза(комменты // Update the Query's select list. и // Update the QueryRun's select list.), а для оставшихся DS в query типа union только 1 раз, поэтому и ошибка про несоответствие числа полей в источниках данных

Но логичнее посмотреть метод this.buildSelectionList и поправить его так, чтобы поля которые уже есть в запросе дополнительно в него не добавлялись, тогда метод formRun править не надо будет.
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Oz (2), gl00mie (3), Logger (1).