Вернуться к строке в doc.DXL? - PullRequest
0 голосов
/ 14 апреля 2019

Я использую IBM Domino Designer 9.0 и у меня проблема с DXL.Как вернуться к строке в doc.DXL (которую я создал)?Я пытался с \ n и <\ br>, но это не работает.Так что, пожалуйста, помогите.

Code Button : 

Sub Click(Source As Button)
    Dim Stream As NotesStream
    Set Stream=Session.CreateStream
    f=Freefile
    fichier="d:\"+Masque.FieldGetText("nom")+".dxl"
    Open fichier For Output As #f
    Stream.Open(fichier)

    Call Stream.WriteText(|..............................>|)
.........................
    Call Stream.WriteText(|<datamodified>|)
    Call Stream.WriteText(|<datetime dst="true">|+Now+|</datetime>|)
    Call Stream.WriteText(|</datamodified>|)
    Call Stream.WriteText(|<designmodified>|)
    Call Stream.WriteText(|<datetime dst="true">|+Now+|</datetime>|)
    Call Stream.WriteText(|</designmodified>|)
    Call Stream.WriteText(|</databaseinfo>|)
    Call Stream.WriteText(|<form name="|+Masque.FieldGetText("nom")+|" nocompose="true" publicaccess="false" designerversion="8.5.3" recalc="true" renderpassthrough="true">|)
    ...........
Call Stream.WriteText(|<text>test</text>|)
    Call Stream.WriteText(|</item>|)
    Call Stream.WriteText(|</form>|)
    Call Stream.WriteText(|</database>|)
    Stream.Close

End Sub

Вывод: ............................ 13/04/201914:52:56 13/04/2019 14:52:56 Опция Public Dim Session As NotesSession Dim curDb As NotesDatabase Dim doc As NotesDocument Dim Vue As NotesView Dim ws As NotesUIWorkspace Dim Masque As NotesUIDocument Sub Initialize Set Session = Новый набор NotesSession Set curDb= Session.CurrentDatabase Set ws = New NotesUIWorkspace End Sub UI.FieldGetText ("titre") Sub Postopen (Источник как Notesuidocument) Установить Masque = Source End Sub @Command ([FileSave]) FIELD saveoptions: = "0";@Command ([FileCloseWindow]) @Command ([FileSave])

1 Ответ

2 голосов
/ 15 апреля 2019

Прежде всего: вы смешали здесь две техники написания файлов. Вы можете полностью пропустить строки

f=Freefile
Open fichier For Output As #f

Они принадлежат к другому типу записи файлов с командами печати. Здесь не нужно.

Второе: вы проверяли документацию на WriteText? Очевидно, нет, потому что тогда вы бы нашли второй (необязательный) параметр eol:

байт & = notesStream .WriteText (текст $, [eol &])

Параметр eol: Константа типа Long. Символ конца строки добавляется к тексту. По умолчанию EOL_NONE.
- EOL_CR (2) добавляет возврат каретки (ASCII 13).
- EOL_CRLF (0) добавляет возврат каретки и перевод строки (ASCII 10 + 13).
- EOL_LF (1) добавляет перевод строки (ASCII 10).
- EOL_NONE (5) ничего не добавляет. По умолчанию.
- EOL_PLATFORM (3) следует соглашениям текущей платформы.

Итак, одна строка вашего кода будет:

Call Stream.WriteText(|<datamodified>|, EOL_PLATFORM)

Или

Call Stream.WriteText(|<datamodified>|, EOL_CRLF)

Просто добавьте этот второй параметр для каждой строки.

...