Здравствуйте. Имеем датасет, в котором хранятся даты(день, месяц, год) + комментарий.
Имеется поле для установки даты, значение которого назовем var1(не из вышеуказанного датасета).
Как проверить, имеется ли в датасете запись со значением из поля var1?
Грубо говоря проверить примерно такое условие var1 == Dataset('Dates'). Но по логике то что написано это сравнение значения переменной с целым массивом данных, как пробежаться грубо говоря по каждой записи и сравнить нет ли с одной из них совпадения? Учитывается только дата, без комментария.
Нравится
Если и там и там именно дата, без времени (то есть возможно строгое совпадение), то можно в SelectQuery датасета создать фильтр по полю с датой. Потом в скрипте налагать на датасет этот фильтр с помощью функции ApplyDatasetFilter, открывать датасет и смотреть, не пуст ли он.
Правильный способ описал Александр выше.
Ну если вдруг понадобится неправильный способ, как пробежаться грубо говоря по каждой записи и сравнить нет ли с одной из них совпадения, то грубо кодируя, это так
[javascript]
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, 'Нет совпадений');
[/javascript]
P.S. Еще раз, правильный способ в первом комментарии, мой только для ознакомления альтернатив, может узнаете из него что-то новое.