Текущее время: Вс, июл 20 2025, 08:49

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Как преобразовать число и дату в строку
СообщениеДобавлено: Ср, апр 27 2005, 14:26 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Ср, апр 20 2005, 10:39
Сообщения: 40
Какие функции есть для преобразования различных типов в строковый?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 27 2005, 14:42 
Гость
есть :) :)

DATA: SSS(50).

WRITE SY-DATUM TO SSS.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 27 2005, 14:54 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
и заодно посмотрите опции к оператору write - дату можно выводить по разному

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 27 2005, 16:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
ArmAnn написал:
и заодно посмотрите опции к оператору write - дату можно выводить по разному

111 целую библу наваял, если не ошибаюсь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, апр 27 2005, 16:30 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Skif написал:
111 целую библу наваял, если не ошибаюсь

угу, как раз недавно ее скачал... только руки пока не доходят поковыряться

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 07:25 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 09:14
Сообщения: 92
Откуда: Киев
а ссылочку на эту библу :) слабо? :)

_________________
Сохрани нас Бог от дураков, а уж с врагами мы сами справимся...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 08:31 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
ascorp написал(а):
а ссылочку на эту библу :) слабо? :)

ты не поверишь, но она лежит на сапфоруме :)
http://www.sapforum.ru/downloads/amosov.zip

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 08:52 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
ArmAnn написал:
ты не поверишь, но она лежит на сапфоруме :)
http://www.sapforum.ru/downloads/amosov.zip


Не, это несколько другое.
И, по данной ссылке выложена несколько устаревшая версия.
Более полная версия есть на http://zstandards.narod.ru . Только они несколько для другого (BDC, списковый ALV и SAPScript). Писалось давно, для версии 4.0В.

А здесь речь, наверное, идет о ФМ
==========================
Code:
FUNCTION /A111/ANY_TO_STRING.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(P_SOURCE)
*"  EXPORTING
*"     REFERENCE(P_RESULT) TYPE  STRING
*"----------------------------------------------------------------------

  DATA: l_FTYPE TYPE C,
        l_buffer(50) type c,
        l_OUTPLEN TYPE I,
        l_DESTLEN TYPE I.

  DESCRIBE FIELD p_SOURCE TYPE l_FTYPE .

  IF l_FTYPE EQ 'I' OR l_FTYPE EQ 'P' OR l_FTYPE EQ 'F'.
    WRITE p_SOURCE TO l_buffer LEFT-JUSTIFIED.
    DESCRIBE FIELD p_SOURCE OUTPUT-LENGTH l_OUTPLEN .
    l_DESTLEN = STRLEN( l_buffer ) .
    WHILE l_DESTLEN < l_OUTPLEN .
     SHIFT p_result RIGHT .
     l_DESTLEN = STRLEN( P_RESULT ) .
    ENDWHILE.
  ELSE.
    p_result = p_SOURCE .
  ENDIF.
ENDFUNCTION.

=========================
Но он предназначен, главным образом, для записи цифровых значений в строчный вид для BDC (чтобы цифровые значения правильно ложились в экранные поля).

Еще есть такой ФМ
=========================
Code:
FUNCTION /A111/format_text .
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(P_TEMPLATE) TYPE  STRING
*"     REFERENCE(P_VALUES_RIGHT_JUST) TYPE  FLAG DEFAULT ' '
*"  EXPORTING
*"     REFERENCE(P_RESULT_TEXT)
*"  EXCEPTIONS
*"      VARIABLE_NOT_FOUND
*"      CALLER_UNKNOWN
*"----------------------------------------------------------------------
  DATA:
    l_lc_stack TYPE i,
    l_t_callstack TYPE sys_callst,
    l_wa_callstack TYPE sys_calls,
    l_buftxt(256) TYPE c,
    l_varname TYPE string,
    l_svarname TYPE string,
    l_source_name TYPE string,
    l_buftxt_tmp TYPE string,
    l_startpos TYPE i, l_endpos TYPE i, l_findpos TYPE i,
    l_shift_delta TYPE i,
    l_shift_delta_empty TYPE i,
    l_varlen TYPE i, l_bufval(100) TYPE c,
    l_caller LIKE sy-repid.
  FIELD-SYMBOLS: <e_fld>.

  l_buftxt = p_template .

  DO .
* Поиск имен переменных в скобках "< >"
    SEARCH l_buftxt FOR '<' .
    IF NOT sy-subrc IS INITIAL .
      p_result_text = p_template.
      EXIT.
    ENDIF.
    l_findpos = l_startpos = sy-fdpos .
    SEARCH l_buftxt FOR '>'  .
    IF NOT sy-subrc IS INITIAL .
      p_result_text = p_template.
      EXIT.
    ENDIF.
    l_endpos = sy-fdpos .

    l_varlen = l_endpos - l_startpos + 1.
    CHECK l_varlen > 0.
    l_source_name = l_buftxt+l_startpos(l_varlen).
    l_varlen = l_varlen - 2.
    ADD 1 TO l_startpos .

    l_varname = l_buftxt+l_startpos(l_varlen) .
    IF l_caller IS INITIAL.
* Определение вызывающей программы
      CALL FUNCTION 'SYSTEM_CALLSTACK'
        IMPORTING
          et_callstack = l_t_callstack.

      READ TABLE l_t_callstack INTO l_wa_callstack INDEX 2.
      IF sy-subrc IS INITIAL.
        l_caller = l_wa_callstack-progname.
      ELSE.
        RAISE caller_unknown.
      ENDIF.
    ENDIF.

* Присвоение FIELD-SYMBOL
    l_svarname = l_varname .
    CONCATENATE '(' l_caller ')' l_varname INTO l_varname .
    TRANSLATE l_varname TO UPPER CASE.
    ASSIGN (l_varname) TO <e_fld>.
    IF NOT sy-subrc IS INITIAL.
      CONCATENATE '?' l_svarname '?' INTO l_svarname .
      ASSIGN l_svarname TO <e_fld> .
*      RAISE VARIABLE_NOT_FOUND .
    ENDIF.

* Подстановка вместо имени переменной ее значения
    IF p_values_right_just IS INITIAL .
      WRITE <e_fld> TO l_bufval LEFT-JUSTIFIED .
    ELSE.
      WRITE <e_fld> TO l_bufval RIGHT-JUSTIFIED .
    ENDIF.

    l_varlen = STRLEN( l_source_name ).

    REPLACE l_source_name LENGTH l_varlen
                        WITH l_bufval INTO l_buftxt.
    l_varlen = STRLEN( l_bufval ).
    l_shift_delta = l_findpos + l_varlen .
    CHECK l_shift_delta > 0.
    l_buftxt_tmp = l_buftxt(l_shift_delta) .
    l_shift_delta_empty = 64 - l_varlen.
    SHIFT l_buftxt LEFT BY l_shift_delta_empty PLACES .
    l_buftxt(l_shift_delta) = l_buftxt_tmp(l_shift_delta) .
  ENDDO.
  CONDENSE l_buftxt .
  p_result_text = l_buftxt.
ENDFUNCTION.

================================
Входной параметр - строка вида
"Результатом выполнения ФМ будет строка, где вот здесь <G_MYVAR> будет подставлено значение переменной G_MYVAR"
Писалось тоже давно - сейчас я бы сделал парсер на основе использования конечного автомата.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Последний раз редактировалось 111 Пт, апр 29 2005, 10:52, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 08:57 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
о, здорово
спасибо :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 09:03 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
вот:
Цитата:
Ой
Страницы, к которой вы обратились, почему-то нет.
Как это могло произойти? Давайте разберемся.
Вам могли прислать неверную ссылку.
Вы могли набрать адрес с ошибкой.
Страница с этим адресом когда-то здесь была, а теперь ее здесь почему-то нет.
Так сложились звезды.

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 10:51 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
ArmAnn написал:
вот:
Цитата:
Ой
Страницы, к которой вы обратились, почему-то нет.
Как это могло произойти? Давайте разберемся.
Вам могли прислать неверную ссылку.
Вы могли набрать адрес с ошибкой.
Страница с этим адресом когда-то здесь была, а теперь ее здесь почему-то нет.
Так сложились звезды.


Сорри - вот наиболее рабочая ссылка
http://www.sapforum.ru/amosov.htm

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, апр 29 2005, 16:04 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
http://www.sapforum.ru/amosov.htm

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 12:47 
Специалист
Специалист

Зарегистрирован:
Вт, авг 24 2004, 16:49
Сообщения: 186
Откуда: SAP ERP60
Пол: Мужской
А чем вам не нравится вариант MESSAGE .... INTO переменная-строка?
Прекрасно подходит для преобразования и конкатенации до 4 параметров в символьную строчку...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 05 2005, 17:54 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Stepan написал:
А чем вам не нравится вариант...?


Накладываемыми этим вариантом ограничениями.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB