Нужна Помощь В Открытии Файла Из Lotus

Тема в разделе "Lotus - Программирование", создана пользователем AnnaS, 12 мар 2013.

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

    AnnaS Active Member

    Регистрация:
    12 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    Добрый день, проблема в следующем:
    необходимо выгрузить из РК Лотуса файлы и открыть только файлы с определенным расширением. возможно ли это?
    чтобы выгрузить файлы
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">прописала вот так:</div></div><div class="sp-body"><div class="sp-content">
    Код (LotusScript):
    Sub Initialize

    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim body As NotesRichTextItem
    Dim rtnav As NotesRichTextNavigator
    Dim att As NotesEmbeddedObject
    Dim stream As NotesStream
    Dim fileNum As Integer
    Dim fileName As String

    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set dc = db.UnprocessedDocuments
    Set doc = dc.GetFirstDocument
    If Not doc.HasEmbedded Then Exit Sub
    Set body = doc.GetFirstItem(\"Body\")
    Set rtnav = body.CreateNavigator
    Set stream = session.CreateStream

    If rtnav.FindFirstElement(RTELEM_TYPE_FILEATTACHMENT) Then
    Do
    Set att = rtnav.GetElement()
    filepath$ = \"C:\\Users\\Desktop\\На подпись\\\" & att.Source
    Call att.ExtractFile(filepath$)
    Print filepath$ & \" extracted\"
    Loop While rtnav.FindNextElement()
    End If
    Выгружает. А вот как открыть именно файлы с нужным расширением не знаю.нужно только запустить файл с этим расширением из моей папки \"На подпись\" на Раб.столе. Если кто-то может помочь, прошу откликнуться, ибо не являюсь программистом и создаю вторую неделю методом \"тыка\".
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Если ОС windows, то попробуй:
    Код (LotusScript):
    res = Shell("rundll32 url.dll,FileProtocolHandler " & fileName, 4)
    fileName - полный путь к файлу
    Гарантию, что все будет работать правильно не дам.

    Добавлено: а про расширение...
    att.Source полагаю строка, значит анализируй последние 3 символа и если они не нужные, то не выгружай такой файл...
    что-то вроде:
    Код (LotusScript):
    Do
    Set att = rtnav.GetElement()
    if lcase(right(att.Source,3)) = "doc" then
    filepath$ = "C:\Users\Desktop\На подпись\" & att.Source
    Call att.ExtractFile(filepath$)
    Print filepath$ & " extracted"
    res = Shell("rundll32 url.dll,FileProtocolHandler " & filepath$, 4)
    end if
    Loop While rtnav.FindNextElement()
     
  3. AnnaS

    AnnaS Active Member

    Регистрация:
    12 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    ОС windows
    благодарю.
    файл с нужным расширением выгружает.все хорошо.
    теперь надо его запустить. или открыть.
    этот файл у меня дальше сам отрабатывает, его только нужно из лотуса открыть.вот как открыть или запустить не знаю
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    shell же или не помогло?
    Что за файл? Exe? bat?

    Добавлено: Посмотрите в трее или на панели задач. 4 - открыть без фокуса
     
  5. AnnaS

    AnnaS Active Member

    Регистрация:
    12 мар 2013
    Сообщения:
    35
    Симпатии:
    0

    файл подписи с расширением p7s.
    открыть не помогло.
    может,не так пояснила. в общем, нужно, чтобы выгрузил все файлы (это он у меня делает),
    а затем нужно, чтобы файл с расширением p7s открылся.
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    а двойным кликом открывается у вас?
    Написано, что можно Outlook'ом открыть. Может ПО необходимое не установлено?
     
  7. AnnaS

    AnnaS Active Member

    Регистрация:
    12 мар 2013
    Сообщения:
    35
    Симпатии:
    0

    Почти всё получилось! последнее:
    надо , чтобы в этой строке if lcase(right(att.Source,3)) = "doc" then
    выбрал не только doc, но и например,docx.
    подскажите,как сделать два значения. и тот,и другой.чтобы оба выгружались.
    каким оператором или функцией?
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    заменить
    Код (LotusScript):
    if lcase(right(att.Source,3)) = "doc" then
    на
    Код (LotusScript):
    if lcase(right(att.Source,3)) = "doc" or lcase(right(att.Source,4)) = "docx" then
    Еще есть более интересный ход:
    Код (LotusScript):
    Select case lcase(StrRightBack(att.Source,{.}))
    Case "doc","docx":
    filepath$ = "C:\Users\Desktop\На подпись\" & att.Source
    ...
    Case else:
    end select
    Добавляя расширения в строку Case "doc","docx" через запятую можно указать еще форматы
     
  9. AnnaS

    AnnaS Active Member

    Регистрация:
    12 мар 2013
    Сообщения:
    35
    Симпатии:
    0


    все работает! спасибо!результата добилась!
    тему можно закрыть.
     
Загрузка...
Статус темы:
Закрыта.

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