Community

Альтернатива правила замены символов из списка (с конца и с начала)

Обычно для удаления/замены символов в строке используются стандартные опции в диалоге свойств блока. Но каждый символ может фигурировать в данных опциях только один раз. Т.е. нельзя, например, "-" (дефис) заменить на "." (точку) во всем блоке, а потом "." заменить на пустую строку в суффиксе и префиксе строки. Программа скажет, что символ "." уже используется.
Поэтому бывают ситуации, когда все подобные замены/удаления имеет смысл осуществлять из скриптового правила. Ниже приводится пример скрипта, осуществляющего удаление символов из набора с начала и с конца строки.


Dim vStringToDelete, vFieldName, vFieldVal, i, j
Dim CharToDelete

vStringToDelete = "$р.ЦП/\| "
vFieldName = "Sum"

vFieldVal = me.FIELD(vFieldName).Text
vFieldVal = CStr(vFieldVal)

'c конца
for j = Len (vFieldVal) to 1 Step -1
if instr(1, vStringToDelete, Mid(vFieldVal, j, 1)) <> 0 then
vFieldVal = Mid (vFieldVal, 1, Len(vFieldVal) - 1)
else
exit for
end if
next

' с начала
for j = 1 to Len (vFieldVal)
if instr(1, vStringToDelete, Mid(vFieldVal, 1, 1)) <> 0 then
vFieldVal = Mid (vFieldVal, 2, Len(vFieldVal) - 1)
else
exit for
end if
next

me.FIELD(vFieldName).Text = vFieldVal
0

Comments

0 comments

Please sign in to leave a comment.