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

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


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

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


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

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