Текущее время: Пт, июл 18 2025, 19:32

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Привет!
Подскажите, как сделать, чтобы редактор не ругался на след. код:
Code:
IF NOT {таблица TAB типа SORTED}
  SORT tab.
ENDIF.

Таблица TAB объявлена в другом инклуде, и может быть как стандартной, так и сортированной.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Ср, июл 16 2014, 20:50 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
Code:
IF it_tab[] not initial.
  SORT tab.
ENDIF.


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Ругается на этапе проверки синтаксиса. Изменение условия не поможет (тем более что оно корректное).
"TAB[] является таблица типа SORTED. Для этого типа таблицы запрещена команда SORT"


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

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
troy: вынесите сортировку в подпрограмму. Таблу внутри подпрограммы передавайте как any table.
Code:
if not it_tab is sorted.
  perform sort_tab changing it_tab.
endif.

FORM sort_tab CHANGING cht_tab TYPE ANY TABLE.
  SORT it_tab.
ENDFORM.                   

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Блин, надо больше шоколада кушать ) Пасиб.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Ср, июл 16 2014, 21:33 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 07 2013, 22:18
Сообщения: 61
Поясните, пожалуйста, смысл использование одного инклуда в разных программах.
На мой взгляд, это лишь усложняет поддержку программы другими разработчиками. (Поправив код в одном месте, может сломаться в другом).
Общая функциональность должна быть вынесена или в ФМ или в класс.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Ср, июл 16 2014, 21:38 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, ноя 29 2012, 16:47
Сообщения: 85
ну и Какой смысл (вдогонку) её объявлять SORTED если Вам её потом по другому надо сортировать?
Сделать стандартной и экономить на времени заполнения ))) что ли? а потом ваш код по сортировке один разик вызвать?
не? есть подводные камни?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Чт, июл 17 2014, 07:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Programmer написал(а):
Поясните, пожалуйста, смысл использование одного инклуда в разных программах .На мой взгляд, это лишь усложняет поддержку программы другими разработчиками. (Поправив код в одном месте, может сломаться в другом).
Общая функциональность должна быть вынесена или в ФМ или в класс.

Никто не запрещает объявлять подпрограммы и локальные классы, а также описание типов, констант и переменных в инклюдах. :wink:
По поводу "может сломаться в другом" - при активации инклюда перегенерируются все программы, в которых он участвует.
При активации ФМ или класса - нет. Особенно это касается изменений в интерфейсе ФМ/методов класса.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Чт, июл 17 2014, 16:26 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
Programmer написал(а):
Поясните, пожалуйста, смысл использование одного инклуда в разных программах.
На мой взгляд, это лишь усложняет поддержку программы другими разработчиками. (Поправив код в одном месте, может сломаться в другом). Общая функциональность должна быть вынесена или в ФМ или в класс.
Есть и другие взгляды :). Конечно, если инклуд сделан более-менее грамотно. Проще сопровождать, проще находить ошибки (особенно, как заметил Удав, при изменении интерфейса), проще работать с большим количеством общих типов или констант или данных, проще переносить или отслеживать изменения в коде... Имхо, размещение общей функциональности - на усмотрение программиста.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Чт, июл 17 2014, 23:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Crystal_Ra написал(а):
ну и Какой смысл (вдогонку) её объявлять SORTED если Вам её потом по другому надо сортировать?

Не надо "по-другому". Просто для обработки важно, чтобы таблица была отсортирована. Проблема просто в том, что я не знаю, какая таблица будет объявлена в основной программе - сортированная или нет.
Programmer написал(а):
Поясните, пожалуйста, смысл использование одного инклуда в разных программах.

Простой пример (но далеко не единственный), который реализуется только через инклуды: в N отчетах есть общий SELECTION-SCREEN BLOCK с одинаковой логикой обработки.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Чт, июл 17 2014, 23:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
troy написал(а):
Просто для обработки важно, чтобы таблица была отсортирована. Проблема просто в том, что я не знаю, какая таблица будет объявлена в основной программе - сортированная или нет.

Если у вас обрабатываются разные таблицы с разными ключами, то зачем выделять общую подпрограмму для сортировки вместо одного оператора SORT? :?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обмануть проверку синтаксиса
СообщениеДобавлено: Пт, июл 18 2014, 03:41 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 180
troy написал(а):
Просто для обработки важно, чтобы таблица была отсортирована. Проблема просто в том, что я не знаю, какая таблица будет объявлена в основной программе - сортированная или нет.

А, может быть, Вы можете добавить вторичный ключ во все таблицы и использовать его?


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Удав написал(а):
Если у вас обрабатываются разные таблицы с разными ключами, то зачем выделять общую подпрограмму для сортировки вместо одного оператора SORT? :?

Потому что редактор кода не пропускает оператор SORT! В этом и был вопрос.
Code:
INCLUDE A.
  tt_tab TYPE [STANDARD/SORTED] TABLE OF t_tab WITH [...].
INCLUDE B.
  DATA lt_tab TYPE tt_tab.
  SORT lt_tab[].


UKY написал(а):
А, может быть, Вы можете добавить вторичный ключ во все таблицы и использовать его?

Вторичные ключи удобная штука, не не для моего случая.


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
troy написал(а):
Потому что редактор кода не пропускает оператор SORT! В этом и был вопрос.

Так этот оператор SORT располагается в общем инклюде - зачем он там?
Сортируйте таблицы там, где происходит их заполнение.

_________________
С уважением,
Удав.


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

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Удав написал(а):
Сортируйте таблицы там, где происходит их заполнение.

Дык в общем инклуде и происходит :D


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

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


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

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


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

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