Please, help me, where I have mistake.
I want connect more than 2 tables with one field,
I make two databases so as in example xdemo "one to many" Xsample 130, it work fine with 2 tables-
But I want to do this for other 2-3 tables to viewing and listing in some window.
I have some error in source code ?, please look somebody to this, thaks very much.
here is source code :
1st database is CPARCELY
2nd VLASTNICI
3rd STAVBY
I mean , error is in EVAL .... (red color)
Local GetList := {}
Local GetOptions,oToolBar1,oToolBar2
Local oBrowsepa,oBrowsevl,oBrovsecs
Local bVLA,bSTA
* relácie - zadanie väzieb CPA/VLA
bVLA:={||VLASTNICI->(DC_SetScope(0,CPARCELY->KN_CLV)), ;
VLASTNICI->(DC_SetScope(1,CPARCELY->KN_CLV)), ;
VLASTNICI->(DC_DbGoTop()), ;
oBrowsevl:refreshAll()}
* relácie - zadanie väzieb CPA/STA
bSTA:={||STAVBY->(DC_SetScope(0,CPARCELY->KN_CLV)), ;
STAVBY->(DC_SetScope(1,CPARCELY->KN_CLV)), ;
STAVBY->(DC_DbGoTop()), ;
oBrowsecs:refreshAll()}
* First database ALIAS CPARCELY
@pozypa,pozxpa DCBROWSE oBrowsepa ALIAS "CPARCELY" ;
SIZE rozxpa,rozypa PIXEL ;
NOSOFTTRACK ;
SCOPE ;
NOHSCROLL ;
ITEMMARKED {||Eval(bVLA),Eval(bSTA),;
DC_GetRefresh(GetList,, ;
DCGETREFRESH_TYPE_EXCLUDE,(GETLIST_BROWSE))} ;
CURSORMODE XBPBRW_CURSOR_ROW
DCSETPARENT oBrowsepa
DCBROWSECOL FIELD CPARCELY->CPAU WIDTH 80;
HEADER "Parcela "
... etc
DCSETPARENT TO
* Second database ALIAS VLASTNICI
@pozyvl,pozxvl DCBROWSE oBrowsevl ALIAS "VLASTNICI" ;
SIZE rozxvl,rozyvl PIXEL ;
NOSOFTTRACK ;
SCOPE ;
CURSORMODE XBPBRW_CURSOR_ROW ;
ITEMMARKED bSTA
DCSETPARENT oBrowsevl
DCBROWSECOL FIELD VLASTNICI->KN_CLV ;
HEADER "KN_CLV"
... etc
* Third database ALIAS STAVBY
@pozycs,pozxcs DCBROWSE oBrowsecs ALIAS "STAVBY" ;
SIZE rozxcs,rozycs PIXEL ;
NOSOFTTRACK ;
SCOPE ;
CURSORMODE XBPBRW_CURSOR_ROW
DCSETPARENT oBrowsecs
DCBROWSECOL FIELD STAVBY->KN_CLV ;
HEADER "KN_CLV"
... etc
* some toolbar
DCSETPARENT oToolbar1
@ pozypa+30,pozxpa+rozxpa DCTOOLBAR oToolbar1 PIXEL SIZE 80,300 ;
ALIGN DCGUI_ALIGN_LEFT ;
BUTTONSIZE 60,25 ;
FIT ;
SPACE 5 ;
RESIZE DCGUI_RESIZE_REPOSONLY_X
DCADDBUTTON CAPTION 'Náhľad' PARENT oToolbar1 ;
TOOLTIP "Prezeranie záznamu" ;
ACTION {||tone(1000,1),fic(1),oBrowse:RefreshAll()}
...etc
DCGETOPTIONS PIXEL ;
TABSTOP AUTORESIZE
* OPTIONS GeoOptions asi nastavi predvolené parametre ako sú v DCGETOPTIONS
DCREAD GUI ;
OPTIONS GetOptions ;
TITLE "[ PARCELY REGISTRA C ] - [ "+nazku+" ] - [ "+nazovdbf1+" ]" ;
MODAL ;
FIT ;
EVAL {|o|SetAppFocus(oBrowsepa:GetColumn(1))}
close all
DC_GetDestroy(GetList)
DC_ClearEvents()
return(0)
Browse database in relation
Re: Browse database in relation
This is from XDEMO.EXE
Run XDEMO.EXE - Sample Group 4 - OneToMany 2
Run XDEMO.EXE - Sample Group 4 - OneToMany 2
Code: Select all
FUNCTION XSample_130()
/* This example shows how to create a 3-tiered, one-to-many
browse of three relational databases in one dialog window. */
LOCAL GetList := {}, GetOptions, oBrowCust, oBrowInv, oBrowItems, ;
bInv, bItems
dbeSetDefault('FOXCDX')
USE ..\data\CUSTOMER INDEX ..\data\CUSTOMER
USE ..\data\INVOICE INDEX ..\data\INVOICE NEW
USE ..\data\INVITEMS INDEX ..\data\INVITEMS NEW
bInv := {|| INVOICE->(DC_SetScope(0,CUSTOMER->cust_nmbr)), ;
INVOICE->(DC_SetScope(1,CUSTOMER->cust_nmbr)), ;
INVOICE->(DC_DbGoTop()), ;
oBrowInv:refreshAll() }
bItems := {|| INVITEMS->(DC_SetScope(0,INVOICE->inv_nmbr)), ;
INVITEMS->(DC_SetScope(1,INVOICE->inv_nmbr)), ;
INVITEMS->(DC_DbGoTop()), ;
oBrowItems:refreshAll() }
@ 1,0 DCBROWSE oBrowCust ALIAS 'CUSTOMER' SIZE 40,10 ;
PRESENTATION DC_BrowPres() ;
NOSOFTTRACK ;
SCOPE ;
NOHSCROLL ;
ITEMMARKED {|| Eval(bInv), ;
Eval(bItems), ;
DC_GetRefresh(GetList,, ;
DCGETREFRESH_TYPE_EXCLUDE,{GETLIST_BROWSE}) }
DCSETPARENT oBrowCust
DCBROWSECOL FIELD CUSTOMER->cust_nmbr HEADER 'Cust #' WIDTH 4
DCBROWSECOL FIELD CUSTOMER->bill_name HEADER 'Billing Name' WIDTH 18
DCSETPARENT TO
@ 1,42 DCSAY {||CUSTOMER->bill_name} COLOR GRA_CLR_BLUE SIZE 45
@ 2,42 DCSAY {||CUSTOMER->bill_strt} COLOR GRA_CLR_BLUE SIZE 45
@ 3,42 DCSAY {||CUSTOMER->bill_city} COLOR GRA_CLR_BLUE SIZE 45
@ 4,42 DCSAY {||CUSTOMER->bill_state} COLOR GRA_CLR_BLUE SIZE 5
@ 4,53 DCSAY {||CUSTOMER->bill_zip} COLOR GRA_CLR_BLUE SIZE 25
@ 5,42 DCSAY {||CUSTOMER->phone} COLOR GRA_CLR_BLUE SIZE 25
@ 6,42 DCSAY {||CUSTOMER->fax} COLOR GRA_CLR_BLUE SIZE 25
@ 7,42 DCSAY {||CUSTOMER->contact} COLOR GRA_CLR_BLUE SIZE 35
@12,0 DCBROWSE oBrowInv ALIAS 'INVOICE' SIZE 40,10 ;
PRESENTATION DC_BrowPres() ;
NOSOFTTRACK ;
SCOPE ;
ITEMMARKED bItems
DCSETPARENT oBrowInv
DCBROWSECOL FIELD INVOICE->inv_nmbr HEADER 'Invoice #' WIDTH 4
DCBROWSECOL FIELD INVOICE->ship_date HEADER 'Inv Date' WIDTH 8
DCBROWSECOL FIELD INVOICE->balance HEADER 'Balance' WIDTH 8
DCSETPARENT TO
@12,42 DCBROWSE oBrowItems ALIAS 'INVITEMS' SIZE 40,10 ;
PRESENTATION DC_BrowPres() ;
NOSOFTTRACK ;
SCOPE
DCSETPARENT oBrowItems
DCBROWSECOL FIELD INVITEMS->part_nmbr HEADER 'Part Nmbr' WIDTH 10
DCBROWSECOL FIELD INVITEMS->desc HEADER 'Description' WIDTH 10
DCBROWSECOL FIELD INVITEMS->qty_ord HEADER 'Ord' WIDTH 4
DCBROWSECOL FIELD INVITEMS->qty_shp HEADER 'Ship' WIDTH 4
DCGETOPTIONS SAYFONT '10.Helv Bold' TABSTOP AUTORESIZE
DCREAD GUI ;
FIT ;
ADDBUTTONS ;
OPTIONS GetOptions ;
MODAL ;
TITLE 'Customer/Invoice/Items Browse' ;
EVAL {|o|SetAppFocus(oBrowCust:GetColumn(1))}
RETURN nil
The eXpress train is coming - and it has more cars.
Re: Browse database in relation
oh yes, I forgot one line DCSETPARENT TO befor 3rt DCBROWSE line,
now it is ok, thanks
now it is ok, thanks