Текущее время: Вс, июл 20 2025, 06:58

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 09:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Code:
DATA: result TYPE f.

result = value - TRUNC( value ).
IF result IS INITIAL.
* целое
ENDIF.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 10:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
ArmAnn написал:
Arman написал(а):
еще вариант:
if( X DIV 1 <> X).
.....
Endif.


В версии 4 не сработает точно - нельзя использовать выражения в условии. Вариант T также не пройдет :)
А в более старших версиях сработает?


Приведённый мной вариант работает начиная с версии 4.7.
Вариант от ArmAnn - возможно начнёт работать в версиях базиса > 7. По крайней мере так обещают:
(c) SAP AG 2006 TechEd'06-CD200-An Overview of the
New Features in ABAP написал(а):
ABAP Language Preview –Enhanced Expression Enabling
As of next Release:
��You can use computational expressions, functional methods and built-in functions in expression positions:
–Logical expressions:a + b < oref->meth( )
–Method call parameters:oref1->meth1( oref2->meth2( ... ) )
��You can use numerical expressions in numerical positions:
–Examples:DO abs( n ) + 1 TIMES.
READ TABLE itab INDEX lines( itab) –1 ...
��You can use functional methods in functional positions:
–Examples:FIND|REPLACE REGEX oref->get_regex( ... ) IN ...
READ TABLE itabFROM oref->get_wa( ... ) ...


Соответственно вариант от Nicky555 в 4.7 уже можно записать чуть короче:
Code:
IF TRUNC( value ) = value.
* целое
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 10:39 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
T написал:
Вариант от ArmAnn - возможно начнёт работать в версиях базиса > 7. По крайней мере так обещают:...

это не я предложил :)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Виноват, созвучные ники.. :oops:


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 10:54 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
Господа, так есть функция, которое дает полный остаток от деления (не целое число - MOD)?...
могу еще извратный способ предложить
..))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 10:59 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Ср, фев 22 2006, 16:09
Сообщения: 592
ArmAnn написал:
Arman написал(а):
еще вариант:
if( X DIV 1 <> X).
.....
Endif.


В версии 4 не сработает точно - нельзя использовать выражения в условии. Вариант T также не пройдет :)
А в более старших версиях сработает?


ну тады Data: X1 type I,
X type F.
X1 = X Div 1.
If ( X <> X1).
...
Endif.


:D я просто идею хотел донести....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 11:01 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
А еще можно написать программу для определения целого/не целого на Си, зарегистрировать в качестве внешней команды в sm69, ее вызывать, она будет результат выводить в stdout, который мы будем читать посредством open dataset'а :)

нет предела совершенству 8)

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 11:08 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
lumer написал:
Даешь самый извратный метод вычисления целостности!!! :)



PARAMETERS v_p TYPE p DECIMALS 4.

DATA: v_c0(100)
, v_c1(100)
, is_celoe(1)
.

CLEAR is_celoe.
v_c0 = v_p.

SPLIT v_c0 AT '.' INTO v_c0 v_c1.

IF v_c1 CO '0 '.
is_celoe = 'X'.
ENDIF.


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Ну тогда вот ещё два почти изврата:

Code:
CASE trunc( value ).
  WHEN value.
*   Целое
  WHEN OTHERS.
*   Не целое
ENDCASE.

CASE frac( value ).
  WHEN 0.
*   Целое
  WHEN OTHERS.
*   Не целое
ENDCASE.


И два именно изврата:
Code:
CASE value.
  WHEN trunc( value ).
*   Целое
  WHEN OTHERS.
*   Не целое
ENDCASE.

CASE 0.
  WHEN frac( value ).
*   Целое
  WHEN OTHERS.
*   Не целое
ENDCASE.


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Code:
data: p(12) type p decimals 5,
c(32).

c = p.
shift c right deleting trailing space.
shift c right deleting trailing '0'.
if c+31 = '.'.


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
Code:
data i type i.
i = number.

if i <> number.
write: / 'drobnoe'.
endif.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 15 2006, 18:29 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Code:
   start_date = sy-datum.
   CLEAR celoe.   

   do.
      CALL FUNCTION 'GET_RANDOM'
         EXPORT
            max = MAX_INT.
         IMPORT
            result = result.

      IF result = test_number.
         celoe = 'X'.
      ENDIF.

      IF ( celoe = 'X' ) OR ( sy-datum NE start_date ).
         EXIT.
      ENDIF.
   enddo.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: ))
СообщениеДобавлено: Чт, ноя 16 2006, 10:19 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 21 2004, 11:27
Сообщения: 144
Откуда: Москва
Пол: Мужской
:D
to lumer: супер ))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, ноя 20 2006, 01:57 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Цитата:

IF ....OR ( sy-datum NE start_date ).
EXIT.
ENDIF.


НЕ поможет выйти из цикла. надо ещё делать GET TIME.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, ноя 21 2006, 10:06 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 05 2005, 17:02
Сообщения: 70
Code:
clear celoe.
int = MIN_INT.
do.
  if int = number.
    celoe = 'X'.
    exit.
  endif.
  check int <> MAX_INT.
  int = int + 1.
enddo.


как вариант:
Code:
clear celoe.
int = MIN_INT.
do.
  append int to tab_ints.
  check int <> MAX_INT.
  int = int + 1.
enddo.
loop at tab_ints where int = number.

 

[/code]


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

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


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

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


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

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