Рубануть значение до запятой ?!?!

Тема в разделе "Lotus - Программирование", создана пользователем -, 18 фев 2008.

  1. Гость

    При помощи команды Strright, я могу прочитать значение до запятой с права, sDocLinks = Trim(Strright(sDocLinks,",")), или слева Strleft. А вот как рубануть значение до запятой?
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну ещё есть StrRightBack и StrLeftBack :)
    Тебе до заптой с какой стороны надо?
    Кажись, StrLeft это то, что тебе нужно...
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Денис Кириченко
    ну перепиши поле,
    Call doc.ReplaceItemValue("поле",Trim(Strright(sDocLinks,",")))

    Или что значит рубануть?
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Денис Кириченко
    StrleftBack
     
  5. Гость

    Omh, но видьи при помощи команды Strright, я могу только прочитать значение до запятой с права, а не "обрезать" значение до запятой или я не прав?
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Денис Кириченко
    где Вы хотите обрезать значения в докумете ?
     
  7. Гость

    Точно, а без лишнего поля не как нельзя обойтись?

    Нет, а переношу значение поля(uidoc) в переменную и удаляю документы постепенно:

    sDocLinks = Trim(uidoc.FieldGetText("DocumentLinks"))

    While sDocLinks <> ""
    Set dDoc = db.GetDocumentByUNID(Strleft(sDocLinks,","))
    Set uidoc = worksp
    uidoc.DeleteDocument
    Wend
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: Денис Кириченко
    Чёт тебя опять куда-то не туда понесло :)
    Что за задача? :)
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Денис Кириченко
    дак вы берете значение из поля , а потом хотите обрезать его до запятой???
    А дальше, это значение куда??
    <!--QuoteBegin-Денис Кириченко+18:02:2008, 13:03 -->
    <span class="vbquote">(Денис Кириченко @ 18:02:2008, 13:03 )</span><!--QuoteEBegin-->Точно, а без лишнего поля не как нельзя обойтись?
    [snapback]98560" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Ну вот в то поле откуда брали, туда и занесите...
     
  10. Гость


    В поле DocumentLinks я заношу uidoc документов, которые связаны с текущем документом. При удалении текущего документа мне надо будет удалять и его детей. Для этого я выбираю из поля DocumentLinks все uidoc всех связанных документов:

    Sub Terminate

    Dim db As NotesDatabase
    Dim session As NotesSession
    Dim cDoc As NotesDocument
    Dim dDoc As NotesDocument
    Dim uidoc As NotesUIDocument
    Dim worksp As New NotesUIWorkspace

    Dim sDocLinks As String

    Set session = New NotesSession
    Set db = session.CurrentDatabase

    Set cDoc = uidoc.Document

    Set uidoc = worksp.CurrentDocument
    Set cDoc = uidoc.Document

    sDocLinks = Trim(uidoc.FieldGetText("DocumentLinks"))

    While sDocLinks <> ""
    Set dDoc = db.GetDocumentByUNID(Strleft(sDocLinks,","))
    uidoc.DeleteDocument
    Wend

    End Sub
     
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Что-то запутанный код , Вам точно uidoc надо удалять?
    может dDoc???
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    notesDocument.Responses.
    А вообще поиск. Обсуждалось уже.
     
  13. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    <!--QuoteBegin-Денис Кириченко+18:02:2008, 12:17 -->
    <span class="vbquote">(Денис Кириченко @ 18:02:2008, 12:17 )</span><!--QuoteEBegin-->заношу uidoc документов
    [snapback]98565" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    UNID документов.

    Допустим, дети у него не respons'ы.
    Тогда ты хранишь в поле UNID'ы связанных доков. (на самая лучшая идея)
    Лучше их хранить как array, т.е. multivalue поле, что бы удобно использовать например forall.
    Но раз уж хранишь, как стринг с запятыми можно сделать Split и получить array и потом пройтись forall'ом.
     
  14. Гость

    Да dDoc, простоя я не знаю как :)
     
  15. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    Call doc.remove(True)
     
  16. Гость

    А как можно определить, что документ удаляется? В процедуре Terminate, Формы? Че-то не то. Может знает кто?
     
  17. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Денис Кириченко
    У базы данных есть Event
    QueryDocumentDelete сматреть в Others\DataBase Resources\Database Script
     
  18. Гость

    Для: Omh
    Спасибо за помощь :)

    Для: Morpheus
    Спасибо за помощь :)

    Нашел:
    Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)

    End Sub

    но, вот не задача, а как определить что документ удаляется из определенной формы, т.е. созданный из этой формы?
     
  19. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Денис Кириченко
    Спросите у документа его форму
     
  20. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Денисыч, тебе надо углубиться в хелп.
    Поле "Form" рассказывает на какой форме умолчательно открывается данный документ.
     
Загрузка...

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