27 декабря, 2013

Как явное сделать скрытым и наоборот.

В скрипте объекта СПДС в методе ActHeader объявляются переменные:
Public-параметры, открытые, служат для связи с другими объектами, и как правило видимые пользователю
Protected- параметры защищенные, т.е. видимые только самим объектом, извне к ним доступа нет,
Changeable-параметры, изменяемые, например через свойства объекта, очевидно, что для этого они должны быть еще и Public.
Все выше написанное есть и в справке по СПДС, но вот по параметру Public есть нюансы.
Например разберем участок кода:
function ActHeader {
 NSelect = 1;
 NPart=0;
 Public(
// характеристика линии
  NumSection, "Номер участка",    
  StartSection, "Начало участка",  
  EndSection, "Конец участка",
// характеристика среды  
  Sreda, "Среда, продукт",
  T_Raboch, "Рабочая температура",
  P_Raboch, "Рабочее давление",
// геометрия и физика объекта
  PN, "Номинальное давление",
  DN, "Условный проход",
  DNf, "Наружный диаметр трубы, мм",
  mas1, "Масса единицы",
  strMaterial, "hidden", // "Материал",
// параметры для зависимости  
  WP1,"Рабочая плоскость 1",
  WP2,"Рабочая плоскость 2",
  WPnormal,"Нормальная плоскость",
  rdE1,"hidden",//first diameter to connect
  rdE2,"hidden",//second diameter to connect
  rS1,"hidden",//thickness of wall 1
  rS2,"hidden", //thickness of wall 2
//параметры для спецификации
  Count, "Общее количество, шт", //для совместимости в спецификации
  sUnits, "Единица измерения",
  strSpecSubPartition, "hidden",//"Подраздел спецификации",
  Zavod, "hidden",//"Завод изготовитель",
  bSpec, "Признак включения в спецификацию",
// параметры для ведомости трубопроводов
  strPartNameBT, "hidden",//"Наименование ВТ",
  MaterialBT, "hidden",//"Материал ВТ",
// параметры для универсального маркера
  TopMarker, "hidden",//"Первая строка маркера",
  BotMarker, "hidden",//"Вторая строка маркера",
 );
 Protected( 
  seted,
  hid,
  Alfa,
  vecAlfa,
  bFilterGost,
  bbFilterGost,
  rWP2x,
  rWP2y,
 );
 Changeable( 
  NumSection,    //"Номер участка",
  StartSection,   //"Начало участка",
  EndSection,    //"Конец участка",
  Sreda,      //"Среда, продукт",
  T_Raboch,     //"Рабочая температура",
  P_Raboch,     //"Рабочее давление",
  DN,
  DNf,
  PN,
  bSpec,
 );
 OnDlgBeforeSelectParam = 1; //Вызов диалога перед вызовом функции OnSelectParam.
 ShowWhenSelPnt = 1;     //Если установлен этот флажок, объект, будет отрисовываться во время вставки, если не указано, то по умолчанию включен
 ContourOnLine = 0;      //Генерация контура не из скрипта отрисовки, а на лету после отрисовки
 NotStdBody=0;        //Если ==1, то деталь не помещается в каталог компонентов
}    

Хотя параметры и объявлены как публичные, тем не менее в свойствах объекта будут видимы далеко не все, но с другой стороны доступ к ним из таблиц-отчетов (исключение WP1, WP2, WPnormal) или программно  (ко всем) возможен.
Часть параметров не видна из свойств объекта так как им присвоены имена зарезервированные СПДС, как скрытые, в нашем случае это:
  • WP1,"Рабочая плоскость 1",
  • WP2,"Рабочая плоскость 2",
  • WPnormal,"Нормальная плоскость"
Другая часть не видна т.к. ей присвоено описание "hidden", в данном случае скрыты параметры необходимые для формирования таблиц-отчетов и параметры для получения данных универсальным маркером.
В принципе можно параметры и не скрывать, но для удобства пользователя, что бы в свойствах объекта у него не вываливалась простынка на весь экран, да еще с полосой прокрутки, в описании применяется "hidden".
В системе существует еще ряд параметров, которые хотя и не объявляются в секции Public, но всегда доступны извне объекта:
  • ObjectDescription-общее описание объекта;
  • Name-Имя, то же самое и  strPartName-Название детали в спецификации (раздел наименование)
  • strPartDescription-Описание детали в спецификации (ОБОЗНАЧЕНИЕ);
  • SpecPartition-Раздел спецификации ;
  • strTheType-Тип объекта;
  • strTheName-Имя объекта;
  • strTheSubType- Подтип объекта;
  • rZOrder-высота объекта, (для перекрытия)
Возможно есть еще какие-то параметры которые я здесь не описал.
Продолжение статьи

Комментариев нет :

Отправить комментарий