Добрый день.

Подскажите, как импортировать данные из Excel_файла в грид террасофта?
При этом нужно произвести некоторые манипуляции с данными в файле (просуммировать значения одного столбца по значению другого).

Мне, как вариант, представляется это так: импортировать данные во временную таблицу, запросом просуммировать всё как надо и вставить в таблицу нужного грида процедурой на сервере.

Вопрос как собственно импортировать (по нажатию кнопки на том самом гриде) и есть ли другой способ манипуляций с данными в табличном файле?

Нравится

7 комментариев

Добрый день!

Во время импорта провести "манипуляции" нельзя.
Но Ваш подход решения весьма трудоемок. Рассмотрите вариант написание функции с циклом, который "пройдет" по необходимому датасету и выполнит необходимые действия.

Мне почему-то кажется, что обработка данных непосредственно в таблице будет быстрее. Хотя, возможно, не совсем правильно.

А как сам импорт произвести?

На мой взгляд, наиболее простой способ - сделать все манипуляции непосредственно в самом Excel файле. Затем импортировать его стандартными средствами раздела "Интеграции". От туда же можно взять "код" из кнопки импорта.

Максим, согласен, самое разумное решение :)
Но не похоже, что Лена ищет легких путей)

"Росинская Лена" написал:

А как сам импорт произвести?

Стандартными средствами через "Интеграцию".

"Гакало Игорь Александрович" написал:Максим, согласен, самое разумное решение :)

Excel-файлы могут, например, прийти из другой системы или от людей как есть. И хочется их загрузить без открытия и изменения.

А если сделать вычисляемую (средствами js) колонку в датасете или вычисляемое (средствами sql) поле в select query?

Игорь, Вы ошибаетесь.

Просто заказчик не собирается руками править файл перед импортом в ТС.

Не вполне понятно Ваше предложение "пройтись по датасету": как в нём можно реализовать агрегатные функции аналогичные sum + group by в sql?

Всё что я нашла в веткеCommon\Tools\Integration\MS Office\MS Excel\ это 2 скрипта: scr_MSExcelLibrary и scr_MSExcelLibraryConsts.

В разделе "интегрирование" можно загрузить шаблон в грид, а при попытке его открыть сыпятся ошибки и в итоге открывается пустое окно "настройки импорта".

Первая из ошибок - пустой объект var SaveDisplayAlerts = ExcelApplication.DisplayAlerts; в скрипте scr_DataflowTuning.

Лена, по поводу ошибки подсказать не могу, необходима отладка. Если Вы не изменяли стандартную логику, то поддержка сможет помочь.

Не думаю, что сортировка будет очень важна при импорте, а суммирование значений - это именно то, что я имел в виду под "пройтись" :) То есть, либо запуск скрипта из конфигурации, либо добавление кнопки "Суммирования" (или других операций) над значениями полей, которая будет находиться в GridArea "Интеграций" для определенных ID интеграций Excel, которым потребуется слияние.
В этом же скрипте Вы можете добавить проверку на дату добавления записи, чтобы обрабатывались не все записи, а только те, которые, к примеру, были добавлены сегодня.

Показать все комментарии