possible xBrowse-refresh with another Dbf ?

Post Reply
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

Hello,

is it possible to refresh a xbrowse with another DBF ( same structure ) ?

With this sample I open the month JUNE

Image

I'm starting with a defined month
12 month are possible to display in browser 2
there is a RELATION between browser 1 and 2 ( names )
I would like to change the month in browser 2

Browser 1 ( names )

DBSELECTAREA( "KUNDE" )
( "KUNDE" )->(DBSETORDER( "KUNDE1" ))
( "KUNDE" )->( ORDSETRELATION( cMonat, { || UPPER(NAME1 + NAME) }, "UPPER(NAME1 + NAME)" ) )
( "KUNDE" )->( DBGOTOP() )


Browser 2 ( month with relation on names )

DBSELECTAREA( cMonat )
( cMonat )->(DBSETORDER( cMonat ))
( cMonat )->( DBGOTOP() )


best regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
James Bott
Posts: 4840
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by James Bott »

Uwe,

Well, I'm not sure exactly what you are trying to do, but whatever the trigger is for the first browse, use that to set the scope of the second browse.

If that is not what you were looking for, then please explain in more detail.

james
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

James,

using the < month-button >, I want to replace the data in browser 2
sample : starting with june the JUNE.dbf is shown in browser 2
On button-action like using JULY I want to change the data in browser 2 to JULY

I could zap the first data in browser 2 ( June ) and append from July ?

best regards
uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
James Bott
Posts: 4840
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by James Bott »

Uwe,

I could zap the first data in browser 2 ( June ) and append from July ?


You should just be using scopes with the entire database. Then all you have to do is change the scope on the second browse and refresh it.

Just index the database on month, then set the scope to that month and refresh the browse.

James
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

James,

the problem : there are < 12 > Files created on another part, 1 for each month
I cannot make just 1 file and using scope for a month.
I must define different files for the browser 2

best regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
FranciscoA
Posts: 2163
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: possible xBrowse-refresh with another Dbf ?

Post by FranciscoA »

ukoenig wrote:Hello,

is it possible to refresh a xbrowse with another DBF ( same structure ) ?

With this sample I open the month JUNE

Image

I'm starting with a defined month
12 month are possible to display in browser 2
there is a RELATION between browser 1 and 2 ( names )
I would like to change the month in browser 2

Browser 1 ( names )

DBSELECTAREA( "KUNDE" )
( "KUNDE" )->(DBSETORDER( "KUNDE1" ))
( "KUNDE" )->( ORDSETRELATION( cMonat, { || UPPER(NAME1 + NAME) }, "UPPER(NAME1 + NAME)" ) )
( "KUNDE" )->( DBGOTOP() )


Browser 2 ( month with relation on names )

DBSELECTAREA( cMonat )
( cMonat )->(DBSETORDER( cMonat ))
( cMonat )->( DBGOTOP() )


best regards
Uwe :?:


Hi, Uwe.
Try to change the xBrowse alias y refresh the xBrowse.
example:

REDEFINE XBROWSE oBrw ID.... COLUMNS.... ;
ALIAS cAlias

On click button July...
oBrw:cAlias:= "JULY"
oBrw:Refresh()
etc.

I Hope this may helps.

Regards.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
James Bott
Posts: 4840
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by James Bott »

Unless you have millions of records, I can't see any good reason to have a different file for each month. Doesn't that also mean you have to have 12 for each year also? I would think that makes things more complicated that they would be if they were all in the same file.

However, since you do, just close the file for the month in use and open the one for the month desired and refresh the browse. Well, you would have to be using database objects for it to be that simple. Otherwise you might be able to give all the month files the same alias when you open them so the browse still thinks it is using the same file.

James

Update: I see Francisco was writing a response while I was writing mine. And I see he had the same suggestion.
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

James, Francisco

thank You very much.
records are no problems, because it only can be a maximum of round about 200 records
( writing bills of a month )
One solution I got working. I will test the others to find out the best one to keep.

best regards
Uwe :D
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

Hello,

still my old problem using one xbrowse and changing the workarea.
I have to use a EXTRA statistic-file for each month.
Define a new Alias on button-selection doesn't work. Tested oBrw1:cAlias := cUmsName ( new DBF ) as well.
It works only once on startup.
Using BROWSE() it shows the change-result but xBrowse doesn't accept the DBF-change.

Image

Image

REDEFINE XBROWSE oBrw1 ID 110 OF oFld:aDialogs[ 1 ] AUTOSORT FASTEDIT ;
COLUMNS { "NACHNAME", "VORNAME", ;
"KOST_RZH", "KOST_PRI", "KOST_BEI", ;
"KRK", "KRX", ;
"PFK0", "PFX0", "PFK1", "PFX1", "PFK2", "PFX2", "PFK3", "PFX3", ;
"B1X", "PBK", "PBX", "B2X", ;
"PRA", "VPK", "VPX", "PRI", "BERG", "SUMME", "PKT_SUMME" } ;
ALIAS
cUmsName UPDATE

cUmsName to be changed on button-action

maybe something missing ?

best regards
Uwe :?:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
FranciscoA
Posts: 2163
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: possible xBrowse-refresh with another Dbf ?

Post by FranciscoA »

Uwe:

I extracted this partial code , from my accounting program. I tried it before post it here , and it works for me. Maybe it will be of some help.
All necessary tables have been open at program startup .
All tables have the same structure.
Regards.

Code: Select all | Expand

//------------------------------
FUNCTION Transacc()
LOCAL oDlg, oLbx
LOCAL cTitulo:="TRANSACCIONES"
local cDocum := 'CD'   //Por defecto sera comprobantes de diario
local cAlias
local oDoc1,oDoc2,oDoc3,oDoc4,oDoc8, oCol

dbselectarea("comprobd")  //el primer boton es comprobantes de diario
if comprobd->(bof()) .or. comprobd->(eof())
   comprobd->(dbgotop())
endif
cAlias:=Alias()
   
 DEFINE DIALOG oDlg RESOURCE "Grabar2" TITLE cTitulo

  dbselectar(cAlias)

  oLbx := TXBrowse():New( oDlg )
  oLbx:cAlias:=(cAlias)

  oCol = oLbx:AddCol()
  oCol:bStrData = { || DtoC((cAlias)->Fechemis) }
  oCol:nDataStrAlign := 1
  oCol:cHeader = "Fecha"
  oCol:nWidth = 66

  oCol = oLbx:AddCol()
  oCol:bStrData = { || Transform( (cAlias)->NumDoc,"9999999999")  }
  oCol:cHeader = "Documento"
  oCol:nWidth = 70
  oCol:nFootStrAlign := 1

  oCol = oLbx:AddCol()
  oCol:bStrData = { || TRANSFORM((cAlias)->Debe,"@Z 99,999,999,999.99") }
  oCol:nDataStrAlign := 1
  oCol:cHeader = "Debitos"
  oCol:nWidth = 100

  oCol = oLbx:AddCol()
  oCol:bStrData = { || TRANSFORM((cAlias)->Haber, "@Z 99,999,999,999.99") }
  oCol:nDataStrAlign := 1
  oCol:cHeader = "Creditos"
  oCol:nWidth = 100

  oLbx:CreateFromResource(181)
  oLbx:SetRDD()


//Tipo de Documentos
   REDEFINE BTNBMP oDoc1 ID 221 OF oDlg RESOURCE "cdiario"   LEFT 2007  ACTION ( dbSelectArea("comprobd"), cAlias:=Alias(),oLbx:cAlias:=cAlias,oLbx:Refresh(), cDocum := 'CD' )
   REDEFINE BTNBMP oDoc2 ID 222 OF oDlg RESOURCE "RCAJARJ2"  LEFT 2007  ACTION ( dbSelectArea("RecibCaj"), cAlias:=Alias(),oLbx:cAlias:=cAlias,oLbx:Refresh(), cDocum := 'RJ' )
   REDEFINE BTNBMP oDoc3 ID 223 OF oDlg RESOURCE "MINUTAS"   LEFT 2007  ACTION ( dbSelectArea("Minutas"),  cAlias:=Alias(),oLbx:cAlias:=cAlias,oLbx:Refresh(), cDocum := 'MI' )
   REDEFINE BTNBMP oDoc4 ID 224 OF oDlg RESOURCE "CHEQUES"   LEFT 2007  ACTION ( dbSelectArea("cheques"),  cAlias:=Alias(),oLbx:cAlias:=cAlias,oLbx:Refresh(), cDocum := 'CH' )
   REDEFINE BTNBMP oDoc8 ID 228 OF oDlg RESOURCE "SALIR"     LEFT 2007  ACTION ( oDlg:End() )

  ACTIVATE DIALOG oDlg CENTERED  

RETURN NIL
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
James Bott
Posts: 4840
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by James Bott »

Uwe,

Did you also open new indexes with the new database? It looks like there are no indexes open with error you are getting.

James
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by nageswaragunupudi »

XBrowse is designed to switch oBrw:cAlias at runtime any number of times, provided

1) All DBFs should have the same structure and indexes in respect of the fields being browsed. (Fields and indexes not used by browse can be different)

2) Use recommended command syntax to create xbrowse including COLUMNS clause

3) Never refer to the alias directly in your code. If necessary you should use (oBrw:cAlias)

4) Avoid using :AddCol() :InsCol() and deprecated methods like bstrdata
Regards

G. N. Rao.
Hyderabad, India
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

Thank You very much for the infos.

My prg-structure looks nearly the same like Francisco's sample.
The difference : the user opens a DBF ( month-selection 1 - 12 ) I don't know before.
That will switch to a existing DBF or create a new one if not exists.
The created index is a UNIQUE-index and the structure of the month-dbf 1-12 is the same.
I will create a little test with the used prg-structure.
In case it doesn't work, I could move the month-selection to a extra dialog at startup.

best regards
Uwe :?
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: possible xBrowse-refresh with another Dbf ?

Post by ukoenig »

I got it working like

DBSELECTAREA(cUmsName)
REDEFINE XBROWSE oBrw1 ID 110 OF oFld:aDialogs[ 1 ] AUTOSORT FASTEDIT ;
COLUMNS { "NACHNAME", "VORNAME", ;
"KOST_RZH", "KOST_PRI", "KOST_BEI", ;
"KRK", "KRX", ;
"PFK0", "PFX0", "PFK1", "PFX1", "PFK2", "PFX2", "PFK3", "PFX3", ;
"B1X", "PBK", "PBX", "B2X", ;
"PRA", "VPK", "VPX", "PRI", "BERG", "SUMME", "PKT_SUMME" } ;
ALIAS cUmsName UPDATE


and changing from Button :
( inside function STAT_OPEN1 the old DBF is closed and a new workarea is defined )

oBrw1:cAlias := cUmsName // tested before and returns a error
oBrw1:cAlias := Alias() // workes with NO error

@ 5, 160 BTNBMP oBBtn[1] OF oBar ;
SIZE 80, 30 PIXEL ;
BORDER ;
PROMPT " &Jan." ;
FILENAME c_Pfad1 + "Kalender.Bmp" ;
ACTION ( STAT_OPEN1("RECH1"), nPos := 1, ;
oBrw1:cAlias := Alias(), ;
oBrw1:Refresh(), ;

cTitel := "Januar", oTitel1:Refresh() ) LEFT

best regards
Uwe :D
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
Post Reply