Текущее время: Чт, сен 11 2025, 08:33

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


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

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


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

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