Можете ли вы сделать так, чтобы вызов Oracle pl / sql client_host был модальным? - PullRequest
0 голосов
/ 08 декабря 2011

Мы используем Oracle Forms 10g client_host для копирования файла во временную папку, запускаем приложение для просмотра временного файла, затем удаляем временный файл. В этом случае приложение для просмотра - Windows Internet Explorer. Проблема в том, что вызов delete_file для удаления временного файла вызывается до того, как IE может быть запущен для отображения файла, что приводит к ошибке в IE, потому что он не может найти файл. Ниже приведен фрагмент кода, показывающий, что мы делаем:

-- Copy the file to the site defined temporary location
client_host ('cmd /c copy '||Vcurrentfile||' '||Vtempfile);  

-- Launch viewing application and display the temporary file
client_host (Pviewer||' '||Vtempfile);  

-- Delete the temporary file
Vsuccessind := webutil_file.delete_file (Vtempfile);

Client_host ПРЕДПОЛАГАЕТСЯ быть модальным, поэтому оператор delete_file не должен выполняться, пока пользователь не закроет окно IE. Однако, похоже, что он выполняется до того, как завершится вызов client_host для запуска средства просмотра. Есть идеи?

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

CLIENT_HOST является модальным по отношению к апплету форм. Приложение форм блокируется до возврата CLIENT_HOST. Вызов IE с CLIENT_HOST не блокирует приложение, пока IE не будет закрыт. Но это потому, что iexplore.exe - это приложение для Windows. Приложение Windows блокирует вызывающего до тех пор, пока не будет введен цикл обработки событий. Вы можете проверить это в командной строке. Введите вызов, и вы получите ответное сообщение. Очень показанный IE.

Если вы хотите открыть веб-страницу, почему бы вам не использовать WEB.SHOW_DOCUMENT?

EDIT:
Попробуйте вызвать IE с помощью cmd / C start / W "C: \ Program \ Internet Explorer \ iexplore.exe". Start / W блокирует вызывающего до тех пор, пока приложение Windows не закроется.

0 голосов
/ 03 апреля 2013

Я пытаюсь следующее - это работает: webutil_host.blocking ('' c: \ program \ Internet Explorer \ iexplore.exe "-k -noframemerging '||: URL)

Искать" командную строку IEПараметр "для описания этих параметров.

...