Текущее время: Чт, май 15 2025, 21:56

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: SmartForms проблема с вызовом функций
СообщениеДобавлено: Пн, авг 29 2005, 15:13 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
вообще задача простая - получить номер текущей строки таблицы, которая выводится в SmartForm'е в цикле. Если кто знает более простой способ, чем описанный ниже - просьба поделиться (вариант передавать еще одно поле хоронший, но неудобный).
Есть форма, в одном из элементов которой вызывается функция.
/: DEFINE &SAP_TMP& = &COUNT&
/: PERFORM INCRIMENT_NUMBER IN PROGRAM ZMM1RES_REQUEST
/: USING &SAP_TMP&
/: CHANGING &COUNT&
/: ENDPERFORM
* &COUNT'.'&
Функция почему-то не вызывается вообще ...
Что не так?


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Ты же в смартформах, а не в SAP SCRIPT
Заведи глобальную переменную в смартформе, например, G_TABIX LIKE SY-TABIX и в таблице поставь самыми первыми строки программы G_TABIX = SY-TABIX.
и всё.


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
T написал:
...G_TABIX LIKE SY-TABIX и в таблице поставь самыми первыми строки программы G_TABIX = SY-TABIX.
и всё.

Я так пробовал - вставил фрагмент кода внутрь цикла по таблице с анализом SY-TABIX, не получилось, поэтому завел свой счетчик, к которому аккуратненько добавлял по единичке.
А команды в тексте (начинающиеся с "/:") вообще, похоже в смартформах игнорируются.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 29 2005, 17:02 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Сергей Королев написал:
... поэтому завел свой счетчик, к которому аккуратненько добавлял по единичке.
А команды в тексте (начинающиеся с "/:") вообще, похоже в смартформах игнорируются.

Счетчик у тебя по событию что ли работат?
Дак вот и вопрос:
1) как вызвать подпрограмму из СмартФормы?
2) какой синтаксис у операций типа а = в + с, потому как define похоже напроч игнорируется.
3) Можно ли использовать операторы условий тип IF ... ENDIF.


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Сергей Королев написал:
T написал:
...G_TABIX LIKE SY-TABIX и в таблице поставь самыми первыми строки программы G_TABIX = SY-TABIX.
и всё.

Я так пробовал - вставил фрагмент кода внутрь цикла по таблице с анализом SY-TABIX, не получилось, поэтому завел свой счетчик, к которому аккуратненько добавлял по единичке.
А команды в тексте (начинающиеся с "/:") вообще, похоже в смартформах игнорируются.


Главное забирать SY-TABIX первым же делом. Он тогда сгенерит код типа такого:
Code:
LOOP AT ITAB INTO WA WHERE ....
   PERFORM %CO3.
  ...

, то есть SY-TABIX будет именно нашим. В других случаях будут зваться всякие ФМ, в которых SY-TABIX уже протухнет.

Счётчик нам в общем случае даст лишь номер выводимой строки, а не индекс.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 29 2005, 17:13 
Специалист
Специалист

Зарегистрирован:
Пт, июл 29 2005, 13:13
Сообщения: 161
Всем спасибою Разобрался. Там просто глюкавый способ вставлять строки программы в код - не отовсюду это сделать можно. Тогда я просто из кода все сгенерю :).


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

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
rush7ka написал(а):
1) как вызвать подпрограмму из СмартФормы?
2) какой синтаксис у операций типа а = в + с, потому как define похоже напроч игнорируется.
3) Можно ли использовать операторы условий тип IF ... ENDIF.


1) Их зовут не из текстовых элементов. Их зовут из блока "строки программы"
2) Внутки блока "строки программы" синтаксис такой же, как и у тел обычных ABAP-подпрограмм. В блоках задаются входные и выходные параметры.
3) В любых блоках есть вкладка "условия", в которых можешь сделать проверку чего-либо. Для IF-ELSE-ENDIF лучше подходит блок "Альтернатива"..


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

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


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

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


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

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