Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Скрипт для печати документов Word
Goto page Previous  1, 2, 3
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Feb 17, 2014 18:38    Post subject: Reply with quote

Batya wrote:
А разве это не читабельно?
Я к тому, что если ты напишешь это в одну строку, то, по мне, менее читабельным это выглядеть не будет.
Batya wrote:
List это глобальный массив файлов, и начитываю я его в процедуре проверки входных параметров.
Вызываешь-то ты её единожды.
Batya wrote:
не представляю себе ситуации, когда список документов для печати в Word может быть такого размера, что это будет сказываться на памяти.
Да я сам чаще так списки обрабатываю. Просто отметил сей факт.
Batya wrote:
Не понял. Можно подробнее?
Выше разбирали случай, где за неимением ошибок на печать ничего не выводилось.
Batya wrote:
У меня это указывается стандартным способом - с помощью квадратных скобок.
Ясно. Я предпочитаю указывать. Далеко не все в этом смыслят.
Batya wrote:
Просто скрипт для единичной печати - это мой служебный скрипт ...
Это было понятно, отметил только то, что меня в первом варианте смущало, а в новом уже нет.
Batya wrote:
Не вижу смысла всё сваливать в одну кучу. Если у тебя есть желание, сделай.
Печать офисных документов - это не сваливание в кучу, а оптимизация. Модель-то разная, но во многом методы и свойства сходятся, поэтому подлатать - не большая проблема. Сделаю.
Batya wrote:
В принципе, пример же НЕ является некорректным?
Не знаю, не пробовал, не на чем проверить.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Feb 17, 2014 19:31    Post subject: Reply with quote

Flasher wrote:
Вызываешь-то ты её единожды.

Странный аргумент. Я считаю, что даже единичный вызов кода, имеющего некую чётко выраженную смысловую связку, лучше вынести в отдельную процедуру\функцию.

Flasher wrote:
Выше разбирали случай, где за неимением ошибок на печать ничего не выводилось.

Насколько я понял, там проблемы были не со скриптом печати, а с правильным (с точки зрения указания параметров) вызовом скрипта печати из скрипта массового запуска. В любом случае, поскольку точно не была локализована проблема, то и обобщить это некой проверкой реальности печати нет возможности.

Ответ на всё остальное - "Дело вкуса".
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Feb 17, 2014 20:00    Post subject: Reply with quote

Batya wrote:
Странный аргумент. Я считаю, что даже единичный вызов кода, имеющего некую чётко выраженную смысловую связку, лучше вынести в отдельную процедуру\функцию.
Было бы интересно узнать, почему безусловный вывод такого кода в процедуру в твоём видении странным не считается. Чисто для визуального отделения? Это можно из без процедуры сделать. Обычно при единичном вызове функцию/процедуру задействуют исключительно в показательных целях, но всяко не в целях оптимизации кода.
Рекомендации, когда на практике часть кода отделяют в процедуры, в разных справочных источниках приблизительно аналогичны, и связаны они в основном с повторными вызовами в коде либо какими-то рекурсивными методами.

Попытаемся осмыслить потенциальную проблему с печатью:
видим файлы в очереди, но они не печатаются, например, из-за некорректной передачи свойств функции, скажем, если в параметре указан неверный диапазон страниц. Нечто в этой области.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Feb 17, 2014 23:40    Post subject: Reply with quote

Flasher wrote:
Было бы интересно узнать, почему безусловный вывод такого кода в процедуру в твоём видении странным не считается.

Я никому не навязываю своей точки зрения, но мне так удобнее по нескольким причинам:
1. Чем более объёмным является скрипт, тем более структурированным он должен быть.
2. Вынесение кода в отдельную процедуру позволяет мне проще модифицировать этот скрипт, например, для создания на его основе скрипта с другим функционалом.
3. И, наконец, вынесение кода в отдельную процедуру позволяет не заморачиваться с отдельной обработкой ошибок, а самому их генерить при необходимости (Err.Raise). Мне это кажется весьма удобным.

Flasher wrote:
Попытаемся осмыслить потенциальную проблему с печатью:
видим файлы в очереди, но они не печатаются

Я не умею работать с очередью печати. Если добавишь в мой скрипт подобную функциональность, буду рад.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Feb 18, 2014 00:44    Post subject: Reply with quote

1. Не знал, что процедура как-то влияет на структурированность.
2. Это как раз ближе к показательности. Но как правило в таких процедурах есть аргументы (т.е. не как в обсуждаемой подпрограмме).
3. Т.е. вне процедуры этот код бы не сработал?:
Code:
  Do Until objW.BackgroundPrintingStatus = 0
    'Если ожидаем уже больше заданного лимита, выходим с ошибкой
    If (Timer - StartTime) > TimeLimit Then Err.Raise vbObjectError + 4, Mess(0), Mess(4)
    'Пауза 0.1 сек.
    WScript.Sleep 100
  Loop

Batya wrote:
Я не умею работать с очередью печати.
Необязательно работать с очередью, достаточно проверять правильность введённых параметров.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Wed Jun 10, 2015 09:22    Post subject: использование скрипта печати в TC Reply with quote

Люди добрые, подскажите, как Ваши скрипты для печати документов использовать в тотал-коммандере?
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Wed Jun 10, 2015 12:27    Post subject: Reply with quote

ACKET
Памятка новичку по скриптам (Читать обязательно!)
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Wed Jun 10, 2015 13:30    Post subject: Reply with quote

Спасибо, не увидел ссылку на памятку. Вообще супер - скрипт самое то, что надо! Работает без открытия окна ворда, печатает файлы по выделению. Ещё раз спасибо!

Добавлено спустя 2 часа 13 минут:

А как прописать, чтобы при окончании печати (в случае удачной печати) отпечатанный файл автоматически удалялся?
Back to top
View user's profile Send private message
ACKET



Joined: 10 Jun 2015
Posts: 12

Post (Separately) Posted: Wed Jun 10, 2015 17:10    Post subject: Reply with quote

Сам догадался Smile
Loop
'Закрываем документ
Doc.Close(False)
FSO.DeleteFile(pFile)
Set Doc = Nothing
End Sub[/i]
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3
Page 3 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group