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

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


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

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


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

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