Проверка диапазона дат в транзакции
Я получил эту транзакцию ZENSY0470M для вставки данных и эту веб-панель для вставки (или обновления) информации в вышеуказанную транзакцию.
У меня возникают проблемы с проверкой даты при попытке обновить запись Например, если запись имеет один и тот же ключ ZENSY0470M_SalOutCd7Plc = 1, ZENSY0470M_BseCd = 1 и ZENSY0470M_EvntCd = 1
- Я выбираю диапазон дат (ZENSY0470M_AplyPrdFrm ~ ZENSY0470M_AplyPrdTo) от 1/10 до 5/10.
- Следующая запись с тем же ключом ZENSY0470M_SalOutCd7Plc = 1, ZENSY0470M_BseCd = 1 и ZENSY0470M_EvntCd = 1 НЕ МОЖЕТ иметь дату в диапазоне от 1/10 до 5/10 (1/10, 2/10, ... 5/10), например, 30/0 ~ 2/10 будет неправильным) Но когда я обновляю запись с помощью веб-панели, мне нужно изменить диапазон дат с 1/10 ~ 5/10 на 2/10 ~ 6/10, это вызовет проверку, как я могу этого избежать (я все еще хочу проверить диапазон дат, но для этого нужно исключить запись, которую я обновляю, и сравнить с другими записями. Спасибо!
1 ответ
Возможно, стоит добавить в подпрограмму ChkRegister отсутствующую часть ключа (ZENSY0470M_TmpltId), чтобы исключить из поиска обновляемую запись:
For each ZENSY0470M
where ZENSY0470M_SalOutCd7Plc = &ZENSY0470M_SalOutCd7Plc
where ZENSY0470M_BseCd = &ZENSY0470M_BseCd
where ZENSY0470M_EvntCd = &ZENSY0470M_EvntCd
where ZENSY0470M_TmpltId <> &ZENSY0470M_TmpltId //Add this line
If ZENSY0470M_AplyPrdFrm <= &ZENSY0470M_AplyPrdFrm and &ZENSY0470M_AplyPrdTo >= ZENSY0470M_AplyPrdTo
MSG('1')
&wErrFlg = Flg.On
Else
&wErrFlg = Flg.Off
EndIf
If ZENSY0470M_AplyPrdFrm <= ZENSY0470M_AplyPrdTo and &ZENSY0470M_AplyPrdTo >= ZENSY0470M_AplyPrdFrm
MSG('2')
&wErrFlg = Flg.On
Else
&wErrFlg = Flg.Off
EndIf
EndFor