Показать сообщение отдельно
Старый 19.12.2017, 11:14   #1  
SuperStar88 is offline
SuperStar88
Участник
 
79 / 10 (1) +
Регистрация: 11.08.2017
? Помогите с кодом (ax 2009)
Как правильно написать код?
Надо добавлять данные в таблицу по определённому условию:
- пока "Разница дат" в строке >= "Периоду", то добавляем новую строку со значением "Дата С" = "Дата С + Период"
- иначе переходим на следующую строку

Пока вышло что-то страшное
X++:
//rowQuota - временная таблица

    while select forupdate rowQuota
    {
        monthDiff = intvNo(rowQuota.DateTo, rowQuota.DateFrom, IntvScale::Month);
        dayDiff = intvNo(rowQuota.DateTo, rowQuota.DateFrom, IntvScale::Day);

        if(rowQuota.UsagePeriod <= monthDiff && dayDiff > 0)
        {
            buf2buf(rowQuota, rowQuotaTmp);

            do
            {
                rowQuotaTmp.DateFrom = dateMthFwd(rowQuotaTmp.DateFrom, rowQuotaTmp.UsagePeriod);
                rowQuotaTmp.DatePotreb = rowQuotaTmp.DateFrom;
                rowQuotaTmp.insert();

                monthDiff = intvNo(rowQuotaTmp.DateTo, rowQuotaTmp.DateFrom, IntvScale::Month);
                dayDiff = intvNo(rowQuotaTmp.DateTo, rowQuotaTmp.DateFrom, IntvScale::Day);
            }
            while(rowQuotaTmp.UsagePeriod <= monthDiff && dayDiff > 0);
        }
    }