Текущее время: Пн, авг 04 2025, 19:33

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


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

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


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

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