Импорт данных в формате файлов 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 поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы Таблицы. Как сделать сортировку в AS CRUD Таблицы. Как сделать Editable для галочки (Да/Нет) в AS CRUD Таблицы. Как редактировать колонку с датой Таблицы. Как связать 2 таблицы Таблицы. Как сделать таблицу в модальном окне (открывается в диалоговом окне) Таблицы. Как убрать показ количества строк результата в заголовке таблицы? Таблицы. Как связать таблицу и редактирование сущности (зависимая страница) Таблицы. Как использовать комментарии в таблицах Таблицы. Как добавить в фильтре значение Не выбрано со значением Таблицы. Как установить ширину колонки в таблице Таблицы. Как добавить диапазон даты или чисел (слайдер) в фильтр Таблицы. Как сделать операции только для некоторых строк Таблицы. Как делать различный набор столбцов одной таблицы для разных ролей Таблицы. Как реализовать подтаблицу (вложенная таблица), подформу в таблице Таблицы. Как скрыть строчные операции в таблице для определенных строк Таблицы. Как добавить коллбек после загрузки таблицы Таблицы. Отображение таблиц на смартфоне Таблицы. Как работать с галочками в таблице Таблицы. Частые ошибки при настройке таблицы (почему не работает таблица) Таблицы. Как обновить подтаблицу после выполнения некой операции Таблицы. Как обрабатывать групповые операции через модальную форму Таблицы. Как создать предустановленные фильтры для таблицы Как сделать сворачивание таблицы (collapse table) Таблицы. Загрузка таблицы по ссылке Как убрать старые dict процедуры в формах и таблицах Таблица. Как сделать фильтр с деревом галочек Таблицы. Как отключить сохранение состояния таблицы (фильтры) Таблицы. Как сделать ссылку на всю строку таблицы Таблицы. Как передать через URL значение фильтра Таблицы. Как сделать обрезание ячеек таблицы Таблица. Создание сущности с учетом значений фильтров Сортировка строк в таблице Оптимизация запроса SQL - извлечение данных для таблицы Кастомная разметка в таблице Таблицы. Как настроить дополнительные шапку и подвал у таблицы Таблица. Режим кастом вывода через JS (custom) Таблица. Как сделать зависимые фильтры в таблице Импорт данных в формате файлов txt, csv через таблицу Как гибко управлять видимостью столбцов таблицы Таблица. Как сделать раскрытие подстроки через любую ссылку Таблица. Режим быстрой фильтрации строк без обращения на сервер Выпадающая панель рядом с названием таблицы dropdownPanel Таблицы. Как убрать при загрузке установку фокуса ввода на фильтр (data-nofocus)? Как сделать аналитику по периодам (таблица с интервалами дат) Кастомизация вида операций таблицы Таблицы. Стилизация фильтров таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта