1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Срочный вопрос [done:]

Тема в разделе "Lotus - Программирование", создана пользователем SOFTOBZOR.ru, 25 янв 2007.

Статус темы:
Закрыта.
  1. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Репутация:
    0
    Господа, правильно ли я понимаю следующий код:
    Код:
    	If IsAutoPrint Then Call wordDoc.PrintOut	
    
    Call wordDoc.Save
    Call wordApp.Quit
    
    done:	
    Exit Sub
    Сначало обьявляеться процедура wordDoc.PrintOut
    Далее сразу идет
    Call wordDoc.Save
    Call wordApp.Quit

    потом (done:) - если выполнены все процедуры - выход

    Мне надо так

    Сначало идет печать, когда она завершиться сохранить и закрыть, поможет ли такое переделывание?

    Код:
    	If IsAutoPrint Then Call wordDoc.PrintOut	
    done:	
    Call wordDoc.Save
    Call wordApp.Quit
    
    Exit Sub
    Т.е. поможет ли этот done:
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    :(
    done: это метка.

    Для безусловного перехода.
     
  3. DNT

    DNT Постоялец форума
    Lotus team

    Репутация:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    590
    Симпатии:
    7
    Для: SOFTOBZOR.ru

    на эту метку ты можешь прыгнуть при помощи GoTo, например

    ...
    On Error Goto ErrorHandle
    ...
    ...

    ErrorHandle:

    ...

    почитай хелп. :(

    А в твоем случае просто убери метку done: - она не используется в приведенном тобой коде
     
  4. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    Это вопрос к вордовому хелпу:
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-DNT+25:01:2007, 11:02 -->
    <span class="vbquote">(DNT @ 25:01:2007, 11:02 )</span><!--QuoteEBegin-->А в твоем случае просто убери метку done: - она не используется в приведенном тобой коде

    [snapback]54024" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Не используется только в этом куске. Но не факт, что вообще.
     
  6. DNT

    DNT Постоялец форума
    Lotus team

    Репутация:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    590
    Симпатии:
    7
    Для: Medevic

    совершенно верно, я имел ввиду :(

    <!--QuoteBegin-DNT+25:01:2007, 10:02 -->
    <span class="vbquote">(DNT @ 25:01:2007, 10:02 )</span><!--QuoteEBegin-->в приведенном тобой коде

    [snapback]54024" rel="nofollow" target="_blank[/snapback]​
    [/quote]
     
  7. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Репутация:
    0
    Проблема вот в чем.

    If IsAutoPrint Then Call wordDoc.PrintOut
    Call wordDoc.Save
    Call wordApp.Quit
    done:
    Exit Sub

    wordDoc.PrintOut - Выводит документ на печать, предварительно сделано
    Let wordApp.Visible = False' Чтобы Word был открыт фоном
    Теперь самое интересно, док печатаеться, сохраняеться тихоничко, процесс убиваеться.

    Но... это все в 2003 word а вот 2000 word - ругаеться на то что документ который мы
    Call wordDoc.Save
    Call wordApp.Quit
    Еще на допечатался, а вы его уже закрыть хотите.... как эту байду разрулить?
     
  8. DNT

    DNT Постоялец форума
    Lotus team

    Репутация:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    590
    Симпатии:
    7
    Для: SOFTOBZOR.ru

    ну так попробуй использовать при вызове PrintOut то что посоветовали: Elena Nefedova
     
  9. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    <!--QuoteBegin-SOFTOBZOR.ru+25:01:2007, 11:16 -->
    <span class="vbquote">(SOFTOBZOR.ru @ 25:01:2007, 11:16 )</span><!--QuoteEBegin-->Но... это все в 2003 word а вот 2000 word - ругаеться на то что документ который мы
    Call wordDoc.Save
    Call wordApp.Quit
    Еще на допечатался, а вы его уже закрыть хотите.... как эту байду разрулить?
    [snapback]54029" rel="nofollow" target="_blank[/snapback]​
    [/quote]С 2000 офисом у лотуса имеется какая-то непонятная асинхронность выполнения (по крайней мере у 6-го).
    Придется Sleep вставлять. Потому как 2000 офис уже вроде бы не поддерживается микрософтом, и спросить не с кого.
     
  10. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Репутация:
    0
    Да с радостью бы, только тот кусочик который я вам привел, это 1/1000000 библиотеки, и разруливать ее не представляеться возможным.

    Спасибо!

    То есть что-то типа того


    Call wordDoc.Save
    Sleep (60)
    Call wordApp.Quit
     
  11. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    <!--QuoteBegin-SOFTOBZOR.ru+25:01:2007, 11:27 -->
    <span class="vbquote">(SOFTOBZOR.ru @ 25:01:2007, 11:27 )</span><!--QuoteEBegin-->о есть что-то типа того
    Call wordDoc.Save
    Sleep (60)
    Call wordApp.Quit
    [snapback]54034" rel="nofollow" target="_blank[/snapback]​
    [/quote]Ну можно еще немного извратиться, поймать код возвращаемой лотусом ошибки (перед этим надо загасить вывод ошибок в свойсвах wordApp)
    Ну и сделать что-то вроде цикла, допустим, от 1 до 120 с телом sleep(1), закрытием документа и переходом на обработку ошибки с конкретным найденным номером и дальнейшим возвратом на дополнительную метку, чтобы повторить sleep(1)
    Так хоть будем вовремя выходить - без лишнего ожидания.

    Можно еще сделать запрос к пользователю с вариантами выбора:
    1. подтвердить завершение печати
    2. прервать выполнение кода
    3. и т.п.
     
  12. SOFTOBZOR.ru

    SOFTOBZOR.ru Гость

    Репутация:
    0
    Понятно, думаю лучший фариант это типа прогресс бар с циклом от 1 до 100 и текст ждите.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей