SAPфорум.RU
https://sapboard.ru/forum/

Вопрос: Как "выцепить" из признака часть значения?
https://sapboard.ru/forum/viewtopic.php?f=12&t=3815
Страница 1 из 1

Автор:  Taxman [ Вт, мар 15 2005, 17:52 ]
Заголовок сообщения:  Вопрос: Как "выцепить" из признака часть значения?

Дело вот такое... Есть признак (временной), тип данных NUMC, длина 7, длина вывода 8 (добавляется точка после 3-го знака)... Например 001.2005
Надо выделить только первые три значения (001) и на их основании формировать расчет групп параметров, однако Formula Calculation не позволяет этого делать (или всё же как-то можно через него?).
Далее, сунулся в Функцию планирования - Консолидация, а там есть такой Функциональный Модуль (Построитель функций)... а там :shock: Жуть... стока всего :? и есть закладка Исходный текст, там как я понимаю можно написать, что то типа програмки... Так вот что делать? Програмку на ABAPe там писать надо? или на чем? и может это вообще у меня не получиться так "выцепить" первые значения признака?

Заранее спасибо за любой толковый совет :D

З.Ы. Сразу сорри за ламерство :wink:

Автор:  MakcuM [ Вт, мар 15 2005, 18:01 ]
Заголовок сообщения: 

Пишите постановку задачи, а не отрывок из ваших умных мыслей по реализации решения.
Очередной велосипед изобретать неохота.

Хинт: есть такой временной признак, 0FISCPER3 - период проводки. Его вполне можно в области планирования наследовать из 0FISCPER.
И будет вам щасте :)

Автор:  Taxman [ Вт, мар 15 2005, 18:29 ]
Заголовок сообщения: 

OK, понял... буду умнее =)
попробую подробнее и точнее и понятнее...

В системе используется такой временно признак как 0FISCPER (Финансовый год/период). вид у него такой 001.2005, т.е. например 1-ый месяц 2005 года (при том что другой признак "Вариант финансового года" 0FISCVARNT имеет соответствующее значение = месяц). Так вот теперь надо используя всё это сделать консолидацию финансовых показателей по-времени...
т.е. янв+фев+март=1 кварт или другими словами 001.2005+002.2005+003.2005=001.2005(0FISCVARNT=квартал)
однако такой фин.показатель, как "Остатки на конец(начало) периода" не должны консолидироваться, а должен браться соответсвенно из первого или последнего месяца, а для этого надо обратиться именно к первым 3-м числам признака 0FISCPER ибо в них и отражается "номер" того или иного месяца

всё... ещё раз простите что коряво написал, но если кто то понял что я тут нацарапал, то плиз помогите...

Автор:  MakcuM [ Вт, мар 15 2005, 18:37 ]
Заголовок сообщения: 

Ну дык храните номер периода отдельно.
Смотрите мое предыдущее сообщение.
Введите в кубик еще один признак 0FISCPER3 и заполняйте его параллельно из 0FISCPER.
0FISCPER3 - просто номер, число без года.
Соответственно, его и будете использовать в функциях.

Автор:  Taxman [ Вт, мар 15 2005, 18:45 ]
Заголовок сообщения:    Тема решена

=( Об этом уже думали, но сие решение было отклонено по-причине того, что надо будет всё переделывать... Этот признак довольно активно используется при расчете и консолидации других фин.показателей и используется именно в таком виде =( так что "делить" Финансовый год/период это удобно и в значительной степени правильно, но не приемлемо ни по срокам ни по объему работы... вот именно поэтому и возник мой вопрос про "выцепление" =(
Печали моей скоро не будет и конца... =(

Автор:  ToliK [ Вт, мар 15 2005, 18:54 ]
Заголовок сообщения:  А как

У нас было нечто похожее...
ввели отдельно показатели для остатка на начало и конец.
может и Вам поможет ...

Автор:  MakcuM [ Вт, мар 15 2005, 19:01 ]
Заголовок сообщения: 

Что-то я не допонимаю :)
У вас уже есть 0FISCPER3, но его значения не соответствуют периодам 0FISCPER?

То, что в окошке с текстом фукции - там не АБАП, а FOX.
Нажмите F1 в этом окне, и все узнаете об языке :)
Но, боюсь, это вам не поможет :)

Автор:  BW - ник [ Ср, мар 16 2005, 09:40 ]
Заголовок сообщения: 

MakcuM написал(а):
Что-то я не допонимаю :)
У вас уже есть 0FISCPER3, но его значения не соответствуют периодам 0FISCPER?

То, что в окошке с текстом фукции - там не АБАП, а FOX.
Нажмите F1 в этом окне, и все узнаете об языке :)
Но, боюсь, это вам не поможет :)


В FOX сделать нельзя. Но с помощью великого и могучего ABAP можно... только с "0" разобраться во всем этом точно не выйдет. Лучше чтобы такие штучки типа выделения части признака делались при загрузке, а не при расчетах в SEM - дешевле и быстрее выйдет...

Автор:  Гость [ Чт, мар 17 2005, 10:44 ]
Заголовок сообщения: 

Спасибо за участие и за Ваши советы! Буду работать над этим вопросом, а заодно и поглубже узнаю BW и SEM...

З.Ы. Обещаю, как только трабл решиться, рассказать как, что делали =)

Автор:  Taxman [ Чт, мар 17 2005, 10:46 ]
Заголовок сообщения: 

Сорри :oops: забыл зарегиться... Это (то что выше) - я написал :wink:
Еще раз всем большое спасибо...

Автор:  $ [ Ср, мар 23 2005, 17:46 ]
Заголовок сообщения: 

Тахман теперь занимается другой задачей.
А я сделал так:

* 0FISCPER содержит диапазон (001.2005 - 003.2005 например)
DATA FFISCPER TYPE 0FISCPER.
*Вариант. Содержит К4 и Q4, ну и другие комбинации
DATA FFISCVAR TYPE 0FISCVARNT.

*Первый период диапазона
DATA FFISCPERF TYPE 0FISCPER.
*Последний период диапазона
DATA FFISCPERE TYPE 0FISCPER.

DATA FCOUNT TYPE I.

*Определение первого и последнего месяца периода.
FCOUNT = 0.
FOREACH FFISCPER,FFISCVAR.
IF FFISCVAR = K4.
IF FCOUNT = 0.
FFISCPERF = FFISCPER.
FCOUNT = FCOUNT + 1.
ENDIF.
FFISCPERE = FFISCPER.
ENDIF.
ENDFOR.

Коментарии приветствуются, если это можно сделать лучше и проще.

Автор:  BW GUU [ Пт, мар 25 2005, 11:13 ]
Заголовок сообщения: 

Цитата:
А я сделал так:


Dimo$ рулит :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/