SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Изменение формата даты https://www.sapboard.ru/forum/viewtopic.php?f=13&t=98148 |
Страница 1 из 1 |
Автор: | dogson123 [ Вт, ноя 05 2019, 11:19 ] |
Заголовок сообщения: | Изменение формата даты |
Всем привет! У меня есть таблица с полем aedat формата ддммгггг, мне нужно вычленить оттуда гггг, и закинуть во внутреннюю таблицу. Как это можно сделать? |
Автор: | RoustR [ Ср, ноя 06 2019, 10:13 ] |
Заголовок сообщения: | Re: Изменение формата даты |
Тип поля символьный? Работайте как со строкой aedat+4(4). |
Автор: | dogson123 [ Ср, ноя 06 2019, 13:04 ] |
Заголовок сообщения: | Re: Изменение формата даты |
RoustR написал(а): Тип поля символьный? Работайте как со строкой aedat+4(4). Черт, торопился и пропустил главную часть вопроса.) Кроме того что вычленить год, нужно чтобы в селекционном экране можно было вводить дату в формате гггг, например 2018-2019 и программа выдавала бы закупки, сделанные в этот промежуток. |
Автор: | DED_MOROZ [ Ср, ноя 06 2019, 13:36 ] |
Заголовок сообщения: | Re: Изменение формата даты |
1) Сделать на экране селект-опшинс с типом, например, GJAHR 2) Написать проверку, чтобы значение "По" не было меньше значения "С" 3) Выбрать нужные вам данные "Закупок" за интервал дат [A;B], где А = первое число первого месяца года "С", B - 31 число 12 месяца года "По" |
Автор: | RA [ Ср, ноя 06 2019, 13:37 ] |
Заголовок сообщения: | Re: Изменение формата даты |
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 |
Автор: | Kuranov.Dmitry [ Ср, ноя 06 2019, 14:44 ] |
Заголовок сообщения: | Re: Изменение формата даты |
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 разве будет работать с форматом ДДММГГГГ? |
Автор: | Korvax [ Ср, ноя 06 2019, 14:48 ] |
Заголовок сообщения: | Re: Изменение формата даты |
А теперь предположим, что в селект-опшинс исключили 2019, 2018 года. Что в этом случае? Предлагаю предусмотреть всё: 1. делаем внутреннюю таблицу со списком годов от 1900 до 3000 2. на экране селект-опшинс 3. удаляем во внутренней таблице записи, которые не соответствуют селект-опшинс 4. по внутренней таблице строим свой range с указанием low = '0101'+year, high = '3112'+year 5. range используем при выборе данных |
Автор: | LAT [ Ср, ноя 06 2019, 21:57 ] |
Заголовок сообщения: | Re: Изменение формата даты |
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. |
Автор: | RA [ Чт, ноя 07 2019, 07:25 ] |
Заголовок сообщения: | Re: Изменение формата даты |
А Вы бы создали поле даты "ддммгггг" ? Полагаю, что автор ошибся с типом |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |