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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.02.2007, 20:05   #1  
Голышев Михаил is offline
Голышев Михаил
Участник
 
106 / 10 (1) +
Регистрация: 03.07.2006
Всем удачного дня.

Возможно кто-нибудь уже сталкивался с задачей модификации таблицы Object..

Хочется программно получить новую таблицу, с полями аналогичными существующей.

Следующий код вызывает исключительную ситуацию и закрывает Navision.

Код:
recObject	Record	Object
------------
recObject.GET(recObject.Type::Table,'',17);
recObject.ID := 50000;
recObject.Name := recObject.Name+ ' new';
recObject.INSERT(FALSE)

Более чем уверен что это не возможно, но хотелось бы чтобы меня в этом убедили

Всем спасибо.

P.S. Nav 4.0 SP2 + MS SQL 2005
P.P.S. Варианты с редактированием BLOB'а просьба не предлагать
Старый 02.02.2007, 23:56   #2  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
Почему не возможно? Все возможно. Только не нужно.
Таким заклинаниями это не сделать. Нужно вот такое волшебство.

Код:
Object.GET(Object.Type::Table,'',17);
NewObject.INIT;
NewObject.TRANSFERFIELDS(Object);
NewObject.ID := 50000;
NewObject.Name := 'new';
Object.CALCFIELDS("BLOB Reference");
Object."BLOB Reference".CREATEINSTREAM(InStream1);
NewObject."BLOB Reference".CREATEOUTSTREAM(OutStream1);
COPYSTREAM(OutStream1, InStream1);
NewObject.INSERT;
__________________
Должен остаться только один.
Старый 03.02.2007, 11:47   #3  
Голышев Михаил is offline
Голышев Михаил
Участник
 
106 / 10 (1) +
Регистрация: 03.07.2006
Цитата:
Сообщение от NeNavision Посмотреть сообщение
Почему не возможно? Все возможно. Только не нужно.
Таким заклинаниями это не сделать. Нужно вот такое волшебство.

Код:
Object.GET(Object.Type::Table,'',17);
NewObject.INIT;
NewObject.TRANSFERFIELDS(Object);
NewObject.ID := 50000;
NewObject.Name := 'new';
Object.CALCFIELDS("BLOB Reference");
Object."BLOB Reference".CREATEINSTREAM(InStream1);
NewObject."BLOB Reference".CREATEOUTSTREAM(OutStream1);
COPYSTREAM(OutStream1, InStream1);
NewObject.INSERT;
Большое спасибо, то что надо!
Старый 04.02.2007, 01:07   #4  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
А можно ли создать подобным кодом новую таблицу, но не на базе существующей, а абсолютно новую, т.е. обьявив сразу поля, тип полей, первичный ключ?
Старый 04.02.2007, 10:52   #5  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
Сложно. Нужно свой BLOB создавать кодом.

p.s. Оно того не стоит.
__________________
Должен остаться только один.
Старый 05.02.2007, 16:47   #6  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
Вы хотите сказать - если произвести копирование данных внутри таблицы Object - это поможет увидеть и использовать новую таблицу ? А, как на счет формы ? или отчета ?

Дело в том , что я уже пытался когда то получить новый объект в Navision путем добавления новых записей в Object. Запись создавал. Видел новый объект в дизайнере. Пытался запустить - но Nav выдавал сообщение об ошибке.
Старый 05.02.2007, 16:53   #7  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
Цитата:
Сообщение от AlexB Посмотреть сообщение
А можно ли создать подобным кодом новую таблицу, но не на базе существующей, а абсолютно новую, т.е. обьявив сразу поля, тип полей, первичный ключ?
Новую таблицу можно создать кодом используя технологию COOF (Changing Objects on the Fly);

Некоторая информация об этом здесь:
http://forum.mazzy.ru/index.php?showtopic=...hl=fly&st=0
Старый 05.02.2007, 17:23   #8  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
Цитата:
Вы хотите сказать - если произвести копирование данных внутри таблицы Object - это поможет увидеть и использовать новую таблицу ? А, как на счет формы ? или отчета ?

Дело в том , что я уже пытался когда то получить новый объект в Navision путем добавления новых записей в Object. Запись создавал. Видел новый объект в дизайнере. Пытался запустить - но Nav выдавал сообщение об ошибке.
100%
__________________
Должен остаться только один.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:12.