04.07.2003, 10:14 | #1 |
Участник
|
Изменение длины полей в Attain'e
Добрый день.
Подскажите, пожалуйста, как бы программист, подошел к проблеме изменения длины полей в Attain'e с 30 до 250 символов. 1. Делал бы в ручную 2. Написал бы процедуру, которая сама бы поменяла длины полей. С первым вариантом все понятно. Со вторым: 1. Есть ли возможность в Attain'e, по названию поля просканировать все объекты на предмет их использования? 2. Можно ли программно достучаться до свойства поля Lenght и изменить его? Буду благодарна за Ваши рекомендации. |
|
04.07.2003, 10:53 | #2 |
Участник
|
По названию поля просканировать все объекты на предмет их использования возможно при помощи Microsoft Navision Developers Toolkit. Или, как вариант выгрузить все объекты в текстовай файл и искать там.
Есть еще один вариант : использовать таблицу 2000000041 Field. |
|
04.07.2003, 11:45 | #3 |
Участник
|
2Rungart
А что это за таблица такая, если не секрет? Системная?
__________________
Вот такие, брат, дела! |
|
04.07.2003, 11:53 | #4 |
Участник
|
Да, системная. В Object Designer она не видна, однако ее можно объявить как переменную в любом объекте. Простейший способ ее просмотреть - создать новую форму при помощи мастера.
|
|
04.07.2003, 12:22 | #5 |
Участник
|
Спасибо!
Ага, все работает!! Спасибо!
__________________
Вот такие, брат, дела! |
|
04.07.2003, 13:24 | #6 |
Участник
|
Табличка найдена Спасибо.
А вот как быть со вторым вопросом? К сожалению, я так и не нашла у поля такого свойства как длина, если к нему обращаться из C/AL кода. |
|
04.07.2003, 13:49 | #7 |
Участник
|
Странно, название поля : Len.
FieldTable Record Field FieldTable.Len:=250; |
|
04.07.2003, 13:57 | #8 |
Участник
|
Все понятно
Не туда смотрела Спасибо за помощь |
|
04.07.2003, 16:21 | #9 |
Участник
|
Ну, вот теперь возникла следующая проблема:
когда я меняю, например в таблице 36 длину полей: 5,6,7,8,10,13,14,15,16,79,81,82,84 Выдается сообщение, что Активные поля в записи не могут превышать 4000 байт... Вы должны сократить число или длину активных полей. Как система считает предельную сумму для активных полей? С "Key" это точно не связано Помогите понять. Заранее спасибо. |
|
04.07.2003, 18:21 | #10 |
Участник
|
Есть такая засада:
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 |
Участник
|
Вообще то менять длину полей - занятие очень опасное, этого делать нельзя. Значения этих полей могут переносится в переменные при выполнении кода. Лучше добавьте дополнительные поля в пользовательском диапазоне, например, Название 3, Адрес 3 и т.д. и их обработку при формировании документа и печати отчета.
|
|
10.07.2003, 09:55 | #12 |
Участник
|
Да, я прекрасно понимаю все трудности с расширением полей Уже посмотрела все грабли которые там могут встретиться
Поэтому принято решение по данной проблеме добавить новые поля типа "Название клиента" text(250), Адрес text(250) и т.д. И использовать их только в исходящих документах и самых важных внутренних отчетах. В данном случае нужно переделать отчеты и предусмотреть обработчик переноса строк в отчетах, чтобы все было красиво. Таким образом, структуру базы не ломаем и все довольны. Спасибо всем за помощь |
|