ABAP: обрезать текст, превышающий определенную длину - PullRequest
3 голосов
/ 06 апреля 2011

У меня есть список с текстами длиной от 1 символа до нескольких тысяч. Я хочу обрезать все тексты, превышающие 255 символов. Как я могу это сделать? Нужно ли проверять длину каждой строки, а затем обрезать ее с помощью (255) или есть более элегантное выражение?

Редактировать: как это

<% IF STRLEN( wa_comm-text ) > 255. %>
<%= wa_comm-text(255) %> ...
<% ELSE. %>
<%= wa_comm-text %>
<% ENDIF. %>

это BSP

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

Другой вариант:

<% 
data: ls_text(255) type c. 
ls_text = wa_comm-text.   
%>
<%= ls_text %>

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

0 голосов
/ 05 апреля 2012

Я создал для этого класс «строковых решений» под названием zss со статическим методом, который обрезает заданную строку и заданную длину.

Тогда вы можете просто сделать что-то вроде этого:

<%= zss=>left( s = wa_comm-text cutoff = 255 ). %>

или даже более конкретный метод

<%= zss=>left255(  wa_comm-text ). %>
...