Текущее время: Пт, июл 25 2025, 17:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: На селективном экране !!!
СообщениеДобавлено: Чт, сен 11 2008, 13:43 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Всем привет!!! Столкнулся с проблемой: на селективном экране через параметр select-options задаеться дата. По умолчанию при компиляции программы в выборке даты, в поле "с" должна стоять началная дата этого месяца. Никак не могу сделать. Ниже привожу код.
Code:
data: day_val(20), z_day(20), zapp type sy-datum.

SELECT-OPTIONS: Balansed for aufk-bukrs OBLIGATORY no-EXTENSION,
                date_t  for aufk-erdat DEFAULT zapp to sy-datum  no-EXTENSION.
parameters: p_ERNAM like aufk-ernam ." MATCHCODE OBJECT Z_ASKHAR_test.
."type ZUSER AS LISTBOX VISIBLE LENGTH 20.

at SELECTION-screen on date_t.
start-of-selection.
PERFORM  sel_data_sel_opt  USING  sy-datum+4(2)
                 CHANGING Z_day.

CONCATENATE  sy-datum+0(6) z_day INTO zapp.

end-of-selection.

FORM sel_data_sel_opt  USING    day_val
                 CHANGING Z_day.

  CASE day_val.
    WHEN '01'. Z_day = '01'.
    WHEN '02'. Z_day = '01'.
    WHEN '03'. Z_day = '01'.
    WHEN '04'. Z_day = '01'.
    WHEN '05'. Z_day = '01'.
    WHEN '06'. Z_day = '01'.
    WHEN '07'. Z_day = '01'.
    WHEN '08'. Z_day = '01'.
    WHEN '09'. Z_day = '01'.
    WHEN '10'. Z_day = '01'.
    WHEN '11'. Z_day = '01'.
    WHEN '12'. Z_day = '01'.
  ENDCASE.
ENDFORM.

Кто знает выход и решение?????


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 13:55 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
я так понял "должна стоять началная дата этого месяца" - имеется в виду текущий месяц.
и вобще не совсем понял что вам надо сделать - старайтесь излагать свои мысли яснее
Code:
select-options data for sy-datum.

initialization.
  refresh data.
  clear data.
  data(3) = 'IEQ'.
  data-low = sy-datum.
  data-low+6(2) = '01'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: На селективном экране !!!
СообщениеДобавлено: Чт, сен 11 2008, 14:24 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Askhat Bayarlin написал:
Всем привет!!! Столкнулся с проблемой: на селективном экране через параметр select-options задаеться дата. По умолчанию при компиляции программы в выборке даты, в поле "с" должна стоять началная дата этого месяца. Никак не могу сделать. Ниже привожу код.


Это решается вообще без единой строчки АВАР-кода.
1.) Создаем вариант запуска программы (кнопка "Сохранить" на селекционном экране).
2.) Для поля даты в столбце "Переменная выбора" выбираем "Динамический расчет даты" (D).
3.) В столбце "Имя переменной" выбираем "Первое число текущего месяца".
4.) Сохраняем вариант.
5.) Вроде все.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: На селективном экране !!!
СообщениеДобавлено: Чт, сен 11 2008, 14:28 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
Askhat Bayarlin написал:
...
at SELECTION-screen on date_t.
start-of-selection.
...
CONCATENATE sy-datum+0(6) z_day INTO zapp.


тогда уж
Code:
INITIALIZATION.
...
CONCATENATE  sy-datum(6) '01' INTO date_t-low.
...
start-of-selection.
...

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


Последний раз редактировалось 111 Чт, сен 11 2008, 14:37, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: На селективном экране !!!
СообщениеДобавлено: Чт, сен 11 2008, 14:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 12:45
Сообщения: 164
Откуда: Свердловская обл., г. Екатеринбург
Пол: Мужской
111 написал(а):
Это решается вообще без единой строчки АВАР-кода.
1.) Создаем вариант запуска программы (кнопка "Сохранить" на селекционном экране).
2.) Для поля даты в столбце "Переменная выбора" выбираем "Динамический расчет даты" (D).
3.) В столбце "Имя переменной" выбираем "Первое число текущего месяца".
4.) Сохраняем вариант.
5.) Вроде все.

Хм... тока если экран 1000


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: На селективном экране !!!
СообщениеДобавлено: Чт, сен 11 2008, 14:41 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Askhat Bayarlin написал:
Ниже привожу код.

Пожалуйста, используй тег code для оформления кода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 14:50 
Ассистент
Ассистент

Зарегистрирован:
Ср, авг 13 2008, 07:47
Сообщения: 39
Пол: Мужской
Есть селективный экран с параметром выбора за период времени! То есть вводиться начальная дата и конечная дата. В отчет выводятся данные за данный период времени.

выглядит примерно та "За период с_____ по_____"

с______-сюда будет вводиться дата с какого момента нужна выгрузка данных

по______- сюда по какою дату.

Мне нужно чтоб поле "с_____" автоматически заполнялось, допустим, значением 01.09.2008 (уже в самом селективе) если программа запускалась в сентября или же 01.08.2008 если в августе текущего года.

использовал параметр select-options........DEFAULT val1 [TO val2]

Где val я задал значение sy-datum и не знаю что делать с val1

Выше я привел функцию заполнения val. Вроде все ок, только она не хочет работать![/img]


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 15:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Code:
AT SELECTION-SCREEN OUTPUT.
*
IF c_budat-low IS INITIAL.
      CALL FUNCTION 'G_PERIOD_GET'
        EXPORTING
          variant                        = 'K4'
        IMPORTING
          period                         = ld_actual_period
          year                           =  ld_actual_year
        EXCEPTIONS
          ledger_not_assigned_to_company = 1
          period_not_defined             = 2
          variant_not_defined            = 3
          OTHERS                         = 4.

      IF sy-subrc = 0.
        CALL FUNCTION 'G_POSTING_DATE_OF_PERIOD_GET'
          EXPORTING
            period              = ld_actual_period
            variant             = gs_tka01-lmona
            year                = ld_actual_year
          IMPORTING
            from_date           = c_budat-low
            to_date             =   c_budat-high
          EXCEPTIONS
            period_not_defined  = 1
            variant_not_defined = 2
            OTHERS              = 3.
      ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 16:59 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 27 2007, 10:55
Сообщения: 197
Откуда: Україна
Пол: Мужской
Askhat Bayarlin написал:
Есть селективный экран с параметром выбора за период времени! То есть вводиться начальная дата и конечная дата. В отчет выводятся данные за данный период времени.

выглядит примерно та "За период с_____ по_____"

с______-сюда будет вводиться дата с какого момента нужна выгрузка данных

по______- сюда по какою дату.

Мне нужно чтоб поле "с_____" автоматически заполнялось, допустим, значением 01.09.2008 (уже в самом селективе) если программа запускалась в сентября или же 01.08.2008 если в августе текущего года.

использовал параметр select-options........DEFAULT val1 [TO val2]

Где val я задал значение sy-datum и не знаю что делать с val1

Выше я привел функцию заполнения val. Вроде все ок, только она не хочет работать![/img]


Code:
SELECT-OPTIONS: rg_sdate FOR sy-datum OBLIGATORY.
...............
INITIALIZATION.

IF rg_sdate[] IS INITIAL. "Период текущий месяц по умолчанию
     rg_sdate-LOW = sy-datum.  "текущая дата
     rg_sdate-LOW+6(2) = '01'. "первый день месяца
     rg_sdate-HIGH = rg_sdate-LOW.
     if rg_sdate-HIGH+4(2) ne '12'. "определяем...
        rg_sdate-HIGH+4(2) = rg_sdate-HIGH+4(2) + 1.
         else.
         rg_sdate-HIGH(4) = rg_sdate-HIGH(4) + 1.
         rg_sdate-HIGH+4(2) = rg_sdate-HIGH+4(2) + 1.
     endif.
     rg_sdate-HIGH = rg_sdate-HIGH - 1. "последний день месяца
     append rg_sdate.
  ENDIF.


Вот так! :) С Вас, Askhat Bayarlin, 2 пива за фриланс... :D :D :D

_________________
Приятно Вас видеть...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 11 2008, 18:07 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
KVL написал:
Вот так! :) С Вас, Askhat Bayarlin, 2 пива за фриланс... :D :D :D


Askhat Bayarlin, максимум - одно пиво, и только El Mario


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 12 2008, 05:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 12:45
Сообщения: 164
Откуда: Свердловская обл., г. Екатеринбург
Пол: Мужской
Высылайте ... жду... :lol:


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

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


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

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


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

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