Текущее время: Пн, июл 21 2025, 23:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 12:33 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Доборого дня.
Проблема с доступом к значению поля через "скрипт" формуляра.
Входные данные: таблица DATA_OUT, содержащая поля загаловка и поле-таблицу BODY - тело отчета

В событии initialize к одному из полей, опрашиваю значение поля из тела отчета DATA_OUT-BODY-TOTAL :

var tot = $record.DATA_OUT.DATA[*].BODY.DATA[*].TOTAL.value
if ( tot == "X" ) then
....
endif

Компилятор не ругается на синтаксис, но и не срабатывает if , хотя должен.

Где я не прав? Пробовал разные варианты, но не пойму как сделать правильно...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 13:13 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
Добрый день. А номер строки он сам должен угадать? ;)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 13:26 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Korvax написал:
Добрый день. А номер строки он сам должен угадать? ;)


Я понимаю, что там должен быть номер , но языка FormCalc досконально не знаю,
мне нужна текущая строка, я полагал, что

$record. дает текущую строку ...

И потом я пробовал и так писать
Code:
$record.DATA_OUT.DATA.BODY.DATA.TOTAL

... тоже нет ошибки синтаксиса, но не отработал код

а на
Code:
$record.DATA_OUT.DATA[1].BODY.DATA[5].TOTAL
ругается "оператор доступа неизвестен"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 13:43 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Вот всё таки отработало такое обращение :

Code:
var fld = $record.DATA_OUT.DATA.BODY.DATA.TOTAL.value
if ( fld == "X" ) then ...


но только когда TOTAL = X в 1й записи вложенной таблицы, т.е. при таком присвоении
идёт обращение к 1й записи DATA_OUT и 1й записи вложенной таблицы BODY.

Как записать обращение к текущей строке вложенной табл. BODY ?
У меня так и не получилось...


Последний раз редактировалось SCORPION_Z Чт, фев 14 2013, 11:02, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 16:48 
Ассистент
Ассистент

Зарегистрирован:
Пт, фев 01 2013, 10:27
Сообщения: 35
Я в таком случае создавал в формуляре специальную переменную - счётчик, прибавлял + 1 при обработке каждой новой записи и в указателе на запись [] вставлял её.
Возможно корявое решение :oops: , но работало.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 17:15 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
А что Вы подразумеваете под понятием "текущей записи таблицы"? Таблицы в контексте формы и в PDF-представлении - это "две большие разницы".

Как у Вас организован вывод этих, по сути, вложенных таблиц? Боюсь, что без раздельного циклического представления не удастся получить доступ к каждой строке, только подсчет каких то своих формул в рамках объектов контекста со своими циклами по строкам таблиц.
Вот пример организации вложенных таблиц.

UPD: а вот пример по Nested Tables


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 17:44 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
С выводом вложенной таблицы у меня всё в полном порядке, а со скриптом вот не очень


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Вт, фев 12 2013, 17:53 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Rizor написал(а):
Я в таком случае создавал в формуляре специальную переменную - счётчик, прибавлял + 1 при обработке каждой новой записи и в указателе на запись [] вставлял её.
Возможно корявое решение :oops: , но работало.


тоже вариант ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Ср, фев 13 2013, 07:32 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
так, например?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc  Тема решена
СообщениеДобавлено: Ср, фев 13 2013, 10:36 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Korvax написал:
так, например?


ну, вот .... оно, а я уже успел деблокировать. таки индекси вручную считать не нужно)


Code:
var i = $.parent.instanceIndex
var j = $.parent.parent.instanceIndex

if ( $record.DATA_OUT.DATA[i].BODY.DATA[j].TOTAL == "X" ) then
...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Ср, фев 13 2013, 12:16 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
только буквы главное не перепутать :D
Цитата:
var i = $.parent.instanceIndex
var j = $.parent.parent.instanceIndex
if ( $record.DATA_OUT.DATA[j].BODY.DATA[i].TOTAL == "X" ) then...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Ср, фев 13 2013, 15:56 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Korvax написал:
только буквы главное не перепутать :D
Цитата:
var i = $.parent.instanceIndex
var j = $.parent.parent.instanceIndex
if ( $record.DATA_OUT.DATA[j].BODY.DATA[i].TOTAL == "X" ) then...



А я думал, что именно так и нужно ... для "главной" i , а для "подчиненной" j
Т.е. чем глубже, тем больше "родителей" или в чём я не прав?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Чт, фев 14 2013, 09:17 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 492
Пол: Мужской
ну событие вы прописываете на элемент внутри таблицы, которая внутри таблицы. Т.е. $ - ссылка на текущий элемент, $.parent - ссылка на родителя текущего элемента, $.parent.instanceIndex - свойство родителя текущего элемента (индекс строки).
Вот и получается что $.parent.parent.instanceIndex - текущий индекс родителя родителя элемента (прям дедушка получился :) ).

Code:
$record.DATA_OUT.DATA[индекс дедушки].BODY.DATA[индекс родителя].TOTAL


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Чт, фев 14 2013, 09:21 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Поэтому я и интересовался представлением элементов на форме, Hierarchy View...
InstanceIndex - это индекс текущего элемента в представлении, а не в контексте данных. И окружив таблицу нижнего уровня сабформой, можно получить полную неработоспособность ранее работавшего скрипта.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Доступ к контексту pdf формы через FormCalc
СообщениеДобавлено: Чт, фев 14 2013, 10:57 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, окт 06 2008, 11:22
Сообщения: 56
Korvax написал:
ну событие вы прописываете на элемент внутри таблицы, которая внутри таблицы. Т.е. $ - ссылка на текущий элемент, $.parent - ссылка на родителя текущего элемента, $.parent.instanceIndex - свойство родителя текущего элемента (индекс строки).
Вот и получается что $.parent.parent.instanceIndex - текущий индекс родителя родителя элемента (прям дедушка получился :) ).

Code:
$record.DATA_OUT.DATA[индекс дедушки].BODY.DATA[индекс родителя].TOTAL



я событие вешаю на 4 поля одной Row, для первых двух отрабатывают скрипты, когда индексы

Code:
var i = $.parent.instanceIndex
var j = $.parent.parent.instanceIndex

и другие два поля , тогда когда индексы перевернуть ...


Изображение


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

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


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

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


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

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