Using Progress 10.2b how do i get the scroll bar to work correctly

Go To StackoverFlow.com

2

When using a browser in my progress application the scroll bars never work correctly. It will show that I can only scroll down a little but then keeping going. Is this a bug in progress or is there something I can do to fix this problem?

/* Connected Databases 
      sports2000       PROGRESS
*/
&Scoped-define WINDOW-NAME wWin
{adecomm/appserv.i}
CREATE WIDGET-POOL.
{src/adm2/widgetprto.i}
&Scoped-define PROCEDURE-TYPE SmartWindow
&Scoped-define DB-AWARE no
&Scoped-define ADM-CONTAINER WINDOW
&Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
&Scoped-define FRAME-NAME fMain
&Scoped-define BROWSE-NAME BROWSE-2
&Scoped-define INTERNAL-TABLES Order
&Scoped-define FIELDS-IN-QUERY-BROWSE-2 Order.PO Order.OrderDate ~
Order.Ordernum 
&Scoped-define ENABLED-FIELDS-IN-QUERY-BROWSE-2 Order.PO Order.OrderDate ~
Order.Ordernum 
&Scoped-define ENABLED-TABLES-IN-QUERY-BROWSE-2 Order
&Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-BROWSE-2 Order
&Scoped-define QUERY-STRING-BROWSE-2 FOR EACH Order NO-LOCK INDEXED-REPOSITION
&Scoped-define OPEN-QUERY-BROWSE-2 OPEN QUERY BROWSE-2 FOR EACH Order NO-LOCK INDEXED-REPOSITION.
&Scoped-define TABLES-IN-QUERY-BROWSE-2 Order
&Scoped-define FIRST-TABLE-IN-QUERY-BROWSE-2 Order
&Scoped-define OPEN-BROWSERS-IN-QUERY-fMain ~
~{&OPEN-QUERY-BROWSE-2}
&Scoped-Define ENABLED-OBJECTS BROWSE-2 
DEFINE VAR wWin AS WIDGET-HANDLE NO-UNDO.

DEFINE QUERY BROWSE-2 FOR 
  Order SCROLLING.
DEFINE BROWSE BROWSE-2
  QUERY BROWSE-2 NO-LOCK DISPLAY
  Order.PO FORMAT "x(20)":U
  Order.OrderDate FORMAT "99/99/99":U
  Order.Ordernum FORMAT "zzzzzzzzz9":U
  ENABLE
  Order.PO
  Order.OrderDate
  Order.Ordernum
WITH NO-ROW-MARKERS SEPARATORS SIZE 59 BY 8.1 FIT-LAST-COLUMN.
/* ************************  Frame Definitions  *********************** */
DEFINE FRAME fMain
 BROWSE-2 AT ROW 4.81 COL 13 WIDGET-ID 200
WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY 
     SIDE-LABELS NO-UNDERLINE THREE-D 
     AT COL 1 ROW 1
     SIZE 80 BY 17 WIDGET-ID 100.

IF SESSION:DISPLAY-TYPE = "GUI":U THEN
CREATE WINDOW wWin ASSIGN
     HIDDEN             = YES
     TITLE              = "<insert SmartWindow title>"
     HEIGHT             = 17
     WIDTH              = 80
     MAX-HEIGHT         = 28.81
     MAX-WIDTH          = 146.2
     VIRTUAL-HEIGHT     = 28.81
     VIRTUAL-WIDTH      = 146.2
     RESIZE             = no
     SCROLL-BARS        = no
     STATUS-AREA        = no
     BGCOLOR            = ?
     FGCOLOR            = ?
     THREE-D            = yes
     MESSAGE-AREA       = no
     SENSITIVE          = yes.
ELSE {&WINDOW-NAME} = CURRENT-WINDOW.

{src/adm2/containr.i}
IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wWin)
THEN wWin:HIDDEN = yes.
&Scoped-define SELF-NAME wWin
ON END-ERROR OF wWin /* <insert SmartWindow title> */
OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
/* This case occurs when the user presses the "Esc" key.
 In a persistently run window, just ignore this.  If we did not, the
 application would exit. */
IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
END.

ON WINDOW-CLOSE OF wWin /* <insert SmartWindow title> */
DO:
  /* This ADM code must be left here in order for the SmartWindow
     and its descendents to terminate properly on exit. */
  APPLY "CLOSE":U TO THIS-PROCEDURE.
  RETURN NO-APPLY.
END.

&Scoped-define BROWSE-NAME BROWSE-2
&UNDEFINE SELF-NAME

/* ***************************  Main Block  *************************** */

/* Include custom  Main Block code for SmartWindows. */
{src/adm2/windowmn.i}

/* **********************  Internal Procedures  *********************** */

PROCEDURE adm-create-objects :

END PROCEDURE.

PROCEDURE disable_UI :
  /* Delete the WINDOW we created */
  IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wWin)
  THEN DELETE WIDGET wWin.
  IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
END PROCEDURE.


PROCEDURE enable_UI :
  ENABLE BROWSE-2 
      WITH FRAME fMain IN WINDOW wWin.
  {&OPEN-BROWSERS-IN-QUERY-fMain}
  VIEW wWin.
END PROCEDURE.


PROCEDURE exitObject :

  APPLY "CLOSE":U TO THIS-PROCEDURE.
  RETURN.

END PROCEDURE.

When I use a browser like this, I pull the scroll bar down to the bottom then click the down arrow on the scroll bar and there are still rows (even though the scroll bar is at the bottom of the screen).

2012-04-04 20:10
by Bill
Perhaps you could show some sample code - Tom Bascom 2012-04-04 20:17
Thanks, I added some code to my question - Bill 2012-04-05 13:30
Your code doesn't compile. At the very least your "browse-4" query is missing. It would also be best if you provide something that works with the sports or sports2000 database - Tom Bascom 2012-04-05 13:38


3

I reworked your sample code to use the "sports2000" database and I can see what is going on.

define query browse-4 for customer.

DEFINE BROWSE BROWSE-4
QUERY BROWSE-4 NO-LOCK DISPLAY
  custNum name
/* ENABLE name */
WITH NO-ROW-MARKERS SEPARATORS SIZE 32 BY 6.46 FIT-LAST-COLUMN.
.

open query browse-4 preselect each customer no-lock.

enable browse-4.

wait-for window-close of current-window.

The key change is to use PRESELECT in the OPEN QUERY. Otherwise only part of the result set is returned. This is a known feature.

Be careful though -- if your query involves thousands of records PRESELECT isn't going to perform very well. Of course presenting that many records in a UI is probably a bad idea to start with.

2012-04-05 14:01
by Tom Bascom
Ads