View previous topic :: View next topic |
Author |
Message |
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Wed Feb 06, 2008 7:20 pm Post subject: Вопрос по полю для ввода текста |
|
|
На Dynpro поместил поле для ввода текста типа ZPLR-XTEXT.
Поле XTEXT в таблице ZPLR имеет тип CHAR, длина 40.
В программе объявил переменную
Code: | DATA str TYPE ZPLR-XTEXT. |
Ввожу текст в поле. Этот текст нужно немного обработать, потом сохранить в таблице ZPLR в базе данных.
Пишу:
Code: | str = zplr-xtext. "далее идет обработка str и ее сохранение в БД |
В этом месте весь текст становится в верхнем регистре
Напр., я ввел "Это Текст", а в str теперь "ЭТО ТЕКСТ".
Как это побороть?
|
|
Back to top |
|
|
vga Мастер
Age: 175 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
|
Posted: Wed Feb 06, 2008 7:29 pm Post subject: |
|
|
Зайдите в домен для элемента данных поля ZPLR-XTEXT и поставьте галочку Lowercase.
Или же такую же галочку поставьте у поля в построителе экрана. На форуме совсем недавно был похожий вопрос и дан ответ с картинкой.
PS: на вопрос, который вы задавали о работе Excel в фоне. Не будет работать, потому что программа в фоне ничего не знает о Excel, запущенном на вашей рабочей станции.
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Wed Feb 06, 2008 7:48 pm Post subject: |
|
|
Спасибо, нашел тему с картинкой.
Только у меня почему-то в построителе экрана это поле затенено - ничего не могу изменить... Не пойму почему...
А насчет галочки в домене тоже не совсем понял, где она ставится...
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Wed Feb 06, 2008 7:55 pm Post subject: |
|
|
А, все получилось... Удалил поле с Dynpro, добавил снова. Поставил галку.
Наверно SAP заглючил как всегда
А насчет домена - так и не нашел
|
|
Back to top |
|
|
vga Мастер
Age: 175 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
|
Posted: Thu Feb 07, 2008 10:04 am Post subject: |
|
|
Перейдите в свойства домена
Description: |
|
Filesize: |
11.84 KB |
Viewed: |
20386 Time(s) |
|
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Fri Feb 08, 2008 6:41 pm Post subject: |
|
|
Короткий вопрос...
Есть какая-то функция в ABAP, чтобы быстро проверить состоит ли текст только из цифр? Или придется сочинять что-то свое?
|
|
Back to top |
|
|
John Doe Модератор
Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
|
Posted: Fri Feb 08, 2008 6:59 pm Post subject: |
|
|
Можно самому проверить:
Code: | DATA: X(10) VALUE '1234567890',
Y(10) VALUE '12345ABCDE',
Z TYPE I,
OREF TYPE REF TO CX_ROOT,
TEXT TYPE STRING.
TRY .
Z = X.
CATCH CX_ROOT INTO OREF.
TEXT = OREF->GET_TEXT( ).
WRITE / TEXT.
ENDTRY.
TRY .
Z = Y.
CATCH CX_ROOT INTO OREF.
TEXT = OREF->GET_TEXT( ).
WRITE / TEXT.
ENDTRY. |
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Mon Feb 11, 2008 6:10 pm Post subject: |
|
|
Еще вопрос...
У меня на Dynpro вот такая картина. Когда я выбираю Nr по F4 (поле 'D200-ZZKDETNR'), мне надо, чтобы соответствующий этому номеру текст выводился рядом в поле 'KDTEXT'.
Как мне лучше это сделать?
Code: | PROCESS AFTER INPUT.
PROCESS ON VALUE-REQUEST.
FIELD d200-zzkdetnr MODULE f4_etnr.
.........
module F4_ETNR input.
PERFORM f4_etnr.
endmodule. " F4_ETNR INPUT
..........
FORM f4_etnr.
CLEAR: it_etnr[], w_etnr.
SELECT * INTO CORRESPONDING FIELDS OF TABLE it_etnr
FROM zetk.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'ETKNR'
dynpprog = 'SAPMZVKDINFO'
dynpnr = '0200'
dynprofield = 'D200-ZZKDETNR'
window_title = 'Nr'
value_org = 'S'
TABLES
value_tab = it_etnr
EXCEPTIONS
OTHERS = 0.
ENDFORM. " F4_ETNR |
Description: |
|
Filesize: |
2.24 KB |
Viewed: |
20310 Time(s) |
|
|
|
Back to top |
|
|
vga Мастер
Age: 175 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
|
Posted: Mon Feb 11, 2008 6:24 pm Post subject: |
|
|
Если присвоить значение текстовому полю, не выведет?
Code: | module F4_ETNR input.
PERFORM f4_etnr.
D200-KDTEXT = 'текст'.
endmodule. " F4_ETNR INPUT |
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Mon Feb 11, 2008 6:44 pm Post subject: |
|
|
В том-то и дело: я именно так пробовал, но почему-то поле остается пустым
Я и подумал, что что-то не так делаю...
Попробую еще разок...
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Mon Feb 11, 2008 6:54 pm Post subject: |
|
|
Не работает
|
|
Back to top |
|
|
John Doe Модератор
Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
|
Posted: Mon Feb 11, 2008 7:00 pm Post subject: |
|
|
Сделайте присвоение в PBO-модуле. Либо в POV-модуле через ФМ DYNP_VALUES_UPDATE.
|
|
Back to top |
|
|
vga Мастер
Age: 175 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
|
|
Back to top |
|
|
cbw07 Старший специалист
Joined: 30 Nov 2007 Posts: 127
|
Posted: Tue Feb 12, 2008 12:45 pm Post subject: |
|
|
Из примера выше:
Code: | l_indx = tc_ekpotable-top_line + l_stepl - 1.
"tc_ekpotable should already have been declared |
А как в данном случае декларировать tc_ekpotable?
|
|
Back to top |
|
|
John Doe Модератор
Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
|
Posted: Tue Feb 12, 2008 12:58 pm Post subject: |
|
|
cbw07 wrote: | Из примера выше:
Code: | l_indx = tc_ekpotable-top_line + l_stepl - 1.
"tc_ekpotable should already have been declared |
А как в данном случае декларировать tc_ekpotable? |
Вам это не нужно. Это относится к Table Control и декларируется
Code: | CONTROLS: tc_ekpotable TYPE TABLEVIEW USING SCREEN xxxx.
|
|
|
Back to top |
|
|
|