Добавление записи в набор данных
Чтобы добавить запись справочника в набор данных, используйте:
// Добавить запись в справочник с кодом TST. Record = References.TST.CreateNew() // Заполнить значения реквизитов. Record.SYSREQ_CODE = 'KOD5' Record.SYSREQ_NAME = 'TEST5' // Сохранить изменение набора данных. Record.Save
// Получить набор данных справочника TST. Reference = References.TST.GetComponent() // Добавить ограничение к SQL-запросу для открытия пустого набора данных. AddWhereID = Reference.AddWhere('1 = 0') // Открыть набор данных справочника. Reference.Open // Добавить запись в конец набора данных справочника с кодом TST. Reference.Append() // Заполнить значения реквизитов. Reference.SYSREQ_CODE = 'KOD6' Reference.SYSREQ_NAME = 'TEST6' // Сохранить изменение набора данных. Reference.Save // Закрыть набор данных справочника. Reference.Close // Удалить добавленное ограничение. Reference.DelWhere(AddWhereID)
// Получить набор данных справочника TST. Reference = References.TST.GetComponent() // Добавить ограничение к SQL-запросу для открытия пустого набора данных. AddWhereID = Reference.AddWhere('1 = 0') // Открыть набор данных справочника. Reference.Open // Добавить запись в текущую позицию справочника с кодом TST. Reference.Insert() // Заполнить значения реквизитов. Reference.SYSREQ_CODE = 'KOD7' Reference.SYSREQ_NAME = 'TEST7' // Сохранить изменение набора данных. Reference.Save // Закрыть набор данных справочника. Reference.Close // Удалить добавленное ограничение. Reference.DelWhere(AddWhereID) |
Удаление записи из набора данных
Чтобы удалить запись из набора данных, используйте метод DeleteByCode объекта IReferenceFactory. Пример 1. Определить запись по ее коду и удалить:
// Удалить запись справочника TST с кодом KOD3. References.TST.DeleteByCode('KOD3') Пример 2. Определить запись по ее ИД и удалить:
// Удалить запись справочника TST с ИД 116521. References.TST.DeleteByID('116521') Также конкретные записи можно удалить как группу записей. Но в этом случае потребуется добавить ограничение в метод AddWhere. Если во время работы с набором данных необходимо удалить только одну запись, установите курсор на нужную запись с помощью метода Locate и удалите ее с помощью метода Delete. |
Удаление группы записей из набора данных
Чтобы удалить группу записей, удовлетворяющих заданным условиям, установите ограничение на набор данных справочника и удалите все записи. Ограничения можно задать в разделе AddWhere (при получении данных с сервера) или через свойства Filter или Filtered. Пример. Набор данных ограничить при получении данных с сервера, а затем удалить все записи справочника, в наименовании которых содержится текст «TEST3»:
// Получить набор данных справочника TST. Reference = References.TST.GetComponent() // Сформировать строку для ограничения выборки в SQL-запросе. AddWhere = Format("%0:s.%1:s like '%2:s%3:s%2:s'"; ArrayOf(Reference.TableName; Reference.Requisites(SYSREQ_NAME).SQLFieldName; '%';'TEST3')) // Добавить ограничение к SQL-запросу. AddWhereID = Reference.AddWhere(AddWhere) // Открыть набор данных справочника. Reference.Open // Удалить все записи из набора данных. while not Reference.EOF Reference.Delete endwhile // Закрыть набор данных справочника. Reference.Close // Удалить добавленное ограничение. Reference.DelWhere(AddWhereID) |
Изменение записи в наборе данных
Чтобы изменить записи в наборе данных справочника, выполните код:
// Получить набор данных записи справочника TST с кодом KOD1. Record = References.TST.GetObjectByCode('KOD1') // Изменить значения реквизитов. Record.SYSREQ_CODE = 'KOD1C' Record.SYSREQ_NAME = 'TEST1 Changed' // Сохранить изменение набора данных. Record.Save Также конкретные записи можно изменить как группу записей. Но в этом случае потребуется добавить ограничение в метод AddWhere. Если во время работы с набором данных необходимо изменить только одну запись, установите курсор на нужную запись с помощью метода Locate и измените ее. Учтите, что для редактирования записи необходимо сначала открыть ее с помощью метода OpenRecord, а после изменения сохранить методом Save и закрыть методом CloseRecord. Для отмены внесенных изменений вместо Save следует применить метод Cancel. |
Чтобы изменить группу записей, удовлетворяющих заданным условиям, установите ограничение на набор данных справочника и внесите изменения. Ограничения можно задать в разделе AddWhere (при получении данных с сервера) или через свойства Filter или Filtered. Пример 1. Набор данных справочника ограничить в разделе AddWhere, а затем внести изменения в полученную группу записей.
// Получить набор данных справочника TST. Reference = References.TST.GetComponent() // Сформировать строку для ограничения выборки в SQL-запросе AddWhere = Format("%0:s.%1:s like '%2:s%3:s%2:s'"; ArrayOf(Reference.TableName; Reference.Requisites(SYSREQ_NAME).SQLFieldName; '%';'TEST3')) // Добавить ограничение к SQL-запросу. AddWhereID1 = Reference.AddWhere(AddWhere) // Открыть набор данных справочника. Reference.Open // Изменить все записи из набора данных. foreach RefRecord in Reference RefRecord.OpenRecord RefRecord.SYSREQ_NAME = RefRecord.SYSREQ_NAME & ' Сhange' RefRecord.SYSREQ_CODE = RefRecord.SYSREQ_CODE & 'С' // Сохранить изменение набора данных. RefRecord.Save RefRecord.CloseRecord endforeach // Закрыть набор данных справочника. Reference.Close // Удалить добавленное ограничение. Reference.DelWhere(AddWhereID) Пример 2. С помощью фильтра получить группу записей из набора данных, в наименовании которых содержится текст «TEST3», и внести в нее изменения
// Получить набор данных справочника TST. Reference = References.TST.GetComponent() // Открыть набор данных справочника. Reference.Open // Сформировать строку для ограничения выборки в SQL-запросе. FilterString = Format("%0:s like '%1:s%2:s%1:s'"; ArrayOf(SYSREQ_NAME; '%';'TEST3')) // Добавить условие фильтрации. Reference.Filter = FilterString // Активировать фильтр. Reference.Filtered = TRUE // Изменить все записи из набора данных. foreach RefRecord in Reference RefRecord.OpenRecord RefRecord.SYSREQ_NAME = RefRecord.Requisites(SYSREQ_NAME).AsString & ' Сhange' RefRecord.SYSREQ_CODE = RefRecord.Requisites(SYSREQ_CODE).AsString & 'С' // Сохранить изменение набора данных. RefRecord.Save RefRecord.CloseRecord: endforeach // Отключить фильтр. Reference.Filtered = FALSE // Закрыть набор данных справочника. Reference.Close |
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |