Тема: Изменить состояние версии
Как в API изменить состояние версии ?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
TechnologiCS → TechnologiCS → Практические приемы работы → Изменить состояние версии
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Не совсем правильно задала вопрос.
Из окна спецификации СП вызывается "Версии спецификации"
Из окна "Версии спецификации" вызывается "Изменить состояние версии"
Надо это выполнить в АПИ
Извините, если тупой вопрос, но помощь очень нужна.
Вот пример макросов для вызова из режима "Спецификация номенклатуры":
Sub FormMacro_MakeActive(TCSActiveModule)'Сделать версию активной Dim CurVersion ' As INmkVersion LogObject.ScriptTimeOut = 0 Set CurVersion = Nothing Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch If Not CurVersion Is Nothing Then CurVersion.MakeActive End If Set CurVersion = Nothing TCSActiveModule.Refresh End Sub Sub FormMacro_MakeApproval(TCSActiveModule)'Сделать версию утверждённой Dim CurVersion ' As INmkVersion LogObject.ScriptTimeOut = 0 Set CurVersion = Nothing Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch If Not CurVersion Is Nothing Then CurVersion.MakeApproval End If Set CurVersion = Nothing TCSActiveModule.Refresh End Sub
Да вопросы обычные наверное.
На самом деле мы стараемся делать АПИ и макросы довольно простыми, чтобы не требовалось особых знаний по программированию для автоматизации простых задач. Так что главное что бы вы сами знали что вы хотите сделать в TehnologiCS.
Напишите нам типичные проблемы которые возникают при программировании, мы постараемся это представить это доступно в виде роликов.
Вот пример макросов для вызова из режима "Спецификация номенклатуры":
Sub FormMacro_MakeActive(TCSActiveModule)'Сделать версию активной Dim CurVersion ' As INmkVersion LogObject.ScriptTimeOut = 0 Set CurVersion = Nothing Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch If Not CurVersion Is Nothing Then CurVersion.MakeActive End If Set CurVersion = Nothing TCSActiveModule.Refresh End Sub Sub FormMacro_MakeApproval(TCSActiveModule)'Сделать версию утверждённой Dim CurVersion ' As INmkVersion LogObject.ScriptTimeOut = 0 Set CurVersion = Nothing Set CurVersion = TCSActiveModule.Properties("CurrentVersion").AsIDispatch If Not CurVersion Is Nothing Then CurVersion.MakeApproval End If Set CurVersion = Nothing TCSActiveModule.Refresh End Sub
НАПРИМЕР:
В VERSIONS = 5 записей
1 - в архиве
2 - в архиве
3 - в архиве
4 - редактир
5 - астивно(ред)
А В CurrentVersion - отражена одна запись - пятая из VERSIONS
В CurrentVersion - перевести в активно(утв) - получается,
А в VERSIONS - четвертую запись в активно(ред) - НЕ получается.
потому что в CurrentVersion - как есть пятая - так и остается
В CurrentVersion - перевести в активно(утв) - получается,
А в VERSIONS - четвертую запись в активно(ред) - НЕ получается.
потому что в CurrentVersion - как есть пятая - так и остается
А можно подробней что значит не получается?
В CurrentVersion - перевести в активно(утв) - получается,
А в VERSIONS - четвертую запись в активно(ред) - НЕ получается.
потому что в CurrentVersion - как есть пятая - так и остаетсяА можно подробней что значит не получается?
Set NMK_Ver = NMK_SP.Properties("VERSIONS").AsIDispatch
Set NMK_Ver_Act = NMK_SP.Properties("CurrentVersion").AsIDispatch
NMK_Ver.First
Do While Not NMK_Ver.Eof
If NMK_Ver.Properties("NAME").DisplayText = OboznIz Then
NMK_STAT_OLD0 = NMK_Ver.Properties("VER_STATE").Value
If NMK_STAT_OLD0 = 3 Then
If NMK_Ver_Act.IsActive Then
NMK_Ver_Act.MakeApproval
Else
NMK_Ver_Act.MakeArchive
End If
NMK_Ver.MakeActive
End If
End If
NMK_Ver.Next
Loop
NMK_Ver.MakeActive - не переводится в активно-редак
Да действительно. Похоже на нашу ошибку.
Если версия находится в состояние Редактирование, то она не перейдет в состояние Активная редактирование.
Ошибка в АПИ.
Попробуйте так
If NMK_Ver.Properties("VER_STATE").AsSafeInteger=3 Then NMK_Ver.MakeArchive NMK_Ver.MakeActive
Да действительно. Похоже на нашу ошибку.
Если версия находится в состояние Редактирование, то она не перейдет в состояние Активная редактирование.
Ошибка в АПИ.Попробуйте так
If NMK_Ver.Properties("VER_STATE").AsSafeInteger=3 Then NMK_Ver.MakeArchive NMK_Ver.MakeActive
Спасибо - получилось
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
TechnologiCS → TechnologiCS → Практические приемы работы → Изменить состояние версии