Текущее время: Сб, авг 23 2025, 01:25

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Проблема
СообщениеДобавлено: Ср, мар 17 2010, 09:09 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 09 2010, 06:38
Сообщения: 7
Есть проблема!!! Подскажите как её решить?
Суть проблемы: Есть два признака которые содержат даты, мне нужно в отчете получить количество недель между двумя датами.
пример: 01.10.2009 и 31.12.2009 вычисляем сколько недель = 13,14


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Ср, мар 17 2010, 11:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, июл 03 2007, 10:26
Сообщения: 486
Откуда: Kazakhstan, Astana
Пол: Мужской
Переменная формула Путь Замены. Вам поможет.

_________________
"Great minds discuss ideas. Average minds discuss events. Small minds discuss people-Eleanor Roosevelt--Knowledge is to share, Keep it free, Keep sharing"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Вс, фев 06 2011, 18:08 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 14 2008, 17:05
Сообщения: 67
Пол: Женский
У меня похожая проблема - в запросе BEX, исходя из количества дней в интервале, (выбираем период 0calmonth) нужно посчитать значение коэффициента( поделив значение показателя на количество дней). Количество дней в интервале считаю в EXIT переменной. А использовать её в формуле структуры не получается. Пробовала создавать переменную - формулу(Обработка ч-з Customer - exit), но падает в дамп из-за несовпадения типов (рассчитанное количество дней присваиваю переменной INT2). Подскажите, пожалуйста, что я делаю не так?


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

Зарегистрирован:
Пт, окт 08 2010, 15:57
Сообщения: 259
Откуда: Киев
Пол: Женский
Egorov, на самом деле это очень просто. Как и сказал BORLAND переменная формула - путь замены .
Просто хотела добавить ,
Правило замены - информационный объект
Заменить на - ключ
использовать интервал - разница
Потом переменную формулу кидаем в рассчитанные показатели и Amity можете делить значения на кол-вл дней :D


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

Зарегистрирован:
Чт, авг 14 2008, 17:05
Сообщения: 67
Пол: Женский
OlgaZ написала:
Egorov, на самом деле это очень просто. Как и сказал BORLAND переменная формула - путь замены .
Просто хотела добавить ,
Правило замены - информационный объект
Заменить на - ключ
использовать интервал - разница
Потом переменную формулу кидаем в рассчитанные показатели и Amity можете делить значения на кол-вл дней :D


Возможно я не совсем понятно объяснила: у меня в запросе есть интервал месяцев 0calmonth (не дат). В переменной формуле я могу посчитать количество месяцев, а не дней в и интервале. А мне нужно получить именно количество дней! Вопрос в том, где мне лучше считать количество дней? Что это должно быть? Есть ли способ из Customer - переменной (переменной построенной на признаке 0calmonth) притащить в запрос рассчитанное количество дней в формате INT2?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Пн, фев 07 2011, 15:16 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 18 2008, 07:37
Сообщения: 256
Amity написала:
Вопрос в том, где мне лучше считать количество дней? Что это должно быть? Есть ли способ из Customer - переменной (переменной построенной на признаке 0calmonth) притащить в запрос рассчитанное количество дней в формате INT2?


Думаю что колличество дней считаете в правильном месте.
У значений переменных customer-exit тип и длина данных должны быть такими же как и у ссылочного признака. Возможно в этом ваша проблема. У признака 0CALMONTH тип NUMC и длина 6. Расчитанное вами значение дней должно быть 6 значным.
А если не получится добавить нолики перед значением, то попробуйте создать переменную с другим ссылочным признаком (не временным).

_________________
The extent of reliability of the data affect on the quality of resource allocation.


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

Зарегистрирован:
Пт, окт 08 2010, 15:57
Сообщения: 259
Откуда: Киев
Пол: Женский
Или добавить интервал по 0САLDAY
Хотя customer-exit тоже вариант , но лично я предпочитаю использовать exit если нет стандартных решений :D


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

Зарегистрирован:
Чт, авг 14 2008, 17:05
Сообщения: 67
Пол: Женский
ken написал(а):
Amity написала:
Вопрос в том, где мне лучше считать количество дней? Что это должно быть? Есть ли способ из Customer - переменной (переменной построенной на признаке 0calmonth) притащить в запрос рассчитанное количество дней в формате INT2?


Думаю что колличество дней считаете в правильном месте.
У значений переменных customer-exit тип и длина данных должны быть такими же как и у ссылочного признака. Возможно в этом ваша проблема. У признака 0CALMONTH тип NUMC и длина 6. Расчитанное вами значение дней должно быть 6 значным.
А если не получится добавить нолики перед значением, то попробуйте создать переменную с другим ссылочным признаком (не временным).

Конечно же получится передать рассчитанное значение в NUMC ( длина 6). Вот как потом этот NUMC делить и умножать на значение показателей? Разве не будет потом конфликта?


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

Зарегистрирован:
Чт, авг 14 2008, 17:05
Сообщения: 67
Пол: Женский
OlgaZ написала:
Или добавить интервал по 0САLDAY
Хотя customer-exit тоже вариант , но лично я предпочитаю использовать exit если нет стандартных решений :D

О 0САLDAY тоже думали, но в таком случае для получения необходимой выборки придётся пользователю объяснять, что нужно вводить именно 01 число месяца, или же всё в том же exit-те делать подмену любого числа на 01. А в таком случае опять возникает тот же вопрос вопрос: как в переменную-формулу подставить Customer-exit переменную :roll:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Вт, фев 08 2011, 07:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 18 2008, 07:37
Сообщения: 256
Amity написала:
О 0САLDAY тоже думали, но в таком случае для получения необходимой выборки придётся пользователю объяснять, что нужно вводить именно 01 число месяца, или же всё в том же exit-те делать подмену любого числа на 01. А в таком случае опять возникает тот же вопрос вопрос: как в переменную-формулу подставить Customer-exit переменную :roll:

Если для вас проблема - объяснить пользователю, то вы выбрали не верный путь. Можно использовать "значение по умолчанию" для переменной, чтобы пользователь видел как должны выглядеть вводимые или выбираемые им значения, также в Bex на Selected Sсreen есть кнопка "Check", чтобы проверить вводимые вручную значения.
Customer-exit это тип обработки переменных через расширение (tc CMOD). Курсы BW305, BC425, help или поиск по форуму.
Какой способ обработки использовать - выбирать вам, но если у вас нет опыта, не усложняйте себе задачу мыслями что пользователь будет делать всё не так, как должен - сопровождение пользователей и написание инструкций вам в помощь.

_________________
The extent of reliability of the data affect on the quality of resource allocation.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Вт, фев 08 2011, 10:51 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 14 2008, 17:05
Сообщения: 67
Пол: Женский
ken написал(а):
Amity написала:
О 0САLDAY тоже думали, но в таком случае для получения необходимой выборки придётся пользователю объяснять, что нужно вводить именно 01 число месяца, или же всё в том же exit-те делать подмену любого числа на 01. А в таком случае опять возникает тот же вопрос вопрос: как в переменную-формулу подставить Customer-exit переменную :roll:

Если для вас проблема - объяснить пользователю, то вы выбрали не верный путь. Можно использовать "значение по умолчанию" для переменной, чтобы пользователь видел как должны выглядеть вводимые или выбираемые им значения, также в Bex на Selected Sсreen есть кнопка "Check", чтобы проверить вводимые вручную значения.
Customer-exit это тип обработки переменных через расширение (tc CMOD). Курсы BW305, BC425, help или поиск по форуму.
Какой способ обработки использовать - выбирать вам, но если у вас нет опыта, не усложняйте себе задачу мыслями что пользователь будет делать всё не так, как должен - сопровождение пользователей и написание инструкций вам в помощь.

Огромное спасибо, ken, за такой поучительный ответ! Возможно, когда я достигну высот Вашего мастерства я тоже буду считать, что некомпетентность разработчика вполне компенсируется инструкцией, в которой описывается как обойти все узкие места, но пока я стараюсь сама закрывать их, по возможности. Возможно Вы недостаточно внимательно прочли мой вопрос, но что такое Customer-exit, как им пользоваться, а тем более где искать я не спрашивала. Вопрос состоял в том как в переменную-формулу подставить Customer-exit переменную. Если Вы не можете ответить на чётко сформулированный вопрос, то, пожалуйста, не упражняйтесь в красноречии на менее опытных коллегах, и не заставляйте их перечитывать бесконечные посты. Возможно в будущем ещё кто-то захочет с помощью того же поиска найти лаконичный ответ на возникший вопрос. Благодарю за участие!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Вт, фев 08 2011, 12:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Amity написала:
У меня похожая проблема - в запросе BEX, исходя из количества дней в интервале, (выбираем период 0calmonth) нужно посчитать значение коэффициента( поделив значение показателя на количество дней). Количество дней в интервале считаю в EXIT переменной. А использовать её в формуле структуры не получается. Пробовала создавать переменную - формулу(Обработка ч-з Customer - exit), но падает в дамп из-за несовпадения типов (рассчитанное количество дней присваиваю переменной INT2). Подскажите, пожалуйста, что я делаю не так?

Добрый День!
У меня к Вам несколько вопросов:
1) На начальном экране два поля для ввода 'Период С' и 'Период По' ?
2) В отчете только одно поле 'Период' ?
3) Код для EXIT переменной можете показать ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Ср, фев 09 2011, 08:36 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 14 2008, 17:05
Сообщения: 67
Пол: Женский
1. На начальном экране одно поле (интервал)
2. В отчёте других временных характеристик нет
3. Это 1-ая версия екзита, с целочисленным значением количество дней на выходе. Ещё пробовала присваивать результат в NUM.
WHEN 'CAL_D'.
IF i_step = 2.
READ TABLE i_t_var_range INTO loc_var_range WITH KEY vnam ='YMONTH'.
CLEAR l_s_range.
concatenate loc_var_range-low '01' into datefrom.
concatenate loc_var_range-high '01' into dateto.

CALL FUNCTION 'YDATES'
EXPORTING
date_begin = datefrom
date_end = dateto
IMPORTING
cal_day = l_s_range-low.
l_s_range-sign ='I'.
l_s_range-opt = 'EQ'.

ФМ: FUNCTION y_dates.
*"----------------------------------------------------------------------
*" IMPORTING
*" VALUE(DATE_BEGIN) TYPE DATUM
*" VALUE(DATE_END) TYPE DATUM
*" EXPORTING
*" VALUE(CAL_DAY) TYPE ANDIS
*"----------------------------------------------------------------------
DATA: days TYPE ydays.
CHECK: NOT date_begin IS INITIAL,
NOT date_end IS INITIAL,
date_end GE date_begin.

ADD 1 TO date_end.

days = date_end - date_begin.
cal_day = days.
ENDFUNCTION.
APPEND l_s_range TO e_t_range.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Ср, фев 09 2011, 09:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, апр 19 2007, 08:03
Сообщения: 197
Пол: Мужской
Amity написала:
У меня похожая проблема - в запросе BEX, исходя из количества дней в интервале, (выбираем период 0calmonth) нужно посчитать значение коэффициента( поделив значение показателя на количество дней). Количество дней в интервале считаю в EXIT переменной. А использовать её в формуле структуры не получается. Пробовала создавать переменную - формулу(Обработка ч-з Customer - exit), но падает в дамп из-за несовпадения типов (рассчитанное количество дней присваиваю переменной INT2). Подскажите, пожалуйста, что я делаю не так?

Вы делаете перемнную на признаке? Сделайте переменную-формулу, и рассчитайте кол-во дней прямо там. Месяцы знаете, кол-во дней в каждом - тоже. Тип может быть любой...Ну, какой зададите...

ИзображениеИзображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема
СообщениеДобавлено: Ср, фев 09 2011, 14:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Считаю количество дней вот так:
Code:
WHEN 2.
    DATA:
          loc_var_range LIKE rrrangeexit,
          datefrom(10),
          dateto(10),
          date_end TYPE d,
          date_begin TYPE d,
          cal_day TYPE sy-tabix.
IF i_vnam = 'CAL_D'.
      READ TABLE i_t_var_range INTO loc_var_range WITH KEY vnam ='YMONTH'.
    CLEAR l_s_range.
    CONCATENATE loc_var_range-low '01' INTO datefrom.
    CONCATENATE loc_var_range-high '01' INTO dateto.
    MOVE datefrom TO date_begin.
    MOVE dateto TO date_end.
    cal_day = date_end - date_begin.
    l_s_range-low = cal_day.
    l_s_range-sign ='I'.
    l_s_range-opt = 'EQ'.
    APPEND l_s_range TO e_t_range. 
ENDIF.

Затем делю показатель 'Количество' на cal_day и у меня все корректно отображается без ошибок.
Amity написала:
Пробовала создавать переменную - формулу(Обработка ч-з Customer - exit), но падает в дамп из-за несовпадения типов (рассчитанное количество дней присваиваю переменной INT2).

Класс и номер сообщения можете назвать ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

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


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

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


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

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