° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° 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 Спасибо, но это немного не то. Нужно именно из свойства связи брать формат. |
На форуме сейчас: гостей - 1 пользователей - 0 |
Наибольшее количество посетителей: 87 [1 Янв 2017 02:23:26] гостей - 87 / пользователей - 0 |
miniВВ © 2001-2024 |