DCBROWSE refresh

This forum is for eXpress++ general support.
Post Reply
Message
Author
Victorio
Posts: 631
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

DCBROWSE refresh

#1 Post by Victorio »

Hi everybody,

Please, help me, tell me, how to refresh table in browse afrer edit in other dialog, or afrer simple append blank record.
In CA Clipper I have dbedit(...function), in function I have edit or Append blank, write fields to database and commands unlock, commit and when returned to table, records are updated.
In alaska , eXpress no, Why ?

I do not know, where and what I can use refresh ?.

part of my source :

FUNCTION TABLEDITOR


...
SELECT 1
use table index tag por
...


* open browse table
@1,1 DCBROWSE oBrowse ;
SIZE 90,20 ;
CURSORMODE XBPBRW_CURSOR_ROW ;
ITEMSELECTED {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}

* list fields
DCBROWSECOL FIELD 1->POR ;
HEADER hrku[1] PARENT oBrowse

DCBROWSECOL FIELD 1->K_KRAJ ;
HEADER hrku[2] PARENT oBrowse

etc...
* open toolbar
@ 1,95 DCTOOLBAR oBrowse SIZE 10,5 ;
ALIGN DCGUI_ALIGN_LEFT ;
BUTTONSIZE 10,1 ;
FIT ;
SPACE 5 ;
RESIZE DCGUI_RESIZE_REPOSONLY_X

* button New resp. Add record
DCADDBUTTON CAPTION 'Pridaj' PARENT oBrowse ;
TOOLTIP "Pridanie záznamu" ;
ACTION {||tone(1000,1),frkuxxx(2)}

etc....

* button edit record
DCADDBUTTON CAPTION 'Oprav' PARENT oBrowse ;
TOOLTIP "Oprava záznamu" ;
ACTION {||tone(1000,1),frkuxxx(3)}

* button delete record
DCADDBUTTON CAPTION 'Vymaž' PARENT oBrowse ;
TOOLTIP "Vymazanie záznamu" ;
ACTION {||tone(1000,1),frkuxxx(4)}

* OPTIONS GeoOptions asi nastavi predvolené parametre ako sú v DCGETOPTIONS
DCREAD GUI ;
OPTIONS GetOptions ;
TITLE "Register katastrálnych území - editácia" ;
FIT ;
MODAL ;
CLEAREVENTS

else
close all
DC_GetDestroy(GetList)
DC_ClearEvents()
return(0)
endif

close all

DC_GetDestroy(GetList)
DC_ClearEvents()

return(0)


* called function for view, edit, add, delete, filter, print...

* FUNCTION FRKUXXX *
******************************
FUNCTION frkuxxx

Local GetList := {}
Local GetOptions, oToolbar1
*
PARAMETERS stav,index

* backup field information
porm=por
k_krajm=k_kraj
n_krajm=n_kraj
k_okresm=k_okres
n_okresm=n_okres
k_obecm=k_obec
n_obecm=n_obec
k_katuzm=k_katuz
n_katuzm=n_katuz
v_obecm=v_obec
v_katuzm=v_katuz

* EDIT RECORD
elseif stav==3

if reclock() && control for share in LAN, lock record
@ 3, 2 dcsay 'Záznam '+alltrim(str(recno()))+"/"
@ 3, 34 dcsay 'Ostatná aktualizácia: '+lupdatex()
@ 5, 2 dcsay 'Poradov‚ číslo : '
@ 5, 21 dcget por
@ 7, 2 dcsay 'Kód kraja : '
@ 7, 21 dcget k_kraj
@ 7, 32 dcsay 'Názov kraja : '
@ 7, 51 dcget n_kraj
@ 9, 2 dcsay 'Kód okresu : '
@ 9, 21 dcget k_okres
@ 9, 32 dcsay 'Názov okresu : '
@ 9, 51 dcget n_okres
@ 11,2 dcsay 'Kód obce : '
@ 11,21 dcget k_obec
@ 11,32 dcsay 'Názov obce : '
@ 11,51 dcget n_obec
@ 13,2 dcsay 'Kód kat.územia : '
@ 13,21 dcget k_katuz
@ 13,32 dcsay 'Názov kat.územia : '
@ 13,51 dcget n_katuz
read
if (lastkey())=27
rep001() // reload backup fields if Escape
unlock
commit
return(2)
endif
unlock
commit
dbskip(0)
else
rpozor()
endif

return(2)

* pridanie zaznamu
* elseif lastkey()==22 && INSERT
elseif stav==2
append blank
@ 3, 2 dcsay 'Záznam '+alltrim(str(recno()))+"/"
@ 3, 34 dcsay 'Ostatná aktualizácia: '+lupdatex()
@ 5, 2 dcsay 'Poradov‚ číslo : '
@ 5, 21 dcget por
@ 7, 2 dcsay 'Kód kraja : '
@ 7, 21 dcget k_kraj
@ 7, 32 dcsay 'Názov kraja : '
@ 7, 51 dcget n_kraj
@ 9, 2 dcsay 'Kód okresu : '
@ 9, 21 dcget k_okres
@ 9, 32 dcsay 'Názov okresu : '
@ 9, 51 dcget n_okres
@ 11,2 dcsay 'Kód obce : '
@ 11,21 dcget k_obec
@ 11,32 dcsay 'Názov obce : '
@ 11,51 dcget n_obec
@ 13,2 dcsay 'Kód kat.územia : '
@ 13,21 dcget k_katuz
@ 13,32 dcsay 'Názov kat.územia : '
@ 13,51 dcget n_katuz
read
if (lastkey())=27
dbzmaz() // is delete record
commit
return(2)
endif

unlock
commit
dbskip(0)
return(2)

* zmazanie z znamu DELETE RECORD
* elseif lastkey()==7 && DEL
elseif stav==4
if reclock()
* zobrazenie upozornenia, ci naozaj zmazat
level3=2

*@12,28 dcSAY " Naozaj zmazať ? "
*@14,32 PROMPT " Ano "
*@14,37 PROMPT " Nie "
*MENU TO level3

* úprava na DC_ALERT
level3:=DC_ALERT(" Naozaj zmazať ? ",{"Áno", "Nie"})

if (level3=1)
dbzmaz() // is delete record
commit
return(2)
elseif (level3=2)
return(2)
endif
set color to &ft
return(2)
else
rpozor()
endif


return(1)

User avatar
Tom
Posts: 1176
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: DCBROWSE refresh

#2 Post by Tom »

Simply add "oBrowse:RefreshAll()" to the action-codeblock of the buttons which add/change/delete records:

Code: Select all

@ 1,1 DCPUSHBUTTON "Edit" SIZE 6,1 ACTION {||EditRecord(),oBrowse:RefreshAll()}
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

Victorio
Posts: 631
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: DCBROWSE refresh

#3 Post by Victorio »

Hi,

I tried this , but error : Base 2220,
Object has no method with this name... ?

User avatar
Tom
Posts: 1176
Joined: Thu Jan 28, 2010 12:59 am
Location: Berlin, Germany

Re: DCBROWSE refresh

#4 Post by Tom »

Typo somewhere? DCBROWSE is derived from XbpBrowse, which definetely has a method "RefreshAll()". It rereads all data sources and refreshes the browse contens.
Best regards,
Tom

"Did I offend you?"
"No."
"Okay, give me a second chance."

Victorio
Posts: 631
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: DCBROWSE refresh

#5 Post by Victorio »

i don´t understand, here is mysource code, on row 129 I have :refreshAll, and still runtime error :
please look at source, where I have "mishmash", thanks


ERROR LOG
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: O CLASS: DC_XbpToolBar
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: Y
oError:cargo : NIL
oError:description : Object has no method with this name
oError:filename :
oError:genCode : 23
oError:operation : refreshAll
oError:osCode : 0
oError:severity : 2
oError:subCode : 2220
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from (B)ERKU(129)
Called from DC_XBPPUSHBUTTON:ACTION(2464)
Called from (B)DC_XBPPUSHBUTTON:INIT(2006)
Called from XBPPUSHBUTTON:HANDLEEVENT(1530)
Called from DC_GETLIST:EVENTLOOP(4651)
Called from DC_GETLIST:READGUI(3832)
Called from DC_READGUI(111)
Called from ERKU(160)
Called from (B)APPMENU2(246)
Called from DC_GETLIST:EVENTLOOP(4651)
Called from DC_GETLIST:READGUI(3832)
Called from DC_READGUI(111)
Called from APPMENU2(374)
Called from MAIN(616)



SOURCE
*************************
* -> INFOKA13.PRG * && EDITACIA DATABAZ CISELNIKOV
**************************

* alaskalast modify 17.2.2015 - doplnenie tlačítok atď. ovládania editácie, vyradenie saveokn
* restokno, set cursor, toto musím všade
* alaska last modify 13.2.2015 vyradené saveokno, setokno, set color...
* last modify 27.06.2000
* Last modify 19.04.2000
* Obsahuje funkcie : ERKU (E-edit) - Register katastr lnych Łzemˇ
* ECIS (E-edit) - ¬ˇselnˇk druhov nebyt.priestorov

*****************
* FUNCTION ERKU * && Editacia Registra kat.uzemi
*****************
FUNCTION erku
LOCAL oldcol

*pre pokus s toolbarom aj browser ak tu to nedám, potom preberá Getoptions z inej funkcie
Local GetList := {}
*Local GetOptions, oTab1,oToolBar1, oToolBar2,adir,oBrowse
Local GetOptions,oToolBar1,oToolBar2,oBrowse

* deklaracia poli a hlaviciek pre ciselnik kat.uzemi
PUBLIC prku[9],hrku[9]
*DECLARE prku[9],hrku[9]

PARAMETERS n && n-savescreen

prku[1]="POR"
prku[2]="K_KRAJ"
prku[3]="N_KRAJ"
prku[4]="K_OKRES"
prku[5]="N_OKRES"
prku[6]="K_OBEC"
prku[7]="N_OBEC"
prku[8]="K_KATUZ"
prku[9]="N_KATUZ"

hrku[1]="Por.č."
hrku[2]="Kód kraja"
hrku[3]="Názov kraja"
hrku[4]="Kód okresu"
hrku[5]="Názov okresu"
hrku[6]="Kód obce"
hrku[7]="Názov obce"
hrku[8]="Kód katastra"
hrku[9]="Názov katastra"

*oldcol=setcolor() && zistenie povodneho nastavenia farieb
PUBLIC nf && n-savescreen pre volanie funkcie frkuxxx
nf=n+1 && uprava parametra pre dalej volanu funkciu z dbeditu

* otvorenie databazy pre prezeranie editaciu,...
subor=cestaciselnik+rku+".DBF"
suborcdx=cestaciselnik+rku+".CDX"

* alaska úprava doplenie ALIAS "subor", aby dobre fungoval browse edit
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.

SELECT 1
use &subor index &suborcdx

*dbedit(3,1,20,78,prku,"frkuxxx",,hrku) && volanie dbeditu

* BROWSE - upravene pre editáciu,
* DCGUI_BROWSE_EDITACROSS - pri tomto odklikávam všetky políčka v riadku
* DCGUI_BROWSE_EDITDOWN
* umiestnenie na pozíciu 1,1, tj. prvý riadok, prvý stĺpec ale polohu okna určí
* systém optimálne do stredu aplikačného okna, zrejme parameter FIT
* rozmer 60,20 šírka 50 stĺpcov/znakov, výška 20 riadkov
* zablokovaná možnosť editácie kliknutím priamo v browseri
* EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITACROSS ;

@1,1 DCBROWSE oBrowse ;
SIZE 90,20 ;
CURSORMODE XBPBRW_CURSOR_ROW ;
ITEMSELECTED {||DC_GetRefresh(GetList)} ;
ITEMMARKED {||DC_GetRefresh(GetList)} ;
EVAL {||DC_GetRefresh(GetList)}

* toto povodne ako fungovalo, nad tym experimenty ci nezaktualizuje
* ITEMSELECTED {||DC_ReadGuiEvent(DCGUI_EXIT_OK,GetList)}
* a toto som pridal na otestovanie, teda po kliknutí na záznam zaktualizovalo browser
* ITEMMARKED {||DC_GetRefresh(GetList)}

DCBROWSECOL FIELD 1->POR ;
HEADER hrku[1] PARENT oBrowse

DCBROWSECOL FIELD 1->K_KRAJ ;
HEADER hrku[2] PARENT oBrowse

DCBROWSECOL FIELD 1->N_KRAJ ;
HEADER hrku[3] PARENT oBrowse

DCBROWSECOL FIELD 1->K_OKRES ;
HEADER hrku[4] PARENT oBrowse

DCBROWSECOL FIELD 1->N_OKRES ;
HEADER hrku[5] PARENT oBrowse

DCBROWSECOL FIELD 1->K_OBEC ;
HEADER hrku[6] PARENT oBrowse

DCBROWSECOL FIELD 1->K_OBEC ;
HEADER hrku[7] PARENT oBrowse

DCBROWSECOL FIELD 1->K_KATUZ ;
HEADER hrku[8] PARENT oBrowse

DCBROWSECOL FIELD 1->N_KATUZ ;
HEADER hrku[9] PARENT oBrowse

* toto by malo čo robiť ? reaguje alebo nereaguje na TAB klavesu
*DCGETOPTIONS TABSTOP

* toto zabezpeci miesto na toolbary pridane nizsie
* poloha v okne 1 riadok, 55ty stĺpec
* rozmer SIZE 10 stĺpcov, 10riadkov, rozmer buttonu 10 stlpcov, 1 riadok
@ 1,95 DCTOOLBAR oBrowse SIZE 10,5 ;
ALIGN DCGUI_ALIGN_LEFT ;
BUTTONSIZE 10,1 ;
FIT ;
SPACE 5 ;
RESIZE DCGUI_RESIZE_REPOSONLY_X

DCADDBUTTON CAPTION 'Náhľad' PARENT oBrowse ;
TOOLTIP "Prezeranie záznamu" ;
ACTION {||tone(1000,1),frkuxxx(1),oBrowse:refreshAll()}

DCADDBUTTON CAPTION 'Pridaj' PARENT oBrowse ;
TOOLTIP "Pridanie záznamu" ;
ACTION {||tone(1000,1),frkuxxx(2)}

DCADDBUTTON CAPTION 'Oprav' PARENT oBrowse ;
TOOLTIP "Oprava záznamu" ;
ACTION {||tone(1000,1),frkuxxx(3)}

DCADDBUTTON CAPTION 'Vymaž' PARENT oBrowse ;
TOOLTIP "Vymazanie záznamu" ;
ACTION {||tone(1000,1),frkuxxx(4)}

DCADDBUTTON CAPTION 'Hľadaj' PARENT oBrowse ;
TOOLTIP "Vyhľadanie záznamu" ;
ACTION {||tone(1000,1),frkuxxx(5)}

DCADDBUTTON CAPTION 'Tlač' PARENT oBrowse ;
TOOLTIP "Vytlačenie tabuľky" ;
ACTION {||tone(1000,1),frkuxxx(6)}

DCADDBUTTON CAPTION 'Návrat' PARENT oBrowse ;
TOOLTIP "Návrat do hlavného menu" ;
ACTION {||tone(1000,1),DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)}

* OPTIONS GeoOptions asi nastavi predvolené parametre ako sú v DCGETOPTIONS
DCREAD GUI ;
OPTIONS GetOptions ;
TITLE "Register katastrálnych území - editácia" ;
FIT ;
MODAL

* EVAL {||DC_DbGoTop(),oBrowse:RefreshAll()} -- toto neviem pre+co chyba
* CLEAREVENTS


else
close all
DC_GetDestroy(GetList)
DC_ClearEvents()
return(0)
endif

close all

DC_GetDestroy(GetList)
DC_ClearEvents()

return(0)

******************************
* FUNCTION FRKUXXX *
******************************
FUNCTION frkuxxx

* pre pokusne tlacitko v nahlade
*pre pokus s toolbarom aj browser ak tu to nedám, potom preberá Getoptions z inej funkcie
Local GetList := {}
Local GetOptions, oToolbar1
*

PARAMETERS stav,index

* nahratie obsahu zaznamu do pamatovych premennych
porm=por
k_krajm=k_kraj
n_krajm=n_kraj
k_okresm=k_okres
n_okresm=n_okres
k_obecm=k_obec
n_obecm=n_obec
k_katuzm=k_katuz
n_katuzm=n_katuz
v_obecm=v_obec
v_katuzm=v_katuz

* ak stlacenie klavesy
*if stav=4
*if stav!=0

* Náhľad
*elseif lastkey()=13 && ENTER
if stav==1
* kontrola či tu ide
tone(800,1)
set color to &fo

* lastkey zablokovane lebo toto riadi DCREAD
* do while lastkey()!=27

@ 3, 2 dcsay 'Záznam '+alltrim(str(recno()))+"/"
@ 3, 34 dcsay 'Ostatná aktualizácia: '+lupdatex()
@ 5, 2 dcsay 'Poradové číslo : '
@ 5, 31 dcsay por
@ 7, 2 dcsay 'Kód kraja : '
@ 7, 31 dcsay k_kraj
@ 7, 42 dcsay 'Názov kraja : '
@ 7, 61 dcsay n_kraj
@ 9, 2 dcsay 'Kód okresu : '
@ 9, 31 dcsay k_okres
@ 9, 42 dcsay 'Názov okresu : '
@ 9, 61 dcsay n_okres
@ 11,2 dcsay 'Kód obce : '
@ 11,31 dcsay k_obec
@ 11,42 dcsay 'Názov obce : '
@ 11,61 dcsay n_obec
@ 13,2 dcsay 'Kód kat.územia : '
@ 13,31 dcsay k_katuz
@ 13,42 dcsay 'Názov kat.územia : '
@ 13,61 dcsay n_katuz

* doplnenie tlacitka na ukoncenie nahladu
@ 1,95 DCTOOLBAR oToolbar1 SIZE 10,5 ;
ALIGN DCGUI_ALIGN_LEFT ;
BUTTONSIZE 10,1 ;
FIT ;
SPACE 5 ;
RESIZE DCGUI_RESIZE_REPOSONLY_X

DCADDBUTTON CAPTION 'Návrat' PARENT oToolbar1 ;
TOOLTIP "Návrat do hlavného menu" ;
ACTION {||tone(1000,1),DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)}

* OPTIONS GeoOptions asi nastavi predvolené parametre ako sú v DCGETOPTIONS
DCREAD GUI ;
OPTIONS GetOptions ;
TITLE "Register katastrálnych území - editácia" ;
FIT ;
MODAL ;
CLEAREVENTS
*

rec=recno()

* zablokované posúvanie medzi záznamami v prezeracom detailnom okne,
* neskôr môžem odblokovať
* posun o 1 zaznam hore
* if lastkey()==5 && UP
* skip -1
* if bof()=.T.
* go rec
* endif
*
* * pozun o 1 zaznam dolu
* elseif lastkey()==24 && DOWN
* skip
* if eof()=.T.
* go rec
* endif
* endif

* enddo

set color to &ft
return(2)

* oprava zaznamu
* elseif lastkey()==10 && CTRL+ENTER
elseif stav==3
* kontrola či tu ide
tone(800,1)
set color to &fo
if reclock() && osetrenie na sietovu prevadzku
@ 3, 2 dcsay 'Záznam '+alltrim(str(recno()))+"/"
@ 3, 34 dcsay 'Ostatná aktualizácia: '+lupdatex()
@ 5, 2 dcsay 'Poradov‚ číslo : '
@ 5, 21 dcget por
@ 7, 2 dcsay 'Kód kraja : '
@ 7, 21 dcget k_kraj
@ 7, 32 dcsay 'Názov kraja : '
@ 7, 51 dcget n_kraj
@ 9, 2 dcsay 'Kód okresu : '
@ 9, 21 dcget k_okres
@ 9, 32 dcsay 'Názov okresu : '
@ 9, 51 dcget n_okres
@ 11,2 dcsay 'Kód obce : '
@ 11,21 dcget k_obec
@ 11,32 dcsay 'Názov obce : '
@ 11,51 dcget n_obec
@ 13,2 dcsay 'Kód kat.územia : '
@ 13,21 dcget k_katuz
@ 13,32 dcsay 'Názov kat.územia : '
@ 13,51 dcget n_katuz
read
if (lastkey())=27
rep001()
unlock
commit
return(2)
endif
unlock
commit
dbskip(0)
else
rpozor()
endif

return(2)

* pridanie zaznamu
* elseif lastkey()==22 && INSERT
elseif stav==2
append blank
@ 3, 2 dcsay 'Záznam '+alltrim(str(recno()))+"/"
@ 3, 34 dcsay 'Ostatná aktualizácia: '+lupdatex()
@ 5, 2 dcsay 'Poradov‚ číslo : '
@ 5, 21 dcget por
@ 7, 2 dcsay 'Kód kraja : '
@ 7, 21 dcget k_kraj
@ 7, 32 dcsay 'Názov kraja : '
@ 7, 51 dcget n_kraj
@ 9, 2 dcsay 'Kód okresu : '
@ 9, 21 dcget k_okres
@ 9, 32 dcsay 'Názov okresu : '
@ 9, 51 dcget n_okres
@ 11,2 dcsay 'Kód obce : '
@ 11,21 dcget k_obec
@ 11,32 dcsay 'Názov obce : '
@ 11,51 dcget n_obec
@ 13,2 dcsay 'Kód kat.územia : '
@ 13,21 dcget k_katuz
@ 13,32 dcsay 'Názov kat.územia : '
@ 13,51 dcget n_katuz
read
if (lastkey())=27
dbzmaz()
commit
return(2)
endif

unlock
commit
dbskip(0)
return(2)

* zmazanie z znamu
* elseif lastkey()==7 && DEL
elseif stav==4
if reclock()
* zobrazenie upozornenia, ci naozaj zmazat
level3=2

*@12,28 dcSAY " Naozaj zmazať ? "
*@14,32 PROMPT " Ano "
*@14,37 PROMPT " Nie "
*MENU TO level3

* úprava na DC_ALERT
level3:=DC_ALERT(" Naozaj zmazať ? ",{"Áno", "Nie"})

if (level3=1)
dbzmaz()
commit
return(2)
elseif (level3=2)
return(2)
endif
set color to &ft
return(2)
else
rpozor()
endif

* H E L P
* elseif (lastkey())=28 && F1
* elseif stav==6

* return(2)

* Najdi && F7
* elseif lastkey()=-6
elseif stav==5
* kontrola na existenciu indexoveho suboru
*if cdxok=1
set color to &fh
okno(9,21,18,56,fh)
* vyber sposobu hladania a triedenia
menufrkuxxx=1
@10,23 say "H–adaj a zotrieÔ podla : "
@11,23 say "-------------------------"
@12,23 prompt "K˘d obce "
@13,23 prompt "N zov obce "
@14,23 prompt "K˘d kat.Łzemia "
@15,23 prompt "N zov kat.Łzemia "
MENU to menufrkuxxx
if lastkey()!=27

* K˘d obce
if menufrkuxxx=1
set order to 1
pomcisob=space(6)
okno(11,22,15,56,fh)
@12,24 say "¬ˇslo obce:"
@14,24 get pomcisob
read
if lastkey()!=27
pomcisob=pomcisob
locate for k_obec=pomcisob
if k_obec=pomcisob
nasiel()
elseif k_obec!=pomcisob
nenasiel()
go top
endif
endif

* N zov obce
elseif menufrkuxxx=2
set order to 1
pomnazob=space(20)
okno(11,22,15,56,fh)
@12,24 say "N zov obce:"
@14,24 get pomnazob
read
if lastkey()!=27
pomnazob=pomnazob
locate for n_obec=pomnazob
if n_obec=pomnazob
nasiel()
elseif n_obec!=pomnazob
nenasiel()
go top
endif
endif

* ¬ˇslo kat.uzemia
elseif menufrkuxxx=3
if indexkey(1)="K_KATUZ"
set order to 1
pomcisku=space(6)
okno(11,22,15,56,fh)
@12,24 say "K˘d kat.Łzemia:"
@14,24 get pomcisku
read
if lastkey()!=27
pomcisku=pomcisku
SEEK pomcisku
if found()=.T.
nasiel()
elseif found()=.F.
nenasiel()
go top
endif
endif
endif

* Nazov kat.uzemia
elseif menufrkuxxx=4
if indexkey(2)="CS2(N_KATUZ)"
set order to 2
pomnazov=space(20)
okno(11,22,15,56,fh)
@12,24 say "N zov kat.Łzemia:"
@14,24 get pomnazov
read
if lastkey()!=27
pomnazov=pomnazov
SEEK rtrim(cs2(pomnazov))
if found()=.T.
nasiel()
elseif found()=.F.
nenasiel()
go top
endif
endif
endif

*chyba indexovy subor
*elseif cdxok!=1
* set color to &fh
* okno(11,22,15,56,fh)
* oznam=padc(rku+".CDX",20)
* @12,28 say " Nemo§no h–adaś "
* @13,28 say "Chěba indexově sŁbor"
* @14,28 say oznam
* tone(500,1)
* inkey(0)
* set color to &ft
* return(2)

endif

endif
set color to &ft
return(2)
*else

*set color to &fh
*okno(11,22,15,56,fh)
*@12,28 say " Nemo§no h–adaś "
*@13,28 say "Chěba indexově sŁbor"
*@14,28 say " LVxxxxxx.CDX "
*tone(500,1)
*inkey(0)
*set color to &ft
*return(2)
*endif

* esc
* elseif (lastkey())=27 && ESC

* elseif stav==0

* return(0)
endif

* ak stlacenie kurzorovych klaves-posun
*elseif stav=0
* @2,2 say padl(alltrim(str(recno())),8," ")+" "
* return(1)
*endif

return(1)

***************************
* FUNCTION REP001 * - pomocna funkcia pre vratenie povodnych hodnot poli - typ1
***************************
FUNCTION REP001
replace;
por with porm,k_kraj with k_krajm,n_kraj with n_krajm,k_okres with k_okresm,;
n_okres with n_okresm,k_obec with k_obecm,n_obec with n_obecm,;
k_katuz with k_katuzm,n_katuz with n_katuzm,;
v_obec with v_obecm,v_katuz with v_katuzm
return(0)

*qqq
*****************
* FUNCTION ECIS * && Editacia číselníkov - universal
*****************
FUNCTION ecis
PARAMETERS n,csel && n-savescreen,csel-cislo selectu
*LOCAL oldcol

* last modify 27.06.2000

* deklaracia poli a hlaviciek pre ciselnik kat.uzemi
PUBLIC pcis[2],hcis[2]
*DECLARE pcis[2],hcis[2]

if csel="10"
********************
nazovdbf10="REG_DRP"
********************
pcis[1]="DRP"
pcis[2]="POPIS"
hcis[1]="K˘d druhu pozemku"
hcis[2]="Popis druhu pozemku"
elseif csel="11"
********************
nazovdbf11="REG_DNP"
********************
pcis[1]="DNP"
pcis[2]="POPIS"
hcis[1]="K˘d druhu nebyt.priestoru"
hcis[2]="Popis druhu nebyt.priestoru"
elseif csel="12"
********************
nazovdbf12="REG_DON"
********************
pcis[1]="DON"
pcis[2]="POPIS"
hcis[1]="K˘d druhu chr nenej nehnute–nosti"
hcis[2]="Popis druhu chr nenej nehnute–nosti"
elseif csel="13"
********************
nazovdbf13="REG_DRS"
********************
pcis[1]="DRS"
pcis[2]="POPIS"
hcis[1]="K˘d druhu stavby"
hcis[2]="Popis druhu stavby"
elseif csel="14"
********************
nazovdbf14="REG_DRV"
********************
pcis[1]="DRV"
pcis[2]="POPIS"
hcis[1]="K˘d druhu vlastnˇctva"
hcis[2]="Popis druhu vlastnˇctva"
elseif csel="15"
********************
nazovdbf15="REG_SEK"
********************
pcis[1]="SEK"
pcis[2]="POPIS"
hcis[1]="K˘d sektora n jomcu"
hcis[2]="Popis sektora n jomcu"
endif

oldcol=setcolor() && zistenie povodneho nastavenia farieb
PUBLIC nf && n-savescreen pre volanie funkcie frkuxxx
nf=n+1 && uprava parametra pre dalej volanu funkciu z dbeditu

* zakladne okno prehliadacky, vytvorenie

okno(0,0,24,79,fm)
okno(2,0,21,79,fm)
set color to &fr
if csel="10"
@1,6 say " < ¬ÖSELNÖK DRUHOV POZEMKU > - [ "+nazovdbf10+".DBF ]"
elseif csel="11"
@1,6 say " < ¬ÖSELNÖK DRUHOV NEBYTOVíCH PRIESTOROV > - [ "+nazovdbf11+".DBF ]"
elseif csel="12"
@1,6 say " < ¬ÖSELNÖK DRUHOV CHRµNENEJ NEHNUTE‘NOSTI > - [ "+nazovdbf12+".DBF ]"
elseif csel="13"
@1,6 say " < ¬ÖSELNÖK DRUHOV STAVIEB > - [ "+nazovdbf13+".DBF ]"
elseif csel="14"
@1,6 say " < ¬ÖSELNÖK DRUHOV VLASTNÖCTVA > - [ "+nazovdbf14+".DBF ]"
elseif csel="15"
@1,6 say " < ¬ÖSELNÖK SEKTOROV NµJOMCOV > - [ "+nazovdbf15+".DBF ]"
endif
set color to &ft
@22,0 say space(80)
@23,0 say " Enter - Pozri, Ins - Pridaj, Ctrl+Enter - Oprava, Del - Zmaz, Esc - N vrat "

*vypis dolneho menu
set color to &fdmc
@24,0 say "F1"
@24,8 say "F2"
@24,16 say "F3"
@24,24say "F4"
@24,32 say "F5"
@24,40 say "F6"
@24,48 say "F7"
@24,56 say "F8"
@24,64 say "F9"
@24,72 say "F10"

set color to &fdmt
@24,2 say "Pomoc"
@24,10 say " "
@24,18 say " "
@24,26 say " "
@24,34 say " "
@24,42 say " "
@24,50 say "H–ad."
@24,58 say " "
@24,66 say " "
@24,75 say " "

set color to &ft

if csel="10"
* otvorenie ciselnika
subor=cestaciselnik+nazovdbf10+".DBF"
suborcdx=cestaciselnik+nazovdbf10+".CDX"
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.
SELECT 10
use &cestaciselnik.&nazovdbf10. index &cestaciselnik.&nazovdbf10.
dbedit(3,1,20,78,pcis,"fcis",,hcis) && volanie dbeditu
else
set color to &ft
close all
setcolor(oldcol)
return(0)
endif
elseif csel="11"
* otvorenie ciselnika
subor=cestaciselnik+nazovdbf11+".DBF"
suborcdx=cestaciselnik+nazovdbf11+".CDX"
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.
SELECT 11
use &cestaciselnik.&nazovdbf11 index &cestaciselnik.&nazovdbf11
dbedit(3,1,20,78,pcis,"fcis",,hcis) && volanie dbeditu
else
set color to &ft
close all
setcolor(oldcol)
return(0)
endif
elseif csel="12"
* otvorenie ciselnika
subor=cestaciselnik+nazovdbf12+".DBF"
suborcdx=cestaciselnik+nazovdbf12+".CDX"
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.
SELECT 12
use &cestaciselnik.&nazovdbf12 index &cestaciselnik.&nazovdbf12
dbedit(3,1,20,78,pcis,"fcis",,hcis) && volanie dbeditu
else
set color to &ft
close all
setcolor(oldcol)
return(0)
endif
elseif csel="13"
* otvorenie ciselnika
subor=cestaciselnik+nazovdbf13+".DBF"
suborcdx=cestaciselnik+nazovdbf13+".CDX"
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.
SELECT 13
use &cestaciselnik.&nazovdbf13 index &cestaciselnik.&nazovdbf13
dbedit(3,1,20,78,pcis,"fcis",,hcis) && volanie dbeditu
else
set color to &ft
close all
setcolor(oldcol)
return(0)
endif
elseif csel="14"
* otvorenie ciselnika
subor=cestaciselnik+nazovdbf14+".DBF"
suborcdx=cestaciselnik+nazovdbf14+".CDX"
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.
SELECT 14
use &cestaciselnik.&nazovdbf14 index &cestaciselnik.&nazovdbf14
dbedit(3,1,20,78,pcis,"fcis",,hcis) && volanie dbeditu
else
set color to &ft
close all
setcolor(oldcol)
return(0)
endif
elseif csel="15"
* otvorenie ciselnika
subor=cestaciselnik+nazovdbf15+".DBF"
suborcdx=cestaciselnik+nazovdbf15+".CDX"
if konfex(subor)=.T. .and. konfex(suborcdx)=.T.
SELECT 15
use &cestaciselnik.&nazovdbf15 index &cestaciselnik.&nazovdbf15
dbedit(3,1,20,78,pcis,"fcis",,hcis) && volanie dbeditu
else
set color to &ft
close all
setcolor(oldcol)
return(0)
endif
endif
close all
*setcolor(oldcol)
return(0)

*****************
* FUNCTION FCIS *
*****************
FUNCTION fcis
PARAMETERS stav,index

* nahratie obsahu zaznamu do pamatovych premennych
if csel="10"
drpm=drp
elseif csel="11"
dnpm=dnp
elseif csel="12"
donm=don
elseif csel="13"
drsm=drs
elseif csel="14"
drvm=drv
elseif csel="15"
sekm=sek
endif
popism=popis

* ak stlacenie klavesy
if stav=4
*qqq
* pozri
if (lastkey())=13 && ENTER
okno(2,0,22,79,fo)
@23,0 say " Enter - Pozri, Ins - Pridaj, Ctrl+Enter - Oprava, Del - Zmaz, Esc - N vrat "
set color to &fo
*
do while lastkey()!=27
@ 3, 1 clear to 21,78
@ 3, 2 say 'Zaznam '+alltrim(str(recno()))+"/"
@ 3, 34 say 'Ostatna aktualizacia: '+lupdatex()
@ 4, 1 to 4,78
@ 5, 2 say hcis[1]+' : '
if csel="10"
@ 5, 36 say DRP
elseif csel="11"
@ 5, 36 say DNP
elseif csel="12"
@ 5, 36 say DON
elseif csel="13"
@ 5, 36 say DRS
elseif csel="14"
@ 5, 36 say DRV
elseif csel="15"
@ 5, 36 say SEK
endif
@ 6, 1 to 6,78
@ 7, 2 say hcis[2]+' : '
@ 8, 2 say POPIS
@ 9,1 to 9,78
@ 18,1 to 18,78
inkey(0)
rec=recno()

* posun o 1 zaznam hore
if lastkey()==5 && UP
skip -1
if bof()=.T.
go rec
endif

* pozun o 1 zaznam dolu
elseif lastkey()==24 && DOWN
skip
if eof()=.T.
go rec
endif

endif
enddo

set color to &ft
return(2)

* oprava zaznamu
elseif lastkey()==10 && CTRL+ENTER
okno(2,0,22,79,ft)
@23,0 say " Enter - Pozri, Ins - Pridaj, Ctrl+Enter - Oprava, Del - Zmaz, Esc - N vrat "
set color to &fo
if reclock() && osetrenie na sietovu prevadzku
@ 3, 1 clear to 21,78
@ 3, 2 say 'Zaznam '+alltrim(str(recno()))+"/"
@ 3, 34 say 'Ostatna aktualizacia: '+lupdatex()
@ 4, 1 to 4,78
@ 5, 2 say hcis[1]+' : '
if csel="10"
@ 5, 36 get DRP
elseif csel="11"
@ 5, 36 get DNP
elseif csel="12"
@ 5, 36 get DON
elseif csel="13"
@ 5, 36 get DRS
elseif csel="14"
@ 5, 36 get DRV
elseif csel="15"
@ 5, 36 get SEK
endif
@ 6, 1 to 6,78
@ 7, 2 say hcis[2]+' : '
@ 8, 2 get POPIS
@ 9,1 to 9,78
@ 18,1 to 18,78
read
if (lastkey())=27
rep002(csel)
unlock
commit
set color to &ft
return(2)
endif

unlock
commit
else
rpozor()
endif

set color to &ft
return(2)

* pridanie zaznamu
elseif lastkey()==22 && INSERT
okno(2,0,22,79,ft)
@23,0 say " Enter - Pozri, Ins - Pridaj, Ctrl+Enter - Oprava, Del - Zmaz, Esc - N vrat "
set color to &fo
append blank
@ 3, 1 clear to 21,78
@ 3, 2 say 'Zaznam '+alltrim(str(recno()))+"/"
@ 3, 34 say 'Ostatna aktualizacia: '+lupdatex()
@ 4, 1 to 4,78
@ 5, 2 say hcis[1]+' : '
if csel="10"
@ 5, 36 get DRP
elseif csel="11"
@ 5, 36 get DNP
elseif csel="12"
@ 5, 36 get DON
elseif csel="13"
@ 5, 36 get DRS
elseif csel="14"
@ 5, 36 get DRV
elseif csel="15"
@ 5, 36 get SEK
endif
@ 6, 1 to 6,78
@ 7, 2 say hcis[2]+' : '
@ 8, 2 get POPIS
@ 9,1 to 9,78
@ 18,1 to 18,78
read
if (lastkey())=27
dbzmaz()
commit
set color to &ft
return(2)
endif

unlock
commit
set color to &ft
return(2)

* zmazanie z znamu
elseif lastkey()==7 && DEL
if reclock()
* zobrazenie upozornenia, ci naozaj zmazat
set color to &fc
okno(11,26,15,46,fc)
level3=2
@12,28 SAY " Naozaj zmazat ?"
@14,32 PROMPT "Ano"
@14,37 PROMPT "Nie"
MENU TO level3
if (level3=1)
dbzmaz()
commit
set color to &ft
return(2)
elseif (level3=2)
set color to &ft
return(2)
endif
set color to &ft
return(2)
else
rpozor()
endif

* H E L P
elseif (lastkey())=28 && F1

return(2)

* Najdi && F7
elseif lastkey()=-6
* kontrola na existenciu indexoveho suboru
*if cdxok=1
set color to &fh
okno(9,21,18,56,fh)
* vyber sposobu hladania a triedenia
menufdnp=1
@10,23 say "H–adaj a zotrieÔ podla : "
@11,23 say "-------------------------"
@12,23 prompt "K˘d druhu priestoru "
@13,23 prompt "Popis druhu priestoru "
MENU to menufdnp
if lastkey()!=27

* K˘d druhu prieotoru
if menufdnp=1
set order to 1
pomdnp=space(2)
okno(11,22,15,56,fh)
@12,24 say "K˘d druhu priestor:"
@14,24 get pomdnp
read
if lastkey()!=27
pomdrp=val(pomdrp)
seek pomdrp
if found()
nasiel()
else
nenasiel()
go top
endif
endif

* Popis druhu pozemku
elseif menufdrp=2
set order to 1
pompopis=space(30)
okno(11,22,15,56,fh)
@12,24 say "Popis druhu pozemku:"
@14,24 get pompopis
read
if lastkey()!=27
pompopis=alltrim(pompopis)
lenpopis=len(pompopis)
locate for substr(popis,1,lenpopis)=pompopis
if popis=pompopis
nasiel()
elseif popis!=pompopis
nenasiel()
go top
endif
endif

*chyba indexovy subor
*elseif cdxok!=1
* set color to &fh
* okno(11,22,15,56,fh)
* oznam=padc(nazovdbf10+".CDX",20)
* @12,28 say " Nemo§no h–adaś "
* @13,28 say "Chěba indexově sŁbor"
* @14,28 say oznam
* tone(500,1)
* inkey(0)
* set color to &ft
* return(2)

endif

endif
set color to &ft
return(2)
*else

*set color to &fh
*okno(11,22,15,56,fh)
*@12,28 say " Nemo§no h–adaś "
*@13,28 say "Chěba indexově sŁbor"
*@14,28 say " LVxxxxxx.CDX "
*tone(500,1)
*inkey(0)
*set color to &ft
*return(2)
*endif

* esc
elseif (lastkey())=27 && ESC
return(0)
endif

* ak stlacenie kurzorovych klaves-posun
elseif stav=0
@2,2 say padl(alltrim(str(recno())),8," ")+" "
return(1)
endif

return(1)

*******************
* FUNCTION REP002 * - pomocna funkcia pre vratenie povodnych hodnot poli - typ2
*******************
FUNCTION REP002
PARAMETERS csel
if csel="10"
replace drp with drpm,popis with popism
elseif csel="11"
replace dnp with dnpm,popis with popism
elseif csel="12"
replace don with donm,popis with popism
elseif csel="13"
replace drs with drsm,popis with popism
elseif csel="14"
replace drv with drvm,popis with popism
elseif csel="15"
replace sek with sekm,popis with popism
endif
return(0)

Cliff Wiernik
Posts: 605
Joined: Thu Jan 28, 2010 9:11 pm
Location: Steven Point, Wisconsin USA
Contact:

Re: DCBROWSE refresh

#6 Post by Cliff Wiernik »

If you look in your error log it says the class is DC_XbpToolBar().

This is the class where the refreshall() is being send to. XbpToolBar() does not have a refreshall class. If you look 7 lines earlier, you see a DCTOOLBAR command. However this command is DCTOOLBAR oBrowse. You have redefined the local variable oBrowse to now be the object defined by the toolbar instead of the browse. Simply change this to oToolBar or something like that.

It takes a while to learn how to read the error logs, but in this case, the error log stated that the refreshall() method was being requested from the xbptoolbar class, which is a programmer error.

Hope this helps.

Victorio
Posts: 631
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: DCBROWSE refresh

#7 Post by Victorio »

ok: thanks very much, I will try repair variables oBrowse, oToolbar hope, this help me.

Victorio
Posts: 631
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: DCBROWSE refresh

#8 Post by Victorio »

Yes !, now it is ok,

Tom, Cliff, thank's

Post Reply