УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

How to open a page programatically and with parent as caller?


Автор Сообщение
Сообщение создано: 31. 08. 2009 [03:21]
Unaie
Unai Ezta
Создатель темы
Зарегистрирован(а) с: 30.06.2009
Сообщения: 42
I have boxes inside of a widget. I want to call control pages when boxes are pressed,
but I cannot use events attribute "wsFocusIn:: open:/pg_...." , because of dynamic linkage. The source (caller) must be the parent.

Something like this:

JAVASCRIPT
//events
if (evrez=="wsFocusIn:/b1") OPEN(Page Path 1, Caller Id);
else if (evrez=="wsFocusIn:/b2") OPEN(Page path 2, Caller Id);


Where "caller id" is id field from this widget.





[Сообщение редактировалось 6 раз(а), в последний раз 31.08.2009 в 03:27.]
Сообщение создано: 31. 08. 2009 [15:12]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3770
It is incorrect. For open page you can use command like:

vcaAttrSet(pgOpenAddr+"/a_pgOpenSrc",surcePageAddr);


Learn, learn and learn better than work, work and work.
Сообщение создано: 31. 08. 2009 [21:45]
Unaie
Unai Ezta
Создатель темы
Зарегистрирован(а) с: 30.06.2009
Сообщения: 42
I use:

JAVASCRIPT
if( ev_cur == "ws_FocusIn:/b1")  vcaAttrSet("/pg_control/pg_ElCadr"+"/a_pgOpenSrc",path);


This does not open ElCadr, so I put in b1 attribute "event process":

JAVASCRIPT
ws_FocusIn:: open:/pg_control/pg_ElCadr


But .... apparently it does nothing, because when ElCadr opens, his pgOpenSr is:
/ses_MYP/pg_so/.../wdg_w1/wdg_b1

And I Need it to be:
/ses_MYP/pg_so/.../wdg_w1

Because only w1 has links for dynamic linkage with ElCadr.


Basically the issue is I want to control 30 equal systems, then I make a widget to control and visualize one and I put 30 widgets on Screen. Each widget has internal buttons to call external lateral controls like ElCadr. All linkage is in this widget, and his internal widgets are hidden at this level. The problem is ElCard gets pgOpenSrc from childs, not for Parent, then Dynamic Linkage Fails.
Сообщение создано: 03. 09. 2009 [19:15]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3770
Unaie wrote:

I use:

JAVASCRIPT
if( ev_cur == "ws_FocusIn:/b1")  vcaAttrSet("/pg_control/pg_ElCadr"+"/a_pgOpenSrc",path);


Perhaps you set path to "OpenSrc" attribute incorrect.

Unaie wrote:

This does not open ElCadr, so I put in b1 attribute "event process":

JAVASCRIPT
ws_FocusIn:: open:/pg_control/pg_ElCadr


See to creation user's signals for like reason into ElCadr for button "PID" process.

Learn, learn and learn better than work, work and work.
Сообщение создано: 07. 09. 2009 [23:45]
Unaie
Unai Ezta
Создатель темы
Зарегистрирован(а) с: 30.06.2009
Сообщения: 42
roman wrote:

See to creation user's signals for like reason into ElCadr for button "PID" process.


Thanks. User events was the answer.


A question. Which is the project rootpage path?

path="/ses_MYP/pg_so" is OK, but it is session dependant.

is there any keyword? something similar to: path=/ProjectRoot/pg_so?

I put global variables in pg_so attributes, and when I want to get them I need to do this "trick" in each widget in order to avoid session dependant paths.

JAVASCRIPT
GlobalVar=vcaAttrGet(Special.FLibSYS.strParsePath(path,0)+"/pg_so/a_GlobalVar");

Сообщение создано: 08. 09. 2009 [08:40]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3770
Unaie wrote:

A question. Which is the project rootpage path?

path="/ses_MYP/pg_so" is OK, but it is session dependant.

is there any keyword? something similar to: path=/ProjectRoot/pg_so?

No special keywords present.

Unaie wrote:

I put global variables in pg_so attributes, and when I want to get them I need to do this "trick" in each widget in order to avoid session dependant paths.

JAVASCRIPT
GlobalVar=vcaAttrGet(Special.FLibSYS.strParsePath(path,0)+"/pg_so/a_GlobalVar");


It is correct now.

Learn, learn and learn better than work, work and work.



14249