AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2019, 19:00   #1  
Ventainais is offline
Ventainais
Участник
 
13 / 10 (1) +
Регистрация: 31.08.2019
Цитата:
I see in your code if startDateTime contains current 2019 year then endDateTime should contain the date of 2018 year:
Цитата:
Here you substract the value of 1 year from startDateTime and assign result to endDateTime. Such conditions do not allow you to get something else than nothing.
Not really sure what You mean by this. The two dateTime variables are used to fetch DocuRef records by field CreatedDateTime on one year period from current date.

Цитата:
No, it doesn't look correct. Due to your current conditions in a case when docuRef.TypeId != #SPP you should pull the records for any company (RefCompanyId) and any table (RefTableId). I'm sure you pulled the records with empty TypeId field right for this case. Enclose following code in additional braces and you will see the difference.
This got me thinking and I rewrote the while select statement as follows:

X++:
while select createdBy, createdDateTime, TypeId from docuRef
        where docuRef.RefTableId    == tableNum(CustTable)  &&
             ((docuRef.createdDateTime >= endDateTime   &&
              docuRef.createdDateTime <= startDateTime     &&
              docuRef.TypeId == #SPP) || docuRef.TypeId != #SPP)
        join AccountNum, Party from custTable
            where custTable.RecId       == docuRef.RefRecId     &&
                  custTable.dataAreaId  == docuRef.RefCompanyId &&
                  custTable.Blocked     == CustVendorBlocked::No
        exists join partyLocation
            where partyLocation.IsPrimary   == true   &&
                  partyLocation.Party       == custTable.Party
        exists join postalAddress
            where postalAddress.Location == partyLocation.Location
        exists join addressCountryRegion
            where addressCountryRegion.CountryRegionId      == postalAddress.CountryRegionId    &&
                  addressCountryRegion.SanctionedCountry_mb == NoYes::Yes
    {
        tmpCustVendListTable.clear();
        
        if (custVendAcc != custTable.AccountNum)
        {
            custVendAcc = custTable.AccountNum;
        }
        else
        {
            if (docuRef.TypeId != #SPP)
                continue;
        }

        tmpCustVendListTable.BPAccountNum       = custVendAcc;
        tmpCustVendListTable.BPName             = custTable.name();

        if (docuRef.TypeId == #SPP)
        {
            tmpCustVendListTable.ResponsibleUser    = XUserInfo::find(false, docuRef.createdBy).name;
            tmpCustVendListTable.ScreeningDateTime  = docuRef.createdDateTime;
        }

        tmpCustVendListTable.insert();
    }
Now when I execute the report I get the results I need.
Thank you dech.
Теги
axapta 2012, docuref, missing value, ssrs, typeid

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stephenmann: Technical History of Dynamics AX - From Axapta 3.0 to AX2012 Blog bot DAX Blogs 5 03.03.2017 10:22
emeadaxsupport: Vendor invoice - A currency to convert from is required to retrieve exchange rate information when trying to access a Vendor Invoice that is linked to a Purchase Order Blog bot DAX Blogs 0 05.12.2014 19:11
sumitsaxfactor: Building a simple report – Using Report Data Provider Blog bot DAX Blogs 9 11.09.2012 10:17
emeadaxsupport: Opening a Report on AX 2012 raises infolog error: The default Report Server Configuration ID could not be found in the SRSServers table. Blog bot DAX Blogs 0 02.12.2011 00:13
dynamic-ax.co.uk: Import Emails from Outlook 2007 into Dynamics AX 2009 Blog bot DAX Blogs 1 03.07.2009 07:17

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:16.