Текущее время: Чт, июл 24 2025, 04:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Пн, июн 15 2009, 14:43 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Добрый день!
Помогите пожалуйста. Переделываю саповскую программу на ЛБД ADA. Среди динамических критериев выбора есть IMKEY - код объекта недвижимости. Мне нужно программно наложить ограничения на это значение. Никак не соображу, как это делается? :oops:

_________________
Silence v.2.0


Последний раз редактировалось Silence1 Чт, июн 18 2009, 07:58, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Пн, июн 15 2009, 15:17 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Посмотрите ГФ SSEL.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Пн, июн 15 2009, 15:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Пономарев Артем написал:
Посмотрите ГФ SSEL.

Посмотрела, не помогло :cry:
а может примерчик какой есть? :oops:

_________________
Silence v.2.0


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 11:02 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Silence1 написала:
Добрый день!
Помогите пожалуйста. Переделываю саповскую программу на ЛБД ADA. Среди динамических критериев выбора есть IMKEY - код объекта недвижимости. Мне нужно программно наложить ограничения на это значение. Никак не соображу, как это делается? :oops:

поле IMKEY должно быть в каком-нибудь узле ЛБД (просмотр структуры ЛБД SE36). Если узел не объявлен в программе в NODES, то объявите его.
Для примера возьмем ЛБД по ОС: ADA. Нужно ограничени по полю "Поле классификации 1" (ORD41). Оно находится в узле ANLAV. Объявляем узел, а также на сел. экране SELECT-OPTIONS для этого поля:

Code:
NODES:
ANLAV.

SELECT-OPTIONS: s_ord41 FOR ANLAV-ORD41.


И всё! Но селект-опшнз нужно объявить именно так:
Code:
FOR <узел_лбд-поле>

Ну, естественно, в коде проги должна быть где-то строчка типа
Code:
GET: ANLAV. CHECK SELECT-OPTIONS.

И узел ЛБД должен быть объявлен как узел с динамич. ограничениями (если ничего не путаю). В документации это звучит так:
Цитата:
The node on the logical database is designed for dynamic selections.


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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 12:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Спасибо за отклик!
Но мне нужно было не это.
Среди динамических критериев есть "Код недвижимости" - ANLAV-IMKEY. Вот этот критерий мне и нужно было заполнить программно. Надо было на экране запросить номер партнера, а по нему найти договора по сдаче в аренду - это и будут ограничения для ANLAV-IMKEY.
Но все равно пришлось отказаться от этого варианта - по другим причинам. И реализовать совсем другой алгоритм, так что тема неактуальна.

Но хотелось бы понять, как для ЛБД можно все-таки заполнить эти параметры.

_________________
Silence v.2.0


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 12:13 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Silence1 написала:
Спасибо за отклик!
Но хотелось бы понять, как для ЛБД можно все-таки заполнить эти параметры.

именно так, как я написал.
что мешает объявить так:
Code:
SELECT-OPTIONS:
s_imkey FOR ANLAV-IMKEY NO-DISPLAY.


затем в программе заполнить это ограничение:
Code:
s_imkey-sign = 'I'.
s_imkey-option = 'EQ'.
s_imkey-low = <значение>.
APPEND s_imkey.


Должно работать.
Или посмотреть в сторону ФМ LDB_PROCESS как альтернативы. Хотя сам я его никогда не использовал :) Поэтому подробнее рассказать не могу.
Всяко, если вы скопировали стандартную прогу, то там сделано стандартным образом с объявлением NODES, GET в событии START-OF-SELECTION итд.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 14:47 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Может я чего не понимаю, я не гуру.
Но я пробовала таким способом с
Code:
GET: ANLAV. CHECK SELECT-OPTIONS.

да, чек делает проверку, но работает это ОЧЕНЬ медленно по сравнению с тем, как делается выборка, если наложены динамические ограничения!

_________________
Silence v.2.0


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 15:29 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Silence1 написала:
Может я чего не понимаю, я не гуру.
Но я пробовала таким способом с
Code:
GET: ANLAV. CHECK SELECT-OPTIONS.

да, чек делает проверку, но работает это ОЧЕНЬ медленно по сравнению с тем, как делается выборка, если наложены динамические ограничения!

попробуйте убрать CHECK SELECT-OPTIONS. проверьте, как будет работать... Я уж точно не помню, но, скорее всего, если наше ограничение объявлено FOR ANLAV-INKEY, оно должно работать именно как динамическое. В исходном тексте программы ЛБД узел объявлен как
Code:
SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE ANLAV ID ANL.

т.е. подразумевает динамические ограничения по его полям


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 15:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Предложенный способ объявления
Code:
SELECT-OPTIONS: r_imkey FOR ANLAV-IMKEY NO-DISPLAY.

ничего не дает, никаких ограничений.
GET перебирает все ОСы.

_________________
Silence v.2.0


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 16:02 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Silence1 написала:
Предложенный способ объявления
Code:
SELECT-OPTIONS: r_imkey FOR ANLAV-IMKEY NO-DISPLAY.

ничего не дает, никаких ограничений.
GET перебирает все ОСы.

А ANLAV как объявлено: TABLES или NODES ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 16:04 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Art386 написал:
А ANLAV как объявлено: TABLES или NODES ?

TABLES
это ИНВ-1 - отчет на ЛБД ADA

_________________
Silence v.2.0


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Ср, июн 17 2009, 16:06 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Silence1 написала:
Art386 написал:
А ANLAV как объявлено: TABLES или NODES ?

TABLES
это ИНВ-1 - отчет на ЛБД ADA

Попробуйте убрать из TABLES и объявить как NODES, может, поможет...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Чт, июн 18 2009, 07:29 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Art386 написал:
Попробуйте убрать из TABLES и объявить как NODES, может, поможет...

не помогло :lol:
На самом деле нужно для дин.критериев ЛБД заполнить DYN_SEL-CLAUSES, скорее всего каким-то ф.модулем, я только не пойму, каким и как.

_________________
Silence v.2.0


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Пт, июн 19 2009, 10:52 
Специалист
Специалист

Зарегистрирован:
Чт, июн 21 2007, 09:14
Сообщения: 166
Откуда: Москва
Пол: Мужской
Silence1 написала:
Art386 написал:
Попробуйте убрать из TABLES и объявить как NODES, может, поможет...

не помогло :lol:
На самом деле нужно для дин.критериев ЛБД заполнить DYN_SEL-CLAUSES, скорее всего каким-то ф.модулем, я только не пойму, каким и как.

dyn_sel-CLAUSES-tablename = 'ANLAV'.
dyn_sel-CLAUSES-where_tab - таблица с одной строкой, содержимое: ( IMKEY EQ '12345' )

dyn_sel-TEXPR-tablename = 'ANLAV'.
dyn_sel-TEXPR-expr_tab - таблица с одной строкой
LOGOP - пусто
ARITY = 0
FIELDNAME = 'IMKEY'
OPTION = EQ
LOW = '12345'
HIGH - пусто

dyn_sel-TRANGE-tablename = 'ANLAV'.
dyn_sel-TRANGE[1]-FRANGE_T - таблица с одной строкой:
FIELDNAME = 'IMKEY'
SELOPT_T - таблица с одной строкой
SIGN = I
OPTION = EQ
LOW = '12345'
HIGH - пусто

Это то, что я увидел в отладчике. Что вам мешает из своей проги заполнить также?


вот кусок кода, где объявляется DYN_SEL

Code:
***INCLUDE RSDBCOM4.
* Gemeinsames INCLUDE RSDBRUNT/SAPDBxyz

* TYPES-Definitionen
TYPE-POOLS RSDS.

* Dynamische Selektionen
DATA BEGIN OF COMMON PART %_DYN_SEL.
  DATA DYN_SEL TYPE RSDS_TYPE.
DATA END   OF COMMON PART %_DYN_SEL.


Теперь немного динамического программирования и всё заполнится... Правда, как работать будет, не знаю.
А про тот случай, что я описывал, так у меня там, скорее всего, было нединамическое ограничение, и я использовал CHECK SELECT-OPTIONS... вот... скорее всего, так. Точно не помню, это было 4 года назад :lol:

Да, и посмотрите всё-таки функциональный модуль LDB_PROCESS, там вроде бы есть что-то полезное


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как в программе заполнить динамические критерии(ЛБД ADA)?
СообщениеДобавлено: Пт, июн 19 2009, 12:02 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, дек 17 2008, 19:38
Сообщения: 434
Откуда: Санкт-Петербург
Пол: Женский
Спасибо!
Я это тоже все накопала, DYN_SEL мне доступен только через assign, пробую заполнить, чтобы получилось типа:
Code:
DYN_SEL-CLAUSES[1]-WHERE_TAB-LINE = "    ( IMKEY                          EQ '00004758' )"


Как в строку запихнуть кавычку ' ???

_________________
Silence v.2.0


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

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


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

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


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

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