Browse that scrolls sideways...Yay!!!
Rod Caddy
rcaddy at pro-set.com
Thu Mar 10 05:06:25 PST 2005
John Esak wrote:
> filePro Devotees,
>
> Tony Ryder and I were in the FP Room late last night (pretty much as
> always... :-) and having nothing better to do we worked out some nifty code.
> This little snippet will allow you to scroll a browse window through many
> different views. We took the idea of scrolling left or right and implemented
> as if that was what was actually happening... of course, there is no real
> sideways movement, but for all intents and purposes the user won't know
> that. They'll just think they are scrolling through more fields than were
> previously ever available to them.
>
> I've seen some scrolling browses before, but they were pretty intense
> affairs using waitkey and etc., kind of disallowing the use of other @bk
> keys. This, is different, and (God, dare I say it... a little better)
> because it leaves you full flexibility to continue using all of your other
> browse keys. We've selected (L)eft and (R)ight to implement the motion
> through the views. You can use whatever works for you within the framework
> of your already existing keys.
>
> Have fun with this, PLEASE... It is not put up to offer a code punching bag
> to those of you who can most certainly write it better, more robustly, etc.
> (though we only usually here the claims and never see the actual code...) In
> this case, and perhaps for the future, we can all just accept offerings such
> as this as a "basis" from which to do our own work and enhancements. ... and
> maybe just say Thank You... or offer adjustments, enhancements, opinions in
> a friendly, encouraging, helpful manner instead of what has almost always
> been the case in the past? Maybe?
>
> I, and others, will always try to make these outreaches, but there is going
> to be a time when even the most hearty of us begin to adopt the "Why
> bother..." attitude. This forum is constantly on the brink of being
> value-less to many who read it... for lots of reasons, not just general
> nastiness and flaming... but more because the place gets so Off Topic, and
> almost never focuses on plain old filePro. I mean let me say it directly...
> to ask a question about "Which is the best Linux platform to buy...."
> couched in a "for use with filePro!" wrapper... well, it's why 95% of the
> filePro developers and users have gone far a field from here. Once in
> awhile, those kinds of topics are helpful and beneficial, but the constant
> diet of such things puts most people off. I'm not saying posting actual
> filePro code is a panacea for the problems that ail this forum, but it would
> certainly go a long way to making things better.
>
> So, because sometimes, it is just easier to see an already developed
> starting point... here is one. The colon-delimited version follows at the
> end for cutting and pasting this code directly into your system. Comments,
> questions, ideas all welcomed...
>
>
> Sideways Scrolling a Browse
>
> The example sits in the INPUT table of a header file called "test". It
> browses into a detail file called "tes_det" via index.A in "test_det". The
> key field between the two files is a 6,.0 field. You do not need anything
> more than just one record in "test_det" to try the code out and see what it
> does. Just add a record to "test" with a key of "111111" and a record in
> "test_det" that also has a key field of "111111". (index.A of course). Then
> go into "test" and press the T key for Try. It will be self-explanatory from
> there. Questions, feel free... either here or jump in the room.
> www.tinyurl.com/yuag7
>
>
> 1 Then: end
> @keyT If: '@keyT
> 2 Then:
> 3 Then: viewflag="1"; gosub view_1
> 4 Then: gosub prompt
> browse If:
> 5 Then: lookup det=test_det k=("1") i=A -ng b=(b_cfg & b_hdr & b_data)
> If: @sk eq "BRKY"
> 6 Then: exit
> If: @bk eq "X"
> 7 Then: exit
> If: @bk eq "L" or @bk eq "R"
> 8 Then: gosub bld_brw; goto browse
> 9 Then: goto browse
> bld_brw If: 'bld_brw
> 10 Then:
> If: @bk eq "L"
> 11 Then: viewflag=viewflag - "1"
> If: @bk eq "L" and viewflag eq "0"
> 12 Then: viewflag="3"
> If: @bk eq "R"
> 13 Then: viewflag=viewflag + "1"
> If: @bk eq "R" and viewflag eq "4"
> 14 Then: viewflag="1"
> 15 Then: gosub (viewflag) of view_1, view_2, view_3
> 16 Then: return
> view_1 If: 'view_1
> 17 Then:
> 18 Then: b_cfg="(brw=20 xkey=LRX show=pkeep fill=asc,top)"
> 19 Then: b_hdr="[These are the headings for View-1]"
> 20 Then: b_data="*1 *2 *3"
> 21 Then: return
> view_2 If: 'view_2
> 22 Then:
> 23 Then: b_cfg="(brw=20 xkey=LRX show=pkeep fill=asc,top)"
> 24 Then: b_hdr="[These are the headings for View-2]"
> 25 Then: b_data="*4 *5 *6"
> 26 Then: return
> view_3 If: 'view_3
> 27 Then:
> 28 Then: b_cfg="(brw=20 xkey=LRX show=pkeep fill=asc,top)"
> 29 Then: b_hdr="[These are the headings for View-3]"
> 30 Then: b_data="*7 *8 *9"
> 31 Then: return
> prompt If: prompt
> 32 Then:
> 33 Then: cls("22")
> 34 Then: showctr("22") "Press \r L \reft or \r R \right to scroll
> sideways."
> 35 Then: showctr("24") "Press \r X \r to exit."
> 36 Then: return
> declist If: 'declist
> 37 Then:
> 38 Then: declare viewflag(1,.0)
> 39 Then: declare b_cfg, b_hdr, b_data
>
> ::end:
> @keyT:'@keyT::
> ::viewflag="1"; gosub view_1:
> ::gosub prompt:
> browse::lookup det=test_det k=("1") i=A -ng b=(b_cfg & b_hdr & b_data):
> :@sk eq "BRKY":exit:
> :@bk eq "X":exit:
> :@bk eq "L" or @bk eq "R":gosub bld_brw; goto browse:
> ::goto browse:
> bld_brw:'bld_brw::
> :@bk eq "L":viewflag=viewflag - "1":
> :@bk eq "L" and viewflag eq "0":viewflag="3":
> :@bk eq "R":viewflag=viewflag + "1":
> :@bk eq "R" and viewflag eq "4":viewflag="1":
> ::gosub (viewflag) of view_1, view_2, view_3:
> ::return:
> view_1:'view_1::
> ::b_cfg="(brw=20 xkey=LRX show=pkeep fill=asc,top)":
> ::b_hdr="[These are the headings for View-1]":
> ::b_data="*1 *2 *3":
> ::return:
> view_2:'view_2::
> ::b_cfg="(brw=20 xkey=LRX show=pkeep fill=asc,top)":
> ::b_hdr="[These are the headings for View-2]":
> ::b_data="*4 *5 *6":
> ::return:
> view_3:'view_3::
> ::b_cfg="(brw=20 xkey=LRX show=pkeep fill=asc,top)":
> ::b_hdr="[These are the headings for View-3]":
> ::b_data="*7 *8 *9":
> ::return:
> prompt:prompt::
> ::cls("22"):
> ::showctr("22") "Press \r L \reft or \r R \right to scroll sideways.":
> ::showctr("24") "Press \r X \r to exit.":
> ::return:
> declist:'declist::
> ::declare viewflag(1,.0):
> ::declare b_cfg, b_hdr, b_data:
>
> _______________________________________________
> Filepro-list mailing list
> Filepro-list at lists.celestial.com
> http://mailman.celestial.com/mailman/listinfo/filepro-list
>
>
Thanks, John for all of your comments, and uh... thanks for the code.
;~} ;~}
--
Rod Caddy
Pro-Set Systems
rcaddy at pro-set.com
http://www.pro-set.com
http://www.towtruck2000.com
More information about the Filepro-list
mailing list