Текущее время: Сб, июл 19 2025, 15:34

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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