bb.donnay-software.com

Donnay Software Web Forums
It is currently Fri Sep 20, 2019 5:50 pm

All times are UTC - 7 hours




Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Wed May 15, 2019 2:43 pm 
Offline

Joined: Sat May 11, 2013 3:46 pm
Posts: 13
I tried Roger's new total, print and Excel options in SqlQuery today. All SqlQuery options are now embedded in my code. I have to say, this is an outstanding tool.

I am about to the point where I am going to display all data to users and let them "work it" to get the data they want using SqlQuery options. This will cut my work time creating custom/user defined reports.

Thanks Roger. Keep new features coming!

Richard


Top
 Profile  
 
PostPosted: Wed May 15, 2019 6:41 pm 
Offline
Site Admin
User avatar

Joined: Wed Jan 27, 2010 6:58 pm
Posts: 3983
Location: Boise, Idaho USA
Richard and I have worked together for months to improve the browsing capabilities of DCBROWSE and DCBROWSECOL.

These features have been added to SqlQuery to improve it as a SQL and ISAM database tool.

Today, we determined that the performance of the browser in SqlQuery is too slow if there are too many
browse columns being created. For example, a database with 100 fields will create 100 browse columns
if using SELECT * (SQL mode) or USE (ISAM mode). I determined that it would be best if only the first 20
columns are created and the remaining are "cached". The user can then choose a column to add to the
browse by selecting one from the cache. Here is how I implemented this feature. it works great!

I Added a new CACHECOLUMN clause to the DCBROWSECOL command. This will not add the column to the
browse until a new method of the DCBROWSE class is called - oBrowse:chooseCachedColumn(GetList)

I also added a new CACHECOLUMNS <nColumns> clause to the DCBROWSE command. This will insure that
columns which have a position greater than <nColumns> will be cached.

If you want to automatically add the next cached column to the browse when the user right-arrows past the
last visible column, simply add the following code to your custom handler. This will also automatically add
columns when the user right-scrolls with the scroll bar past the last column.
Code:
STATIC FUNCTION BrowseHandler( nEvent, mp1, mp2, oXbp, oDlg, GetList, oBrowse )

LOCAL lPan := .f.

IF (oXbp == oBrowse .AND. nEvent == xbeBRW_Pan .AND. ;
      oBrowse:hScrollObject:getData() >= oBrowse:hScrollObject:setRange()[2])
    lPan := .t.
ENDIF
IF lPan .OR. (oXbp == oBrowse .AND. nEvent == xbeP_Keyboard .AND. oBrowse:colPos = oBrowse:colCount)
  oBrowse:nextCachedColumn(GetList)
  IF lPan
    oBrowse:panRight()
  ELSE
    oBrowse:right()
  ENDIF
  oBrowse:forceStable()
  DC_CompleteEvents()
ENDIF

RETURN DCGUI_NONE

This feature can be used in all existing applications.

_________________
The eXpress train is coming - and it has more cars.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group