CftClub.ru
Клуб специалистов ЦФТ-Банк

Импорт из Excel в IBSO
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеВс Мар 11, 2012 19:52    Ответить с цитатой
Полезность: Нет оценки
Я не претендую на трон Великого Махатмы ЦФТ и Мастера оф Оракл. Все вышеописанные заключения основаны на ЛИЧНОМ практическом опыте ВЫВОДА в WORD через клиент - скрипт и валидатор. Целью поста было предложить ТС в альтенативный вариант в случае, если предложенный уважаемым maestro метод будет тормоЗЗЗЗЗЗить на БОЛЬШИХ объемах данных. За сим откланяюсь.
ssa774
Профи
Связь-Банк


Вступление в Клуб: 30.11.2007
СообщениеПн Мар 12, 2012 05:36    Ответить с цитатой
Полезность: Нет оценки
Большой объем данных можно-таки считать, если пользоваться кодом из первого примера, просто читаем блоками по 30000 (к примеру) в блоке wmRead, перескакиваем на блок wmDraw, пишем во временную таблицу, потом опять на wmRead и т.д., пока не прочитаем весь файл excel. И только потом уходим на wmWrite. Чтобы файл заново не открывался в wmRead, ставим флажок. Флажки еще понадобятся, если нужно дополнительно делать что-то с файлом, кроме чтения. Может быть не слишком красивое решение, но задача была срочная.
maestro
Профи
Неподтвержденный


Вступление в Клуб: 12.10.2010
СообщениеПн Мар 12, 2012 09:23    Ответить с цитатой
Полезность: Нет оценки
Не будем превращать cftclub в sql.ru. Smile

Рассудим предметно:
1. Соглашусь отчасти с vtar, что в случаях когда в строке XL заполнены все 255 ячеек, причем длинными строками, то метод переключений между клиентом и сервером работать не будет. Причина - переполнение транспортной переменной V_DEST значениями одной строки, которая при таком кол-ве данных скорее всего превысит 32К.

2. На практике такая ситуация наврядли возможна. Обычно кол-во колонок невелико, т.к. при большом их количестве пользователю уже неудобно работать с таким XL-файлом. Если XML-представление, скажем, 20ти строк укладывается в 32К, то предложенный метод является идеальным.

3. По поводу кол-ва строк в файле можно не заморачиваться, т.к. их максимум может быть 65536. Вообще, XL-файл большого объема сложно себе представить, а на практике лично я вообще ни разу не встречал.

4. Если рассматривать обычный среднестатистический XL-файл с оговоренными выше ограничениями, то временные затраты на его чтение, упаковку в XML и отправку на сервер будут в разы меньше, чем время, которое потратит пользователь на экспорт в CSV. А для пользователя это целое отдельное действие..
Беляш
Участник
Неподтвержденный


Вступление в Клуб: 30.04.2014
СообщениеПн Авг 06, 2018 09:24    Ответить с цитатой
Полезность: Нет оценки
сделал операцию на основе кода из первого пункта. Выходит такая ошибка:
В настоящий момент операция невозможна: Ошибка исполнения клиент-скрипта: Описание: Требуется объект: 'V_DEST' Источник: Ошибка выполнения Microsoft VBScript Строка: 1 Номер ошибка: 0 Код ошибки: 800A01A8

То есть, как я понимаю, V_Dest должен быть чем то заполнен (мы даже ставили контроль на его заполнение), а он в данном коде пустой.
vtar
Эксперт
Неподтвержденный


Вступление в Клуб: 20.03.2009
СообщениеПн Авг 06, 2018 09:34    Ответить с цитатой
Полезность: Нет оценки
Беляш пишет:
сделал операцию

В Дополнительных свойствах установить проверки
Клиент, Сервер или
Сервер, Клиент

переменную V_DEST надо положить на форму в редакторе экранных форм

потом выбрав ее зайти в Элементы - ValidateName изменить на V_DEST

сохранить и перезайти в Навигатор
_________________
Нельзя всем дать всё: всех много, а всего мало
Беляш
Участник
Неподтвержденный


Вступление в Клуб: 30.04.2014
СообщениеПн Авг 06, 2018 14:29    Ответить с цитатой
Полезность: Нет оценки
vtar пишет:

потом выбрав ее зайти в Элементы - ValidateName изменить на V_DEST


спасибо большое, это не сделал. Теперь всё получилось.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru