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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.07.2003, 10:14   #1  
Real is offline
Real
Участник
 
14 / 10 (1) +
Регистрация: 03.02.2003
Изменение длины полей в Attain'e
Добрый день.

Подскажите, пожалуйста, как бы программист, подошел к проблеме изменения длины полей в Attain'e с 30 до 250 символов.
1. Делал бы в ручную
2. Написал бы процедуру, которая сама бы поменяла длины полей.

С первым вариантом все понятно.
Со вторым:
1. Есть ли возможность в Attain'e, по названию поля просканировать все объекты на предмет их использования?
2. Можно ли программно достучаться до свойства поля Lenght и изменить его?

Буду благодарна за Ваши рекомендации.
Старый 04.07.2003, 10:53   #2  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
По названию поля просканировать все объекты на предмет их использования возможно при помощи Microsoft Navision Developers Toolkit. Или, как вариант выгрузить все объекты в текстовай файл и искать там.
Есть еще один вариант : использовать таблицу 2000000041 Field.
Старый 04.07.2003, 11:45   #3  
Yuriy is offline
Yuriy
Участник
 
150 / 10 (1) +
Регистрация: 25.02.2003
Адрес: Москва
2Rungart
А что это за таблица такая, если не секрет? Системная?
__________________
Вот такие, брат, дела!
Старый 04.07.2003, 11:53   #4  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Да, системная. В Object Designer она не видна, однако ее можно объявить как переменную в любом объекте. Простейший способ ее просмотреть - создать новую форму при помощи мастера.
Старый 04.07.2003, 12:22   #5  
Yuriy is offline
Yuriy
Участник
 
150 / 10 (1) +
Регистрация: 25.02.2003
Адрес: Москва
Спасибо!
Ага, все работает!! Спасибо!
__________________
Вот такие, брат, дела!
Старый 04.07.2003, 13:24   #6  
Real is offline
Real
Участник
 
14 / 10 (1) +
Регистрация: 03.02.2003
Табличка найдена Спасибо.

А вот как быть со вторым вопросом?

К сожалению, я так и не нашла у поля такого свойства как длина, если к нему обращаться из C/AL кода.
Старый 04.07.2003, 13:49   #7  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Странно, название поля : Len.

FieldTable Record Field

FieldTable.Len:=250;
Старый 04.07.2003, 13:57   #8  
Real is offline
Real
Участник
 
14 / 10 (1) +
Регистрация: 03.02.2003
Все понятно
Не туда смотрела
Спасибо за помощь
Старый 04.07.2003, 16:21   #9  
Real is offline
Real
Участник
 
14 / 10 (1) +
Регистрация: 03.02.2003
Ну, вот теперь возникла следующая проблема:

когда я меняю, например в таблице 36 длину полей: 5,6,7,8,10,13,14,15,16,79,81,82,84

Выдается сообщение, что Активные поля в записи не могут превышать 4000 байт... Вы должны сократить число или длину активных полей.

Как система считает предельную сумму для активных полей?

С "Key" это точно не связано

Помогите понять.
Заранее спасибо.
Старый 04.07.2003, 18:21   #10  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Есть такая засада:
Specifications for Tables
Range for table object ID numbers : 1 -999,999,999 (A)
Maximum number of characters in a table name : 30
Maximum table size : Infinite
Maximum number of records in a table : Infinite
Maximum record size : 4000
Maximum number of fields in a record : 500
Range for field numbers : 1 - 999,999,999
Maximum number of keys for a table : 40
Maximum number of distinct fields per key 20 for a primary key. The number of fields in the
primary key + the number of fields in a secondary key which do not occur in the primary key must always be less than or equal to 20.
Maximum number of SumIndexFields per key : 20
Maximum number of characters in a text or
code field : 250
Maximum size of a BLOB field : 2 GB
Maximum number of characters in a field name : 30

Возможно, стоит использовать вычисляемые поля?
Старый 09.07.2003, 20:39   #11  
JI is offline
JI
Участник
 
14 / 10 (1) +
Регистрация: 09.07.2003
Вообще то менять длину полей - занятие очень опасное, этого делать нельзя. Значения этих полей могут переносится в переменные при выполнении кода. Лучше добавьте дополнительные поля в пользовательском диапазоне, например, Название 3, Адрес 3 и т.д. и их обработку при формировании документа и печати отчета.
Старый 10.07.2003, 09:55   #12  
Real is offline
Real
Участник
 
14 / 10 (1) +
Регистрация: 03.02.2003
Да, я прекрасно понимаю все трудности с расширением полей Уже посмотрела все грабли которые там могут встретиться
Поэтому принято решение по данной проблеме добавить новые поля типа "Название клиента" text(250), Адрес text(250) и т.д. И использовать их только в исходящих документах и самых важных внутренних отчетах.
В данном случае нужно переделать отчеты и предусмотреть обработчик переноса строк в отчетах, чтобы все было красиво.
Таким образом, структуру базы не ломаем и все довольны.

Спасибо всем за помощь
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Изменение срока амортизации у ОС с начисленной амортизацией (Attain 2.60d) .rejector. NAV: Функционал 1 09.11.2004 12:09
триггер OnLookup полей таблиц Alex_V NAV: Программирование 0 14.01.2004 15:23
Navision Attain через Citrix Alex_V NAV: Администрирование 2 15.12.2003 17:43
Серьезно про RBO (Attain) sash_xp NAV: Прочие вопросы 8 14.08.2003 14:59
Переход на Navision Attain Makc_1 NAV: Прочие вопросы 3 30.07.2003 14:36
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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