|
![]() |
#1 |
Участник
|
Цитата:
Проблема заключается в том, что внутри метода ты никак, никоим образом, не сможешь узнать КОГДА был создан этот номер. В каком процессе. Не физическом, а логическом.
например использовать вот это: AxPath://AOT/System%20Documentation/Classes/xApplication/curTransactionId |
|
![]() |
#2 |
Участник
|
Цитата:
Предположим, Вы обрабатываете последовательно 2 записи. Вы можете, находясь внутри процедуры обработки ОДНОЙ записи ответить на вопрос: Сколько записей всего было обработано по этому же самому документу Excel? Вы вообще обрабатываете НОВЫЙ документе Excel (первая строка этого документа) или же очередную строку того же самого документа Excel? Каким образом знание идентификатора транзакции поможет ответить на этот вопрос? Главная проблема данной задачи - это узнать первую или НЕ первую запись файла Excel сейчас обрабатываем. Дальше все просто. Но КАК находясь внутри процедуры обработки ОДНОЙ записи это узнать? Никак! Нужен внешний счетчик уже обработанных записей. |
|
![]() |
#3 |
Участник
|
Цитата:
Вставил код перед тем как вызывается эта функция .. просто решение не идеальное так как теоретически возможны конфликты между пользователями. У меня есть еще несколько идей как это преодолеть, просто больше програмирования, можeт как нибудь потом попробую: 1. Сделать отдельную таблицу с полями: требуемый ID и какой нибудь уникальный идентификатор сессии. Просто писать только одно значнеие на сессию. 2. Этот код хранится в таблице в виде текста, возможно можно модифицировать его, меняя константу там перед вызовом цикла обработчика записай. . Таблица выглядит так как будто запись создается для каждого запуска импорта, т.е. конфликтов не должно быть.
__________________
_databaseTransDelete ... bl@$ ! |
|
![]() |
#4 |
Участник
|
Цитата:
Затем, не выходя из AXAPTA, находясь в той же сессии, запустили процедуру импорта еще раз. И вот тут-то и проблема. Все идентификаторы те же самые, но импорт ДРУГОЙ. Нужен НОВЫЙ код. А Вы возьмете старое значение из того, что было сохранено. Т.е. каждая запись будет иметь свой идентификатор? Генерация кода происходит для каждой записи в отдельности или для всей процедуры импорта (всех записей) одного файла Excel? |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() Вы запустили процедуру импорта первый раз - все замечательно.
Затем, не выходя из AXAPTA, находясь в той же сессии, запустили процедуру импорта еще раз. И вот тут-то и проблема. Все идентификаторы те же самые, но импорт ДРУГОЙ. Нужен НОВЫЙ код. А Вы возьмете старое значение из того, что было сохранено. В общем-то, для этого можно воспользоваться тем же классом Info - добавить в обработчик таймера (addTimeOut) свой класс, в котором сбрасывать сохраненный параметр. Параметр idle = true. Время срабатывания - минимальное. Схема работы будет такая. Сохраняем требуемый нам параметр и идентификатор таймера. При запуске проверяем, что парамерт не установлен устанавливаем его. Запускаем таймер. Значение таймера сохраняем так же как параметр. Если при запуске таймер установлен, сбрасываем его. В результате, как только импорт отработает, запустится метод по таймеру и сбросит сохраненный параметр.
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() Вы запустили процедуру импорта первый раз - все замечательно.
Затем, не выходя из AXAPTA, находясь в той же сессии, запустили процедуру импорта еще раз. И вот тут-то и проблема. Все идентификаторы те же самые, но импорт ДРУГОЙ. Нужен НОВЫЙ код. А Вы возьмете старое значение из того, что было сохранено.
__________________
_databaseTransDelete ... bl@$ ! |
|
![]() |
#7 |
Участник
|
Цитата:
============== Минуточку! SysDataImportExcel/importTable относится к импорту ВСЕЙ таблицы? Не одной строки, а именно ВСЕХ строк? Если вот в этом методе и формировать твое значение NEW_PriceDiscId и записывать в спец.поле таблицы или переменную класса Global, а в методе разбора одной строки просто считывать это значение? Последний раз редактировалось Владимир Максимов; 26.01.2007 в 15:40. Причина: Сразу не понял |
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() SysDataImportExcel/importTable относится к импорту ВСЕЙ таблицы? Не одной строки, а именно ВСЕХ строк? Если вот в этом методе и формировать твое значение NEW_PriceDiscId и записывать в спец.поле таблицы или переменную класса Global, а в методе разбора одной строки просто считывать это значение?
Гениально ! ![]()
__________________
_databaseTransDelete ... bl@$ ! |
|
![]() |
#9 |
Участник
|
Цитата:
Это не точно. Надо проверить. |
|
Теги |
импорт, импорт из excel, критерии |
|
![]() |
||||
Тема | Ответов | |||
Экспорт стандартных отчетов в Excel ? | 14 | |||
Экспорт в Excel | 1 | |||
Экспорт из Excel... | 10 | |||
Экспорт в Excel. Проблема с '\n' | 12 | |||
Экспорт в Excel через WorkBooks.OpenText() | 2 |
|