Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Импорт данных в формате файлов txt, csv через таблицу
Вы можете настроить в компоненте Таблица массовое занесение данных в таблицу через файлы CSV и TXT.
Файл содержит некоторые данные построчно с некоторым разделителем колонок (в примере - это точка с запятой).
Для одной таблицы может быть размещено несколько вариантов импорта (отдельные кнопки со своими настройками импорта).
Как настроить импорт в компоненте Таблица:
1. Прописываем в GetItems SELECT 3 параметр importOptions в формате JSON:
-- SELECT 3
select '[
{"enable": true,
"code": "importKeys",
"desc": "Загрузите данные в txt или csv формате с разделителем в виде точки с запятой",
"resourceManager": "importTable1" ,
"btnText": "Импортировать данные в таблицу",
"icon": "fa fa-bars",
"dialogTitle": "Массовая загрузка данных через таблицу", "dialogBtnText": "Выполнить импорт" }
]' importOptions
Параметры JSON - массив объектов со следующими полями:
- enable - если true, то показывается кнопка Импортировать рядом с названием таблицы
- code - задает ключ импорта. Этот код используется в процедуре updateFiled (с приставкой import-)
- desc - ваше описание-инструкция для пользователя в диалоговом окне (например, здесь вы можете дать ссылку на шаблон файла).
- resourceManager - код менеджера ресурсов (создается в /resourceTypes), через который будет загружаться файл.
- btnText, icon - текст и иконка кнопка Импортировать
- dialogTitle, dialogBtnText - заголовок и кнопка действия в модальном окне загрузки файла.
- hideSuccessRows - если true, то в выводе результата не будут показываться успешно обработанные строки.
2. Создаем менеджер ресурсов, указанный в resourceCode
К примеру можно выставить такие параметры:
3. Реализуем процедуру updateField, у которой на вход приходят следующие параметры:
- field = import (спецзначение, по которому мы определяем что вызван импорт через файлы).
- itemID - это data-itemID у таблицы (а не id строки как при обычном редактировании).
- value - это строка файла с разделителями.
Процедура возвращает Result, Message - т.е. результат операции загрузки данной строки.
Таким образом делается загрузка файла, содержимое разбирается на строки (через \n) и для каждой строки запускается процедура updateField.
Вид процедуры:
CREATE PROCEDURE [dbo].[crud_testx1213312_updateField]
@itemID nvarchar(128),
@field nvarchar(64),
@value nvarchar(max),
@username nvarchar(64)
AS
BEGIN
if(@field = 'import-importKeys') begin
-- itemID - это itemID таблицы
-- value это rows разделенный delimiter
declare @row nvarchar(max) = @value
declare @v1 nvarchar(max) = isnull((select value from dbo.split(@row, ';') where [num] = 1), '')
declare @v2 nvarchar(max) = isnull((select value from dbo.split(@row, ';') where [num] = 2), '')
declare @v3 nvarchar(max) = isnull((select value from dbo.split(@row, ';') where [num] = 3), '')
declare @v4 nvarchar(max) = isnull((select value from dbo.split(@row, ';') where [num] = 4), '')
print @row
print @v1
print @v2
print @v3
print @v4
select 0 Result, '11' Msg
end else if(@field = 'YYY') begin
update as_trace set code = @value where id = @itemID
end else begin
select 'Невалидный код свойства' Msg, 0 Result
return
end
select '' Msg, 1 Result
END
--ru 29.04.2022 9:41:14
--ru 29.04.2022 9:44:44
--ru 29.04.2022 10:48:07
В итоге выполнения процедуры получаем окно вида, где зеленым выделено что загрузилось корректно (result=1 в updateField), а где были ошибки (result=0 в updateField).
Указывается исходная строка и ее результат (msg).
Примечание: Строки Всего, Не прошла загрузка, Корректно загружено можно менять через as.resources - ключи crud.importTotal, crud.importFail, crud.importCorrect.
Таким образом для продвинутых пользователей, которые в состоянии подготовить файл с корректными данными можно сделать удобный механизм массового занесения данных.
Google поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта