27.06.2006, 12:44 | #1 |
Участник
|
Импорт из буфера
Кто-нибудь сталкивался с задачей импорта данных в Axapta из буфера? К примеру, нужно импортировать ряд новых номенклатур, которые поступают сотруднику в файле формата .xls от поставщика. Сотрудник корректирует поля, добавляет некоторые параметры, далее копирует строки файла в буфер, в Axapta выполняет вставку из буфера, находясь в нужной форме. Как понимаю, такая функциональность есть в том же Navision, так за что же Axapta обидели? Или, может, я что-то неправильно делаю и все же такая возможность есть? Просто за один сеанс может импортироваться порядка нескольких тысяч записей. А время импорта стандартными средствами Axapta из файла .xls просто удручающее.
|
|
27.06.2006, 13:51 | #2 |
Участник
|
Попробуйте сделать job, импортирующий из xls. Если будут проблемы с подключением непосредственно xls как источника данных, можно преобразовать его в dbf - проверенный способ. Вот похожий пример:
Код: static void dbfTableImport(Args _args) { OdbcConnection connection; LoginProperty loginProperty = new LoginProperty(); Statement statement; ResultSet resultSet; str statementTxt = "SELECT FIELD1, FIELD2, FIELD3 FROM DBFTABLE1"; int i, c, v, w; InventTableModule itm, itmu; InventTable it; InventItemLocation iil; ; loginProperty.setDSN("dbf"); connection = new OdbcConnection(loginProperty); statement = connection.createStatement(); resultSet = statement.executeQuery(statementTxt); ttsbegin; while (resultSet.next()) { //делаем необходимый импорт //значения полей получаем из выражений resultSet.getString(1), resultSet.getInt(2) и т.д. } ttscommit; } |
|
27.06.2006, 14:28 | #3 |
Модератор
|
Сохраняем в текстовый файл, далее группа определений, тип - Произвольный
Для желающих попрограммировать - Настройка таблиц, закладки Конвертация, Критерий
__________________
-ТСЯ или -ТЬСЯ ? |
|
27.06.2006, 14:33 | #4 |
Moderator
|
Хе... немного философских рассуждений. На мой взгляд буфер обмена - одна из тех вещей, в которые еще при постановке задачи была заложена ошибка.
Каково его основное предназначение - обеспечивать возможность передачи пользователем данных из одной программы в другую. При этом, вроде никаких ограничений на сами программы накладываться не должно. Чтобы это обеспечить данную возможность - следовало бы разработать некий стандарт, на формат данных в буфере обмена, тогда, в каждом приложении было бы достаточно реализовать 2 функции - запись данных в буфер в стандартном формате и получение этих данных опять же в стандартном формате. На практике же мы имеем ситуацию, когда никакого стандарта на формат данных в буфере обмена не существует и каждая программа пихает туда данные, как бог на душу положит и каждому разработчику приходится каждый раз заново добавлять в свою программу поддержку работы с той или иной программой посредством буфера обмена. Если у нас N программ, то для нормально взаимодействия их друг с другом разработчики пишут N*N функций |
|
27.06.2006, 14:36 | #5 |
Участник
|
Цитата:
если нужен еще более скоростной вариант, то копайте в сторону команды insert_recordset...
|
|
27.06.2006, 15:29 | #6 |
Участник
|
Цитата:
Сообщение от Zan
В силу того, что Аксапта все равно преобразует Ваш insert_recordset в while select.
См. What prevents fast SQL operations? в руководстве разработчика. skipDeleteActions() skipDatabaseLog() skipDataMethods() |
|
27.06.2006, 15:32 | #7 |
Участник
|
Vadik дело говорит.
Цитата:
Сообщение от vey
Кто-нибудь сталкивался с задачей импорта данных в Axapta из буфера? К примеру, нужно импортировать ряд новых номенклатур, которые поступают сотруднику в файле формата .xls от поставщика. Сотрудник корректирует поля, добавляет некоторые параметры, далее копирует строки файла в буфер, в Axapta выполняет вставку из буфера, находясь в нужной форме.
и сразу ответ на ваш следующий вопрос: http://axapta.mazzy.ru/lib/inventimport/ если вы не любите программировать, есть альтернативный вариант http://axapta.mazzy.ru/lib/easyimport/ |
|
27.06.2006, 15:37 | #8 |
Участник
|
Цитата:
Сообщение от Андре
На практике же мы имеем ситуацию, когда никакого стандарта на формат данных в буфере обмена не существует и каждая программа пихает туда данные, как бог на душу положит и каждому разработчику приходится каждый раз заново добавлять в свою программу
Хорошим тоном считается, если программы пихают туда одни и те данные в нескольких форматах: как правило поддерживается простой текст, xml. Если есть оформление, то html, rtf... если в буфере обмена не текстовая информация а двоичные данные, то действительно дело не очень хорошо. Но для двоичных данных и общий стандарт сложно выработать. Но даже в этом случае как правило поддерживается несколько форматов. Например, почти все программы для работы с векторной графикой кладут в буфер обмена помимо своего формата, еще и EPS с wmf... Есть режимы, когда сами данные не копируются в буфер, а только объявляются в нем. Реальная подготовка и передача происходит в момент вставки. В общем, "не согласен" |
|
27.06.2006, 15:39 | #9 |
Участник
|
Цитата:
Сообщение mazzy
Если не запретить ей обрабатывать каждую запись в X++ См. What prevents fast SQL operations? в руководстве разработчика. skipDeleteActions() skipDatabaseLog() skipDataMethods() Пусть человек сам бы поразбирался Последний раз редактировалось Zan; 27.06.2006 в 16:50. |
|
27.06.2006, 15:44 | #10 |
Участник
|
А запрещать обрабатывать каждую запись это по-моему не очень правильно.
Ну, разве что в самых редких случаях, когда без этого необойтись. |
|
27.06.2006, 15:51 | #11 |
Moderator
|
Цитата:
как правило поддерживается простой текст, xml
Цитата:
Если есть оформление, то html, rtf...
Цитата:
Но для двоичных данных и общий стандарт сложно выработать. Но даже в этом случае как правило поддерживается несколько форматов. Например, почти все программы для работы с векторной графикой кладут в буфер обмена помимо своего формата, еще и EPS с wmf...
Цитата:
В общем, "не согласен"
p.s. Кстати, наверное, это лучше в курилку выделить |
|
27.06.2006, 16:43 | #12 |
Участник
|
Цитата:
Сообщение от Андре
Сейчас это надстройки над XML, коих развелось огромное множество.
А когда появился буфер их еще не было. Стандарты так быстро не меняются. Цитата:
Сообщение от Андре
Не согласен с чем? С тем, что механизм спроектирован коряво или с тем, что лучше сделать нельзя ?
Готов согласится с тем, что стандарты - вещь очень инертная. На то они и стандарты, чтобы меняться редко. Насчет переноса - может просто закончим оффтопик? Если интересно продолжать - открывай новую. |
|
27.06.2006, 16:45 | #13 |
Участник
|
Цитата:
Сообщение от Zan
А запрещать обрабатывать каждую запись это по-моему не очень правильно.
Ну, разве что в самых редких случаях, когда без этого необойтись. Либо обработка на каждой записи стороне бизнес-логики (но тогда это не массовая по определению) |
|
27.06.2006, 16:46 | #14 |
Участник
|
Цитата:
Сообщение от Zan
Ну, вот раскрыл все секреты
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Экспорт/импорт платежных поручений | 96 | |||
Создание буфера обмена на бездисковых станциях | 9 | |||
Стандартный импорт данных. Обновление | 0 | |||
Программный импорт xpo | 13 | |||
импорт данных | 2 |
|