AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Функционал
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.04.2007, 19:48   #1  
abyzov is offline
abyzov
Участник
Аватар для abyzov
 
8 / 10 (1) +
Регистрация: 09.02.2007
Есть таблица с числовым полем value. Через датапорт импортирую данные. Нужно чтобы если запись с таким ключом уже существовала, то в поле value записывалась сумма того значения, что там уже лежит и того, которое импортируется из файла. Я пытаюсь это сделать в триггере OnBeforeImportRecord, но не совсем понятно как получить значение поля из файла.
Старый 09.04.2007, 20:12   #2  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от a.abyzov Посмотреть сообщение
Есть таблица с числовым полем value. Через датапорт импортирую данные. Нужно чтобы если запись с таким ключом уже существовала, то в поле value записывалась сумма того значения, что там уже лежит и того, которое импортируется из файла. Я пытаюсь это сделать в триггере OnBeforeImportRecord, но не совсем понятно как получить значение поля из файла.
Я делал так:
1. В Dataport Fields в свойствах SourceExp пробивал не названия полей импортируемой таблицы а названия созданных переменных (далее их можно считывать)
2. в OnBeforeImportRecord обязательно обнуляеш переменные их дефолтовым значением
3. ну и в OnAfterImportRecord пишется кухня со вставкой и обновлением импортируемых данных, там уже будут видны реальные считанные данные.

Наверняка есть еще какой способ.
Старый 09.04.2007, 20:52   #3  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от a.abyzov Посмотреть сообщение
Есть таблица с числовым полем value. Через датапорт импортирую данные. Нужно чтобы если запись с таким ключом уже существовала, то в поле value записывалась сумма того значения, что там уже лежит и того, которое импортируется из файла. Я пытаюсь это сделать в триггере OnBeforeImportRecord, но не совсем понятно как получить значение поля из файла.
Можно еще по другому:
1. В DataportField как обычно поля записи
2. В свойствах данного датаайтема св-во AutoSave = no
3. В OnAfterImportRecord сам пишеш кухню со вставкой и обновлением записи, к считываемой переменной можно обращаться как к переменной датаайтема.
Либо еще проще:
Выполнить обработку считанного поля данных но еще не вставленных в таблицу в триггере OnBeforeEvaluateField необходимого реквизита
Старый 10.04.2007, 11:42   #4  
abyzov is offline
abyzov
Участник
Аватар для abyzov
 
8 / 10 (1) +
Регистрация: 09.02.2007
Но как считать из таблицы предыдущее значение поля до вставки. Если я объявляю переменную record MyTable, то работаю с ней как с dataitem (значения такие же). Как получить предыдущее значение из таблицы?
Старый 10.04.2007, 21:43   #5  
balashov is offline
balashov
Участник
Аватар для balashov
 
78 / 10 (1) +
Регистрация: 01.09.2005
Цитата:
Сообщение от a.abyzov Посмотреть сообщение
Но как считать из таблицы предыдущее значение поля до вставки. Если я объявляю переменную record MyTable, то работаю с ней как с dataitem (значения такие же). Как получить предыдущее значение из таблицы?
Непонял а зачем получать предыдущее значение поля, тогда для этого можно воспользоваться темповыми таблицами.
Попробуй сделать так:
1. В свойствах данного датаайтема св-во AutoSave = no – то есть фактически получаеться аналог отчета, вставку надо писать самому.
2. В триггере OnAfterImportRecord пишеш по типу:
//MyTable – это датаайтем
If rMyTable.GET(MyTable.Key) then begin
rMyTable.Value:= rMyTable.Value+ MyTable.Value; //то есть аккамулируется сумма
rMyTable.MODIFY(TRUE);
end else begin
rMyTable.COPY(MyTable);
rMyTable.INSERT;
End;
Старый 11.04.2007, 11:28   #6  
abyzov is offline
abyzov
Участник
Аватар для abyzov
 
8 / 10 (1) +
Регистрация: 09.02.2007
Сэнкс! Через дополнительную таблицу все заработало.
Старый 22.07.2009, 16:28   #7  
nalena is offline
nalena
Участник
 
8 / 10 (1) +
Регистрация: 01.06.2009
Подскажите плиз! Нужно импортировать dbf файл в Navision через датапорт.
Количество полей не совпадает.
Старый 23.07.2009, 10:43   #8  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от nalena Посмотреть сообщение
Подскажите плиз! Нужно импортировать dbf файл в Navision через датапорт.
Количество полей не совпадает.
Ну хотя бы опишите как Вы это делаете... А то фраза "кол-во полей не совпадает" слегка общая..
Старый 23.07.2009, 10:48   #9  
nalena is offline
nalena
Участник
 
8 / 10 (1) +
Регистрация: 01.06.2009
не все поля из dbf нужно импортировать, выборочно
может есть у кого кусок примера как это можно запрограмить
Старый 23.07.2009, 11:06   #10  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от nalena Посмотреть сообщение
не все поля из dbf нужно импортировать, выборочно
может есть у кого кусок примера как это можно запрограмить
Смотри например форму 14874, если версия > 3.7.
Старый 23.07.2009, 11:54   #11  
nalena is offline
nalena
Участник
 
8 / 10 (1) +
Регистрация: 01.06.2009
Версия 5.0
А такой формы нема
Старый 23.07.2009, 12:15   #12  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Перепутал, 14784 форма
Вложения
Тип файла: fob F14784.fob (45.4 Кб, 467 просмотров)
Старый 23.07.2009, 15:53   #13  
nalena is offline
nalena
Участник
 
8 / 10 (1) +
Регистрация: 01.06.2009
Gmc пасибище!
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:49.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.