1. Viktor Genel
  2. PowerBuilder
  3. Tuesday, 28 August 2018 18:17 PM UTC

We have an external datawindow, the appearance of which is controlled by the code. 
Its columns sometimes can be presented as large boxes (200 height, 2000 width).

While scrolling, these fields can be partially hidden behind the bottom border of the datawindow control. 

Here is what happens:
Even though they are editable, they are not clickable. They will not take focus until fully visible. They are not even recognized by the GetObjectAtPointer()
They seem to be not existing to Powerbuilder.

This is very confusing to users. They see the editable fields, but can't enter anything.
Just wondering if anyone encountered this issue.

Thank you.

Olan Knight Accepted Answer Pending Moderation
  1. Tuesday, 28 August 2018 22:00 PM UTC
  2. PowerBuilder
  3. # 1

Ensure that in the code when the column is manipulated, ALSO ensure that the column has a valid
TABSEQUENCE greater than zero.

times 10     <--- easy to use for the taborder of the columns

Then, of course, in the same code where the column is being manipulated ensure that the column is editable.

In the DW Control.ItemFocusChanged event, call     this.BringToTop ().

 

If the column is still partially hidden, then calculate the center of the datawindow, use the properties of the column to scroll the DW so that the column is centered. Then when you call this.BringToTop you should be good.

.Describe("DataWindow.HorizontalScrollPosition")


Lster -

Olan

 

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Tuesday, 28 August 2018 20:05 PM UTC
  2. PowerBuilder
  3. # 2

Hi Viktor;

   This could be a really hard question to answer as I suspect that 99.9% of PB App's do not use this DW approach.

    One suggestion I can make though (other than a redesign of the DWO) is to try the GroupCalc() command after amy DW modifications. Even though any DW may not have any group bands, the GroupCalc() acts like a Redraw(true) to force the DWO to reevaluate itself.

HTH

Regards ... Chris

Comment
  1. Viktor Genel
  2. Wednesday, 29 August 2018 11:03 AM UTC
Thank you guys, I tried these approaches.

The column has the correct taborder.

GroupCalc() is done after all manipulations.

What's happening is:

when scrolling (using mouse wheel for example) the field becomes disabled as soon as a part of it is hidden behind the bottom of the datawindow. If I scroll up (so its fully visible), it becomes enabled.

I think the best way to deal with this is to make the datawindow not show partial rows, in other words to show either the whole row or nothing. We will loose the smoothness of the scrolling, but it's OK.

I'd appreciate any suggestion on how to implement this.

Thanks again!
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.