Форумы Интермех
 ° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° RSS ° Wiki °

Форумы Интермех / Search, ImProject / Search API. Функция PrepareExpandArtStructure
Автор Сообщение
Lynx
Участник
ТКУиК, Санкт-Петербург

Дата: 7 Ноя 2011 17:16:54


Здравствуйте.

Пользовался ли кто функцией PrepareExpandArtStructure. Хотелось бы увидеть пример ее применения, так как самому использовать ее не получается - я не программист по образованию, языки программирования знаю плохо.

Задача у меня следующая - надо создать в Excel отчет о составе изделия и форматах документов. Только формат должен быть из СП, так как не у каждого объекта есть документ, а формат был указан в СП и виден в составе. Я модифицировал стандартный отчет в инструментах, но получить формат из состава у меня не получилось.

freestyler
Участник
ОАО "Новая ЭРА", СПб

Дата: 8 Ноя 2011 08:10:15 ° Поправил: freestyler


Очень похоже на то, что вам нужно

'Проверяет все включенные в заказ документы на нахождение
'в утвержденных архивах. (Разворачивая состав).
'Если что-то не утверждено - строит отчет в Экселе.

Sub CheckZak
strValidArchives="_34_44_45_61_62_76_92_99_112_113_118_120_132_" 'Утвержденные архивы, менять здесь
i = 0

set SelItems = s4app.GetSelectedItems 'получение интерфейса отметок
SelectedCount = SelItems.SelectedCount


Set excel = CreateObject("excel.application") 'создаем объект excel
excel.Visible = False
set wbook = excel.Workbooks.Add 'добавляем чистую книгу
set WS = Excel.ActiveSheet
'добавляем заголовки
excel.Cells.Item(1,1) = "{Отчёт сгенерирован " & Time & " " & Date & "}"
excel.Range("A2","C2").Font.ColorIndex = 5 'синий цвет
excel.Range("A2","C2").Font.Underline = true 'подчеркивание
ws.Cells.Item(2, 1).Value = "№"
excel.Columns(1).ColumnWidth = 5
ws.Cells.Item(2, 2).Value = "Обозначение"
excel.Columns(2).ColumnWidth = 25
ws.Cells.Item(2, 3).Value = "Статус документа"
excel.Columns(3).ColumnWidth = 60

if SelectedCount = 1 then
id = SelItems.ActiveArtId 'инвентарный номер отмеченного объекта
StopDoing = False

s4app.OpenArticle(id)
if s4app.GetArticleKind <> 99999999 then
msgbox "Выбраный объект не является Заказом!"
s4app.CloseArticle
exit sub
end if
s4app.SetFieldValue_Articles "DATE_CHECK", now
s4app.CloseArticle

s4app.OpenArticleStructureExpanded(id)
text2 = "Обработано 0 из "& s4app.asCount
s4app.ShowProgressBarForm "Проверка Заказа", "Проверка входящих в Заказ документов", text2, s4app.asCount
s4app.asFirst

do 'Начинаем перебирать документы из состава Заказа
artid=s4app.asGetArtID
i = i + 1

if artid > 0 then
docid=s4app.GetDocID_ByArtID(artid)

ws.Cells.Item(i + 2, 1).Value = i

if docid <=0 then
ws.Cells.Item(i + 2, 2).Value = "ArtID = " & artid
ws.Cells.Item(i + 2, 3).Value = "Документа нет в архиве"
excel.Range("C" & i+2,"C"& i+1).Font.ColorIndex = 3 'красный
else
s4app.OpenDocument (docid)
ws.Cells.Item(i + 2, 2).Value = s4app.GetFieldValue("Обозначение")
Arc = s4app.GetFieldValue("ARCHIVE_ID")
Stat = s4app.GetFieldValue("DOC_STATUS")

if instr (1, strValidArchives, Arc)=0 then
ws.Cells.Item(i + 2, 3).Value = "Не утвержден"
excel.Range("C" & i+2,"C"& i+1).Font.ColorIndex = 3 'красный
elseif Stat <> 0 then
Redactor = GetUserFullName_ByUserID (Stat)
ws.Cells.Item(i + 2, 3).Value = "Редактируется: " & Redactor
excel.Range("C" & i+2,"C"& i+1).Font.ColorIndex = 3 'красный
else
ws.Cells.Item(i + 2, 3).Value = "ОК"
end if
s4app.CloseDocument
end if

text2 = "Обработано " & i & " из " & s4app.asCount
UserBreak = s4app.SetProgressBarData_and_CheckUserBreak( "", text2, i )
if UserBreak > 0 then
s4app.CloseProgressBarForm
s4app.CloseArticleStructure
exit sub
end if

end if

if s4app.asEOF=0 then
s4app.asNext
else
StopDoing = True
end if

loop until (StopDoing)

s4app.CloseArticleStructure
s4app.CloseProgressBarForm
else
msgbox "Необходимо выбрать один заказ. Выбрано: " & SelItems.SelectedCount
end if
excel.visible = true
End Sub
'--------------------------------------------------------------------- -----
Call CheckZak

Lynx
Участник
ТКУиК, Санкт-Петербург

Дата: 9 Ноя 2011 15:37:46


freestyler
Спасибо, но это немного не то. Нужно именно из свойства связи брать формат.

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL 
...



Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 

На форуме сейчас: гостей - 2
пользователей - 0
Наибольшее количество посетителей: 87 [1 Янв 2017 02:23:26]
гостей - 87 / пользователей - 0


miniВВ © 2001-2021