Текущее время: Вт, июл 22 2025, 03:13

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


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

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


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

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