Как скопировать определенный текст из документа в режиме редактирования и добавить его в строку темы? - PullRequest
0 голосов
/ 14 октября 2011

Я далеко не эксперт, но я недавно немного узнал об использовании языка Lotus @Formula и создал несколько очень полезных кнопок для себя.К сожалению, у меня возникли проблемы с попыткой нанести последний штрих на тот, который я недавно создал, и, независимо от того, сколько я занимаюсь поиском, я не могу найти что-то, что укажет мне правильное направление.

Если быть более конкретным, я пытаюсь переслать заметку, которая берет фрагмент текста из тела письма и использует его в строке темы.Записка, которую я пересылаю, может быть запиской или документом из конкретной базы данных.Когда я пересылаю документ из базы данных, я могу получить нужный мне текст, получив значение определенного поля, прежде чем оно переадресует его с помощью @ GetField .Если я только перенаправляю напрямую из документа из базы данных, он отлично работает, сначала получая значение, и это хорошо, потому что как только я открываю эту новую заметку для пересылки, этого поля больше нет.

Проблема в том, что если я пересылаю чье-либо письмо (кто-то, кто уже перенаправил документ из базы данных), у меня нет возможности сначала получить нужное мне значение, потому что это поле уже пропало.Хорошая новость заключается в том, что значение поля, которое я пытаюсь получить, указано в таблице записки, которую я пересылаю.К сожалению, я не могу понять, как выделить и скопировать этот текст, чтобы его можно было вставить в строку темы.В своем простом уме я думаю, что мне просто нужен способ «найти» статический текст, который предшествует тексту, который мне нужно скопировать, переместить один пробел вправо, выделить и скопировать все с этой точки до концаcell.

По сути, мне нужен способ найти и скопировать что-нибудь из тела, чтобы я мог использовать это в теме письма.Самая близкая вещь, которую я мог бы получить, это переместить курсор в точку с помощью команд EditDown и EditRight .Проблема с этим методом заключается в том, что у меня нет способа узнать правильное количество строк для перемещения вниз.Если бы я пересылал исходный документ, выполнялся следующий вид работ:

@Command( [EditGotoField]; "Body" ) ;
REM "The next line only works if the text is located exactly 33 lines down." ;
@Command( [EditDown]; "33" ) ;
@Command( [EditRight]; "29" ) ;
@Command( [EditDeselectAll] ) ;
REM "The next line only works if the text I need is three characters long." ;
@Command( [EditRight] ; "3" ) ;
@Command( [EditCopy] ) ;
@Command( [EditGotoField] ; "Subject" ) ;
@Command( [EditSelectAll]) ;
@Command( [EditInsertText] ; "The text I need is: " ) ;
@PostedCommand( [EditPaste] ) 

Я говорю «вроде», потому что часть, где он выделяет текст, работает, только если нужный мне текст совпадает с числомсимволы, которые я указал в коде.Если текст, который мне нужен, длиннее, он не получит все это.Если он короче, курсор выбирает следующую ячейку, а затем копирует кучу ненужного текста.Мне нужен способ сделать так, чтобы он выбирался только до конца ячейки (т. Е. Как при нажатии «Shift» + «Конец»).

Я подумал, что, возможно, мне удастся вызвать агента для выполнения этой части, но яне смог найти ничего полезного в моих поисках LotusScript.

Я также подумал, что, возможно, электронное письмо, которое я пересылаю, может иметь какую-то ссылку на исходный документ, но я не могу ничего найти.Я думал, что, возможно, он сможет найти оригинальный документ, получить нужное мне значение и вернуться к заметке.

Спасибо, что нашли время, чтобы прочитать это.Если кто-то может помочь, я буду очень признателен.

1 Ответ

1 голос
/ 14 октября 2011

Предлагаем вам взглянуть на @Text или @Abstract, чтобы получить текст из поля body заметки, и вам останется строка для обработки, вы упомянули, что перед текстом есть статический текст.Вы хотите, чтобы @middle мог быть вашим другом здесь.HTH.

Привет, Майк, @Abstract будет обрабатывать максимум 64994 байта, которых должно быть достаточно для электронной почты.Поле, которое вы хотите, на самом деле называется Body, поэтому попробуйте

@ Abstract ([TextOnly]; 64000; ""; "Body")

Я попытался присвоить это значение переменной только для обнаружения формулыстроковые переменные ограничены 1700 символами, поэтому вместо этого я использовал их непосредственно в @ Middle,

@ Middle (@Abstract ([TextOnly]; 64000; ""; "Body"); "YourFixedText1"; "YourFixedText2"))

Затем я обернул вокруг него @Prompt для тестирования,

@ Prompt ([Ok]; "Извлечение теста"; @Middle (@Abstract ([TextOnly]; 64000; ")";" Body ");" "YourFixedText1" ";" YourFixedText2 "))

Как только вы успешно извлечете то, что хотите, используйте формулу для установки поля Subject вашей пересылаемой заметки.

...