Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Переменные фрагмента (2, Как их изменить
 
Появилась необходимость перезадать переменные в нескольких сотнях фрагментов.
Но пока получается только получить их значения! Согласно Open Api все св-ва только для чтения.
Попытка изменить Expression успехом тоже не увенчалась. Может быть кто-нибудь знает способ
изменять значения переменных без использования древнего ActiveX?

doc=TFlex.Application.ActiveDocument
contact=1
for each fr in doc.Fragments
frnum+=1

frdoc=fr.GetFragmentDocument(1)


frdoc.BeginChanges("Изменение параметров фрагмента "+frnum.ToString())
MessageBox.Show("Изменение параметров фрагмента "+frnum.ToString())

for each v in frdoc.Variables
if v.name="hv" then
Messagebox.Show(v.Expression)
'v.Expression=contact.ToString() '?????
exit for
end if

next

frdoc.EndChanges()

frdoc.Save()

next
 
В сборке перебираете фрагменты foreach....

Если необходимо поменять значения внутренних переменных, то:

private void editVariable()//Редактировать существующую переменную
{

tfcontrol.Document.BeginChanges("Создать переменную");

foreach (Variable existentVar in tfcontrol.Document.Variables)//Цикл, перебирающий переменные документа
{

if (existentVar.Name == "Имя_существующей_переменной")
{

existentVar.Expression = "14";//Задаем значение переменной

existentVar.Comment = "Комментарий";//Записываем комментарий

existentVar.GroupName = "Имя группы переменной";//Назначаем группу для переменной

double expressionRealVar = existentVar.RealValue;//Считываем значение вещественной переменной

string expressionTextVar = existentVar.TextValue;//Считываем значение текстовой переменной

}

}

tfcontrol.Document.EndChanges();

}
Страницы: 1