Текущее время: Чт, мар 28 2024, 23:07

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


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

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


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

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