Lotus Notes: как удалить значение и заменить новое значение - PullRequest
1 голос
/ 05 июля 2019

Мой вопрос: Как удалить значение и заменить новое значение

Значение моего поля внутри InvGSTSummary :

Значение 1:

"- 0%, 19291,76,0,00"

"SE 0%, 1068,39,0,00"

"ST 6%, 2000.00,120.00"

Порядок текстового списка может меняться каждый раз,

Значение 2:

"SE 0%, 1068,39,0,00"

"- 0%, 19291,76,0,00"

"ST 6%, 2000,00, 120,00 "

InvGSTSummary

Образец формулы, которую я напишу для тестирования, как показано ниже:

InvGSTSumCode = @Word (InvGSTSummary; ","; 1)

enter image description here

  1. Вопрос в том, могу ли я узнать, как принятьпервые 2 символа - "SE" , чтобы изменить последние 3 значения на (используя 1068.39 * 6% = 64.1034), затем заменить последние 3 значения на 64.1034

FinalРезультат Для значения должно быть:

"- 0%, 19291,76,0,00"

"SE 0%, 1068,39,64,10"

"ST 6%, 2000,00,120,00"

Новый элемент обновления: 08/07/2019

sample

Извините, может быть, мой вопрос не ясен.На самом деле то, что я хочу спросить, можно Loop над значением "field" [text list] для условия (если найдено " SE "), чем просто повторить другие вычисления на странице.

Новый элемент обновления: 10/07/2019

Формула для извлечения значения оригинала и замены значения

FullSummary := @Trim(@Replace("SE" + @Right(InvGSTSummary; "SE"); "SE"; ""));
STCode := @Word(FullSummary; ","; 1);
Price := @Word(FullSummary; ","; 2);
SST:=@TextToNumber(Price) * 0.06;

CompVal:= STCode +","+Price+","+@Text(SST; "F2");

CompVal

Результат формулы: after extract value

1 Ответ

1 голос
/ 05 июля 2019
  1. Получить запись поля, которую вы хотите изменить,
  2. Рассчитать новое значение записи,
  3. Заменить запись в поле.

Пример замены записи, начинающейся с «SE»:

_entryOld := @Trim(@Replace("SE" + @Right(InvGSTSummary; "SE"); "SE"; ""));
_entryNew := @Word(_entryOld; ","; 1) + ... calculate your new value based on _entryOld;
@Replace(InvGSTSummary; _entryOld, _entryNew);

Вот альтернатива для «цикла» для получения записи с «SE»:

_entryOld := @Trim(@Transform(InvGSTSummary; "entry"; 
                              @If(@Contains(entry; "SE"); entry; "")));

Обновление обновленного вопроса:

Используйте @Replace в последней строке кода, чтобы заменить старую запись (FullSummary) новым значением (CompVal):

FullSummary := @Trim(@Replace("SE" + @Right(InvGSTSummary; "SE"); "SE"; ""));
STCode := @Word(FullSummary; ","; 1);
Price := @Word(FullSummary; ","; 2);
SST:=@TextToNumber(Price) * 0.06;

CompVal:= STCode +","+Price+","+@Text(SST; "F2");

@Replace(InvGSTSummary; FullSummary, CompVal);
...