18.04.2005, 11:44 | #1 |
Участник
|
Импорт данных из текстового файла
У меня такая ситуация: при импорте данных из тектового файла все прохожит успешно, ошибок не обнаруживается, но импортируется только одна строка. В информационном окне появляется запись: "1 проводок импортировано"
И я никак не могу добиться, чтобы весь файл загрузить в Axapta. Может, кто-нибудь сталкивался с подобным? |
|
18.04.2005, 11:48 | #2 |
Участник
|
Скорее всего что-то напутали с разделителем записей.
|
|
18.04.2005, 12:09 | #3 |
Участник
|
Смотрите в логе неимпортированных записей.
Ситуация штатная во время настройки импорта. Настройте его правильно. |
|
18.04.2005, 12:24 | #4 |
Участник
|
С настройками мне все ясно.
Вопрос такой: как Axapta узнает конец строки? Такое ощущение, что не видит больше одной. И есть ли возможность в качестве разделителя использовать табуляцию? А то у меня внешний файл с табуляцией и мне приходится насильноменять ее на разделитель ~ |
|
18.04.2005, 12:30 | #5 |
Участник
|
Цитата:
Изначально опубликовано mvf
Вопрос такой: как Axapta узнает конец строки? Такое ощущение, что не видит больше одной. И есть ли возможность в качестве разделителя использовать табуляцию? А то у меня внешний файл с табуляцией и мне приходится насильноменять ее на разделитель ~ Табуляцию Аксапта позволяет использовать. Проблема в том, что символ табуляции в форму в поле Разделитель не вставишь. Если у вас получится установить символ программно - Аксапта будет использовать табуляцию. |
|
18.04.2005, 13:34 | #6 |
Участник
|
Цитата:
Изначально опубликовано mazzy
Проблема в том, что символ табуляции в форму в поле Разделитель не вставишь. |
|
18.04.2005, 13:37 | #7 |
Участник
|
Спасибо, но этот FAQ я уже перешерстила вдоль и поперек.
Но про конец строки ответа не нашла. Повторюсь. Вся проблема в том, что при импорте Axapta говорит, что все прекрасно, ошибок нет, но настойчиво берет только первую строку. А так как нет ошибок, то я не могу и выяснить причину игнорирования записей. p.s. Как посмотреть лог неимпортированных записей? |
|
18.04.2005, 13:46 | #8 |
Участник
|
Цитата:
Изначально опубликовано Hezl
Вообще-то можно вставить - через буфер обмена. |
|
18.04.2005, 13:47 | #9 |
Участник
|
Цитата:
Изначально опубликовано mvf
Спасибо, но этот FAQ я уже перешерстила вдоль и поперек. Но про конец строки ответа не нашла. Цитата:
[i]Повторюсь. Вся проблема в том, что при импорте Axapta говорит, что все прекрасно, ошибок нет, но настойчиво берет только первую строку. А так как нет ошибок, то я не могу и выяснить причину игнорирования записей.
p.s. Как посмотреть лог неимпортированных записей? [/B] У меня предложение - сделайте маленький тестовый файлик, состоящий из нескольких полей и записей. Проверьте, что этот файлик у вас не импортируется также как и большой. Укажите для какой таблицы предназначен файл и выложите его сюда. Попробуем разобраться. |
|
18.04.2005, 13:48 | #10 |
Участник
|
Цитата:
Изначально опубликовано Hezl
Вообще-то можно вставить - через буфер обмена. Спасибо. |
|
18.04.2005, 14:13 | #11 |
Участник
|
Хорошо.
Вот маленький проект (своя таблица, она там одна - ATTable) и текстовый файлик. Настройка таблицы для импорта на Print screen (не знаю как по другому вам это показать) Может, заодно подскажете, как сделать, чтобы нумерация начиналась не с 0, а с 1 (метод InitValue для DS) |
|
18.04.2005, 14:19 | #12 |
Участник
|
Настройка таблиц - print screen
|
|
18.04.2005, 14:56 | #13 |
Участник
|
У меня испортирует все 14 записей.
Вы случайно с Уникальным полем не баловались? Если у вас пол ATItemID установите уникальным, то Аксапта будет искать уже существующие записи и заменять их. А поле ATItemID вы не импортируете. Оно всегда нулевое. Поэтому все ваши строки попадут в одну запись. |
|
18.04.2005, 15:12 | #14 |
Участник
|
Цитата:
Изначально опубликовано mazzy
У меня испортирует все 14 записей. Вы случайно с Уникальным полем не баловались? Если у вас пол ATItemID установите уникальным, то Аксапта будет искать уже существующие записи и заменять их. А поле ATItemID вы не импортируете. Оно всегда нулевое. Поэтому все ваши строки попадут в одну запись. Насколько я в курсе, чтобы сделать поле уникальным, необходимо создать индекс таблицы с этим полем (и на DS формы указать этот индекс). Так? |
|
18.04.2005, 15:14 | #15 |
Участник
|
Нет. В свойствах индекса надо запретить дубликаты.
У вас индекс дубликаты разрешает. Поэтому поле неуникально. Но поле ATItemID вы не импортируете и не обрабатываете. |
|
18.04.2005, 15:30 | #16 |
Участник
|
Спа-асибо!
Для новичка в Axapta такие элементарные вещи иногда остаются тайной! Еще раз спасибо. Сейчас попробую |
|
18.04.2005, 15:55 | #17 |
Участник
|
Цитата:
Изначально опубликовано mazzy
Но поле ATItemID вы не импортируете и не обрабатываете. public void initValue() { ATTable tablLast, tablCurrent; super(); tablCurrent = this.cursor(); ttsbegin; select maxof(ATItemID) from tablLast; tablCurrent.ATItemID = tablLast.ATItemId + 1; tablCurrent.insert(); ttscommit; } |
|
18.04.2005, 16:02 | #18 |
Участник
|
Можно и так.
Но лучше разберитесь с нумераторами. Если с нумераторами вам разбираться лениво, то лучше на таблицу. Но можно и в код поля при импорте. Если будете добавлять код в импорт, поле надо сделать активным, чтобы код для него обрабатывался. Но лучше разберитесь с нумераторами. Обновил совет http://axapta.mazzy.ru/hints/import/ |
|