O$: "Queue set current field" in complex grid
MARTINK2 at nationwide.com
MARTINK2 at nationwide.com
Fri May 16 13:49:37 EDT 2008
Joe,
I did a little more testing and I believe I found the solution to the
issue I have been having. In looking at your code I saw that you are
using the $first() and $next() list commands. I had mentioned that I have
been using specific list line setting using $line.$assign().
I have a test form where I had tried the $line.$assign() in a very simple
button construct on the test form (button assigns the list line pointer to
a specific line, and then queues the current field). Even in this form, I
could not get the line assignment to change the row in the grid; all I was
getting was the "Queue set current field" portion to work.
After reading your posts and Doug's posts, I decided to try just issuing a
$next() based on the current line of the list/grid to see if I could get
that work. No dice...until I added a window redraw between the line
change method of the list and the Queue set current field command! With
that in place, I can now manipulate movement of the row within the grid at
will!
So, a "nutshell" view of my test code in the button looks like this:
btnTest.$event()
On evClick
Do ilstTest.$line.$assign(2)
Do $cinst.$objs.repTest.$redraw(kTrue,kTrue) ;;repTest is my test
"repeater", or complex grid in Studio terminology
Queue set current field {fldName}
Quit event handler
The $redraw() is the key! Without it in between the other two items, the
visible row pointer within the grid never changes. However, it is highly
likely that it has changed within the list itself and, therefore, any
change made in the cell will actually be made to a list row other than the
one currently displayed within the grid control!
Just an expression of my frustration with some of the internal workings of
Studio, but it seems that if we go to the effort of "binding" a list to a
complex grid, then simple things related to cell pointer movement should
not require us to request a redraw of the object or window. I understand
the thoughts behind selectively redrawing objects or entire windows and
performance issues, as well as the ability to suppress superfluous changes
in a display. However, it seems that having the ability to at least have
an autoredraw property that can be turned on or off selectively would be a
nice improvement. I don't recall seeing this ability anywhere.
Kevin J. Martin
ID-Ten-Tee Software
"Joe Brower" <joebrower3 at comcast.net>
Sent by: omnisdev-en-bounces at lists.omnis-dev.com
05/15/2008 10:32 AM
Please respond to OmnisDev List - English
<omnisdev-en at lists.omnis-dev.com>
From
"Joe Brower" <joebrower3 at comcast.net>
To
"'OmnisDev List - English'" <omnisdev-en at lists.omnis-dev.com>
cc
Subject
RE: O$: "Queue set current field" in complex grid
Kevin,
Here is what I am doing (and what I now have working). This code does
correctly move the line location:
Do iMainList.$first()
While iMainList.$line
If not(len(iMainList.tCharField))
OK message {"Char field is empty. Please re-enter".}
Queue set current field {efCharField} ;; "efCharField" =
$obj().$name
Quit event handler (Discard event)
End If
;
; etc...
;
Do iMainList.$next()
End While
I'm using Studio 3.3 on WinXP SP2, by the way.
HTH,
Joe B.
-----Original Message-----
From: omnisdev-en-bounces at lists.omnis-dev.com
[mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of
MARTINK2 at nationwide.com
Sent: Thursday, May 15, 2008 12:19 PM
To: OmnisDev List - English
Subject: Re: O$: "Queue set current field" in complex grid
Doug,
I have tried this numerous times in a complex grid that is associated with
a list. I have never been able to get the cursor to change line location
by changing the current line in the list (Do
ilstListName.$line.$assign(2), for example). I just tried it again in a
simple test form in Studio 4.2 and got the same results: the grid cursor
does not change rows, although the current field is changed by the "Queue
set current field." What am I missing?
As a result, I wrote my own method set to navigate a complex grid. I use
it with row validation to return the grid cursor to the offending row and
cell that failed validation. I'd welcome a much simpler navigation
method, but I haven't found it yet.
Thanks!
Kevin J. Martin
ID-Ten-Tee Software
_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
More information about the omnisdev-en
mailing list