Текущее время: Пт, мар 29 2024, 10:26

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Изменение формата даты
СообщениеДобавлено: Вт, ноя 05 2019, 11:19 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 05 2019, 09:48
Сообщения: 3
Всем привет! У меня есть таблица с полем aedat формата ддммгггг, мне нужно вычленить оттуда гггг, и закинуть во внутреннюю таблицу. Как это можно сделать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 10:13 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1392
Тип поля символьный? Работайте как со строкой aedat+4(4).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 13:04 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 05 2019, 09:48
Сообщения: 3
RoustR написал(а):
Тип поля символьный? Работайте как со строкой aedat+4(4).

Черт, торопился и пропустил главную часть вопроса.) Кроме того что вычленить год, нужно чтобы в селекционном экране можно было вводить дату в формате гггг, например 2018-2019 и программа выдавала бы закупки,
сделанные в этот промежуток.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 13:36 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
1) Сделать на экране селект-опшинс с типом, например, GJAHR
2) Написать проверку, чтобы значение "По" не было меньше значения "С"
3) Выбрать нужные вам данные "Закупок" за интервал дат [A;B], где А = первое число первого месяца года "С", B - 31 число 12 месяца года "По"

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 13:37 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Code:
PARAMETERS :  p_year  TYPE gjahr .
.....
  CONCATENATE p_year '0101' INTO lv_begda.
  CONCATENATE p_year '1231' INTO lv_endda.
....
and aedat between lv_begda AND lv_endda



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 14:44 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
RA написал:
Code:
PARAMETERS :  p_year  TYPE gjahr .
.....
  CONCATENATE p_year '0101' INTO lv_begda.
  CONCATENATE p_year '1231' INTO lv_endda.
....
and aedat between lv_begda AND lv_endda


between разве будет работать с форматом ДДММГГГГ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 14:48 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
А теперь предположим, что в селект-опшинс исключили 2019, 2018 года. Что в этом случае?

Предлагаю предусмотреть всё:
1. делаем внутреннюю таблицу со списком годов от 1900 до 3000
2. на экране селект-опшинс
3. удаляем во внутренней таблице записи, которые не соответствуют селект-опшинс
4. по внутренней таблице строим свой range с указанием low = '0101'+year, high = '3112'+year
5. range используем при выборе данных


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение формата даты
СообщениеДобавлено: Ср, ноя 06 2019, 21:57 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 347
Code:
DATA: g_year TYPE gjahr.
SELECT-OPTIONS: s_year FOR g_year.
...
SELECT ... FROM ...
  WHERE left( aedat, 4 ) in @s_year[]
  INTO TABLE ...
Ну или по старинке (идея: на основе селект-опшенсов для года сформировать селект-опшенсы для дат):
Code:
DATA: g_year TYPE gjahr.
SELECT-OPTIONS: s_year FOR g_year.
...
  DATA: trange_date TYPE RANGE OF d.
  DATA: range_date LIKE LINE OF trange_date.
  FIELD-SYMBOLS: <year> LIKE s_year.

  LOOP AT s_year ASSIGNING <year>.
    MOVE-CORRESPONDING <year> TO range_date.
    CONCATENATE range_date-low '0101' INTO range_date-low.
    IF range_date-high = '0000'.
      range_date-high(4) = range_date-low(4).
      range_date-option = " тут нужно менять операции: EQ на BT и т.д., сходу все не припомню
    ENDIF.
    CONCATENATE range_date-high '1231' INTO range_date-high.
    APPEND range_date TO trange_date.
  ENDLOOP.
  SELECT ... FROM ... INTO TABLE ...
    WHERE aedat IN trange_date.


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

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
А Вы бы создали поле даты "ддммгггг" ? Полагаю, что автор ошибся с типом


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

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


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

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


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

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