Я нахожусь в середине огромного проекта, который требует от меня связать многие устаревшие, но все же полезные системы данных на основе интрасети через электронную таблицу, которая анализирует данные соответствующим образом.Я близок к завершению проекта и начал подключать последнюю из этих систем.Однако проблема, с которой я столкнулся, заключается в том, что главная веб-страница, с которой загружаются данные, имеет событие onLoad, которое эффективно открывает диалоговое окно печати.Поскольку эта система загружает данные в фоновом режиме, это нежелательное поведение.
К сожалению, нашей команде по управлению данными все еще требуется эта система в ее текущем виде, и поэтому изменение самой веб-страницы невозможно.
На веб-странице есть следующий код, который вызывает проблемы:
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" background bgProperties="fixed" onload="javascript:printform();" >
, а также скрипт, который запускает команду для открытия диалогового окна печати:
<Script Language='JavaScript'>
function printform()
{
print();
}
</script>
Когда я гуглилрешение, которое я изо всех сил пытался найти много ресурсов по этой теме, но наиболее многообещающим было использование строки ie.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
.Где ie является объектом internetexplorer.Однако в моем тестировании это не помешало появлению диалога.Буду очень признателен за любую помощь или указатели, которые вы можете дать.Для полноты ниже приведен код вызова в его нынешнем виде:
Private ie As InternetExplorer
Private doc As HTMLDocument
Private pBarcodeStandard As String
Private Sub IE_Wait()
Do While ie.Busy Or ie.readyState = READYSTATE_LOADING: DoEvents: Loop
End Sub
Public Sub Import_TES_Data()
Set ie = New InternetExplorer
ie.Visible = False
ie.navigate "https://company.intranet.page.here/"
IE_Wait
Set doc = ie.document
doc.getElementsByName("itemNum")(0).value = pBarcodeStandard
doc.forms(0).submit
'After submitting the form (at this point) the webpage loads with the onLoad command
End Sub