Здравствуйте. Имеем датасет, в котором хранятся даты(день, месяц, год) + комментарий.
Имеется поле для установки даты, значение которого назовем var1(не из вышеуказанного датасета).
Как проверить, имеется ли в датасете запись со значением из поля var1?
Грубо говоря проверить примерно такое условие var1 == Dataset('Dates'). Но по логике то что написано это сравнение значения переменной с целым массивом данных, как пробежаться грубо говоря по каждой записи и сравнить нет ли с одной из них совпадения? Учитывается только дата, без комментария.
Нравится
Если и там и там именно дата, без времени (то есть возможно строгое совпадение), то можно в SelectQuery датасета создать фильтр по полю с датой. Потом в скрипте налагать на датасет этот фильтр с помощью функции ApplyDatasetFilter, открывать датасет и смотреть, не пуст ли он.
Правильный способ описал Александр выше.
Ну если вдруг понадобится неправильный способ, как пробежаться грубо говоря по каждой записи и сравнить нет ли с одной из них совпадения, то грубо кодируя, это так
var Dataset = Services.getNewItemByUSI('ds_Какой-то датасет'); RefreshDataset(Dataset); //Тут я получил сегодняшнее число без времени var var1 = new Date(); var1.setHours(0,0,0,0); var1 = var1.getVarDate(); var result = false; Dataset.GoToFirst(); while(!Dataset.IsEOF) { if (DateToStr(Dataset('Dates')) == DateToStr(var1)) { result = true; break; } Dataset.GoToNext(); } if (result) Log.Write(1, 'Есть совпадение'); else Log.Write(1, 'Нет совпадений');
P.S. Еще раз, правильный способ в первом комментарии, мой только для ознакомления альтернатив, может узнаете из него что-то новое.