1 (edited by Aleksandr.Kostin 2019-05-23 15:39:54)

Topic: Контроль дублирования

Добрый день! Подскажите, пожалуйста,  возможен ли  функционал: Требуется в Gridе контролировать дубли записи по дате подачи заявления, т.е. самая первая запись о подачи заявления, чтобы была не "Дублем", а последующие проставлялась отметка "Дубль" автоматом (в случае совпадения ФИО и даты рождения).

Post's attachments

Attachment icon Программа для ТУИК.rar 298.16 kb, 274 downloads since 2019-05-23 

Re: Контроль дублирования

Доработал ваш проект. Проверка на создание дубликата происходит только при создании новой записи, при редактировании записи проверка не производится.

Post's attachments

Attachment icon Программа для ТИК УИК_fixed.zip 12.79 kb, 291 downloads since 2019-05-24 

Dmitry.

Re: Контроль дублирования

Спасибо огромное. Именно то, что и требовалось. Чтоб не контролировать большие или маленькие буквы, это возможно!?

Re: Контроль дублирования

Aleksandr.Kostin wrote:

Спасибо огромное. Именно то, что и требовалось. Чтоб не контролировать большие или маленькие буквы, это возможно!?

Да, замените эту строку

        if SQLExecute('SELECT COUNT(*) FROM Reest WHERE Familia = ' + Frmvoiter.edFamilia.sqlValue + ' AND Name = ' + Frmvoiter.edName.sqlValue + ' AND SecondName = ' + Frmvoiter.edOtchestvo.sqlValue + ' AND Date(DataBirthday) = Date('+Frmvoiter.edDataOfBirth.sqlDate+')') > 0 then

на

        if SQLExecute('SELECT COUNT(*) FROM Reest WHERE Familia LIKE ' + Frmvoiter.edFamilia.sqlValue + ' AND Name LIKE ' + Frmvoiter.edName.sqlValue + ' AND SecondName LIKE ' + Frmvoiter.edOtchestvo.sqlValue + ' AND Date(DataBirthday) = Date('+Frmvoiter.edDataOfBirth.sqlDate+')') > 0 then
Dmitry.

5 (edited by Aleksandr.Kostin 2019-06-24 05:39:00)

Re: Контроль дублирования

Дополнительно возникли два вопроса про контроль дублирования:
1. Если у каждой записи будет присваиваться дата введения записи (не обязательно в хронологическом порядке) - как дополнительно еще и контролировать этот параметр по этому значению, чтоб "не дублем" была только та запись, которая введена раньше, а остальные "дублем"
2. Если данные будут загружены через импорт данных, то событие Новая запись отсутствует, и проверка контроля не срабатывает - как быть!?

Re: Контроль дублирования

1. Условие будет таким

        if SQLExecute('SELECT COUNT(*) FROM Reest WHERE Familia LIKE ' + Frmvoiter.edFamilia.sqlValue + ' AND Name LIKE ' + Frmvoiter.edName.sqlValue + ' AND SecondName LIKE ' + Frmvoiter.edOtchestvo.sqlValue + ' AND Date(DataBirthday) = Date('+Frmvoiter.edDataOfBirth.sqlDate+') AND DateTime(DataOfSupple) < DateTime('+Frmvoiter.edDataOfSupple.sqlDateTime+')') > 0 then

2. Тут есть два варианта, написать скрипт, который пройдется по базе и перепроверит все записи и отметит, какие из них являются дубликатами после каждого такого импорта.


Либо реализовать импорт новых записей с помощью скрипта, в последней бета версии как раз появился класс, который облегчается работу с CSV файлами, пример
http://myvisualdatabase.com/forum/viewtopic.php?id=5353


бета версия https://www.dropbox.com/s/to42wv53pdc0g … a.zip?dl=0

Dmitry.