[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dwie instancje procedury z browserem...
At 09:46 99-10-14 +0200, you wrote:
>Uruchamiam sobie dwie instancje (tj. dwa razy na sposób PERSISTENT)
>procedury zawieraj±cej browser read-only.
>
>Na jednej z tych instancji dokonuję poprawki jednego wiersza (za pomoc±
>zewnętrznej procedury) i chciałbym, żeby podczas "wejscia" na ten wiersz
>w drugiej instancji odswieżyły mi się dane. Próbowałem atrybutu
>CURRENT-ROW-MODIFIED, aby sprawdzić czy dane s± aktualne, ale w tym
>kontekscie to nie działa. Od biedy można sprawdzić
>
>IF INPUT BROWSE {&BROWSE-NAME} pole <> pole THEN MESSAGE "Zmiana".
>
>ale taka konstrukcja powoduje nie wiedzieć czemu "migotanie" browsera,
>tak jakby odswieżał się przy każdym zdarzeniu "VALUE-CHANGED" mimo tego,
>że w triggerze nie ma obsługi odswieżania.
>
>v.9.0B10 Win95
>
>sugestie mile widziane...
>--
>Tomasz Fidecki
>JMS Serwis Sp. z o.o. ul. Instalatorów 7c 02-237 Warsaw Poland
>phone +48 22 846 47 81 mobile +48 501 136 122 mailto:tfidecki@jms.com.pl
>------
>Strona WWW: http://pluton.pol.lublin.pl/pugpl/index.htm
>Obsluga listy: listserv@zeto.bydgoszcz.pl
>Archiwum listy: http://www.zeto.bydgoszcz.pl/progress/index.html
>------
>
>
Z tego co Pan pisze wynika, że te dane zostały zmienione poza browserem
(który jest Read-Only). Zakładam, że dane zostały zmienione w bazie i
problem polega, by odświeżyć dane w obu browserach.
Ja bym to zrobił tak:
- w procedurze z browserem zrobiłbym wewnętrzną procedurę o nazwie np:
Ods_Br (metodę w sensie obiektowym), która odświeża dane w browserze
metodą REFRESH
Ok=h_Browse:REFRESH().
- procedura, która aktualizuje dane w bazie powinna znać handlery do obu
instancji procedury persistent z browserami, niech to będą zmienne h_P1 i h_P2
Handlery te należy zapmiętać w momencie uruchamiania instancji:
RUN Ppp PERSISTENT SET h_P1.
RUN Ppp PERSISTENT SET h_P2.
- jeśłi procedura aktualizująca dane w bazie jest wewnętrzną procedurą z
browserem, do handler do tej procedury z browserem będzie :
h_P1 = THIS-PROCEDURE.
- po aktualizacji danych w bazie wykonałbym procedurę Ods_Br w obu
instancjach procedur z browserem
RUN Ods_Br IN h_P1.
RUN Ods_Br IN h_P2.
co powinno natychmiast odświeżyć wszystkie widoczne wiersze browsera, w
tym również te zmienione, jeśli akurat są widoczne. Jeśli nie sa widoczne
to nie ma sprawy, bo kiedy po przewinęciu browsera staną się widoczne, to
będą miały taką wartość jak w bazie, czyli poprawną.
Jeśli źle zrozumiałem problem, to proszę o wyjaśnienia.
Henryk Jusza henju@pg.gda.p
---------------------------------------------------------
Ośrodek Informatyczny Politechniki Gdańskiej
Pracownia Rozwoju Oprogramowania
tel (058) 347-28-01 fax (058) 347-24-63
------
Strona WWW: http://pluton.pol.lublin.pl/pugpl/index.htm
Obsluga listy: listserv@zeto.bydgoszcz.pl
Archiwum listy: http://www.zeto.bydgoszcz.pl/progress/index.html
------