[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
------