Page 1 of 1
Best technic to use the set relation to syntax
Posted: Thu Jan 06, 2022 9:40 am
by Marc Venken
I wonder what the best technic would be in folowing senario....
Small network (4 pc) and a program with 5 folderex folders.
Asume :
Customers basic data
invoices
contactpersons
specific settings
I can set a relation from cusrtomer to each data for filtering the folders. That works.
But... At that point, when i'm in folder 1, the basic and start scrolling for a customer, or a seek every time the set relation for all folders will be updated, so slowing down the basic browse.
How do you guys do this ? Only change the querry at the moment you hit the folder tap ? and not use a relation, but more of a ordscope ?
The relations make it more easy, but slows down, as far as I know the way to program them.
Re: Best technic to use the set relation to syntax
Posted: Thu Jan 06, 2022 10:38 am
by karinha
Have you tried using INDEX ON MEMORY / TEMPORARY?
If you have a little example, it gets easier.
Hugs.
Regards, saludos.
Re: Best technic to use the set relation to syntax
Posted: Thu Jan 06, 2022 11:02 am
by Marc Venken
Index on ...
That is a new idea for this purpose.
I'm expanding the program you and I started ))))). It starts to have potential.
I have to see how to change the code in order to make it with dbf samples from the sample dir, but I asked your mailadres (other post) so I could send the actual dbf's (or a link)
Than you can see where I'm. It will become a invoicing program based on folderex and xbrowse. For the Xbrowse I made a Xbrowse Builder that calls his data from 2 dbf files. Great working for my way of doing )))
This is the code now for callling Xbrowse. One row and all setting, positions, layouts, colors are dbf based.
// Marc, write the code here on the spot.
// FOLDER 2 -----------------------------------------------------------------------------------------------
// 2 browsers on 1 folder
oBrw[2] = getXBrowser("KLANTDOCUMENTEN",oFld:aDialogs[2])
oBrw[6] = getXBrowser("KLANTFACTART",oFld:aDialogs[2])
oBrw[2]:bChange := { || oBrw[6]:refresh() }
// FOLDER 3 -----------------------------------------------------------------------------------------------
oBrw[3] = getXBrowser("KLANTPERSONEN",oFld:aDialogs[3])
// FOLDER 4 -----------------------------------------------------------------------------------------------
oBrw[4] = getXBrowser("FACTUREN",oFld:aDialogs[4])
//StyleBrowse(oBrw[4],{ "factuur","klantnum" },{ "factuur","klantnum" })
Re: Best technic to use the set relation to syntax
Posted: Thu Jan 06, 2022 2:11 pm
by Otto
Marc, would you be so kind to post a screenshot how the program looks like?
Best regards,
Otto
Re: Best technic to use the set relation to syntax
Posted: Fri Jan 07, 2022 9:06 pm
by Marc Venken
Otto wrote:Marc, would you be so kind to post a screenshot how the program looks like?
Best regards,
Otto
Otto,
At this moment it is just the layout like we are talking about here... I first want to have a good XbrowseBuilder with 1 line of code, than I expand to a invoices system because it will need many browsers.
viewtopic.php?f=3&t=41270BTW : Have you a link on how to build those animated postings you guys can do in this forum ?
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 12:14 am
by James Bott
Marc,
How do you guys do this? Only change the query at the moment you hit the folder tab? and not use a relation, but more of an ordscope ?
What you suggest is just not feasible speed wise.
This is what I would do. Show one browse full screen with the customer list. Have a lookup GET on the toolbar to find a specific customer. After the user finds the customer, they double-click on it in the browse. Then a dialog comes up with folders for invoices, contacts, etc.
And yes, I would find related info with scopes, not set relation.
This way the user has access to all the information you want and the program is much faster.
James
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 1:22 am
by Otto
Hello Mark,
I'm not sure I fully understand what you're trying to do.
I have - I think - a similar system. Here is the information in the document name.
I then read the directories into an array with Directory () and filter that array.
I don't think it's slow.
Best regards,
Otto
http://forums.fivetechsupport.com/viewtopic.php?f=3&t=33215&p=211109&hilit=emaildesktop&sid=b3850318df4e3d5aa66ac93d1bca063c&sid=b3850318df4e3d5aa66ac93d1bca063c#p211109
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 9:18 am
by Marc Venken
James,
I also used Ordscopes in my old version, and possible also in the new project.
It was while looking into the Yunus sample that Mr. Rao has used relations. I implemented relations in my first setup ans that is working, but a relation is changing the child database result everytime the parent is moving.
I have to say that in my old version, ordscope is olso changing the child when a move is done in the parent, because there I used the : oChange.... Ordscope syntax.
My original question is that when I don't use the Onchange in the parent, (My child browsers all always on a other foldertab. ) there is no movement while going true the parent.
At the moment I want to see the invoices, I need to click on the Invoice Tab, and THEN I schould Ordcope the data from the folderaction (getfocus) function, so when the invoice tab is shown, the data whill be the scope. Then there will be only 1 scope done.
This make sence right ? Minimal scopes are done...
Good technic ?
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 3:56 pm
by James Bott
Marc,
My original question is that when I don't use the Onchange in the parent, (My child browsers all always on a other foldertab. ) there is no movement while going true the parent.
Yes, that is what you want. Otherwise you are dragging lots of useless data over the LAN each time you move from one customer to the next.
At the moment I want to see the invoices, I need to click on the Invoice Tab, and THEN I schould Ordcope the data from the folderaction (getfocus) function, so when the invoice tab is shown, the data whill be the scope. Then there will be only 1 scope done.
Yes, this will be a lot faster and will reduce the network traffic immensely.
This make sence right ? Minimal scopes are done...
Exactly.
James
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 4:13 pm
by Marc Venken
James,
Also my first class ever used. At this moment I try to get as much as possible systeem var's into this
I have read your papers ))
At the beginning :
Code: Select all | Expand
oMarc:= TMarc():new()
oMarc:aLever = readleveranciers()
CLASS TMarc
DATA aMaanden AS ARRAY INIT {"Jan","Feb","Mrt"}
DATA aDbfVelden AS ARRAY INIT {}
DATA aLever AS ARRAY INIT {}
//DATA aLever AS ARRAY INIT readleveranciers() // Not working
DATA aStates AS ARRAY INIT { { } } // state 0 defined as empty
DATA name INIT "Just a Name"
METHOD NEW
ENDCLASS
METHOD NEW CLASS TMarc
SET AUTORDER TO 1
SET CENTURY ON
SET DATE BRITISH
SET TIME FORMAT TO "HH:MM:SS"
SET EPOCH TO YEAR( DATE() ) - 30
SET SOFTSEEK OFF
SET WRAP ON
SETCANCEL( .F. )
SET CONFIRM OFF
SET DELETED ON
SET _3DLOOK ON
SET UNIQUE OFF
SET ESCAPE OFF
SET EXACT ON
SET EXCLUSIVE OFF
SET MULTIPLE OFF
SET AUTORDER TO 1
define font oFontw name "MS Sans Serif" size 0,-50
RETURN SELF
function ReadLeveranciers() // Just pulling some data into a array
local aDbf := {}
local c, aDir
Minfilesize:= 1
netopen("Lever")
DBEVAL( { || AAdd( aDbf, {FIELD->klant_nr,FIELD->naam_1,FIELD->tag} )} )
ASORT(aDbf, , , { | x,y | x[2] < y[2] } ) // A->Z 2 veld
close lever
return aDbf
When I start the actual work for invoice making : it will become Tdatabase
For now preparing the Browsemaker, some systemtools and thinking of strategy like the post above.
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 6:16 pm
by James Bott
Marc,
When I start the actual work for invoice making : it will become Tdatabase
An invoice is a complex object, as it contains a customer, an invoice header, and invoice line Items, all of which are objects themselves. Then you add methods like oInvoice:Total() and oInvoice:PaymentDueDate(), etc.
Re: Best technic to use the set relation to syntax
Posted: Tue Jan 11, 2022 8:58 pm
by Marc Venken
Indeed,
But you posted several topics and replies on the topics of Tdatabase. We had also several samples, so it is sure possible to get a good start from it.
The nice thing is we can mostly find help in this Forum. At least, I make use of it )))
But I spend a lot of time finding out some fundamentals that I need to understand, so digging in the forum and samples is the way to go.