Re: [U2] Pick Pocket Guide [not-secure]
Only because you mention lawsuit: I recall Pick Systems calling their query language Access, before Microsoft came out with Access. Do I recall correctly? Mark Johnson - Original Message - From: Hennessey, Mark F. mark.hennes...@ct.gov To: U2 Users List u2-users@listserver.u2ug.org Sent: Wednesday, March 24, 2010 12:49 PM Subject: Re: [U2] Pick Pocket Guide [not-secure] Heh - name it Genius and you invite a lawsuit from Apple... -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green Sent: Tuesday, March 23, 2010 4:26 PM To: 'U2 Users List' Subject: Re: [U2] Pick Pocket Guide I say we name it Genius so we can all feel smarter when we go to work! GeniusDB GeniusQuery GeniusCode (Not GeniusBasic that's an oxymoron) Etc. Hey! We've all just been elevated to Genius Programmers! David A. Green (480) 813-1725 DAG Consulting -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of fft2...@aol.com Sent: Tuesday, March 23, 2010 12:42 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Pick Pocket Guide In a message dated 3/23/2010 4:14:07 AM Pacific Daylight Time, br...@brianleach.co.uk writes: So suggestions welcomed. I'm opining that we need a name that is NOT an existing word or acronym of anything else. Something brand new and fresh and unique so no more false positives. Will ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Pick Pocket Guide
Yes, typical Pickie. I had a lot of stuff that I was able to replace. I had some photos that can not be replaced. It has taken me roughly 1 month to get over the anger I had towards those who did this, especially their stupidity in stealing the briefcase thinking it contained a computer. I am not looking for any sympathy or lessons (read: TG). I am just expressing my sadness for my briefcase and hopefully no-one else would have to go through what I have. I had highlighted certain parts of the JES book of it that help me for the more rare commands that aren't typed that often. No-one can memorize all of those options. I have been away from this email for around a week and started to read the replies in reverse date order. I was surprised at how many and how deviated the original thread became. What was a simple request for an extra copy of one of these books became a long winded tired thread regarding what form of MVQL etc should encompass everything etc, etc. This seems to be an annual renaming convention, trying to get all the wagons to circle together. I'm surprised TG hasn't flamed anyone and suggested that it get moved to another thread. I stray one degree off center and he flames me pretty fast. I guess he was going along for this ride as well. Anyway, Gwen has come through (thanks) and I'll be able to get the book back. Mark Johnson - Original Message - From: George Gallen ggal...@wyanokegroup.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Monday, March 22, 2010 8:34 AM Subject: Re: [U2] Pick Pocket Guide You know, this is a true example of a typical pickie. He gets his briefcase stolen, and all he cares about is his Pick manual!! Should be an example to all of ussniff. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of MAJ Programming Sent: Monday, March 22, 2010 12:59 AM To: u2-users@listserver.u2ug.org Subject: [U2] Pick Pocket Guide My briefcase was stolen and in it was one of these small JES Pick Pocket Guides. While I have access to all of the docs I need via the internet, I still refer to this for some efforts. With no distraction, could anyone donate or offer to sell me one of these. I don't recall the vintage of the one I had but it wasn't Microdata (or another flavor) specific. Probably good old solid R90. Thanks in advance, Mark Johnson ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Microdata Conversion
To All: The day is finally approaching. One of my Microdata clients is now wanting to switch to a contemporary platform. Because of being a Microdata, I have a fork in the road: 1) Do I pursue a system that can run in Microdata Flavor, ie Unidata or 2) do I endeavour on the path of either programatically or manually changing the true-PQN procs to more traditional PQ procs to end up on a D3 system. Also, I recall one of my other clients having switched from MCD to UD before me and there must have been a dictionary converter to go from the 10 line items to the 7 line items. That converter put the original 10 line dict (attributed) on line 10 of the new dict item, replacing @am with @vm's. I would like to gather opinions from anyone who has done such a conversion as well as from VAR's that could facilitate either the specific sale and/or the conversion. You may contact me directly at m.john...@jaydeetrucking.com Thanks Mark Johnson ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: *** GMX Spamverdacht *** Re: [U2] DO/WHILE vs IF THEN
Yes. I straddle U2 systems as well as D3, Mvbase and a few natives. Each has their own advanced way of handling READNEXT. Mark - Original Message - From: Mecki Foerthmann mec...@gmx.net To: u2-users@listserver.u2ug.org Sent: Monday, March 30, 2009 2:01 AM Subject: Re: *** GMX Spamverdacht *** Re: [U2] DO/WHILE vs IF THEN have you tried LOOP WHILE READNEXT ID DO ? MAJ Programming wrote: LOOP WHILE READNEXT does not work on D3. Mark Johnson - Original Message - From: Keith Johnson [DATACOM] kei...@datacom.co.nz To: u2-users@listserver.u2ug.org Sent: Monday, March 02, 2009 7:38 PM Subject: Re: [U2] DO/WHILE vs IF THEN Mark Johnson suggested the following change Before GOOD.ANS=FALSE LOOP UNTIL GOOD.ANS DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN GOOD.ANS=TRUE REPEAT after LOOP WHILE TRUE DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT These forms all work (Universe 10.2.0) and are progressively shorter than the above LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N DO REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT Ray Wurlod was a great proponent of the LOOP WHILE READNEXT ID format. I believe it may not compile on some MV systems. Regards, Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] DO/WHILE vs IF THEN
I don't know all of the login parameters but one UV client of mine (on SCO) has a setting that allows the users to remain in lower case on the MS side of things (the more often case setting) and without hitting caps lock, going to UV it's all in upper case as their legacy app and data is (are?). Mark - Original Message - From: Charlie Noah cwn...@comcast.net To: u2-users@listserver.u2ug.org Sent: Monday, March 30, 2009 4:00 AM Subject: Re: [U2] DO/WHILE vs IF THEN Another 2 cents here. If not using a global input routine, I usually use this syntax: LOOP prompt, position cursor, whatever INPUT ANS ANS = UPCASE(ANS) or ANS = OCONV(ANS, 'MCU') if you don't have UPCASE UNTIL ANS MATCHES 'Y]N' DO ] is an actual value mark error message REPEAT Most programmers forget to upcase the input, which frustrates users who just popped back into your application window from Word, Excel or some other Windows program. What a simple thing to do to makes users really happy. Like it, don't like it, it's all the same to me. This thread has certainly shown that there are many ways to skin a cat, but no matter which one you pick, the cat's not going to like it very much. ;-) Best regards and Hi to some very familiar names I haven't corresponded with in a long time, Charlie Noah Inland Truck Parts Company On 3/6/2009 12:02 AM, MAJ Programming wrote: No offense but the FOR...NEXT example for this thread is fools folly. Not because it is wrong. It over complicates the original premise (that was deviated from the original thread. The deviation became ways to validate Y or N. Fair enough and the LOOP examples all participate in a validation pausing until Y or N is entered. But just because the expression can be written in another way, doesn't mean that it's a comparable replacement. In this case, IMHO, it is very distracting. FOR...NEXT sequences automatically imply some form of incrementing through something. Assumption? Yes. But it's 99.44% used for incrementing and not stalling as in your example. Thus, the next programmer who has to read this will be mentally following the code, processing the logic flow and when they see the validation area, they will have to look twice and see why a FOR...NEXT loop is used for validation. Sure, there are many valid ways to skin each cat. But this one is a poor example of validating a Y/N answer. My 2 cents, Mark Johnson PS. The INDEX(YN,ANS,1) has a slight problem as it allows the enter alone answer to pass as a valid answer. I use this all the time when I prompt IS THIS OKAY (Y/N/Enter=Y) :;INPUT ANS. But for a pure Y or N, the null value passes. - Original Message - From: Jacques G. jacque...@yahoo.com To: u2-users@listserver.u2ug.org Sent: Monday, March 02, 2009 8:46 PM Subject: Re: [U2] DO/WHILE vs IF THEN The case can be tested also if n/y are acceptable: LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS,1 UNTIL INDEX('NY',UPCASE(ANS),1) REPEAT *-- P.AM will contain a boolean value 0 for N, 1 for Y --* FOR X = 1 TO (X+1) PRINT ENTER 'Y' OR 'N' :;INPUT ANS,1 FIND UPCASE(ANS) IN N:@AM:Y SETTING P.AM THEN P.AM -= 1 ; EXIT NEXT X - Original Message From: Keith Johnson [DATACOM] kei...@datacom.co.nz To: u2-users@listserver.u2ug.org Sent: Monday, March 2, 2009 7:38:16 PM Subject: Re: [U2] DO/WHILE vs IF THEN Mark Johnson suggested the following change Before GOOD.ANS=FALSE LOOP UNTIL GOOD.ANS DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN GOOD.ANS=TRUE REPEAT after LOOP WHILE TRUE DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT These forms all work (Universe 10.2.0) and are progressively shorter than the above LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N DO REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT Ray Wurlod was a great proponent of the LOOP WHILE READNEXT ID format. I believe it may not compile on some MV systems. Regards, Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] DO/WHILE vs IF THEN
LOOP WHILE READNEXT does not work on D3. Mark Johnson - Original Message - From: Keith Johnson [DATACOM] kei...@datacom.co.nz To: u2-users@listserver.u2ug.org Sent: Monday, March 02, 2009 7:38 PM Subject: Re: [U2] DO/WHILE vs IF THEN Mark Johnson suggested the following change Before GOOD.ANS=FALSE LOOP UNTIL GOOD.ANS DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN GOOD.ANS=TRUE REPEAT after LOOP WHILE TRUE DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT These forms all work (Universe 10.2.0) and are progressively shorter than the above LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N DO REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT Ray Wurlod was a great proponent of the LOOP WHILE READNEXT ID format. I believe it may not compile on some MV systems. Regards, Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] DO/WHILE vs IF THEN
No offense but the FOR...NEXT example for this thread is fools folly. Not because it is wrong. It over complicates the original premise (that was deviated from the original thread. The deviation became ways to validate Y or N. Fair enough and the LOOP examples all participate in a validation pausing until Y or N is entered. But just because the expression can be written in another way, doesn't mean that it's a comparable replacement. In this case, IMHO, it is very distracting. FOR...NEXT sequences automatically imply some form of incrementing through something. Assumption? Yes. But it's 99.44% used for incrementing and not stalling as in your example. Thus, the next programmer who has to read this will be mentally following the code, processing the logic flow and when they see the validation area, they will have to look twice and see why a FOR...NEXT loop is used for validation. Sure, there are many valid ways to skin each cat. But this one is a poor example of validating a Y/N answer. My 2 cents, Mark Johnson PS. The INDEX(YN,ANS,1) has a slight problem as it allows the enter alone answer to pass as a valid answer. I use this all the time when I prompt IS THIS OKAY (Y/N/Enter=Y) :;INPUT ANS. But for a pure Y or N, the null value passes. - Original Message - From: Jacques G. jacque...@yahoo.com To: u2-users@listserver.u2ug.org Sent: Monday, March 02, 2009 8:46 PM Subject: Re: [U2] DO/WHILE vs IF THEN The case can be tested also if n/y are acceptable: LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS,1 UNTIL INDEX('NY',UPCASE(ANS),1) REPEAT *-- P.AM will contain a boolean value 0 for N, 1 for Y --* FOR X = 1 TO (X+1) PRINT ENTER 'Y' OR 'N' :;INPUT ANS,1 FIND UPCASE(ANS) IN N:@AM:Y SETTING P.AM THEN P.AM -= 1 ; EXIT NEXT X - Original Message From: Keith Johnson [DATACOM] kei...@datacom.co.nz To: u2-users@listserver.u2ug.org Sent: Monday, March 2, 2009 7:38:16 PM Subject: Re: [U2] DO/WHILE vs IF THEN Mark Johnson suggested the following change Before GOOD.ANS=FALSE LOOP UNTIL GOOD.ANS DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN GOOD.ANS=TRUE REPEAT after LOOP WHILE TRUE DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT These forms all work (Universe 10.2.0) and are progressively shorter than the above LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N DO REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT LOOP PRINT ENTER 'Y' OR 'N' :;INPUT ANS UNTIL ANS=Y OR ANS=N REPEAT Ray Wurlod was a great proponent of the LOOP WHILE READNEXT ID format. I believe it may not compile on some MV systems. Regards, Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] DO/WHILE vs IF THEN
I should offer a contrary opinion. I support many sets of differently developed code with all my clients. When properly indented, the EXIT is a logical way to conclude the visit in the loop without labeling the REPEAT or introducing other DONE 'style' variables. The code actually shrinks by a few lines. Example: Before GOOD.ANS=FALSE LOOP UNTIL GOOD.ANS DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN GOOD.ANS=TRUE REPEAT after LOOP WHILE TRUE DO PRINT ENTER 'Y' OR 'N' :;INPUT ANS IF ANS=Y OR ANS=N THEN EXIT REPEAT Or my favorite code shrinking syntax: before EOF=0 LOOP READNEXT ID ELSE EOF=0 UNTIL EOF DO {process} REPEAT after LOOP WHILE READNEXT ID DO {process} REPEAT When I see code that has been heavily flagged I have to scratch my head. EXIT and CONTINUE have been around at least as long as U2 has. I know that they weren't there during the Jurrasic Pick era. My 1 cent, Mark Johnson Maybe I follow poor programmers who got flag-crazy. - Original Message - From: David A. Green dgr...@dagconsulting.com To: u2-users@listserver.u2ug.org Sent: Friday, February 27, 2009 1:25 PM Subject: RE: [U2] DO/WHILE vs IF THEN George, In my opinion you lose the elegance and readability of the LOOP construct when you use EXIT. Code is easier to debug and enhance when Loops and Subroutines have one entry and one exit. Thanks, David A. Green www.dagconsulting.com (480) 813-1725 -Original Message- From: owner-u2-us...@listserver.u2ug.org [mailto:owner-u2-us...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Friday, February 27, 2009 9:20 AM To: Ardent Subject: [U2] DO/WHILE vs IF THEN OK Aside from programming styles Is there any functional difference between WHILE expression DOand IF NOT(expression) THEN EXIT and UNTIL expression DOand IF expression THEN EXIT First I thought that the DO/WHILE would activate as soon as the condition occurred and drop out of a loop, but that is not the case, the condition has to be active AND control has to be back at the WHILE statement. Example: 0001: CTR=0 0002: LOOP 0003: CTR=CTR+1 0004: WHILE CTR4 DO 0005: PRINT CTR 0006: CTR=CTR+1 0007: PRINT CTR 0008: CTR=CTR+1 0009: PRINT CTR 0010: CTR=CTR+1 0011: PRINT CTR 0012: CTR=CTR+1 0013: PRINT CTR 0014: CTR=CTR+1 0015: PRINT CTR 0016: CTR=CTR+1 0017: PRINT CTR 0018: REPEAT 0019: STOP 0020: END My first thought was that once CTR = 5, the loop would end (at LINE 12) but it didn't until control was passed back to LINE 4, then it ended. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Need help with SELECT limiting MV
BTW this is a 30+ year old issue and combining the fields has always been the answer. - Original Message - From: Noah Hart n...@lipmantpa.com To: u2-users@listserver.u2ug.org Sent: Tuesday, February 17, 2009 1:26 PM Subject: [U2] Need help with SELECT limiting MV I have a table with a MV status code and date field. I am trying to select just those records that have both status code A and B and when the date associated with code B is blank I tried SELECT TAB WITH STATUS = A AND STATUS = B AND ST_DATE = But this will select records which might have a blank date for status C I see the data properly with a LIST WHEN command, but I want the matching @IDs in a list LIST TAB WITH F2 = A WHEN F2=B AND F3= F1 F2 F3 There must be a simple way to do this, but I'm just not getting it. Ideas? Thanks, Noah CONFIDENTIALITY NOTICE: This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Speeding up processing through large dynamic table
This may have been offered but I didn't see it in the replies: If you have half an idea on the max num of atts, try using DIM X(30) or some large number and simply FOR.NEXT your way thru until you get to a logical end like a null value. I digest EDI records often in the neighborhood of 200,000 rows or more this way. Mark Johnson - Original Message - From: Colin Alfke [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 17, 2008 4:24 PM Subject: RE: [U2] Speeding up processing through large dynamic table Oh my - I'm not sure with all that swapping that you'll come out much ahead. You're missing the point of remove. If your array is well built your code simply becomes: LOOP REMOVE CUST.NUM FROM IN.TAB SETTING MARK REMOVE CUST.DESC FROM IN.TAB SETTING MARK (do your thing) WHILE MARK DO REPEAT If you do have to worry about having more attributes or sub-values in the array then you need to test the MARK variable after each remove and keep removing until the line is exhausted. Here is how MARK (delimiter) is set: Delimiter Code Description ASCII Value* 0 array end 1 record mark 255 2 attribute mark 254 3 value mark 253 4 subvalue mark 252 5 text mark 251 6 not used; nonprinting 250 7 not used; nonprinting 249 Someone else sent an example of how to keep checking MARK so I won't bother. You could even throw it in a subroutine to keep your processing clean. Hth Colin Alfke Calgary, Canada -Original Message- From: Dave Laansma That is what I was afraid of. Okay. So after listening to all of your comments (thus far since there is an annoying delay in these messages), here is what I like the best: SWAP CHAR(9) WITH IN IN.TAB SWAP CHAR(10) WITH IN IN.TAB SWAP @VM WITH CHAR(9) IN IN.TAB SWAP @SM WITH CHAR(10) IN IN.TAB REPEAT REMOVE IN.LINE FROM IN.TAB SETTING MARK SWAP CHAR(9) WITH @VM IN IN.LINE SWAP CHAR(10) WITH @SM IN IN.LINE (do my thing with IN.LINE) UNTIL MARK DO REPEAT Any objections, concerns or better suggestions for using CHAR(10) as the temporary substitute for the @SM? I just picked it because it came right after CHAR(9) on my handy-dandy ASCII chart! Been using it since the 70's. Some things just never go out of style! David Laansma -Original Message- From: David Wolverton If you don't want to 'swap' all the other markers with 'strings' (SWAP @VM WITH VM IN RECORD) then you have to 'build' the line item up -- keep removing until you see the remove hit the @AM and then process the line... DW --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Automatic Invoice - PO Matching Software
This sounds like some format of EDI, whereby either the fields are mapped programmatically or there are published standards (214's etc) that both sides can follow. IMHO even with EDI being in the US for the last 20+ years, it still usually comes down to manual programming. At least that's my experience for the last 2 decades with the roughly 40 EDI imports/exports that I've worked with. First you would need to identify some third-party 'standards', ie the data facilitators, then look to existing MV code from there. My 2 cents, Mark Johnson - Original Message - From: Morawa, Hans [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 17, 2008 5:28 AM Subject: RE: [U2] Automatic Invoice - PO Matching Software Hi Tony, To put my enquiry into perspective I simply looking for a electronic invoice processing system. The product needs to able to scan invoices regardless how they are delivered, whether they arrive electronically, or by fax or by email or mail, and then automatically match them to purchase orders based on captured information. This product needs to be able to integrate seamlessly with UniVerse. Regardless of how invoices are delivered they all need to be handled in the same way. There are products out there servicing the SAP and Oracle systems of the world and I'm looking for similar functionality without having a massive issue of integrating it with UniVerse. Hence my question to our fellow list members. Cheers, Hans -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tony G Sent: Monday, 17 November 2008 6:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Automatic Invoice - PO Matching Software From: Hans Morawa We are looking for a electronic invoice processing system that matches invoice with purchase orders automatically and works on/or with a UniVerse platform and is available in Australia. ( Really hoping I'm not missing something obvious. *gulp* ) Hans, I don't understand the request. Are you looking for bar coding or image processing so that you can scan documents and have them match up with other documents? Can you give us an example of your business flow so that we can recommend something that fits? Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET and other Pick/MultiValue products worldwide, and provides related development and training services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ _ This e-mail has been scanned for viruses by MessageLabs. --- This email and any files transmitted with it are confidential to the intended recipient and may be privileged. If you have received this email inadvertently or you are not the intended recipient, you may not disseminate, distribute, copy or in any way rely on it. Further, you should notify the sender immediately and delete the email from your computer. Whilst we have taken precautions to alert us to the presence of computer viruses, we cannot guarantee that this email and any files transmitted with it are free from such viruses. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] SELECT-READNEXT That's odd
I don't know all of the settings within U2 vs other MV platforms but one thing that was tricky for me straddling both is the concept that items from one active list remain despite a conclusion of the use of that list. Case in point is a SSELECT statement feeding IDS to a Data/Basic report program to the screen and the user types Q before all the IDS are consumed. I learned CLEARSELECT does what its name implies. This may also prevent any remaining IDS from an incomplete readnext cycle from being the preliminary IDS for the next SELECT statement. One workaround that I've incorporated within U2 and other platforms is my GET.IDS(TCL, IDS) subroutine. There, the sub retrieves ALL of the IDS (attributingly), thus consuming the active list that the TCL statement created (SSELECT, QSELECT, GET-LIST etc). Also, my sub GET.IDS can have any flavor differences between cycling through readnexts concluded once instead of for every use. I've been flamed that this is not good for massive amounts of processing as IDS would grow large.Agreed, but for many, many TCL statements returning a handful of IDS, it's great as the entire READNEXT construct is exercised. Also for any newbies watching. Do not put DCOUNT as the second value in a FOR...NEXT Loop. Assign it once prior to the FOR statement and the loop will be faster. MAX=DCOUNT(WORK.ITEM.REC17,VM) FOR I=1 TO MAX My 2 cents Mark Johnson - Original Message - From: Jef Lee [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 14, 2008 2:39 AM Subject: [U2] SELECT-READNEXT That's odd One of our programmers wrote this snippet: FOR YY=1 TO DCOUNT(WORK.ITEM.REC17,VM) LISTNUMBER='' SQLCOMMAND='' UNISTATEMENT='SELECT BPM.WORKITEMS WITH A1=':WORK.ITEM.REC1:' AND WITH A2=':WORK.ITEM.REC2:' AND WITH A17=':WORK.ITEM.REC17,YY:' AND WITH A24#C AND WITH A24#R AND WITH A24#F' *MY.REC1=UNISTATEMENT CALL SR.EXECUTESQL(LISTNUMBER,UNISTATEMENT,SQLCOMMAND) READNEXT DEPENDANT.ID ELSE * NO ACTIVE ITEMS LEFT I NEED TO UPDATE THE STATUS OF THE DEPENDANT TASK CALL SR.READSQL('BPM.WORKITEMS',DEP.TASK.REC,WORK.ITEM.REC17,YY,'') DEP.TASK.REC24='A' DEP.TASK.REC8=DATE() DEP.TASK.REC9=TIME() CALL SR.WRITESQL('BPM.WORKITEMS',DEP.TASK.REC,WORK.ITEM.REC17,YY) END NEXT YY The FOR loop has 2 values to iterate, so it does 2 loops. The function SR.EXECUTESQL()does the SELECT call. Loop 1 returns 2 keys found. Loop 2 returns 0 keys found. What's odd is that the select list is empty on loop iteration 2 and the READNEXT is populated the ID with the second key from the first iteration. I looked in the help PDFs and all I found was a reference to a corrected error relating to memory not being released if the READNEXT did not exhaust the SELECT list. Any thoughts? We have since changed our strategy to check the count returned instead. But it would be nice to know that others have encountered this as well. Jeffrey Lee Senior Analyst/Programmer IT Vision Australia Pty Ltd (ABN: 34 309 336 904) PO Box 881, Canning Bridge WA 6153 Level 3, Kirin Centre, 15 Ogilvie Road, Applecross, WA, 6153 P: (08) 9315 7000F: (08) 9315 7088 W: http://www.itvision.com.au ___ NOTICE : This e-mail and any attachments are intended for the addressee(s) only and may contain confidential or privileged material. Any unauthorised review, use, alteration, disclosure or distribution of this e-mail (including any attachments) by an unintended recipient is prohibited. If you are not the intended recipient please contact the sender as soon as possible by return e-mail and then delete both messages. ___ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] SELECT-READNEXT That's odd
I would have to challenge the concept of putting the DCOUNT as the first value and counting backwards. 99% of the time FOR..NEXT loops start at 1 and go to some end. We assume that there's a test for surpassing the second variable at each iteration of FOR. But is the first variable touched only once and not again. If it's touched for each iteration, then DCOUNT anywhere is excessive. If it is only the first pass and only when working backwards, then it's too awkward and the more readable code would be to assign it and not have it derived per iteration, stepping in either direction. While noble and accurate, saving one variable when so many programmers have zillions of variables anyway would amount to much savings. My 2 cents. Mark Johnson - Original Message - From: Edward Brown [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 14, 2008 12:05 PM Subject: RE: [U2] SELECT-READNEXT That's odd Hey, save the variable by looping backwards - if the code in the loop allows it, of course... FOR A = DCOUNT(WORK.THINGY,VM) TO 1 STEP -1 code NEXT A -Original Message- Also for any newbies watching. Do not put DCOUNT as the second value in a FOR...NEXT Loop. Assign it once prior to the FOR statement and the loop will be faster. MAX=DCOUNT(WORK.ITEM.REC17,VM) FOR I=1 TO MAX My 2 cents Mark Johnson - Original Message - From: Jef Lee [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 14, 2008 2:39 AM Subject: [U2] SELECT-READNEXT That's odd One of our programmers wrote this snippet: FOR YY=1 TO DCOUNT(WORK.ITEM.REC17,VM) LISTNUMBER='' SQLCOMMAND='' UNISTATEMENT='SELECT BPM.WORKITEMS WITH A1=':WORK.ITEM.REC1:' AND WITH A2=':WORK.ITEM.REC2:' AND WITH A17=':WORK.ITEM.REC17,YY:' AND WITH A24#C AND WITH A24#R AND WITH A24#F' *MY.REC1=UNISTATEMENT CALL SR.EXECUTESQL(LISTNUMBER,UNISTATEMENT,SQLCOMMAND) READNEXT DEPENDANT.ID ELSE * NO ACTIVE ITEMS LEFT I NEED TO UPDATE THE STATUS OF THE DEPENDANT TASK CALL SR.READSQL('BPM.WORKITEMS',DEP.TASK.REC,WORK.ITEM.REC17,YY,'') DEP.TASK.REC24='A' DEP.TASK.REC8=DATE() DEP.TASK.REC9=TIME() CALL SR.WRITESQL('BPM.WORKITEMS',DEP.TASK.REC,WORK.ITEM.REC17,YY) END NEXT YY The FOR loop has 2 values to iterate, so it does 2 loops. The function SR.EXECUTESQL()does the SELECT call. Loop 1 returns 2 keys found. Loop 2 returns 0 keys found. What's odd is that the select list is empty on loop iteration 2 and the READNEXT is populated the ID with the second key from the first iteration. I looked in the help PDFs and all I found was a reference to a corrected error relating to memory not being released if the READNEXT did not exhaust the SELECT list. Any thoughts? We have since changed our strategy to check the count returned instead. But it would be nice to know that others have encountered this as well. Jeffrey Lee Senior Analyst/Programmer IT Vision Australia Pty Ltd (ABN: 34 309 336 904) PO Box 881, Canning Bridge WA 6153 Level 3, Kirin Centre, 15 Ogilvie Road, Applecross, WA, 6153 P: (08) 9315 7000F: (08) 9315 7088 W: http://www.itvision.com.au ___ NOTICE : This e-mail and any attachments are intended for the addressee(s) only and may contain confidential or privileged material. Any unauthorised review, use, alteration, disclosure or distribution of this e-mail (including any attachments) by an unintended recipient is prohibited. If you are not the intended recipient please contact the sender as soon as possible by return e-mail and then delete both messages. ___ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- - Please remember to recycle wherever possible. Reduce, reuse, recycle, think do you need to print this e-mail? -- - This e-mail and any attachment(s), is confidential and may be legally privileged. It is intended solely for the addressee. If you are not the addressee, dissemination, copying or use of this e-mail or any of its content is prohibited and may be unlawful. If you are not the intended recipient please inform the sender immediately and destroy the e-mail, any attachment(s) and any copies. All liability for viruses is excluded to the fullest extent permitted by law. It is your responsibility to scan or otherwise check
Re: [U2][UV] EQUATEs Using System Delmiiters
Whether you make sense to us is secondary. Basically, questions like this just offer another perspective and second view of a not-normal situation and to cover all the bases. WE don't have to understand. We're just offering second opinions that may solve or validate your opinions/conclusions. Mark Johnson - Original Message - From: Perry Taylor [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, October 11, 2008 11:46 PM Subject: RE: [U2][UV] EQUATEs Using System Delmiiters The requirement is for up to 1000 or so arrays which are used only within the subroutine. If they are assigned upon entry each variable has to have memory setup and the values have be contatenated and stored in the variables. I could put them in named common and only initialize them once but still the overhead exists for the one-time initialization. If the values are EQUates the concatenation is accomplished at compile time and the only overhead is the object code load when the subroutine is called. Am I making sense? Perry -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: Saturday, October 11, 2008 12:12 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2][UV] EQUATEs Using System Delmiiters I too was going to ask why not a regular variable? What does that mean, overhead of setting up the variables. Is this item passed thru the subroutine either directly or indirectly or is it equated in both the sub and the calling program. Thanks in advance for the explanation. Mark Johnson - Original Message - From: Perry Taylor [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, October 06, 2008 10:27 PM Subject: RE: [U2][UV] EQUATEs Using System Delmiiters The parentheses do the trick! Thanks to everyone. BTW... The reason I don't want to use variables is this is going in a subroutine and I don't want the overhead of setting up the variables when it is called. Thanks again! Perry -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Womack, Adrian Sent: Monday, October 06, 2008 6:45 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2][UV] EQUATEs Using System Delmiiters Try putting parentheses around the expression: eg. EQU MX TO ('ABCD':@AM:'EFGH') That will cause each of the functions to operate on the whole string rather than on a single element of the string. Although something strange is obviously going wrong. I would have expected the operations to affect just the last portion (EFGH) but it seems to be affecting the first portion. Why use EQUATE anyway in this case, you'd be better of just assigning a variable. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Perry Taylor Sent: Tuesday, 7 October 2008 4:06 AM To: U2-Users List Subject: [U2][UV] EQUATEs Using System Delmiiters I'm trying to use EQUates to setup static arrays in a BASIC program but am getting strange results. The UniVerse BASIC manual says you can use any valid BASIC expression as an object to the symbol. However when I try to create an array with... EQU MX TO 'ABCD': @AM: 'EFGH' ... I get strange results. Consider the following code... -- EQU MX TO 'ABCD': @AM: 'EFGH' CRT CRT 'MX=': MX LC = LEN(MX) CRT CRT 'LEN(MX)=': LC CRT FOR NC = 1 TO LC CRT 'SEQ(MX[': NC: ', 1])=':SEQ(MX[NC, 1]) NEXT NC CRT LAMC = DCOUNT(MX, @AM) CRT CRT 'DCOUNT(MX, @AM)=': LAMC CRT FOR AMC = 1 TO LAMC CRT 'MX': AMC: '=': MXAMC NEXT AMC -- When I run this code in a Pick-flavored account I get the following results... -- MX=ABCD~EFGH LEN(MX)=9 SEQ(MX[1, 1])=65 SEQ(MX[2, 1])=65 SEQ(MX[3, 1])=65 SEQ(MX[4, 1])=65 SEQ(MX[5, 1])=65 SEQ(MX[6, 1])=65 SEQ(MX[7, 1])=65 SEQ(MX[8, 1])=65 SEQ(MX[9, 1])=65 DCOUNT(MX, @AM)=2 MX1=ABCD~EFGH MX2=ABCD~ -- What am I missing here? Thanks. Perry Taylor Zirmed, Inc. UniVerse 10.1.21/RHEL3 CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. ZirMed, Inc. has strict policies regarding the content of e-mail communications, specifically Protected Health Information, any communications containing such material will be returned to the originating party with such advisement
Re: [U2][UV] EQUATEs Using System Delmiiters
I too was going to ask why not a regular variable? What does that mean, overhead of setting up the variables. Is this item passed thru the subroutine either directly or indirectly or is it equated in both the sub and the calling program. Thanks in advance for the explanation. Mark Johnson - Original Message - From: Perry Taylor [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, October 06, 2008 10:27 PM Subject: RE: [U2][UV] EQUATEs Using System Delmiiters The parentheses do the trick! Thanks to everyone. BTW... The reason I don't want to use variables is this is going in a subroutine and I don't want the overhead of setting up the variables when it is called. Thanks again! Perry -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Womack, Adrian Sent: Monday, October 06, 2008 6:45 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2][UV] EQUATEs Using System Delmiiters Try putting parentheses around the expression: eg. EQU MX TO ('ABCD':@AM:'EFGH') That will cause each of the functions to operate on the whole string rather than on a single element of the string. Although something strange is obviously going wrong. I would have expected the operations to affect just the last portion (EFGH) but it seems to be affecting the first portion. Why use EQUATE anyway in this case, you'd be better of just assigning a variable. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Perry Taylor Sent: Tuesday, 7 October 2008 4:06 AM To: U2-Users List Subject: [U2][UV] EQUATEs Using System Delmiiters I'm trying to use EQUates to setup static arrays in a BASIC program but am getting strange results. The UniVerse BASIC manual says you can use any valid BASIC expression as an object to the symbol. However when I try to create an array with... EQU MX TO 'ABCD': @AM: 'EFGH' ... I get strange results. Consider the following code... -- EQU MX TO 'ABCD': @AM: 'EFGH' CRT CRT 'MX=': MX LC = LEN(MX) CRT CRT 'LEN(MX)=': LC CRT FOR NC = 1 TO LC CRT 'SEQ(MX[': NC: ', 1])=':SEQ(MX[NC, 1]) NEXT NC CRT LAMC = DCOUNT(MX, @AM) CRT CRT 'DCOUNT(MX, @AM)=': LAMC CRT FOR AMC = 1 TO LAMC CRT 'MX': AMC: '=': MXAMC NEXT AMC -- When I run this code in a Pick-flavored account I get the following results... -- MX=ABCD~EFGH LEN(MX)=9 SEQ(MX[1, 1])=65 SEQ(MX[2, 1])=65 SEQ(MX[3, 1])=65 SEQ(MX[4, 1])=65 SEQ(MX[5, 1])=65 SEQ(MX[6, 1])=65 SEQ(MX[7, 1])=65 SEQ(MX[8, 1])=65 SEQ(MX[9, 1])=65 DCOUNT(MX, @AM)=2 MX1=ABCD~EFGH MX2=ABCD~ -- What am I missing here? Thanks. Perry Taylor Zirmed, Inc. UniVerse 10.1.21/RHEL3 CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. ZirMed, Inc. has strict policies regarding the content of e-mail communications, specifically Protected Health Information, any communications containing such material will be returned to the originating party with such advisement noted. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ DISCLAIMER: Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] [Employment Seeked] New York City Area or remote
I interviewed Peter for one of my clients and found him to be quite capable and well versed in his areas of Pick and business experience. FWIW. Mark Johnson - Original Message - From: Allen E. Elwood [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, September 29, 2008 8:59 PM Subject: RE: [U2] [Employment Seeked] New York City Area or remote I'm not an English major, but shouldn't it be 'employment sought?' http://dictionary.reference.com/browse/sought -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Peter S. Goldberger Sent: Monday, September 29, 2008 16:46 To: u2-users@listserver.u2ug.org Subject: [U2] [Employment Seeked] New York City Area or remote I have over 22 years of Senior programming experience with most flavors of Pick and I have directed IT departments for companies in the manufacturing, importing and distribution industries. I am willing to commute 1 to 1 1/2 hours from New York City or telecommute for full or short-term/part-time position. Contact me at [EMAIL PROTECTED] for resume and references. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] [UV] Editing Paired Value Marks - Victory
I'm surprised at the attention this thread caused. Could the following have worked on UV or UD. Works everywhere else. SELECT FILE WITH F1 = '[]' where single quotes bound the double quote bounded by square brackets. This has worked since day #1 over 30 years ago. My [1] cent Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, August 13, 2008 2:04 PM Subject: RE: [U2] [UV] Editing Paired Value Marks - Victory Thanks to those who responded. Using AE I was able to do a... 1: C/Sales.Order.ID^253/Sales.Order.ID --Bill --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] [UV] Editing Paired Value Marks - Victory
shameless ad for Accuterm Accuterm's WED shows 253's and 252's as regular editable characters. /ad Plus all non UV/UD original Pick EDitors allow Shift-] or Shift-\ or Ctrl-shift-^ for 253, 252 and 254 respectively. Again, since day #1. My [1] cent Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, August 13, 2008 2:04 PM Subject: RE: [U2] [UV] Editing Paired Value Marks - Victory Thanks to those who responded. Using AE I was able to do a... 1: C/Sales.Order.ID^253/Sales.Order.ID --Bill --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniData PROC tip: DB command
Martin: These are some holy grails that would be wonderful if found. One client of mine that was on Results (Microdata) then Universe and is now on D3, still has the original Results PQN procs. Fortunately those procs did not use the extended , # and ! variable nomenclature but use the % nomenclature very often. Their solution attacked the MV command in this way: Original: MV %1 Mark New: HMV %1 Mark P whereby they had created a program called MV that would interpret the request. It uses PROCREAD/WRITE. The downside is that this databasic program could not interpet MV 1.4 %10 or MV #1 SORT MD as it had no access to those buffers. So one small step for mankind. Regarding A correlatives to I Descriptors. One of my clients uses Media Services Group's Advertising billing system and from the looks of the code, it used to be on R90 then Universe then now on Unidata. All of the dictionary items that used to be A correlatives had gone through a conversion utility to create the I descriptors. That utility saved on line 10 the original 10 line R90 dict item using IIRC value marks. Thus, the original dict item (for me to more easily understand) exists on the ignored line 10. I never got good at the interpreted version of I descriptors (NEQS, EQS and the nested command structure) so I assumed that the conversion was okay. I write CALL I descriptors if the dict item gets busy. I will offer this though. As a straight programmer for individual clients (not a VAR, reseller or employee at one location), it may not be worth it to 'fix what ain't broke' regarding replacing their working procs with all data/basic. But I think it would be a matter of uniformity and forward compliance for those VAR, reseller or employee-level members of this forum to engage in the project of replacing procs with programs. For the VAR's, it would be a continued investment in their product. For the employees, it would remove one of the legacy entities that may become harder to find younger programmers who can (or want to) understand Procs beyond the bvious jobstreams. My 3 cents Mark Johnson - Original Message - From: Martin Phillips [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, August 01, 2008 2:56 PM Subject: Re: [U2] UniData PROC tip: DB command Hi, The man (person) who writes a PROC interpreter/conversion utility that can take a PROC and turn it into either Basic, or a PAragraph, will have a product to sell... esp. if it can decipher all the PROC nuances and tricks that have been introduced over the years. Back in the days when I was working on the development of PI/open, I had a go at this. It is not difficult to produce Basic code that does the same job as the Proc but producing good code rather than a simple step by step interpretation of the Proc is difficult. Also, there are some strange interactions between Procs and the underlying command environment that are different from how Basic programs work so you can never get a true replacement. Same goes for a tool to convert A correlatives to I-descriptors. This is relatively easy. If you think there is a market, we might even do it. We looked at this as part of the migration process for users moving to OpenQM but we chose to implement correlatives instead as it was easy. Ours are compiled (like an I-type) rather than interpretive for best performance so actually the task of writing the convertor is probably little more than ripping apart our existing correlative compiler. But pity the wretch that is assigned the task of writing the tool to convert F correlatives. This is probably easier than A correlatives. Again, if there is a real market that would pay a sensible price for it, we might do it. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB +44-(0)1604-709200 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniData PROC tip: DB command
In my decades of MV programming, the manuals have gotten more scarce. I recall the original Microdata manuals being pretty good but not perfect enough. Thus JES was borne with their 'Pocket Guides' and other training periphery. I have total dislike for the UV/UD manuals as they break up the commands by their stolen names for the obvious. UniBasic, UniQuery and ECL etc clearly have their roots as Data/Basic, English and TCL. Plus many commands are somewhat ambiguous and until recently, you struggle to determine which specific book to pick up to review its index to find the topic. MVBase is similar. At least the D3 manual had one single index so that SYSTEM (as a file name) is right next to SYSTEM() as a basic function and you can go from there. Nowadays, it should be easier and kept up to date far more easily with on-line docs. In the big picture, programmer's documentation can't be that much of a profit center so the principals may not want to invest too heavily there. A lot of this stagnation helps me believe that there is no future development on the database side, just rather keeping the flame and putting out fires (bugs). One could argue that since there is no real advancing of Proc (or other areas in the MV database) that the last real documentation (circa 1992?) may be all that we need. If you lived through it, as I and many have, then it's burned in our brains. If one is a new person to Pick, then there's the rub to rely on oldies like me or forums or other folklore. In a 'chicken and egg' situation, we should rely on each other and the forums for more real-world experience with the subtle nuances of these systems. I would bet that the vars like IBM and Raining Data (I know, TL) appreciate the relief of not having to spend $ on supporting the past. My free cents, Mark Johnson - Original Message - From: Susan Lynch [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, August 02, 2008 1:46 PM Subject: Re: [U2] UniData PROC tip: DB command Mark, A simple alternative to the proc-to-Basic convertor would be manuals - if IBM would publish Proc and Paragraph manuals with the same level of completeness that the Basic Reference manual has, there would be far less frustration for the inheriting programmers. I 'grew up' on Microdatas and Ultimates and Fujitsus and Sequoias and GA boxes, and never worked with anyone who used Paragraphs until my current position. Now, not only are there no Proc manuals (and procs behave somewhat differently than expected from my past experience), but the Paragraph documentation does not come anywhere near the level of complexity in the Paragraphs that I am supporting, and I find myself frequently wondering what patches of Paragraph code is doing. Why are we dependant on oral tradition (or threads like this) rather than manuals for coding tools that are still functional? Susan Lynch F.W. Davison Company, Inc. - Original Message - From: MAJ Programming [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: 08/02/2008 12:57 PM Subject: Re: [U2] UniData PROC tip: DB command Martin: These are some holy grails that would be wonderful if found. One client of mine that was on Results (Microdata) then Universe and is now on D3, still has the original Results PQN procs. Fortunately those procs did not use the extended , # and ! variable nomenclature but use the % nomenclature very often. Their solution attacked the MV command in this way: Original: MV %1 Mark New: HMV %1 Mark P whereby they had created a program called MV that would interpret the request. It uses PROCREAD/WRITE. The downside is that this databasic program could not interpet MV 1.4 %10 or MV #1 SORT MD as it had no access to those buffers. So one small step for mankind. Regarding A correlatives to I Descriptors. One of my clients uses Media Services Group's Advertising billing system and from the looks of the code, it used to be on R90 then Universe then now on Unidata. All of the dictionary items that used to be A correlatives had gone through a conversion utility to create the I descriptors. That utility saved on line 10 the original 10 line R90 dict item using IIRC value marks. Thus, the original dict item (for me to more easily understand) exists on the ignored line 10. I never got good at the interpreted version of I descriptors (NEQS, EQS and the nested command structure) so I assumed that the conversion was okay. I write CALL I descriptors if the dict item gets busy. I will offer this though. As a straight programmer for individual clients (not a VAR, reseller or employee at one location), it may not be worth it to 'fix what ain't broke' regarding replacing their working procs with all data/basic. But I think it would be a matter of uniformity and forward compliance for those VAR, reseller or employee-level members of this forum to engage
Re: [U2] UniData PROC tip: DB command
I first ran into Execute on an Ultimate. If I recall correctly, it may have been 1983? I agree that Proc is dead and should be retired/replaced. But since it's still there, it can't fully disappear. I have been often labeled a PROCtologist by accidentally becoming very good with Procs back in the day. Unfortunately there is no clear simple replacement and/or 'replacement over time' that occurs when replacing F corelatives with A's or retiring Batch processes. Mark Johnson - Original Message - From: Clifton Oliver [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, August 01, 2008 12:05 AM Subject: Re: [U2] UniData PROC tip: DB command Just as a point of history, EXECUTE was invented by the Devcom team who wrote what became Prime INFORMATION. Our in-house motto was PROCs are Crocks. Regards, Clif On Jul 31, 2008, at 8:22 PM, MAJ Programming wrote: Microdata advanced PQ proc to PQN while regular Pick was advancing with EXECUTE. IMHO, EXECUTE won and Microdata faded into the sunset. (They had a few other programming shortcomings that are clearly deficient by comparison today). --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniData PROC tip: DB command
What is the point of this PROC dissertation. If it was for us die-hards, then we already know this. If it's for the newbies, then it would/should/could scare the hell out of them. Since you brought it up, you forgot the ( command, the [ command, the GSUB command, the RTN command, the '[] nnn' command, the concatenate with the MV command, the multiple MV command, and the whole boatload of user-exits with their cryptic syntax. Also is pattern matching in IF commands, different IF commands, multiple statement separators, multiple answer separators, ICONV and OCONV, IH, L and the A5 command. I use PQN proc (nee Microdata) every week with a true Microdata client and often with a UD client with some Microdata switch turned on. Microdata advanced PQ proc to PQN while regular Pick was advancing with EXECUTE. IMHO, EXECUTE won and Microdata faded into the sunset. (They had a few other programming shortcomings that are clearly deficient by comparison today). My %2 cents Mark Johnson - Original Message - From: John Jenkins [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, July 31, 2008 7:27 PM Subject: RE: [U2] UniData PROC tip: DB command And a few more PROC commands for the die-hards: (I love them ! (sorry Wally !!) (from memory - I think I got it OK) BTW: H = Hollerith O=Output literal display text that follows Sn -set input buffer position to n (no blanks allowed in most flavours - a bit like var-1=xx) IP: - Input (key data) at current input buffer position with a colon prompt IP %1 input (key data) into input buffer position 1 %n - input buffer position n #n - output buffer position n m.n - file buffer m, attribute n - attribute 0 is the ID !n - Select buffer n M - a mark cann be used to go FORWARD (G F) or BACKWARD (G B) to previous or next mark (bad practice - but you can do it) C - a comment RI / RO - reset input or output buffer F-CLEAR n - clear file buffer n F-OPEN n - open file buffer n to the specified file - if the open fails the next statement is executed otherwise it skips one statement F-READ n - reads specified record into file buffer n - if the read fails the next statement is executed otherwise it skips one statement STON - stack on X - exit with message MV x y- move into buffer x as specified in y (buffer or literal) F;%1;C1;+;?%1 - example of RPN math - adding one to input buffer 1 in this example: e.g. PUSH %1; PUSH character 1; ADD top two stack entries - POPPING them and PUSHING the result on the stack; Store the top stack entry in %1 IF- (test) - accepts one imperative and no ELSE. Multivalued lists of conditions and simple actions allowed T - (type a literal or buffer) - he optional Sn displays n spaces, a B displays a BELL, a + inhibits CRLF at the end of a display, a comma is concatenate. PQN C Proc to test file pointers to see if they work and do count F and DIR pointers. C C %1 holds count of files selected, %2 holds count of good file pointers C %3 holds count of bad file pointers, %4 folds count of F pointers C %5 holds count of DIR pointers, %6 is a work variable for the current file name being processed C C Not run to check - so please be gentle on typos etc - just an example of power C if you want you can count multi-level files as well and say how many sub-files in each one as an exercise (if you want to !) C T Starting file pointer verify at ,+ HDATE P RI RO F-CLEAR 1 F-OPEN 1 VOC XBad Account - can't open VOC file MV %1 0 MV %2 0 MV %3 0 MV %4 0 MV %5 0 HSSELECT VOC WITH F1 = F f DIR dir STON HPQ-SELECT 1 PH 10 MV %6 !1 IF # %6 G 30 F-READ 1 %6 G 20 IF 2.1 = F^253f^253DIR^253dir G 15^25315^25317^25317 G F 15 F;%4;C1;+;?%4 G F 17 F;%5;C1;+;?%5 M F;%1;C1;+;?%1 F-CLEAR 2 F-OPEN 2 %6 G 20 F;%2;C1;+,?%2 G 10 20 F;%3,C1,+,?%3 T File ,%6, failed to open !,B G 10 30 T S1 T Run complete at ,+ HDATE P T Checked ,%1, files: ,%2, good pointers and , %3, bad pointers T %4, hashed files, ,%5, Directory files. Regards JayJay --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniData PROC tip: DB command
R83 ain't gonna help too much if the Proc ventured into the PQN (versus PQ) category. Microdata and regular Pick (R80, 83, 90, AP, D3) were in sync with their PQ commands during the Jurrasic Pick era. In 1979 MCD introduced PQN with its extended features as shown in the earlier email. I was there at that roll-out. In fact, Microdata PQN procs could not call PQ procs and vice-versa. They were 2 separate interpreters. There were some tricks around this. Over the years the non-Microdata flavours stepped up their PQ-level procs (T command comes to mind instead of U01A6) but focused more on the EXECUTE command. This opened the door to making the English Commands available to regular Data/Basic instead of trying to bump up Proc to behave more like Data/Basic. Since Proc was still interpreted, non-indentable and cryptic, it was relegated to being a Menu handler or jobstream handler like Batch Files (Not to be confused with Batch Updating). Some jobstreams were so obvious that the paragraph interpreter was created to save all of the H and P command usage. (Sidebar. MCD also created the A correlative and had the edge for a few years on the other earlier native systems. They caught up eventually). But the damage was done as virtually every system that was written pre-1990 had procs scattered throughout. Every one of my clients still has procs. Unless there was a complete re-write, it will still retain this legacy code and language. I don't know about UV but UD has a setting that allows true-PQN proc commands to exist. There was an earlier Microdata language called RPL that I've not heard of in almost 30 years. Then there was those programmers who could create assembler programs and MLOAD them. These are probably long gone as well. All of that PIB and control block stuff was fascinating but unless you came from a useful BAL background, you didn't have a chance. Am I showing my age? My 2 cents. Mark Johnson - Original Message - From: Francis Bennett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, July 31, 2008 10:56 PM Subject: Re: [U2] UniData PROC tip: DB command I have an original R83 manual (dark grey and red with white stripes) - if anyone has a major problem with PROC (or BASIC or anything else for that matter) I could look it up. Francis - Original Message - From: John Jenkins To: u2-users@listserver.u2ug.org Sent: Friday, August 01, 2008 9:27 AM Subject: RE: [U2] UniData PROC tip: DB command And a few more PROC commands for the die-hards: (I love them ! (sorry Wally !!) (from memory - I think I got it OK) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Basic SORT() Function not avail in UniVerse?
Given my age, I've used many manual sort methods (including bubble) years and years ago. Ever since I could LOCATE with the optional sorting parameter, I've never put a bubble sort in MV programs. VB and QB yes. MV, No. My 2 cents. Mark Johnson - Original Message - From: DAVID WADEMAN [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, July 22, 2008 12:59 PM Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? This is a UniData subroutine, but should work SUBROUTINE B42.SORT.ARRAY(SORTED,ARRAY) * Bubble sort the elements of a dynamic array * Created by: David Wademan * Creation Date: 01/05/05 SORTED= VALUES = DCOUNT(ARRAY,@VM) LOOP CHANGES = 0 FOR X = 2 TO VALUES * For each adjacent pair ELEMENT1 = ARRAY1,X-1 ELEMENT2 = ARRAY1,X IF ELEMENT2 ELEMENT1 THEN * Swap if pair out of sequence ARRAY1,X = ELEMENT1 ARRAY1,X-1 = ELEMENT2 CHANGES = 1 END NEXT X WHILE CHANGES DO REPEAT SORTED=ARRAY RETURN -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Tuesday, July 22, 2008 10:51 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] Basic SORT() Function not avail in UniVerse? Hey, I'm needing to SORT a dynamic array and apparently UniVerse doesn't have this Function. Other MV implementations have this, such as D3 - The sort() function sorts an attribute or value mark delimited str.exp in ascending order. [from ePick] There was also a user exit u1072 that did the same thing. Does anyone have a work around or fast path to same thing maybe I'm missing something but can't see this in UV docs. -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Basic SORT() Function not avail in UniVerse?
Sidebar: If we're concerned for speed, then don't have the DCOUNT in the end value of a FOR...NEXT loop. Set the variable once before the loop. example: LAST=DCOUNT(ITAB,@AM) FOR X=1 TO LAST Mark Johnson - Original Message - From: Dave Laansma [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, July 23, 2008 10:35 AM Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? I'd suggest this subroutine. Brief and to the point: SUBROUTINE HUB.SORT.B (ITAB) OTAB = FOR X = 1 TO DCOUNT(ITAB,@AM) ELEM = ITABX LOCATE ELEM IN OTAB BY AL SETTING PLACE ELSE NULL OTAB = INSERT(OTAB,PLACE;ELEM) NEXT X ITAB = OTAB RETURN END David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jeff Marcos Sent: Tuesday, July 22, 2008 7:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? We had the same issue back in the 90's. So a clever guy (Ed) that worked with us wrote a small C program (on Unix) to do the sort. This also included controlling/dependants fields. Any universe program could call it, passing in the variables and returned the items sorted. Speed is incredible. To this day it's still used and blitzes any universe program methods in sorting large arrays. Regards, Jeff Marcos -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Wednesday, 23 July 2008 6:59 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? Hey, and don't forget to do a speed test. You know, because LOCATE is coded as part of the OS it just *might* be faster than bubble or speed sort options. In fact, this was a topic on this list about 3 or 4 years ago and someone doing the speed test concluded LOCATE was in fact faster. And no I don't remember who it was, or have a link to the thread (sorry) :-) Allen -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Israel, John R. Sent: Tuesday, July 22, 2008 10:26 To: 'u2-users@listserver.u2ug.org' Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? Note that if the array is big, you would get much better performance by loading it into a DIM array, so the sort of sort below, then put the results back into a dynamic array. Dynamic arrays are much easier to use, but when used wisely, dimensioned arrays can be MUCH faster. This is true for any application, esp. looping through multi-values. John Israel -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of DAVID WADEMAN Sent: Tuesday, July 22, 2008 1:00 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? This is a UniData subroutine, but should work SUBROUTINE B42.SORT.ARRAY(SORTED,ARRAY) * Bubble sort the elements of a dynamic array * Created by: David Wademan * Creation Date: 01/05/05 SORTED= VALUES = DCOUNT(ARRAY,@VM) LOOP CHANGES = 0 FOR X = 2 TO VALUES * For each adjacent pair ELEMENT1 = ARRAY1,X-1 ELEMENT2 = ARRAY1,X IF ELEMENT2 ELEMENT1 THEN * Swap if pair out of sequence ARRAY1,X = ELEMENT1 ARRAY1,X-1 = ELEMENT2 CHANGES = 1 END NEXT X WHILE CHANGES DO REPEAT SORTED=ARRAY RETURN -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Tuesday, July 22, 2008 10:51 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] Basic SORT() Function not avail in UniVerse? Hey, I'm needing to SORT a dynamic array and apparently UniVerse doesn't have this Function. Other MV implementations have this, such as D3 - The sort() function sorts an attribute or value mark delimited str.exp in ascending order. [from ePick] There was also a user exit u1072 that did the same thing. Does anyone have a work around or fast path to same thing maybe I'm missing something but can't see this in UV docs. -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ The information contained in this email and any attached files are strictly private and confidential. This email should be read by the intended addressee only. If the
Re: [U2] Basic SORT() Function not avail in UniVerse?
This is a little catch-22. Years ago, there was a limit on the number of 'variables' a program had. This, since each element in a DIM array is a variable, you could not DIM REC(10). Thus legacy code may have been forced to use dynamic arrays on large items. Nowadays, we may not be held to any limits (or they are very large). Us programmers tend to stretch the limits of what's available at the time. Thus, knowing all of the programming options (array types, REMOVE, LOCATE, concatenation, work files etc), we can apply the best fit for the issue at hand. Mark Johnson - Original Message - From: Baakkonen, Rodney A (Rod) 46K [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, July 23, 2008 3:48 PM Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? I guess my point was a little off topic, as I was really calling attention to performance issues with dynamic arrays in general and not about sorting keys. When dynamic arrays can out perform work files, we will use them. We have seen processes that used dynamic arrays run for a week. Even with doing REMOVE and using concatenation to build the array. Changing the logic to use a work file resulted in the same process finishing in hours. The other aspect is that a lot dynamic arrays in programs do more that just hold keys. Doing a locate on one array may result in multiple data elements being inserted into corresponding arrays. With this type of intermediate data, writing and sorting a work file will run circles around internal arrays. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rex Gozar Sent: Wednesday, July 23, 2008 1:50 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Basic SORT() Function not avail in UniVerse? I've done research on sorting in the past, working with 100,000 to 1,000,000 element lists. Allen: LOCATE's are faster, but only when you're dealing with less than 100 elements. Because LOCATE's must start at the beginning of a string and traverse the entire length, they get slower and slower. Bubble sorts are also useless when dealing with a large number of elements. Jeff: Yes, a C program is the fastest (at least it was at my last job where we used GCI to integrate it with the universe shell.) As for writing out ids to work files just to sort them, it adds unnecessary overhead to the whole process. I wish universe had an intrinsic sort() function. Since they don't I wrote my own and posted it on PickWiki. You could also use the QuickSort sample posted in this thread. Once you standardize on a particular sorting program, you'll be amazed at the number of times it comes in handy. http://www.pickwiki.com/cgi-bin/wiki.pl?Sorting http://www.pickwiki.com/cgi-bin/wiki.pl?ShellSort http://www.pickwiki.com/cgi-bin/wiki.pl?QuickSort Another handy function is to be able to flip fields to values and vice versa. See http://www.pickwiki.com/cgi-bin/wiki.pl?Row2Col and again it's optimized for a large number of elements. rex --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Basic SORT() Function not avail in UniVerse?
I don't think that the sort/extract function alone is justification for choosing dim arrays over dynamic arrays in programs. Sure, for large array concepts/projects, DIM will prevail. But IMHO, for data READ/WRITE, dynamic appears just as fast as DIM. Maybe this doesn't apply to large systems with 100's of users. But I recall when the replaced the EXTRACT family of commands that typingly incouraged programmers to use MATREAD instead of READ. I've also run into problems with legacy systems where the data in a file exceeds a nominal maximum number of fields and I've spent (wasted) clients time/money changing DIM REC(100) to DIM REC(200). Who knows, in 20 years I'll be the errant programmer when 200 needs to go to 300. If there is a file defining INCLUDE that has the DIM, then it's an easy repair to move forward. If they're DIM'd separately in each program (with differing names), then it's a nightmare and bound to omit one. My 2 cents Mark Johnson - Original Message - From: Baakkonen, Rodney A (Rod) 46K [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, July 23, 2008 1:24 PM Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? That is why we discourage developers from using dynamic arrays in programs. Once they get to a certain size, performance goes out the window. We have them store all intermediate program data in work files that sort quickly when well sized. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Laansma Sent: Wednesday, July 23, 2008 10:42 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? I've been experimenting and discovered something. Instead of waiting until you have all (say) 100,000 elements to sort at once, why not sort them in blocks of (say) 5,000. So I wrote this little subroutine that takes two parameters, a relatively small un-sorted table and the larger sorted table and sorts the un-sorted into the sorted table. The calling program accumulates the unsorted ITAB and when it reaches a certain watermark, say 5,000 elements, this subroutine is called and those 5,000 get inserted into the master sorted OTAB, which initially is null. My experimentation discovered this method to run extremely quickly compared to waiting for the entire 100,000 element table to be built before starting the sort. Try it out! SUBROUTINE HUB.SORT.B (ITAB,OTAB) X2= DCOUNT(ITAB,@AM) FOR X = 1 TO X2 ELEM = ITABX LOCATE ELEM IN OTAB BY AL SETTING PLACE ELSE NULL OTAB = INSERT(OTAB,PLACE;ELEM) NEXT X RETURN END David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jeff Marcos Sent: Tuesday, July 22, 2008 7:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? We had the same issue back in the 90's. So a clever guy (Ed) that worked with us wrote a small C program (on Unix) to do the sort. This also included controlling/dependants fields. Any universe program could call it, passing in the variables and returned the items sorted. Speed is incredible. To this day it's still used and blitzes any universe program methods in sorting large arrays. Regards, Jeff Marcos -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Wednesday, 23 July 2008 6:59 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? Hey, and don't forget to do a speed test. You know, because LOCATE is coded as part of the OS it just *might* be faster than bubble or speed sort options. In fact, this was a topic on this list about 3 or 4 years ago and someone doing the speed test concluded LOCATE was in fact faster. And no I don't remember who it was, or have a link to the thread (sorry) :-) Allen -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Israel, John R. Sent: Tuesday, July 22, 2008 10:26 To: 'u2-users@listserver.u2ug.org' Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? Note that if the array is big, you would get much better performance by loading it into a DIM array, so the sort of sort below, then put the results back into a dynamic array. Dynamic arrays are much easier to use, but when used wisely, dimensioned arrays can be MUCH faster. This is true for any application, esp. looping through multi-values. John Israel -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of DAVID WADEMAN Sent: Tuesday, July 22, 2008 1:00 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Basic SORT() Function not avail in
Re: [U2] Basic SORT() Function not avail in UniVerse?
For those managing D3 as well, you can write the array to ANY file-item and use SORT-LIST FILENAME ITEMNAME instead of the Pointer-File. Mark Johnson - Original Message - From: Dave Laansma [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, July 24, 2008 10:49 AM Subject: RE: [U2] Basic SORT() Function not avail in UniVerse? I think I like this one better than the Unix sort. It is really quick too. However I'd suggest using the SORT.LIST instead of the GET.LIST/MERGE.LIST: SUBROUTINE HUB.SORT.C (ITAB) SORT.KEY= tmpsortfile SORT.KEY2 = @UID SORT.KEY3 = @USERNO SORT.KEY4 = TIME() SWAP @AM WITH _ IN SORT.KEY WRITELIST ITAB ON SORT.KEY CMD = SORT.LIST :SORT.KEY EXECUTE CMD CAPTURING MSG RETURNING ERR READLIST ITAB FROM SORT.KEY ELSE ITAB = RETURN END David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office:810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com Delivering Products, Services, and Innovative Solutions -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rex Gozar Sent: Thursday, July 24, 2008 8:15 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Basic SORT() Function not avail in UniVerse? And since no one has mentioned it yet, MERGE.LIST takes advantage of Universe's built-in (a.k.a C) sorting ability. SUBROUTINE SORT.ITEM(ITEM) WRITELIST ITEM ON MYLIST STMT = STMT-1 = GET.LIST MYLIST STMT-1 = MERGE.LIST 0 UNION 0 STMT-1 = SAVE.LIST MYLIST READLIST ITEM FROM MYLIST ELSE ABORTM IMPOSSIBLE! DELETELIST MYLIST RETURN END Of course, this still adds the i/o overhead of reading and writing, but is still faster than LOCATE's on 1000+ element items. [Another] aspect is that a lot dynamic arrays in programs do more than just hold keys... which is why I wrote ROW2COL and QUICKSORT as complimentary subroutines (both on PickWiki). ROW2COL will flip associated multivalues sideways so QUICKSORT can sort and subsort on values in the corresponding rows; then I use ROW2COL to flip them back. Ideally, Universe should provide similar built-in functionality. rex --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] ouch
I believe Accuterm's WED (Windows EDitor) keeps an archive on the PC for unplanned disconnections. There may be a toggle to make it more useful. My 1 cent Mark Johnson - Original Message - From: Doug Chanco [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, July 11, 2008 7:56 AM Subject: RE: [U2] ouch One thing to note as well, subversion (version control) is free and it only took me a few days to write wrappers to the SVN commands in pick (and get them to work the way I wanted). So far it's working out pretty well! Dougc -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Symeon Breen Sent: Thursday, July 10, 2008 8:27 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] ouch Worth noting if you use wintegrate editor, or unidebugger editor (probably others as well) they keep a copy of the last edit on your PC's disk for you as well. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Roger Glenfield Sent: 10 July 2008 12:24 To: u2-users@listserver.u2ug.org Subject: Re: [U2] ouch Great answer to prevent future problems, such as I didn't really want to do that. thanks for reminding me about some really old options. ;) Roger Louie Bergsagel wrote: A former co-worker of mine had a nifty paragraph he wrote which would edit, compile, catalog and run a program in one fell swoop. Because I detest wasting time with repetitive tasks, I've written a similar program which also copies the current version of a program to a backup file in case I trash it, or want to revert to a previous version. EDBP [program.name] does the following: 1. Copies [program.name] to a backup directory (e.g. LOUIEB.BP) with a name of program.name:_:date():_:time():_.bak 2. Executes ED LOUIEB.BP program.name 3. Executes BASIC and CATALOG commands unless I say no to a prompt. 4. Executes the cataloged command unless I say no to a prompt. This is the poor dude's version control program. -- Louie In Seattle --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.138 / Virus Database: 270.4.7/1543 - Release Date: 7/9/2008 6:32 PM --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- This message has been scanned for viruses and dangerous content by SecureMail, and is believed to be clean. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Calling on AccuTerm users who are using the GUI designer
I have pretty extensive GED/WED experience. GUI programs behave just the same as a regular program or as a subroutine. You can use the @COMMAND if you wish to pass paramaters to a RUN program or you can create the entire GED item as a called subroutine. WHat Glen means by bail-outs are that the ATGUISHUTDOWN command must be executed and at the end of the GUI session. You can have a green screen RUN or CALL a GED/WED item and the SHUTDOWN will close the new window when done. If you are calling one GUI sub from another GUI program, the sub needs to know that you are NOT going to SHUTDOWN in the sub, just handle as an ACTIVATE or ENABLE/DISABLE. (Actual code escapes me at this time.) The real trick of GED/WED programming is understanding how Accuterm uses the PC as the form(s) handler and maintaining all of the environment variables properly GUISTATE, GUIERRORS and GUIEVT. My 2 cents, Mark Johnson - Original Message - From: Glen B [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, July 03, 2008 7:07 PM Subject: RE: [U2] Calling on AccuTerm users who are using the GUI designer If you built it as a stand alone GUI app then you can wrap the main section of the code in a subroutine/return block and use it like any other subroutine call. I do that for search pop-up windows currently. Just make sure that bail-outs are handled correctly. GlenB -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Brenda Price Sent: Thursday, July 03, 2008 4:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] Calling on AccuTerm users who are using the GUI designer OK, I'm just starting out with this. I have an existing program that has over lots of options from it that each call a subroutine. The record id is passed to the calling subroutine. I need to add a new option and I want to create a AccuTerm GUI program for it but I still need to pass in the record id. I went through the AccuTerm Tutorial and built the screen the way I want it, then found oops, it doesn't look like I can call that routine and pass in the record id, actually I need to pass in 3 variables. I thought I'd ask the list before I scrap this and go back to the normal green screen application. Brenda Price Affiliated Acceptance Corporation Sunrise Beach, MO --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] terminal emulator
Yo no habla citrix but I can strongly endorse Accuterm. Once you get past all of the expected emulator stuff you WILL fall in love with the GUI designer for creating VB-style forms on top of any MV database. It's a whole new world of programming accomplishments with putting many separate green-screen business concepts on one place that becomes more intuitive. Shameless endorsement, Mark Johnson - Original Message - From: Ross Ferris [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Cc: Andy Stenning [EMAIL PROTECTED] Sent: Friday, June 27, 2008 9:19 AM Subject: RE: [U2] terminal emulator We have had clients use accuterm with citrix with no problems I can recall Ross Ferris Stamina Software Visage Better by Design! -Original Message- From: [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] On Behalf Of Bob Witney Sent: Friday, 27 June 2008 9:09 PM To: u2-users@listserver.u2ug.org Cc: Andy Stenning Subject: [U2] terminal emulator We are using PowerTerm Lite as our terminal emulator Works fine from a PC but sadly won't work through Citrix Is anyone using a terminal emulator via Citrix (we have MAC's that need to come across that way) Thanks Bob Witney IT Senior Explore Worldwide Nelson House 55 Victoria Road Farnborough Hants GU14 7PA Confidentiality Notice: This e-mail and any attachments are intended solely for the addressee and may contain confidential or privileged information. If you are not the named addressee, or the person responsible for delivering the message to the named addressee, please notify the sender as soon as possible and delete the material from your computer. This message will be protected by copyright. If it has come to you in error, you must not take any action based on its contents nor must you copy or show the message to any person other than the intended recipient. _ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] multi-valued extraction
Brian: Your use of the F style of correlative begs a question. Did you venture into A correlatives? I'm sure you did but I wonder why you offer up an F style here. Perhaps a speed consideration? I first learned F style in the Jurrasic Pick era and for 98% of the time, use A types today. There are a few F methods that don't appear in A styles. The F style disuaded people from continung with dict items as it was of the Reverse Polish Notation (RPN) style and harder to visualize. Not so many people understood 'stack-style' processing. This is similar to the way HP calculators worked. 4 enter 5 plus instead of 4 plus 5 equal sign. Hp calcuators didn't have an equal sign nor parenthesis. The A style was more readable and was more Data/Basic in readability. Thus it could be more easily maintained. BTW, I've never had any problems with any type of correlative on line 008 regardless of there being an A or S on line 1. In fact, again I only have one real reason to use an S instead of an A when creating a new dict item. Here's the A correlative in case anyone cares: 008 A;(1[1,4])(Totherfile;X;1;1) Finally, Tony's suggestion causes the output to be sorted by the [1,4] extraction but display the (Totherfile;X;1;1) value. Not that it's wrong in any way, but using 007 008 allows you to break it up in internal (sorted, 008) format then display (converted 007) format. Doing it on a single line, either F or A style or as an I descriptor doesn't offer the chance to sort by the [1,4] before displaying the translation. Otherwise it sorts by the translation. Just a curiosity. Thanks Mark Johnson - Original Message - From: Brian Leach [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, May 20, 2008 4:01 AM Subject: RE: [U2] multi-valued extraction Tony A. FYI the ^253 is the representation of a value mark in the UniVerse editor. So the first example will work correctly. B. If I were forced to use a hideous Pick style dictionary rather than a nice I-descriptor (grin) I would probably use the following, which will also work successfully: F;1;C1;C4;[];(Totherfile;X;1;1) But then you get what deserve using A/S types! Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tony G Sent: 20 May 2008 06:19 To: u2-users@listserver.u2ug.org Subject: RE: [U2] multi-valued extraction Please have a look at my blog entry: remove.pleaseNebula-RnD.com/blog/tech/mv/2007/01/dict-items01.htm l I explained there how Pick dict items work, where conversions and correlatives are processed in a very specific order. I'm not familiar enough with the nuances of the Prime influences on U2, but this may help a number of us to learn. Aside from common documentation, can anyone provide insight into nuances about exactly how the U2 platforms (and I really hate to lump them together for this) might process descriptors like this? In D3, one way I'd solve this problem is to use the dict attributes as follows: 001 S 002 1 007 Tfile;x;;99 008 T1,4 Richard, note that your first example of T1,4^TOther.File will not work because of the way the dict items are processed, as described in my blog. I'm also guessing the 253 in there was just a typo. The second and third examples are fine for output only, but would be different depending on how you'd want the data sorted and selected. Again, understanding this for U2 types would be very helpful. Thanks. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com From: Richard Lewis In a Pick-style dictionary, a correlative like this should work: T1,4^253TOTHER.FILE;X;;99 or: A1(T1,4)(TOTHER.FILE;X;;99) or: F;1;(T1,4);(TOTHER.FILE;X;;99) or as an I-descriptor expression: TRANS(OTHER.FILE,SUBSTRINGS(F1,1,4),99,'X') --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Press any k
That's the trouble. It CANNOT be used 'all over the place'. Surely you have names and addresses who's lengths are often not their maximum. Even dates can have today as 5/6 instead of 05/06/08. Money values also cannot be dependent upon consistent lengths. Thus, even though every 6 digit PN can be consistent, that's only for one of dozens of other entries which is my original point. The users would have to memorize those that requre enter and those that don't. Plus, how can you cause the errant enter for the answering following the INPUT PN,6 to NOT welcome the enter alone. OR what if enter alone were a valid choice but not the intended choice. It's hard to compare the savings of keystrokes to the 'back-up' concepts of wrong following answers. So in this divided topic, I choose to always require a enter even if it's a Y/N answer. Respectfully, Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, May 02, 2008 10:07 AM Subject: RE: [U2] Press any k We have 6-digit part numbers here. With input PN, 6... I have single-handedly saved the company millions of keystrokes per year. Also... it is not inconsistent if it is used all over the place. Q: Are we not men? A: We are the DevoTees. -Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of MAJ Programming Sent: Thursday, May 01, 2008 7:53 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Press any key to continue... IMHO I find the mixed use of INPUT statements with some not requiring an enter keystroke while most requiring the enter to be incredibly distracting. I've long heard the argument that saving the user the single pathetic keystroke has value but not when things go wrong. In the big picture it's a function of who is programming whom. While it can be argued that some Y/N questions don't require the enter, it creates an inconsistent interface, removing the opportunity should they press Y when they wanted N. I've seen 3, 4 and even date answers of the form INPUT ANS,8: where the enter is implied upon the entry of the 8th character. Then the enter answer could accidentally apply to the next question and then more inconsistency ensues. Just an opinion, Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, April 30, 2008 10:50 AM Subject: RE: [U2] Press any key to continue... On a lot of screens here , I force end-users to type 'x' to exit (per the following code) so that they do not bypass an error message screen. I also use square brackets [#] on a single-character prompts and triangular brackets on multi-character prompts # so that end-users know what to expect. --Bill * Error.Prompt: crt @(-1) crt @(10,10) : ' Descriptive Error Message ' : crt @(10,11) : ' [X] : input Ans.Error, 1 Ans.Error = upcase(Ans.Error) begin case case Ans.Error = 'X' ; null case 1; call *BEEP.BEEP.AND.SLEEP.R0 ; go Error.Prompt end case return to Main.Screen *- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Press any k
If your environment has promoted a consistent interface across all programs, then congratulations on the {} and prompting. Unfortunately within all of my client's systems, there rarely appears a consistent interface, thus my perspective on this topic. Even within one set of programs from the same menu, some prompts for Enter Company use the automatic enter and some do not. Oddly enough, this example does a R%3 to the answer so even if it is INPUT A,3 then the users either type 1enter or END without. Doesn't paint a good picture. Also, part of my perspective is that virtually all of my client's systems are a strong mix of procs and programs and procs don't support the automatic enter (at least I haven't seen it). So that's another inconsistency that I deal with. Thanks Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, May 06, 2008 10:15 AM Subject: RE: [U2] Press any k It is handled via the prompts... using [square] brackets for standard numbers of digits and triangular brackets for variable length entries. For most users, this takes approx one day to get acclimated. InCorrect entries lead to an error screen with a Beep.Beep.And.Sleep. In all, this method is a fast way to validate entered data. --Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of MAJ Programming Sent: Tuesday, May 06, 2008 2:00 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Press any k That's the trouble. It CANNOT be used 'all over the place'. Surely you have names and addresses who's lengths are often not their maximum. Even dates can have today as 5/6 instead of 05/06/08. Money values also cannot be dependent upon consistent lengths. Thus, even though every 6 digit PN can be consistent, that's only for one of dozens of other entries which is my original point. The users would have to memorize those that requre enter and those that don't. Plus, how can you cause the errant enter for the answering following the INPUT PN,6 to NOT welcome the enter alone. OR what if enter alone were a valid choice but not the intended choice. It's hard to compare the savings of keystrokes to the 'back-up' concepts of wrong following answers. So in this divided topic, I choose to always require a enter even if it's a Y/N answer. Respectfully, Mark Johnson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Press any key to continue...
IMHO I find the mixed use of INPUT statements with some not requiring an enter keystroke while most requiring the enter to be incredibly distracting. I've long heard the argument that saving the user the single pathetic keystroke has value but not when things go wrong. In the big picture it's a function of who is programming whom. While it can be argued that some Y/N questions don't require the enter, it creates an inconsistent interface, removing the opportunity should they press Y when they wanted N. I've seen 3, 4 and even date answers of the form INPUT ANS,8: where the enter is implied upon the entry of the 8th character. Then the enter answer could accidentally apply to the next question and then more inconsistency ensues. Just an opinion, Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, April 30, 2008 10:50 AM Subject: RE: [U2] Press any key to continue... On a lot of screens here , I force end-users to type 'x' to exit (per the following code) so that they do not bypass an error message screen. I also use square brackets [#] on a single-character prompts and triangular brackets on multi-character prompts # so that end-users know what to expect. --Bill * Error.Prompt: crt @(-1) crt @(10,10) : ' Descriptive Error Message ' : crt @(10,11) : ' [X] : input Ans.Error, 1 Ans.Error = upcase(Ans.Error) begin case case Ans.Error = 'X' ; null case 1; call *BEEP.BEEP.AND.SLEEP.R0 ; go Error.Prompt end case return to Main.Screen *- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Maximum size of the record lock table
I wish there were some way to guage the experience factor with questions like these. The question was the number of the locks. Many of the answers seem to be applicable in general, like a tutorial on related topic, but miss the primary question. So how could there be a measure so if a newbie asks the question, then the related items are helpful. But if an experienced person asks, the related items are clutter. Granted, many read the forums. It just appears that the slightest hint of a topic brings a wide variety of responses. My 1 cent Mark Johnson - Original Message - From: Tom Dodds [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, April 15, 2008 7:47 PM Subject: RE: [U2] Maximum size of the record lock table Everyone seems to have missed the question. Steve knew the problem and what was required to fix it. What he wanted was Can someone tell me what the maximum of locks allowed is, or what the size of the lock table is? Tom Dodds [EMAIL PROTECTED] 630.235.2975 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen Egerton Sent: Tuesday, April 15, 2008 3:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Maximum size of the record lock table Steve Ferries wrote: Hi All, We had some excitement today when we ran a program with READU, with the associated WRITE commented out. In no time at all (these RS6000s are fast!), the system froze. I had a login and some UniVerse commands worked, but others did not. LIST.READU showed one user with thousands of locks and that is how we identified the program. snip Directly underneath the commented out WRITE, add a RELEASE statement. In such circumstances, I typically code something like: *DBG WRITE PEOPLE.REC ON PEOPLE.FILE, PEOPLE.ID RELEASE PEOPLE.FILE, PEOPLE.ID;* DBG And when I'm finished debugging, I just uncomment the write, and comment the release. -- Allen Egerton aegerton at pobox dot com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Difference between Universe and Unidata
For what it's worth, here's my 2 cents. I have and have had UV and UD clients as well as MvBase, D3 and a whole bunch of Wintel native and proprietary variants. I typically inherit the environment although I prefer to migrate all the native clients to D3 for simplicity when the time comes. Except for Microdata which is a tough fit for D3. Regarding my UV/UD clients, I tend to prefer the more native feel of UD although many argue that UV is a more natural upgrade path. In my humble experiences, UV behaved more differently when compared to UD from a native conversion perspective. Personally, I like UD more than UV from the keyboard perspective. For the Microdatas, of which I still have a few, I appreciate that UD can accommodate true PQN proc so the conversion will be easier. Oddly enough, here in NY/NJ there seems to be a higher degree of UV than UD. I'm looking to hire a MV person for a client and UV shows up way more than UD. The client's site is D3 though so there will be a learning curve. All of my UV/UD clients maintain a noticably higher degree of stability than the D3 clients. But under unix, most client's of mine with UV/UD have trained their IT guys under some unix maint whereas the D3's (mostly all W2K) are easily maintained with the IT guys using traditional W2K skills. Mark Johnson - Original Message - From: George Land [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, April 12, 2008 4:25 AM Subject: Re: [U2] Difference between Universe and Unidata Fundamentally the two databases deliver the same thing, we may each have personal preferences either way but they will both very competently run your application on Windows, Unix or Linux up to several thousand users. Where the choice does make a difference is in some of the more complex facilities. So if you need native language support because you want to sell in to China, for example, then you need UniVerse. If you want full high availability/disaster recovery then, arguably, you would be better off with UniData - similarly if you want EDA to store you data in DB2 then you want UniData. But unless you need these more advanced/obscure facilities it isn't going to make a great deal of difference which you use. George Land www.u2uk.com On 11/04/2008 22:33, waivic [EMAIL PROTECTED] wrote: This is more like a marking question. I go through the introductions of Universe and Undiata in IBM WebSite. I still have no idea about the difference of these two products execept they are both multivaleue databases. Could anyone give a better explanation about the fundamental difference bewteen Universe and Unidata? ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify us immediately on +44 (01952) 214000 or at [EMAIL PROTECTED] . Please delete and destroy any copies in any format of this email you may have received in error. The recipient should note that the views contained or expressed within this correspondence do not necessarily reflect those of APT Solutions Limited , it subsidiaries, affiliates or associates. This email and any attachments are not guaranteed to be free from so-called computer viruses and it is recommended that you check for such viruses before down-loading it to your computer equipment. It is the responsibility of the recipient to ensure that the onward transmission, opening or use of this message or any attachments will not adversely affect their systems or data. Registered Office:- Stratum House, Stafford Park 10, Telford, Shropshire, TF3 3AB Registration Number:- 2228445 Place of Registration: England Wales ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Uppercase
Don't forget that Accuterm has a very sweet suite of GUI programming tools. - Original Message - From: Dennis Bartlett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, April 08, 2008 1:28 PM Subject: [U2] Uppercase This system wont allow me to compile code written in any form of lowercase or with blank lines in the source... Does anyone know how to change this? I've found some software which looks really promising called FlashGUI which effectivly creates a windows looking GUI using pickbasic commands (www.infotools.ru) which won't compile on this machine. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] blank lines in code / mixed case
I too took typing in 9th grade (1972) and had peaked at around 75 words per minute properly using all 9 fingers. I feel that as a programmer we typists can type faster as we are typing a lot of the same words over and over. But perhaps that's slowed down by more punctuation characters being typed. I also had an old Underwood typewriter since I was 4 and always enjoyed typing. I was one of those nerds who typed everything except math homework in high school as I could actually type faster (and neater) than printing or writing. I even had one of the first home versions of an electric typewriter as my father had a home office with a secretary. My opinion on the mixed casing touches on something not yet touched on: Intelligent editors. Now I know that many on this forum are in other languages and can add my reasons for preferring upper case. 1. 99% of my client's code is long-term (legacy) that is written in exclusively upper case as lower case probably didn't work. 2. I've been reading upper case Pick code for over 29 years and it looks funny in mixed casing. 3. Even when I present a code example to this or the Raining Data forum, I tend to change the typeface to Courier. Seeing code in proportional spacing and mixed casing looks doubly strange. 4. I don't know about external editors for MV systems, but there's no real link between the editor environment and the compiler. The last comment comes from my limited use in VB. There, since I cannot use a period as my 'word delimiter' in a variable, ie CUST.REC, and I don't care for the underscore and truly dislike the $ as a delimiter, VB suggests that you declare variables in a Constants Module. In that module, you can DIM CustName as String and everywhere you type CUSTNAME or custname or CuStNaMe it will convert it to CustName. That kind of magic is missing in MV and as someone suggested, CustName could possibly not be the same as CUSTNAME. With that threat of working on this inherited MV code, I prefer upper case. That seems to serve me well as I straddle U2 systems as well as D3 and even older native and Microdata clients. Those older ones don't even allow lower case. In fact, early Microdata keyboards didn't have lower case letters, you had to use char(95) etc. My 2 Cents Mark Johnson PS. My kids (18 21) both use 2 finger typing and I beat them every time. On the other hand, they kill me with the T9 phone typing especially using all of the acronyms. As programmers, I've seen many 2 finger persons who just don't look as on the ball as they should. Not intellectually, just the slower rate of conveying their thoughts to the computer. Despite mousing, that's still our most prevelant form of coding. - Original Message - From: Eric Armstrong [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, March 10, 2008 3:15 PM Subject: RE: [U2] blank lines in code / mixed case Along with Robert I also took Typing (along with football, tennis, soccer) in High School and am glad I did. Eric -Original Message- From: Robert Houben [mailto:[EMAIL PROTECTED] Sent: Monday, March 10, 2008 10:24 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] blank lines in code / mixed case BTW, to the comment about straight guys not taking typing: I know that they didn't usually, but when I was in high school back in the plasticine epoch (right after the Pleistocene epoch), a bunch of my friends and I took typing because we thought it would be an easy course (and there were girls in it!) Given my career, it was one of the most useful courses I took in High School - one of the few, in fact, where I can say that I still clearly reap the benefits of it every day! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ LOBEL FINANCIAL PRIVACY NOTICE: This communication may contain confidential company information that is protected by federal law. Federal regulations prohibit the disclosure (or re-disclosure) of confidential information without the written consent of the person(s) to whom it pertains. Additionally, the views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] D3 Position Open
A client of mine is looking for a junior-medium MV person for their 36 user D3/W2K shop. Full-time and mostly support and problem chasing with minor development. Great opportunity to learn another platform as well as many programming techniques and Acuterm GUI. To not clog the forum with replies, you may reply directly to me at [EMAIL PROTECTED] Location is in North New Jersey. Results experience would be great. Principals only at this time. Thanks in advance Mark Johnson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Excel downloads
I'll try this method. I do beaucoups of downloads. Thanks - Original Message - From: Symeon Breen [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, February 13, 2008 10:42 AM Subject: RE: [U2] Excel downloads Instead of 07748,012345,000123 have =07748,=012345,=000123 ?? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: 13 February 2008 14:05 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Excel downloads On this topic, I have a request for a solution. In New Jersey, all the zip codes start with '0'. Add product codes like 012345 and order numbers like 000123 etc and you'll see the leading zeros. When creating and exporting a CSV to eventually be used by Excel, those columns lose their leading zeros as Excel thinks they are numeric. I know that the users can format column and choose Custom etc. I've converted the same CSV into a HTML boxed record and the zeros remain as expected. I've tried prepending the values with an astrophe (single quote) to no avail. The true data (as viewed in Notepad) is exactly as I sent it: 07748,012345,000123 So, any tricks in having Excel leave the zeros alone when clicking on the CSV in WIndows Explorer. Meaning, that the person opening the CSV in excel doesn't have to convert anything. Thanks in advance Mark Johnson - Original Message - From: David Murray [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, February 12, 2008 4:40 PM Subject: RE: [U2] Excel downloads Laurie, For simple totals, it is possible to add an EXCEL formula into a cell by starting the cell/formula with an '=' sign. This also works with CSV structured files, which EXCEL will load and convert on the fly. Create a virtual/correlative field which will simply output the formula as text and add it to the CSV file e.g. =SUM(An). Cheers, David Murray .learn and do .excel and share -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of IT-Laure Hansen Sent: Tuesday, February 12, 2008 12:10 PM To: u2-users@listserver.u2ug.org Subject: [U2] Excel downloads Hello, We are looking for a simple way to drop aggregate totals type reports out of Universe into Excel. Our users are using AccuTerm and we also have MITS Reports installed. But, neither one does the trick for summarized reports that use the DET-SUP option. Having the detail and forcing the users to do their own grouping/sub-totals in Excel is simply not an acceptable option here. UV 10.2.3 on Win2003 server; AccuTerm 2K2 re. 5.1. We also would be happy to develop a simple (key word...) VB.Net executable that works smoothly regardless of the version of Excel, as our users work on anything from Office 2000 and above. Any suggestions welcome. TIA, Laure Hansen, City of Redwood City Information Technology 1017 Middlefield Road Redwood City, CA 94063 Tel 650-780-7087 Cell 650-207-3235 Fax 650-556-9204 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Excel downloads
In response to Karen: It's not an import option issue. A CSV is a member of the Excel class of data files and when double clicking in explorer, Excel opens it and sSays Welcome home with no import wizard. My request is to not have any intervention of the user. They can adjust the columns as necessary themselves as CSV's don't convey column widths although an earlier response gave me the =0123 suggestion. I'm a little hesitant of putting a formula in front of the data but on the other hand it would only be for those values that are numeric and start with 0. I would not have to use =Fred as Fred is okay. Thanks - Original Message - From: Bessel, Karen [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, February 13, 2008 11:43 AM Subject: RE: [U2] Excel downloads I have had similar problems with Excel in the past. Have you tried importing the column as text? Sometimes that works sometimes it doesn't. Excel is a very peculiar animal indeed. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: Wednesday, February 13, 2008 8:05 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Excel downloads On this topic, I have a request for a solution. In New Jersey, all the zip codes start with '0'. Add product codes like 012345 and order numbers like 000123 etc and you'll see the leading zeros. When creating and exporting a CSV to eventually be used by Excel, those columns lose their leading zeros as Excel thinks they are numeric. I know that the users can format column and choose Custom etc. I've converted the same CSV into a HTML boxed record and the zeros remain as expected. I've tried prepending the values with an astrophe (single quote) to no avail. The true data (as viewed in Notepad) is exactly as I sent it: 07748,012345,000123 So, any tricks in having Excel leave the zeros alone when clicking on the CSV in WIndows Explorer. Meaning, that the person opening the CSV in excel doesn't have to convert anything. Thanks in advance Mark Johnson - Original Message - From: David Murray [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, February 12, 2008 4:40 PM Subject: RE: [U2] Excel downloads Laurie, For simple totals, it is possible to add an EXCEL formula into a cell by starting the cell/formula with an '=' sign. This also works with CSV structured files, which EXCEL will load and convert on the fly. Create a virtual/correlative field which will simply output the formula as text and add it to the CSV file e.g. =SUM(An). Cheers, David Murray .learn and do .excel and share -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of IT-Laure Hansen Sent: Tuesday, February 12, 2008 12:10 PM To: u2-users@listserver.u2ug.org Subject: [U2] Excel downloads Hello, We are looking for a simple way to drop aggregate totals type reports out of Universe into Excel. Our users are using AccuTerm and we also have MITS Reports installed. But, neither one does the trick for summarized reports that use the DET-SUP option. Having the detail and forcing the users to do their own grouping/sub-totals in Excel is simply not an acceptable option here. UV 10.2.3 on Win2003 server; AccuTerm 2K2 re. 5.1. We also would be happy to develop a simple (key word...) VB.Net executable that works smoothly regardless of the version of Excel, as our users work on anything from Office 2000 and above. Any suggestions welcome. TIA, Laure Hansen, City of Redwood City Information Technology 1017 Middlefield Road Redwood City, CA 94063 Tel 650-780-7087 Cell 650-207-3235 Fax 650-556-9204 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] CSV output
An indirect answer would be to send an appropriate ESC sequence to the screen's status row with the account/branch you are on. I like accuterm where I can change the caption of the session. I usually put the Account and Port number as many process use ported work files. My 1 cent. Mark Johnson - Original Message - From: Dennis Bartlett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, February 14, 2008 10:20 AM Subject: RE: [U2] CSV output Hi Is there any way to change the prompt to something like BR299? It would really help to know where I am, whilst hopping from branch to branch. Thanks --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Excel downloads
I have a subroutine on Basic called LINE.TO.CSV that accomodates data values having either single or double quotes. It alternates the delimiting quote character when necessary and if both are present, it replaces the single one with an accent. It's usually a text field anyway. I also have its opposite subroutine called CSV.TO.REC that takes a CSV and returns it as a attributeXvalue from RowsXColumns. It strips out the bounded quotes if they're not data. The standard CONVERT would not work as it would take embedded commas and use 253's. Unfortunately it has to process each row into an attribute and parse each line, pairing the quotes. I also agree that Tabs went out a long time ago. My personal disappointment is opening a tabbed record in Notepad then saving and the tabs reverted to spaces. Thus, I avoid tabs. My 1 cent Mark Johnson - Original Message - From: IT-Laure Hansen [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, February 13, 2008 12:00 PM Subject: RE: [U2] Excel downloads Comma delimited fields are always a bit of an issue in this case. The correct way to program CSVs is to place quotes around the fields, to account for just this - but then: what if you have quotes in your fields? Tab is usually a safer delimiter for the simple reason that it is rarely stored as such in data files, but Excel does not handle a tab-delimited file quite as well as a CSV file. You can of course use I-descriptors that convert quotes to blanks first, or any other transformation. Thus my original question asking for help and tricks: I know what it takes to get me to where I want to be, but I am looking for the miracle tool that will work for all types of data extractions with minimal data massaging and scripting from me. Thanks, Laure Hansen, City of Redwood City Information Technology 1017 Middlefield Road Redwood City, CA 94063 Tel 650-780-7087 Cell 650-207-3235 Fax 650-556-9204 [EMAIL PROTECTED] -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Davis Sent: Wednesday, February 13, 2008 7:36 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Excel downloads What if the data fields contain quotes or double-quotes themselves? Does this handle that situation? -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dennis Bartlett Sent: Wednesday, February 13, 2008 4:00 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Excel downloads Laure Then it sounds like you could do the option described in these posts For those who are lazy to write fancy routines to create CSV files, I've created two dict items, namely COMMA and QUOTE, as follows: COMMA 001: I 002: , 003: 004: , 005: 1T QUOTE 001: I 002: '' 003: 004: 005: 1T To create a CSV file of _ANY_ file data, these dict items either need to be in the DICT of every file, OR once off in the DICT.DICT (I think - correct me anyone?) csv imports don't mind excessive spaces... LIST DFQ COMMA DFQ.ID COMMA ACCOUNT COMMA DATEOP COMMA 21:47:38 07-02-08 DFQUOTE.FILE. , QUOTE NO. , ACCOUNT... , DATEOP , 208-015646-01 , 208-015646-01 , 208-015646 , 04/05/2007 , 205-011887-AH , 205-011887-AH , 205-011887 , 10/11/2000 , 202-012637-AH , 202-012637-AH , 202-012637 , 16/02/2005 , to handle numeric fields simply quote them LIST DFQ COMMA QUOTE DFQ.ID QUOTE COMMA QUOTE ACCOUNT QUOTE 21:50:36 07-02 DFQUOTE.FILE. ,'QUOTE NO.','ACCOUNT... ' '208-015646-01,'208-015646-01','208-015646 ' '205-011887-AH,'205-011887-AH','205-011887 ' '202-012637-AH,'202-012637-AH','202-012637 ' '202-014954-01,'202-014954-01','202-014954 ' And here is where I used it 0001: PA 0002: DISPLAY Saving output as AAQ 0003: SP-ASSIGN HS 0004: SETPTR 0,300,,0,0,3,BRIEF,NFMT, BANNER AAQ 0005: SORT DFQ _ 0006: WITH INVOICE _ 0007: BY ACCOUNT _ 0008: BY DATEOP _ 0009: COMMA DFQ.ID _ 0010: COMMA ACCOUNT _ 0011: COMMA DATEOP _ 0012: COMMA _ 0013: COMMA DFQ.HPHONE _ 0014: COMMA HPM.HOMEPHONE _ 0015: COMMA _ 0016: COMMA DFQ.WPHONE _ 0017: COMMA HPM.WORKPHONE _ 0018: COMMA _ 0019: COMMA DFQ.CELL _ 0020: COMMA HPM.CELLPHONE _ 0021: COMMA _ 0022: COMMA DFQ.SPWORKNO _ 0023: COMMA HPM.SPWORKPHONE _ 0024: COMMA _ 0025: COMMA DFQ.SPCELL _ 0026: COMMA HPM.SPCELLPHONE _ 0027: LPTR NOPAGE HDR.SUP ID.SUP And subsequently modified by Kevin For what it's worth, I do something similar, but I use TAB. My Dict item looks like: 0001: I 0002: 0003: 0004: TAB 0005: 1L 0006: S Line two is actually ^009, but it shows . Excel handles tab delimited well and I never worry about whether the field is numeric. My output line would be: VAL1 TAB VAL2 TAB VAL3 TAB VAL4
Re: [U2] Excel downloads
On this topic, I have a request for a solution. In New Jersey, all the zip codes start with '0'. Add product codes like 012345 and order numbers like 000123 etc and you'll see the leading zeros. When creating and exporting a CSV to eventually be used by Excel, those columns lose their leading zeros as Excel thinks they are numeric. I know that the users can format column and choose Custom etc. I've converted the same CSV into a HTML boxed record and the zeros remain as expected. I've tried prepending the values with an astrophe (single quote) to no avail. The true data (as viewed in Notepad) is exactly as I sent it: 07748,012345,000123 So, any tricks in having Excel leave the zeros alone when clicking on the CSV in WIndows Explorer. Meaning, that the person opening the CSV in excel doesn't have to convert anything. Thanks in advance Mark Johnson - Original Message - From: David Murray [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, February 12, 2008 4:40 PM Subject: RE: [U2] Excel downloads Laurie, For simple totals, it is possible to add an EXCEL formula into a cell by starting the cell/formula with an '=' sign. This also works with CSV structured files, which EXCEL will load and convert on the fly. Create a virtual/correlative field which will simply output the formula as text and add it to the CSV file e.g. =SUM(An). Cheers, David Murray .learn and do .excel and share -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of IT-Laure Hansen Sent: Tuesday, February 12, 2008 12:10 PM To: u2-users@listserver.u2ug.org Subject: [U2] Excel downloads Hello, We are looking for a simple way to drop aggregate totals type reports out of Universe into Excel. Our users are using AccuTerm and we also have MITS Reports installed. But, neither one does the trick for summarized reports that use the DET-SUP option. Having the detail and forcing the users to do their own grouping/sub-totals in Excel is simply not an acceptable option here. UV 10.2.3 on Win2003 server; AccuTerm 2K2 re. 5.1. We also would be happy to develop a simple (key word...) VB.Net executable that works smoothly regardless of the version of Excel, as our users work on anything from Office 2000 and above. Any suggestions welcome. TIA, Laure Hansen, City of Redwood City Information Technology 1017 Middlefield Road Redwood City, CA 94063 Tel 650-780-7087 Cell 650-207-3235 Fax 650-556-9204 [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Excel downloads
What about writing a standard BASIC report that would prepare CSV lines for the subtotals (DET-SUPP). Many reports I create offer S=Screen, P=Printer and/or D=Download output choices. Same lines, different destination. I'll re-iterate one of TonyG's suggestions with creating and eventually exporting a CSV. Unless you are using WRITESEQ, having a large CSV 'record' inside a program may encroach on some speed and/or handling problems. Tony's suggestion was to have PRINTER ON and under the Hold and Suppress option, 'print' each row instead of X-1 appending. When you are complete, manage the HOLD record accordingly. I use this method when the resulting CSV (or EDI as well) record may be over 100,000 rows. Otherwise X-1 works acceptably. Actual mileage may differ. My 1 cent Mark Johnson - Original Message - From: IT-Laure Hansen [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, February 12, 2008 7:32 PM Subject: RE: [U2] Excel downloads Hi Louie, You are correct, it does - however I am dealing among others with a set of files that contain about 85000 individual records: too much for Excel in the first place, and also, updating the MITS data source takes simply too much time, especially when adding break/sort fields. A simple Universe report using DET-SUP takes a couple of minutes to run. The equivalent using MITS Reports with a data source update to grab the latest data literally takes hours. So, I am looking for a solution that allows me to do the equivalent of a LIST DET-SUP in Universe, and convert the output into true Excel. Thanks, Laure Hansen, City of Redwood City Information Technology 1017 Middlefield Road Redwood City, CA 94063 Tel 650-780-7087 Cell 650-207-3235 Fax 650-556-9204 [EMAIL PROTECTED] -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Louie Bergsagel Sent: Tuesday, February 12, 2008 3:36 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Excel downloads Laure, MITS Reports does export detail-suppressed information to an Excel spreadsheet. Just - click on column heading, then - click Display Totals, then - add a break on the field you want totaled. - click the Suppress Details tab - export to Excel Louie Bergsagel North Coast Electric --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] RE: Switching from D3 to U2
Actually, what was the VAR's reason for switching. One of my client's VAR's forced a switch from UV to UD around 9 years ago when they went from a green-screen app to having rewritten their package with SB. Not SB GUI but regular SB. SB GUI came later for those newer clients. Thanks Mark Johnson - Original Message - From: Norman Morgan [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, February 04, 2008 10:13 AM Subject: RE: [U2] RE: Switching from D3 to U2 -Original Message- From: MAJ So what's the number one reason for switching from D3 to U2? Not to create an onslaught of replies, but I've worked on many MV platforms and have my opinions on each. Because our VAR told use they wouldn't support their product on D3 any longer. grin === Norman Morgan [EMAIL PROTECTED] http://www.brake.com === Real programmers don't document. Documentation is for simps who can't read the listings or the object deck. === --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Re: PCL: command
I'm surprised someone in any MV hasn't submitted a comprehensive PCL.INCLUDE that would help many of these requests. I have one that I use for 60% of what I need (pitch, orientation, typefaces, some line graphics and other simple functions) but I'm sure there could be a greatest hits INCLUDE that has the advanced stuff as well. My 1 cent Mark Johnson - Original Message - From: david yu [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, February 04, 2008 9:12 PM Subject: [U2] Re: PCL: command hello, how do you write multiple PCL command in one program, I have a program that I need to write a compress 8pt arial narrow and another font within the same letter. Right now I am using esc(s20H and the printout compress it but the height stayed so I have a visible space between lines. any ideas would be greatly appreciated. thanks! Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] RE: Switching from D3 to U2
Doesn't sound like a real useful reason for the rest of us. Thanks Mark Johnson - Original Message - From: Norman Morgan [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, February 04, 2008 10:13 AM Subject: RE: [U2] RE: Switching from D3 to U2 -Original Message- From: MAJ So what's the number one reason for switching from D3 to U2? Not to create an onslaught of replies, but I've worked on many MV platforms and have my opinions on each. Because our VAR told use they wouldn't support their product on D3 any longer. grin === Norman Morgan [EMAIL PROTECTED] http://www.brake.com === Real programmers don't document. Documentation is for simps who can't read the listings or the object deck. === --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] RE: Switching from D3 to U2
So what's the number one reason for switching from D3 to U2? Not to create an onslaught of replies, but I've worked on many MV platforms and have my opinions on each. Thanks Mark Johnson - Original Message - From: George Land [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, February 01, 2008 12:22 PM Subject: Re: [U2] RE: Switching from D3 to U2 I have had a number of responses directly as well as to the group, I'll be putting together a document on it and will look at publishing it. But if anyone specifically wants a copy please let me know and I'll email it when I have it. george.land@ (remove) u2uk.com George Land APT Solutions Limited IBM U2 UK Distributor www.u2uk.com On 01/02/2008 00:26, MAJ Programming [EMAIL PROTECTED] wrote: I too am interested in this comparison. The majority of my clients are D3 yet I have 1 or 2 UV and UD clients, hence the straddling. I know that U2 products have many more technical features but I would like to see where it gets admin heavy versus D3. Thanks Mark Johnson - Original Message - From: Janet Bond [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, January 30, 2008 12:26 PM Subject: [U2] RE: Switching from D3 to U2 Hello George, We created a report comparing D3 and the U2 products along with other available MultiValue databases for one of our customers. Please email me directly and I can provide this content to you. Thanks Janet Bond FusionWare Corporation IBM Premier Business Partner Microsoft Gold Partner www.fusionware.net -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of George Land Sent: Wednesday, January 30, 2008 5:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] Switching from D3 to U2 I am in the process of putting together a document to support the case for switching an application from D3 to U2 but my knowledge of D3 is a little old and hazy. Has anyone any product or technical justifications for switching over that they would be willing to share? Thanks George Land APT Solutions Limited IBM U2 UK Distributor www.u2uk.com ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify us immediately on +44 (01952) 214000 or at [EMAIL PROTECTED] . Please delete and destroy any copies in any format of this email you may have received in error. The recipient should note that the views contained or expressed within this correspondence do not necessarily reflect those of APT Solutions Limited , it subsidiaries, affiliates or associates. This email and any attachments are not guaranteed to be free from so-called computer viruses and it is recommended that you check for such viruses before down-loading it to your computer equipment. It is the responsibility of the recipient to ensure that the onward transmission, opening or use of this message or any attachments will not adversely affect their systems or data. Registered Office:- Stratum House, Stafford Park 10, Telford, Shropshire, TF3 3AB Registration Number:- 2228445 Place of Registration: England Wales ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] RE: Switching from D3 to U2
I too am interested in this comparison. The majority of my clients are D3 yet I have 1 or 2 UV and UD clients, hence the straddling. I know that U2 products have many more technical features but I would like to see where it gets admin heavy versus D3. Thanks Mark Johnson - Original Message - From: Janet Bond [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, January 30, 2008 12:26 PM Subject: [U2] RE: Switching from D3 to U2 Hello George, We created a report comparing D3 and the U2 products along with other available MultiValue databases for one of our customers. Please email me directly and I can provide this content to you. Thanks Janet Bond FusionWare Corporation IBM Premier Business Partner Microsoft Gold Partner www.fusionware.net -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of George Land Sent: Wednesday, January 30, 2008 5:30 AM To: u2-users@listserver.u2ug.org Subject: [U2] Switching from D3 to U2 I am in the process of putting together a document to support the case for switching an application from D3 to U2 but my knowledge of D3 is a little old and hazy. Has anyone any product or technical justifications for switching over that they would be willing to share? Thanks George Land APT Solutions Limited IBM U2 UK Distributor www.u2uk.com ** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify us immediately on +44 (01952) 214000 or at [EMAIL PROTECTED] . Please delete and destroy any copies in any format of this email you may have received in error. The recipient should note that the views contained or expressed within this correspondence do not necessarily reflect those of APT Solutions Limited , it subsidiaries, affiliates or associates. This email and any attachments are not guaranteed to be free from so-called computer viruses and it is recommended that you check for such viruses before down-loading it to your computer equipment. It is the responsibility of the recipient to ensure that the onward transmission, opening or use of this message or any attachments will not adversely affect their systems or data. Registered Office:- Stratum House, Stafford Park 10, Telford, Shropshire, TF3 3AB Registration Number:- 2228445 Place of Registration: England Wales ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] WITH Clause
Sidebar solution for broader MV systems. You can create a single dict item representing each pair and AND them. Many MV systems do not support parenthesis in the TCL statement as they typically indicate options. My (1) cent Mark Johnson - Original Message - From: Martin Phillips [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, January 24, 2008 3:21 AM Subject: Re: [U2] WITH Clause Hi Charles, Can parenthesis be used to group WITH statements? I am modifying a humongous SORT statement with many WITH clauses and would like to group them. If so, what are the rules? WITH (COND1 OR COND2) AND WITH (COND3 OR COND4) ? (WITH COND1 OR WITH COND2) AND (WITH COND3 OR WITH COND4) ? Preferably, omit the repeated WITH so that the second example above becomes WITH (COND1 OR COND2) AND (COND3 OR COND4) The semantics of multiple WITH clauses is different depending on the UniVerse flavour in use. Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB +44-(0)1604-709200 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] list vs. email
If they can block hotmail, yahoo and myspace, then they can allow www.rainingdata.com and www.ibm.com. The barriers people present aren't technical, but overall corporate policies meant to inhibit Suzy in accounting from wasting time. My 1 cent Mark Johnson - Original Message - From: Jerry Banker [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, January 02, 2008 10:27 AM Subject: [U2] list vs. email Maybe you didn't get my last message. It doesn't matter around here if a forum is better or not, the PHB's will not allow the users to surf the net even to get email. At one time I was registered on this list as my personal hotmail account but I had to stop using it because they blocked access to hotmail. I also have accounts at yahoo and my space but those are or were blocked so I have to use my business email account to keep from having it blocked. The only other way would be to only look at the questions and responses from home afterhours; in that case I would be an observer and not a participant. Personally I like to think on occasion I have helped someone on this list instead of just gathering the knowledge of these fine people without giving anything back. Jerry Banker Sr Programmer Analyst Affiliated Acceptance Corp Sunrise Beach, MO 1-800-233-8483 www.affiliated.org -Original Message- From: Symeon Breen [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 02, 2008 4:00 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] testing I donbt understand how reading a forum is any different to reading an email ?? - except that the date/time order is always correct and it does not clog your mail, and you get dozens of forum style benefits which of course you do not have to take as it then implies spending time on that darn web thing ? - Infact it takes me longer with the email list as I have to do my own housekeeping and setup my mail client to place all the mails in a separate folder and then go through and delete the emails etc. On a forum I just go to it, look at what has changed since I last logged in and come away again all happy and relaxed. The reason why we all use the list is because everyone is on here, I use the forum as well but no one is on there so it is pointless. The point is if we all used a forum (the existing one or a new one) we would get certain things that people complain about fixed like the time lag - which gets me on virtually every post. Rgds Symeon. -Original Message- From: [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] On Behalf Of Anthony W. Youngman Sent: 30 December 2007 23:34 To: u2-users@listserver.u2ug.org Subject: Re: [U2] testing In message [EMAIL PROTECTED], Bill Haskett [EMAIL PROTECTED] writes Wol: I just don't get this attitude. Why is it necessary to pick up our toys and go home? To say, if you don't do things my way I'm quitting the team? There are too many postings that forswear any solution that doesn't result in a complicated mess of things. I don't use forums. I read this mailing list in my spare time, or snatch moments at work. I find forums time-consuming, and a pain, and I have better things to do with my time (like working :-) At the end of the day, all too often I find that the web is a solution in search of a problem. It's the wrong tool for many jobs, and imho this is one of those situations. I rest my case with the fact that other people have pointed out - there ARE fora out there, including those on u2ug. Why are the fora unused while the mailing list carries on regardless? I put it to you - the reason is that most people worth listening to prefer a mailing list. Cheers, Wol -- Anthony W. Youngman [EMAIL PROTECTED] 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] testing
I don't know what's special about me, MAJ. I guess I'm lucky in having a great group of clients that appreciate what I do for their MV systems (Uv/Ud/D3/Mcd/GA and native) and am not caught up with internal company policies. Not that I have an exclusive on being a good MV person nor a good business person. I do thank my lucky stars that I've grown my business with my clients and the solutions I deliver, despite some criticisms from those more technically as advanced than I. In fact, I just uncovered a $90,000 billing error for one client whereby another mv programmer had overlooked a basic premise and I caught it during a year-end analysis that piqued my curiosity. The client had no idea and when I showed them the error, my next mission became very clearly defined. I don't work on commission but $90,000 won't be forgotten for a long time. I guess when my skills go beyond MV programming and venture into standard business practices then my value to my clients grow. Nothing says that I can't be good at both. Hopefully that helps. Mark Johnson - Original Message - From: Tom Dodds [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, December 31, 2007 12:33 PM Subject: RE: [U2] testing That has been my experience, but then I am not MAJ. :-) Tom Dodds [EMAIL PROTECTED] 630.235.2975 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jerry Banker Sent: Monday, December 31, 2007 10:10 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] testing We have no discrimination around here, if a site is blocked for one it is blocked for all, including the person blocking it. If you came in here on a contract you would be treated the same way. Since you would be on contract I would be surprised if you had any internet access at all. Jerry Banker Sr Programmer Analyst Affiliated Acceptance Corp Sunrise Beach, MO 1-800-233-8483 www.affiliated.org -Original Message- From: MAJ Programming [mailto:[EMAIL PROTECTED] Sent: Monday, December 31, 2007 9:48 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] testing Anthony: Then I must not understand what a 'forum' is. I use the Raining Data forum http://forums.rainingdata.com/ all the time (some say too much). This page has the RD 'products' (D3 NT, D3 Aix, D3 Linux, MvBase etc) neatly illustrated like a table of contents and shows the latest posting. Clicking on a 'product' will give you a listing of the topics within. It also shows you the technical announcements and any other top-down information. Within the topics themselves, you can see the different topics with the originator, number of views and replies and the time/date of the latest reply. This forum is spared a bunch of the static that an email forum offers. There are no redundant posts, no comments about trimming extraneous email content, no 'Fred is out of the office problems, etc. The topics may take a non-related tangent but not as pervasive as on the U2 one. By seeing the latest date for each thread, you can quickly see if the thread interests you and if the reply is considered 'new'. As one who participates on both, the RD one more organized. Ask TonyG. He's quite visible on both as well. While this forum is web-based and an email forum is not, I don't buy the argument that employers (clients) prevent internet access by their employees as a reason to not participate. Many of my clients have baracuda or other content blocking firewalls etc that I simply am not restricted with. I am considered middle to upper management by all of my clients as well as many 'employee' programmers should be. We are not the low man on the office totem pole. I've got some clients that sharpen their pencil more than most that allow me full access to the internet despite instituting strong-armed policies about employees mis-using the internet on company time. It's a trust thing. I'm a huge ebay participant and would not dare be caught doing ANYTHING with ebay at a client's site on their dime. My 1 cent Mark Johnson - Original Message - From: Anthony W. Youngman [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 30, 2007 6:33 PM Subject: Re: [U2] testing In message [EMAIL PROTECTED], Bill Haskett [EMAIL PROTECTED] writes Wol: I just don't get this attitude. Why is it necessary to pick up our toys and go home? To say, if you don't do things my way I'm quitting the team? There are too many postings that forswear any solution that doesn't result in a complicated mess of things. I don't use forums. I read this mailing list in my spare time, or snatch moments at work. I find forums time-consuming, and a pain, and I have better things to do with my time (like working :-) At the end of the day, all too often I find that the web
Re: [U2] testing
Anthony: Then I must not understand what a 'forum' is. I use the Raining Data forum http://forums.rainingdata.com/ all the time (some say too much). This page has the RD 'products' (D3 NT, D3 Aix, D3 Linux, MvBase etc) neatly illustrated like a table of contents and shows the latest posting. Clicking on a 'product' will give you a listing of the topics within. It also shows you the technical announcements and any other top-down information. Within the topics themselves, you can see the different topics with the originator, number of views and replies and the time/date of the latest reply. This forum is spared a bunch of the static that an email forum offers. There are no redundant posts, no comments about trimming extraneous email content, no 'Fred is out of the office problems, etc. The topics may take a non-related tangent but not as pervasive as on the U2 one. By seeing the latest date for each thread, you can quickly see if the thread interests you and if the reply is considered 'new'. As one who participates on both, the RD one more organized. Ask TonyG. He's quite visible on both as well. While this forum is web-based and an email forum is not, I don't buy the argument that employers (clients) prevent internet access by their employees as a reason to not participate. Many of my clients have baracuda or other content blocking firewalls etc that I simply am not restricted with. I am considered middle to upper management by all of my clients as well as many 'employee' programmers should be. We are not the low man on the office totem pole. I've got some clients that sharpen their pencil more than most that allow me full access to the internet despite instituting strong-armed policies about employees mis-using the internet on company time. It's a trust thing. I'm a huge ebay participant and would not dare be caught doing ANYTHING with ebay at a client's site on their dime. My 1 cent Mark Johnson - Original Message - From: Anthony W. Youngman [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 30, 2007 6:33 PM Subject: Re: [U2] testing In message [EMAIL PROTECTED], Bill Haskett [EMAIL PROTECTED] writes Wol: I just don't get this attitude. Why is it necessary to pick up our toys and go home? To say, if you don't do things my way I'm quitting the team? There are too many postings that forswear any solution that doesn't result in a complicated mess of things. I don't use forums. I read this mailing list in my spare time, or snatch moments at work. I find forums time-consuming, and a pain, and I have better things to do with my time (like working :-) At the end of the day, all too often I find that the web is a solution in search of a problem. It's the wrong tool for many jobs, and imho this is one of those situations. I rest my case with the fact that other people have pointed out - there ARE fora out there, including those on u2ug. Why are the fora unused while the mailing list carries on regardless? I put it to you - the reason is that most people worth listening to prefer a mailing list. Cheers, Wol -- Anthony W. Youngman [EMAIL PROTECTED] 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] testing
If the company is blocking www.rainingdata.com or www.ibm.com or www.sunsystems.com or any other business-only then there's a bigger problem. I have successfully insisted that I have access to these sites and more as they help me do my jobs for the clients. I seriously doubt that www.ibm.com would be blocked. We're talking about sites that legimately help in one's job functions, not offer a distraction. If I want some fun, I ain't clicking on www.ibm.com. Also, I'm not engaged as a pure programmer only. Sure, that opens the door, but my additional business knowledge (not mv nor even IT related) is exercised many times during every week with my many clients. My mv/IT skills often implement the business designs and policies that I help create. Mark Johnson - Original Message - From: Jerry Banker [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, December 31, 2007 11:10 AM Subject: RE: [U2] testing We have no discrimination around here, if a site is blocked for one it is blocked for all, including the person blocking it. If you came in here on a contract you would be treated the same way. Since you would be on contract I would be surprised if you had any internet access at all. Jerry Banker Sr Programmer Analyst Affiliated Acceptance Corp Sunrise Beach, MO 1-800-233-8483 www.affiliated.org -Original Message- From: MAJ Programming [mailto:[EMAIL PROTECTED] Sent: Monday, December 31, 2007 9:48 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] testing Anthony: Then I must not understand what a 'forum' is. I use the Raining Data forum http://forums.rainingdata.com/ all the time (some say too much). This page has the RD 'products' (D3 NT, D3 Aix, D3 Linux, MvBase etc) neatly illustrated like a table of contents and shows the latest posting. Clicking on a 'product' will give you a listing of the topics within. It also shows you the technical announcements and any other top-down information. Within the topics themselves, you can see the different topics with the originator, number of views and replies and the time/date of the latest reply. This forum is spared a bunch of the static that an email forum offers. There are no redundant posts, no comments about trimming extraneous email content, no 'Fred is out of the office problems, etc. The topics may take a non-related tangent but not as pervasive as on the U2 one. By seeing the latest date for each thread, you can quickly see if the thread interests you and if the reply is considered 'new'. As one who participates on both, the RD one more organized. Ask TonyG. He's quite visible on both as well. While this forum is web-based and an email forum is not, I don't buy the argument that employers (clients) prevent internet access by their employees as a reason to not participate. Many of my clients have baracuda or other content blocking firewalls etc that I simply am not restricted with. I am considered middle to upper management by all of my clients as well as many 'employee' programmers should be. We are not the low man on the office totem pole. I've got some clients that sharpen their pencil more than most that allow me full access to the internet despite instituting strong-armed policies about employees mis-using the internet on company time. It's a trust thing. I'm a huge ebay participant and would not dare be caught doing ANYTHING with ebay at a client's site on their dime. My 1 cent Mark Johnson - Original Message - From: Anthony W. Youngman [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 30, 2007 6:33 PM Subject: Re: [U2] testing In message [EMAIL PROTECTED], Bill Haskett [EMAIL PROTECTED] writes Wol: I just don't get this attitude. Why is it necessary to pick up our toys and go home? To say, if you don't do things my way I'm quitting the team? There are too many postings that forswear any solution that doesn't result in a complicated mess of things. I don't use forums. I read this mailing list in my spare time, or snatch moments at work. I find forums time-consuming, and a pain, and I have better things to do with my time (like working :-) At the end of the day, all too often I find that the web is a solution in search of a problem. It's the wrong tool for many jobs, and imho this is one of those situations. I rest my case with the fact that other people have pointed out - there ARE fora out there, including those on u2ug. Why are the fora unused while the mailing list carries on regardless? I put it to you - the reason is that most people worth listening to prefer a mailing list. Cheers, Wol -- Anthony W. Youngman [EMAIL PROTECTED] 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat
Re: [U2] testing
Which DJ forum. I'm pretty involved in that biz. Thanks Mark Johnson - Original Message - From: Symeon Breen [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, December 29, 2007 2:37 PM Subject: RE: [U2] testing I frequent the forum as well but it is so sparsely populated as everyone is on here - TBH it drives me nuts when I go away for a week and then get 400 mails coming through that I aint gonna read. Every other technology I use I am in a forum for - .net, designbais, redhat, MS office, a DJ one, hey even a diy one. This is the only email list I am on - they are pretty rare these days it seems -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Anthony W. Youngman Sent: 28 December 2007 20:44 To: u2-users@listserver.u2ug.org Subject: Re: [U2] testing In message [EMAIL PROTECTED], Symeon Breen [EMAIL PROTECTED] writes Which brings me round to my pet hate again - this is an amail list - why is it an email list, forums are just so much easier all round. Horses for courses ... if you prefer a forum, why aren't you using the forum on u2ug? My preference is for email, which is why I'm here, not there! (and if this became a forum, you'd probably lose me.) (Oh - and as for the multiple replies, it ought to be well known that the mail server is throttled. So there's a good chance that when I see the what's 1+1 post, chances are there are several answers on the server that haven't been sent to me. Tough - that's the way the system works, unfortunately.) Cheers, Wol -- Anthony W. Youngman [EMAIL PROTECTED] 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: Re[2]: [U2] testing
Like many on this forum, I get around 80 emails a day. They are sorted by date/time and if I read a u2-post on the email at 2:00 pm that says What is 1+1?, I may react and reply to it without reading the answer on the 3:00pm email (and 3:05 and 3:10 and 3:15 etc). I may have gotten some ebay emails at 2:05, some enhancement emails at 2:10, an offer to help a rich African dignatary at 2:15, etc etc. Part of the volume are the excessive answers. On the D3 forum (available anywhere and not just on an email client), you can see the date of the last post to a thread. Plus, you will see the complete thread's content, no more, no less. So when someone earlier replies to the question What is 1+1, you can see if someone else responded with 2. My 1+1 cents Mark Johnson - Original Message - From: David Tod Sigafoos [EMAIL PROTECTED] To: MAJ Programming u2-users@listserver.u2ug.org Sent: Thursday, December 27, 2007 11:36 AM Subject: Re[2]: [U2] testing MAJ, Of course a simpler method would to be for users to use a email client that can perform threading .. even may web based ones can do that Of course if people don't read first nothing can help DSig Monday, December 24, 2007, 10:28:42 AM, you wrote: MP Perhaps this is why this forum may like a single thread method (like MP Raining Data's D3, Mvbase etc). MP 5 of the responses were identical to the Phantom on Universe question and MP PH answer. MP Had the first reply said PH, the other four would have already seen PH MP and not bothered. This ain't a quiz and with everyone complainig about MP bandwidth, cycles and extraneous email clutter, this would be a great step MP in the reduction of all MP Have a Merry Christmas. MP My 1 cent MP Mark Johnson MP - Original Message - MP From: Perry Taylor [EMAIL PROTECTED] MP To: u2-users@listserver.u2ug.org MP Sent: Monday, December 24, 2007 12:56 PM MP Subject: Re: [U2] testing Output is saved to the PH file. Include the SQUAWK keyword in your MP PHANTOM command to get the specific item I'd Perry - Original Message - From: [EMAIL PROTECTED] MP [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org u2-users@listserver.u2ug.org Sent: Mon Dec 24 11:39:00 2007 Subject: RE: [U2] testing A wonderous and happy holidays to all! If anyone happens to be reading this list , I do have one universe phantom question Is there anyway to see what a phantom did? At my last job there was a way to see phantom output (it wrote to a phantom log file, if you started the phantom with logging) Hopefully there is something similar in universe (10.1) Thanks, Dougc -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of gerry-u2ug Sent: Monday, December 24, 2007 10:34 AM To: u2-users@listserver.u2ug.org Subject: [U2] testing hohoho --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- This message has been scanned for viruses and dangerous content by SecureMail, and is believed to be clean. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is MP for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. ZirMed, Inc. has strict policies regarding the content of e-mail communications, specifically Protected Health MP Information, any communications containing such material will be returned to the originating party with such advisement noted. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all MP copies of the original message. --- -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ Nearly all men can stand adversity, but if you want to test a man's character, give him power. -- Abraham Lincoln(1809-1865) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] testing
Perhaps this is why this forum may like a single thread method (like Raining Data's D3, Mvbase etc). 5 of the responses were identical to the Phantom on Universe question and PH answer. Had the first reply said PH, the other four would have already seen PH and not bothered. This ain't a quiz and with everyone complainig about bandwidth, cycles and extraneous email clutter, this would be a great step in the reduction of all Have a Merry Christmas. My 1 cent Mark Johnson - Original Message - From: Perry Taylor [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, December 24, 2007 12:56 PM Subject: Re: [U2] testing Output is saved to the PH file. Include the SQUAWK keyword in your PHANTOM command to get the specific item I'd Perry - Original Message - From: [EMAIL PROTECTED] [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org u2-users@listserver.u2ug.org Sent: Mon Dec 24 11:39:00 2007 Subject: RE: [U2] testing A wonderous and happy holidays to all! If anyone happens to be reading this list , I do have one universe phantom question Is there anyway to see what a phantom did? At my last job there was a way to see phantom output (it wrote to a phantom log file, if you started the phantom with logging) Hopefully there is something similar in universe (10.1) Thanks, Dougc -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of gerry-u2ug Sent: Monday, December 24, 2007 10:34 AM To: u2-users@listserver.u2ug.org Subject: [U2] testing hohoho --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- This message has been scanned for viruses and dangerous content by SecureMail, and is believed to be clean. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. ZirMed, Inc. has strict policies regarding the content of e-mail communications, specifically Protected Health Information, any communications containing such material will be returned to the originating party with such advisement noted. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] RE: testing
I get it, front burner. Ha, Ha, Ha. Don't laugh. Some of my client's MV systems still run on coal. I'm working on one right now. Mark Johnson - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, December 24, 2007 1:15 PM Subject: RE: [U2] RE: testing I agree. I'd like some more, please... I think he knows what it is because of the annoying coal mine disaster that could/should have been avoided here in Utah this past fall. That put coal on the front burner once again. Karl quote who=Stevenson, Charles He's getting coal for Christmas this year. Does he know what coal is? I actually found some at a lumberyard several years ago got a few pieces for my kids' stockings. A shiney black rock that burns? No way. This is so cool! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- Karl Pearson Director of I.T. ATS Industrial Supply, Inc. [EMAIL PROTECTED] http://www.atsindustrial.com 800-789-9300 x29 Local: 801-978-4429 Fax: 801-972-3888 To mess up your Linux PC, you have to really work at it; to mess up a microsoft PC you just have to work on it. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points - AD NAUSEUM
Couple of thoughts. 1. Yes, the 'style' debates tend to be self-serving. 2. I do end up with either feeling good about my techniques or finding out another good technique. 3. By expressing my preferred techniques, others may may experience #2 above. By keeping an open mind, each of us knows how these techniques, both new to us and our own favorites, can weave into our own environments. Many participants seem to manage large shops with 100's of users so every cycle counts. But I'm sure others manage 10-20 users shops. Some have 4GL-style systems with implied rules and requirements. Others may have home-grown systems from the Jurrasic Pick era. Without comparisons, we all function in a vacuum. My 1 cent Mark Johnson - Original Message - From: Clifton Oliver [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 02, 2007 10:55 PM Subject: Re: [U2] Deep and long indentations vs multiple exit points - AD NAUSEUM Perhaps you might want to expand your search criteria to include the last ten years and examine the use of Guard Clauses. Does anyone else on the list find these discussions of style, good practice, etc. to be both out-of-date and an exercise in wasted bandwidth (not to mention having too much time on one's hands)? People being what they are, these discussions always boil down to, I'm going to do it my way because I'm right and you are wrong. Wouldn't the time be best spent retesting that A/R modification you plan to push to Production tomorrow night? -- Regards, Clif On Dec 2, 2007, at 5:12 PM, Boydell, Stuart wrote: I'm in complete agreement with the one way in/out (OWI-OWO ) rule. Out of interest, I have searched the net and of the many articles I found which cited OWI-OWO, all cited it in the scope of being good practice. I found one which cites one way in, multiple|many ways out with a scathing comment. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points
Ken: I guess I'm a product of how I've fixed the programs I've inherited. Virtually all of my client's systems pre-exist me and 90% of them are home-grown code instead of being a Package. Thus, I've inherited a great diversity of styles and techniques. Day after day as I sift through this code to derive its purpose, I can see things that help and those that don't. Mind you, 99% of the prior code doesn't have any intermediate comments, barely a blurb at the top of the program regarding date, person and purpose and often has ambiguous names as BREAK.II or CRT SHL.FNDG or the like. Sometimes the only clue is the compile date. Maybe I'm surviving servicing the one-off clients that no-one else wants to deal with due to the inconsistencies. That might explain where I'm coming from. Thanks Mark Johnson - Original Message - From: Ken Wallis [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 02, 2007 5:58 AM Subject: RE: [U2] Deep and long indentations vs multiple exit points I realise that I've largely been a lurker of late - making a living working with jBASE pretty much full time now - but I'm afraid I can't let all these apologists for our spaghetti inheritance slide by unchallenged. My view on code structure is very simple: One way in, one way out. Any block of code, no exceptions. Deal with it. I understand the point about deep indentations making code unreadable - especially in the ubiquitous line editors that some people still insist on using - but you can still code single entry/single exit point without nesting anything especially deeply. That's what GOSUB and CALL are for. The poster who talked here about modern languages encouraging the throwing of exceptions, and suggested that multiple exit point code in BASIC emulated this missed the point that those languages provide exception handling mechanisms such that you can always engineer a single exit point for each block, and if you don't, then the language effectively creates one - perhaps slightly further away - for you. MV BASIC on the other hand provides absolutely no exception handling other than what is explicitly coded. Indeed, if you want single exit point code in BASIC you have to work hard for it, and many of the posters here clearly can't be bothered to. Not that they're alone - pretty much every poxy 'C' example code segment you read in an article or text book leaks like a sieve, carrying a weak disclaimer about error handling code being omitted for the sake of simplicity or clarity - and I've seen plenty of that sort of 'C' code distributed into production. Don't worry, I'd have them up against the wall too, come the revolution. It wouldn't just be the spaghetti BASIC merchants facing the wrong end of a firing squad when I took over the world! Meanwhile, Mark, whose posts are almost guaranteed to stir me up, but who I almost always manage to calm down and ignore, actually brushed up against an important point during this thread - that the implicit top down evaluation of CASE statements can sometimes hide the logic that is being coded and cause grief to future programmers. Don't get me wrong - I'm a firm believer in CASE statements, but I do think that coders sometimes actively use the top down evaluation within them to achieve a purpose they don't document, and that sometimes they just get lucky. In either of these situations, the maintenance programmer who follows behind can make a simple alteration and spend days working out what they've broken. That's my 2 cents worth, and I've got my flame suit buttoned up tight ;^) Cheers, Ken -Original Message- From: Marco Manyevere Sent: Thursday, 29 November 2007 3:18 AM To: u2-users@listserver.u2ug.org Subject: [U2] Deep and long indentations vs multiple exit points There has been a lot said recently about styles, standards and good practice and I wonder what your take is on deeply indented routines with a common exit point versus unindented routines but with multiple exit points --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points
Count me in against unnecessary indenting. With the advent of CONTINUE, that typically saves one indentation in a repeating update routine. At the extreme I've seen code that EVERYTHING is indented, regardless of the extent of the purpose. For example: IF X=1 THEN GOSUB 10 END or IF X=1 THEN Y=2 END Not for nuthin' but is there some taught technique that discourages keeping these smallest of indents as one line. Besides the tired reason what if you want to add more. My 1 cent Mark Johnson - Original Message - From: Keith Johnson (DSLWN) [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 02, 2007 6:58 PM Subject: RE: [U2] Deep and long indentations vs multiple exit points Dave Barret gave this code as an example: GOSUB OPERATION.1 IF (NOT(ERROR)) THEN GOSUB OPERATION.2 IF (NOT(ERROR)) THEN GOSUB OPERATION.3 IF (NOT(ERROR)) THEN GOSUB OPEARTION.4 END END END What about this version? GOSUB OPERATION.1 IF ERROR ELSE GOSUB OPERATION.2 IF ERROR ELSE GOSUB OPERATION.4 IF ERROR ELSE GOSUB OPERATION.5 or, more acceptably: GOSUB OPERATION.1 IF GOOD THEN GOSUB OPERATION.2 IF GOOD THEN GOSUB OPERATION.4 IF GOOD THEN GOSUB OPERATION.5 Which I personally find far more readable than the indented code. Regards, Keith De gustibus non est disputandum Johnson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points
I am a proponent for ON GOSUB's as I use them very often with maintenance programs. For new records, I control the sequence of entered fields, For existing records I use them to cycle through the displayed fields and finally at the bottom line prompt to change a field. SInce I use numbered labels for each field, ie label 100 corresponds to field 1 etc, then it reads pretty easily. Since there could be 10-20 or more fields, it 'looks pretty' with the numbers and you can easily view those fields skipped per each segment. If they were alphanumeric, all of the aforementioned helpers would disappear. Plus, it would be that much more 'wordy' and hard to read quickly. My 1 cent Mark Johnson - Original Message - From: Trey Miller [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, December 02, 2007 8:43 PM Subject: RE: [U2] Deep and long indentations vs multiple exit points This typically sticks in the craw of those who feel ON GOSUB is anathema: ERROR = 0 OPERATION = 0 * LOOP BEGIN CASE CASE ERROR ; EXIT CASE 1 OPERATION += 1 ON OPERATION GOSUB 1000, 2000, 3000, 4000, 5000, 6000 END CASE REPEAT Personally, I feel alphanumeric subroutine names are anathema; ON/GOSUB is merely an interesting stylistic decision. Harold (Trey) Miller Ph: (763)-300-8703 MaverickSoft, Inc. 16430 Birch Briar Trail Plymouth, Minnesota 55447 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Keith Johnson (DSLWN) Sent: Sunday, December 02, 2007 5:59 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Deep and long indentations vs multiple exit points Dave Barret gave this code as an example: GOSUB OPERATION.1 IF (NOT(ERROR)) THEN GOSUB OPERATION.2 IF (NOT(ERROR)) THEN GOSUB OPERATION.3 IF (NOT(ERROR)) THEN GOSUB OPEARTION.4 END END END What about this version? GOSUB OPERATION.1 IF ERROR ELSE GOSUB OPERATION.2 IF ERROR ELSE GOSUB OPERATION.4 IF ERROR ELSE GOSUB OPERATION.5 or, more acceptably: GOSUB OPERATION.1 IF GOOD THEN GOSUB OPERATION.2 IF GOOD THEN GOSUB OPERATION.4 IF GOOD THEN GOSUB OPERATION.5 Which I personally find far more readable than the indented code. Regards, Keith De gustibus non est disputandum Johnson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points
Yes, but the example had only 3 tested conditions. Changing the number to suit a method invalidates the original comparison. It's like 5+5 versus 5+5+5+5+5+5+5+5+5+5+5 whereby you change your method from adding to multiplying. If it's argued that every IF statement 'could' grow to a 'huge' number' then throw away the IF alltogether and your program looks like this: BEGIN CASE CASE X=1 GOSUB 100 END CASE Certainly compilable but distracting. I agree, in the case of a long string of parsing, CASE is preferred. I write tons of EDI parsers and they all case CASE. In the big picture, especially in the example we are both working on, IF statements generally conclude on one OR the other condition. If there's 3 or more, and only one should prevail, then CASE wins. My 3 cents. Mark Johnson - Original Message - From: Dianne Ackerman [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 30, 2007 10:38 AM Subject: Re: [U2] Deep and long indentations vs multiple exit points Mark, Although I usually agree with you, this time I have to disagree. Using a CASE statement in this way seems a very clear way to handle something, especially when you're checking for a huge number of reasons to disqualify something from happening. Have you ever programmed the Federal Financial Aid calculations? They have tons of things to check for before allowing a calculation. In my opinion, something like BEGIN CASE CASE FIRST.DISQUAL.CHECK; NULL CASE SECOND.DISQUAL.CHECK; NULL ... ... CASE TWENTIETH.DISQUAL.CHECK; NULL CASE 1 DO MONSTROUS CALC END CASE is much cleaner and easier to read (and modify every single year) than a huge IF-THEN statement! -Dianne MAJ Programming wrote: IMHO, using CASE as a replacement for IF's is extraneous. Meaning a harder alternate than what should be the simpler form. CASE statements resolve to being IF statements when compiled anyway. CASE statements are best used for their original purpose. That is to evaluate multiple conditions and only accept the first valid one and provide an easy way to not consider the latter tests. Thus, each separate CASE statement should have the thought process of individually being used instead of just cascading all the negatives. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points
I agree. On the few cases that I've run into RETURN TO, I've unprogrammed it. Part of the purpose of RETURN TO is that MV doesn't have the POP command whereby you can remove one of the GOSUB stack references and 'return to' the prior GOSUB statement. Being one who can use GOTO properly and can mix it with GOSUB and CALL for readable code, I don't use RETURN TO. My 1 cent Mark Johnson - Original Message - From: Susan Lynch [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 30, 2007 11:38 AM Subject: Re: [U2] Deep and long indentations vs multiple exit points Ray, at the risk of another 'holy war', please don't encourage the use of RETURN TO - particularly with large complex groups of programs with lots of subroutines, this can lead to return stack overflow scenarios that are extremely hard to debug (having cleaned up a lot of these as the 'next programmer' on site, I cringed when I read that). I am not an anti-GOTO Nazi, if used sparingly and with good reason, but RETURN TO is, in my experience, a debugging nightmare waiting to happen. Susan M. Lynch F.W. Davison Company, Inc. 10 Cordage Park Circle, Suite 200 Plymouth, MA 02360-7318 (508) 747-7261 - Original Message - From: Ray Wurlod [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, November 29, 2007 5:11 PM Subject: Re: [U2] Deep and long indentations vs multiple exit points A third possibility is to allow GOTO ERROREXIT (single exit point) - or even RETURN TO ERROREXIT - in error handling code. This substantially reduces the number of levels of indentation required. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Deep and long indentations vs multiple exit points
IMHO, using CASE as a replacement for IF's is extraneous. Meaning a harder alternate than what should be the simpler form. CASE statements resolve to being IF statements when compiled anyway. CASE statements are best used for their original purpose. That is to evaluate multiple conditions and only accept the first valid one and provide an easy way to not consider the latter tests. Thus, each separate CASE statement should have the thought process of individually being used instead of just cascading all the negatives. I believe the AND's in the IF statement are doing exactly what they are intended to do. By expanding it into a CASE sequence distracts the reader. BTW, one of my pet peeves with CASE statements is the blind addition of these lines at the end: CASE 1 ; NULL. While there are debates surrounding the use and value of NULL, adding CASE 1 ; NULL for no purpose than to look pretty is, as some say, a waste of cycles. It also distracts the programmer from considering that there is a final catch all scenario when there really isn't any. It's like IF X=1 THEN GOSUB 100 ELSE NULL. Not necessary. My 2 cents. Mark Johnson BTW2. The use of END IF indicates someone coming from another non-MV environment as END IF isn't MV required. I don't even know if it compiles. - Original Message - From: Colin Jennings [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 30, 2007 9:36 AM Subject: Re: [U2] Deep and long indentations vs multiple exit points You could do this. PROCESS.REC: READ RECORD FROM FILE,ID THEN IF RECORDFLD.1 EQ COND1 AND RECORDFLD.2 EQ COND2 AND RECORDFLD.3 EQ COND3 THEN RECORDFLD.4 = 'PROCESSED' WRITE RECORD TO FILE, ID END IF END IF RETURN Or, you could try: READ RECORD FROM FILE,ID THEN BEGIN CASE CASE RECORDFLD,1 NE COND1 CASE RECORDFLD,2 NE COND2 CASE RECORDFLD,3 NE COND3 CASE 1 RECORDFLD,4 = PROCESSED WRITE RECORD ON FILE, ID END CASE END For my money, the CASE statement, sensibly used, is much better than multiple IF statements Colin. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Totally different topic
A client going through a conversion has a GA Mentor. One of the 8-way serial external boards crapped out. If anyone has an ADDS 8 way (systech model HPS-7082) with the BNC and parallel connections for sale or donation please reply. Thanks in advance. Mark Johnson PS. No flames or lectures. Thanks. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Practice?
Again, the email timing issue. I was responding to the simple index with F200 not bounded. I've used bounding earlier and detected what you were doing. Regarding the extra variable/effort by the SETTING and SET'd variable. I don't care for the argument of counting cycles. Granted, not wasting gross amounts of time is one thing. But who cares about the few alleged cycles that LOCATE would involve. That becomes a sticky debatable point that wastes more time talking about it than it actually does. Given today's extremely fast systems and the tame data requirements of any MV system, poorly written or not, we're not taxing the 4 CPU 3.0 Ghz servers as much as we think. Think about it. Today's RAM is hundreds of times larger than many of our earlier hard drives. Cycles, Schmycles. My 2 cents. Mark Johnson - Original Message - From: Keith Johnson (DSLWN) [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 26, 2007 9:46 PM Subject: RE: [U2] Good Practice? Hi Mark, Just a couple of points. First, the value of F200.SCHEME.CODE of CK *cannot* trigger a false positive. TEST = '\AF1\CK1\CK2\H\LHC\MP\NU1\NU2\TK1\TK2\' IF INDEX(TEST,'\':F200.SCHEME.CODE:'\',1) THEN THAT = @FALSE is fairly bulletproof because of the backslashes around both the string and the substring. Second, I wasn't concerned about LOCATE adding a cycle or two. It's just that one has to provide the SETTING variable which is then ignored. INDEX involves a string, a substring, and a start count - there's virtually nothing redundant. Using LOCATE involves a string, a substring, the position found as well as (possibly) a start position and a search sequence; so it can be regarded as a more complex function. Also, one can choose from three forms of LOCATE - Pick, Ideal/Reality, or Information. Then, to avoid the long setup string, one has to use CONVERT (or SWAP or CHANGE). Regards, Keith PS Good surname - mine's Norwegian in origin... great grandad jumped ship in Auckland. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Time Travel
If a donation could be made with Pay-Pal, I've got some extra $. If it makes a difference. Thanks Mark Johnson - Original Message - From: Clifton Oliver [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, November 27, 2007 2:34 AM Subject: Re: [U2] Time Travel For the group's edification, at sending out 60,000+ e-mails on some days (more than that when people had nothing better to do at work than flame each other about coding styles), this was one of the problems I had when I hosted the lists. Larry is also being polite and not mentioning that he is footing the bill for this service and bandwidth. So when some people start in on this needs to be corrected, the list has to be faster, and so forth, I would suggest you show him the money. Not meaning to put words in your mouth, Larry. Most of us really (really, really!) appreciate your donation of time and money in support of these lists. Clif.button.push() On Nov 26, 2007, at 9:48 PM, Larry Hiscock wrote: b) I don't want to be blacklisted as a spammer. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Standards [was:OCONV Extraction Question - Good Practice]
Standards vs Styles. I think Standards are top-down delivered entities in the language from the database providers, ie IBM, Raining Data etc. It's the syntax of commands. Styles are the localized adaptations of the commands, combined for a consistency. They should not extend beyond the horizon of the programs that the 'stylists' have control over. Thus, we can share 'styles' and even vote on them. But we all can choose to pick and choose which ones we feel are better suited for use within our own horizons. IBM and RD give us programmers the same box of crayons respectively. It's up to us to draw with them. Mark Johnson - Original Message - From: Boydell, Stuart [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, November 27, 2007 9:27 PM Subject: RE: [U2] Standards [was:OCONV Extraction Question - Good Practice] Colin, excuse my top-posting - I'm using Outlook. Lol. Well it was supposed to be rhetorical and I wasn't expecting a response but since you have; may I cast an opinion that boiling down a definition of good code to being efficient and maintainable and calling it a standard is an oversimplification and well, plain dangerous. Of course code should try to exhibit both qualities but, as you point out, they're value calls and aren't measurable by themselves. Standards should always be concrete. Possibly like: Always use a matching 'END' clause after an 'IF/THEN' construct regardless of the number of statements (eg no single-line IF/THEN conditionals). It's a concrete rule and it can be justified because it makes code 'look' consistent and that's something which helps errors to stand out. It's also no less efficient at runtime to use IF/THEN/END than a single line IF/THEN for a condition with only one statement to be performed. (Whether a shop would actually choose that as a real standard is not the point in this example). Among other qualities of 'good' code, I would say - Does it also perform its function? Obvious to say but does code always handle potential errors? something which I see very little of in certain areas of standard pick code. This can make code quite convoluted... using READU/LOCKED/ON ERROR/ELSE, BEGIN/END TRANSACTION etc. Possibly overengineered, inefficient, even ugly. But is a program performing its function if say, an update gets a ledger out of balance because it doesn't handle a lock, or an out of sync update anomaly correctly. There is the real risk of costly repercussions to the business. I'm sure everyone has seen examples of programs that only blind luck keeps running in production. On the no need to look in a manual therefore it must be maintainable mantra. A hypothetical if you will: You're in a U2 only shop working on a testing the values of a dynamic array variable. Would you a) use a DCOUNT(), FOR/NEXT construct and call IF/THEN multiple times or b) use a single IFS() vector function? (leaving aside REMOVE() for the moment) can you tell me which construct you'd use measured against efficient and maintainable? I'd look at it in light of the efficient and maintainable standard and say: The single IFS() function is an order of magnitude simpler and quanta more efficient than the DCOUNT/FOR/IF/THEN/NEXT. In my mind something which is a simple, single statement is more maintainable than a multi line/multi statement construct. So for my money, it's a lay down misere I'd use the IFS(). However, IFS() isn't used very often in code I've seen. Do you still give in to your standard and use the IFS()? You could make an assumption about the maintenance programmer coming after you. Will they look at IFS(), suddenly go very pale, panic, run screaming out of the room crying 'heresy' and never code again? Or do you give them a smidgeon of credit, that though they have never seen IFS() before, they can open one of the dusty, paper manuals that's been propping up a shelf for the past 20 years and read the explanation of IFS() and work it out (Of course, they could then refactor it back to a FOR/IF/THEN/NEXT construct because they're being paid by the hour). It's a curly path and I reckon that unless you have concrete statement which says - never use or always use vector functions - it's a guideline not a standard. Cheers, Stuart -Original Message- Good code. What (TF) is that and how does that relate to a statements inclusion in a manual or not? Explain yourself and - the rules for you are - don't peek in a dictionary or use an electronic grammar or spell checker. ;-) Stuart Boydell Hi Stuart. Ignoring all dictionary and thesaurus explanations available I have a simple definition of good code - is it efficient and can it be easily maintained by someone else? I appreciate that this is an arbitary and difficult to measure standard, but it's my standard nonetheless :-) We have a language that invariably allows a solution to be written in a number of
Re: [U2] Good Practice?
Again, your response is out of sequence as so is mine. I see the back slashes today but replied yesterday. Maybe the forum is a better idea. Mark Johnson - Original Message - From: Jerry Banker [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 26, 2007 8:40 AM Subject: RE: [U2] Good Practice? In the case he used it will not show a false positive because he enclosed the F200.SCHEME.CODE in \. -Original Message- From: MAJ Programming [mailto:[EMAIL PROTECTED] Sent: Sunday, November 25, 2007 10:03 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Practice? I find this kind of evolved junk a lot. There's one caveat that you should include: TEST = '\AF1\CK1\CK2\H\LHC\MP\NU1\NU2\TK1\TK2\' CONVERT \ TO CHAR(254) IN TEST LOCATE F200.SCHEME.CODE IN TEST SETTING FOUND THEN ELSE While actual mileage may differ, when having a lookup table and using INDEX, the value of F200.SCHEME.CODE of CK will trigger a false positive. I like to boil down complex boolean expressions into readable words as well. Somehow causes clarity, especially with very verbose variable names. MJ - Original Message - From: Keith Johnson (DSLWN) [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 3:52 PM Subject: [U2] Good Practice? Here's an example of how I rewrote some code. Old version 284: * IF F200.SCHEME.CODE = CK1 OR F200.SCHEME.CODE = CK2 OR F200.SCHEME.CODE = NU1 OR F200.SCHEME.CODE = NU2 OR F200.SCHEME.CODE = TK1 OR F200.SCHEME.CODE = TK2 OR F200.SCHEME.CODE = GS1 OR F200.SCHEME.CODE = JM OR F200.SCHEME.CODE = MP3 OR F200.SCHEME.CODE = LHC OR F200.CALC.CODE = H OR F500.S91.ANNUITY.SEQ + 0 = 2 OR F500.S48.ANNUITY.SEQ + 0 = 2 OR F200.SCHEME.CODE = AF1 OR F200.SCHEME.CODE = MP THEN; *002 285: IF F200.SCHEME.CODE = CK1 OR F200.SCHEME.CODE = CK2 OR F200.SCHEME.CODE = NU1 OR F200.SCHEME.CODE = NU2 OR F200.SCHEME.CODE = TK1 OR F200.SCHEME.CODE = TK2 OR F200.SCHEME.CODE = LHC OR F200.CALC.CODE = H OR F500.S91.ANNUITY.SEQ + 0 = 2 OR F500.S48.ANNUITY.SEQ + 0 = 2 OR F200.SCHEME.CODE = MP OR F200.SCHEME.CODE = AF1 THEN ; *002*003 New version 261: THAT = @TRUE 262: *TEST = '\AF1\CK1\CK2\GS1\H\JM\LHC\MP\MP3\NU1\NU2\TK1\TK2\' 263: TEST = '\AF1\CK1\CK2\H\LHC\MP\NU1\NU2\TK1\TK2\' 264: IF INDEX(TEST,'\':F200.SCHEME.CODE:'\',1) THEN THAT = @FALSE 265: 266: IF F500.S91.ANNUITY.SEQ + 0 GE 2 THEN THAT = @FALSE 267: IF F500.S48.ANNUITY.SEQ + 0 GE 2 THEN THAT = @FALSE I think the new version is easier to maintain (well I would say that), but the code itself is more complex; which is rather interesting. Regards, Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Re: U2 Users Digest V1 #1968
Funny how I remember 3.5b being of long duration in the 1980's but I don't recall the earlier ones. I worked for MCD from Nov 1978 thru Sept 1979. I do recall the rainbow manuals though. thanks - Original Message - From: Clifton Oliver [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 2:29 PM Subject: Re: [U2] Re: U2 Users Digest V1 #1968 It was required on the early Microdata Reality, also, at least prior to R80. I think R80 dropped that requirement, but that was too many years ago to remember. -- Regards, Clif On Nov 25, 2007, at 9:29 AM, Kevin King wrote: On Nov 23, 2007 1:04 PM, MAJ Programming [EMAIL PROTECTED] wrote: Anyone who still uses OPEN ,CUSTOMER... meaning the null dict reference should get his head out of the sand. It's never been required, at least not by the truly earlier MV flavors (MCD, ULT, MENTOR, R80 etc). If it was required by Prime (spawning UV/UD), then it's not required by U2 today. MCD Reality 5.1 did in fact require the in the OPEN. It's the last platform I ever saw that did, though I think early Rev did as well. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Re: U2 Users Digest V1 #1968
Don't forget that OPEN DICT MYFILE to MYFILE.DV also works accross all platforms mentioned earlier. It's putting the DICT and MYFILE in the same quotes. MJ - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 2:52 PM Subject: RE: [U2] Re: U2 Users Digest V1 #1968 Secondly, for those of us who remember MCD and have a style that likes things similar, I often find myself doing: FileErr = '' OPEN 'DICT', 'MYFILE' TO MYFILE.DV ELSE FileErr := ' Dict MYFILE' OPEN 'DICT', 'YOURFILE' TO YOURFILE.DV ELSE FileErr := ' Dict YOURFILE' OPEN '', 'MYFILE' TO MYFILE.FV ELSE FileErr := ' MYFILE' OPEN '', 'YOURFILE' TO YOURFILE.FV ELSE FileErr := ' YOURFILE' IF FileErr NE '' THEN ... I don't see this lack of style as a principle of MV programming. So, for those of us who have, or had, teenagers living at home, one has to pick their battles. :-) Personally, I'd prefer not to characterize others style as a violation of principle, but would prefer to work on producing, and agreeing on, those basic principles of MV programming. Everybody's style can be published as just that...style. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Sunday, November 25, 2007 9:29 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Re: U2 Users Digest V1 #1968 On Nov 23, 2007 1:04 PM, MAJ Programming [EMAIL PROTECTED] wrote: Anyone who still uses OPEN ,CUSTOMER... meaning the null dict reference should get his head out of the sand. It's never been required, at least not by the truly earlier MV flavors (MCD, ULT, MENTOR, R80 etc). If it was required by Prime (spawning UV/UD), then it's not required by U2 today. MCD Reality 5.1 did in fact require the in the OPEN. It's the last platform I ever saw that did, though I think early Rev did as well. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Re: U2 Users Digest V1 #1968
I definitely have program listings from 1982 indicating OPEN PRODUCT without the . That was at least pre-3.5b which was the most prevelant release during the 1980's. I can't imagine them going backwards on release 5.1 when 3.5b didn't need it. Then again, MCD kinda splintered into the Spirit and Sequel flavors although I've got first hand experience on all 4 (Royale, Reality, Spirit Sequel) and still recall being at 4 Gary Rd and seeing what happened if I omitted the , for DICT and it worked. If I missed that release then I still maintain that it is not needed in any way now. I've got current UV, UD, MVbase, MCD, Mentor, GA, D3 clients and I know that they don't need it. Thanks Mark Johnson. - Original Message - From: Kevin King [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 12:29 PM Subject: Re: [U2] Re: U2 Users Digest V1 #1968 On Nov 23, 2007 1:04 PM, MAJ Programming [EMAIL PROTECTED] wrote: Anyone who still uses OPEN ,CUSTOMER... meaning the null dict reference should get his head out of the sand. It's never been required, at least not by the truly earlier MV flavors (MCD, ULT, MENTOR, R80 etc). If it was required by Prime (spawning UV/UD), then it's not required by U2 today. MCD Reality 5.1 did in fact require the in the OPEN. It's the last platform I ever saw that did, though I think early Rev did as well. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Practice?
I find this kind of evolved junk a lot. There's one caveat that you should include: TEST = '\AF1\CK1\CK2\H\LHC\MP\NU1\NU2\TK1\TK2\' CONVERT \ TO CHAR(254) IN TEST LOCATE F200.SCHEME.CODE IN TEST SETTING FOUND THEN ELSE While actual mileage may differ, when having a lookup table and using INDEX, the value of F200.SCHEME.CODE of CK will trigger a false positive. I like to boil down complex boolean expressions into readable words as well. Somehow causes clarity, especially with very verbose variable names. MJ - Original Message - From: Keith Johnson (DSLWN) [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 3:52 PM Subject: [U2] Good Practice? Here's an example of how I rewrote some code. Old version 284: * IF F200.SCHEME.CODE = CK1 OR F200.SCHEME.CODE = CK2 OR F200.SCHEME.CODE = NU1 OR F200.SCHEME.CODE = NU2 OR F200.SCHEME.CODE = TK1 OR F200.SCHEME.CODE = TK2 OR F200.SCHEME.CODE = GS1 OR F200.SCHEME.CODE = JM OR F200.SCHEME.CODE = MP3 OR F200.SCHEME.CODE = LHC OR F200.CALC.CODE = H OR F500.S91.ANNUITY.SEQ + 0 = 2 OR F500.S48.ANNUITY.SEQ + 0 = 2 OR F200.SCHEME.CODE = AF1 OR F200.SCHEME.CODE = MP THEN; *002 285: IF F200.SCHEME.CODE = CK1 OR F200.SCHEME.CODE = CK2 OR F200.SCHEME.CODE = NU1 OR F200.SCHEME.CODE = NU2 OR F200.SCHEME.CODE = TK1 OR F200.SCHEME.CODE = TK2 OR F200.SCHEME.CODE = LHC OR F200.CALC.CODE = H OR F500.S91.ANNUITY.SEQ + 0 = 2 OR F500.S48.ANNUITY.SEQ + 0 = 2 OR F200.SCHEME.CODE = MP OR F200.SCHEME.CODE = AF1 THEN ; *002*003 New version 261: THAT = @TRUE 262: *TEST = '\AF1\CK1\CK2\GS1\H\JM\LHC\MP\MP3\NU1\NU2\TK1\TK2\' 263: TEST = '\AF1\CK1\CK2\H\LHC\MP\NU1\NU2\TK1\TK2\' 264: IF INDEX(TEST,'\':F200.SCHEME.CODE:'\',1) THEN THAT = @FALSE 265: 266: IF F500.S91.ANNUITY.SEQ + 0 GE 2 THEN THAT = @FALSE 267: IF F500.S48.ANNUITY.SEQ + 0 GE 2 THEN THAT = @FALSE I think the new version is easier to maintain (well I would say that), but the code itself is more complex; which is rather interesting. Regards, Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Forum Responses
To all, especially the moderator. I just replied twice or 3 times to the same thread only to find out that later in my inbox someone else had earlier posted most all of the same responses. (I did have one new thing to add). Anyway, I can sense that this wastes a lot of everyone's time as when the original posting is How much is one plus one?, some of us may read the question first, reply only to read later emails that someone else had submitted TWO. Thus all the other TWO's are redundant. Raining Data uses an internet based forum (similar credentials) with a single thread for each topic. You can monitor the topics and have email alerts for the different activity. But, when you are reading the thread, you are reading the entire thread so you won't post TWO if someone else has already done so. Plus, as many have mentioned, the replied and replied and replied emails don't grow so long that someone complains about the redundancy. I enjoy the RD forums as they keep the threads around forever (while still alive) and rarely are there more than one submission of TWO. FYI Mark Johnson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Practice?
While that is an expression of combining statements, it will grow out of hand. Here's the extension of my suggestion. TEST=A.B.C.D.E ;* FIRST SET, JAN 2005 TEST-1=F.G.H.I.J.K.L ;* SECOND SET. ADDED DEC 2006 TEST-1=M.N.O.P.Q.R ;* SALES DEPT NEEDS MORE. APR 2007 TEST-1=S.T.U.V.W.X.Y.Z ;* ACCOUNTING WANTS SOME. NOV 07. CONVERT . TO CHAR(254) IN TEST LOCATE SOUGHT IN TEST SETTING FOUND THEN ELSE. Now, we need not convert this exercise into saying Why not use an external table. That's not the point. The point is having a hard coded table within a program. This method allows the TEST set to grow in a nicely visible way without stretching a very long variable. Plus, for most programmers without a windows-like editor, the chance of messing up when appending to a long wrapped-around string is high as well. My 1 cent. Mark Johnson PS. The argument that LOCATE adds a cycle or two with the SETTING clause is weak. Given the verbose programming we all have seen, the SETTING clause ain't going to break anything. - Original Message - From: Kate Stanton [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 10:01 PM Subject: Re: [U2] Good Practice? How about: TEST = CHANGE('AF1,CK1,CK2,GS1,H,J,LHC,MP,MP3,NU1,NU2,TK1,TK2',',',@FM) - Original Message - From: Keith Johnson (DSLWN) [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 26, 2007 1:50 PM Subject: [U2] Good Practice? Neil suggested using LOCATE rather than INDEX in my example. I'm not sure I agree that would be any less complex as far as the code is concerned. INDEX and LOCATE are both 'complex' compared with the IF statement, and since LOCATE needs its SETTING variable, it's arguably the more complex statement. There are three different forms of LOCATE, so that can cause problems. Lastly, the variable TEST has to be set up with attribute marks either by multiple lines or by the very long line below; which, I have to say, I don't find very readable at all. TEST = 'AF1':@AM:'CK1':@AM:'CK2':@AM:'GS1':@AM:'H':@AM:'JM':@AM:'LHC':@AM:'MP': @AM:'MP3':@AM:'NU1':@AM:'NU2':@AM:'TK1':@AM:'TK2' SNIP --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Practice?
Using attribute variables (@am or AM or CHAR(254)) in the string is a waste of typing. Try this: TEST=A.B.C.D.E.F.G.H.I.J.K.L.M.N CONVERT . TO CHAR(254) IN TEST. I do this zillions of times with no downside. Again, using LOCATE will eliminate false positives. MJ - Original Message - From: Keith Johnson (DSLWN) [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, November 25, 2007 7:50 PM Subject: [U2] Good Practice? Neil suggested using LOCATE rather than INDEX in my example. I'm not sure I agree that would be any less complex as far as the code is concerned. INDEX and LOCATE are both 'complex' compared with the IF statement, and since LOCATE needs its SETTING variable, it's arguably the more complex statement. There are three different forms of LOCATE, so that can cause problems. Lastly, the variable TEST has to be set up with attribute marks either by multiple lines or by the very long line below; which, I have to say, I don't find very readable at all. TEST = 'AF1':@AM:'CK1':@AM:'CK2':@AM:'GS1':@AM:'H':@AM:'JM':@AM:'LHC':@AM:'MP': @AM:'MP3':@AM:'NU1':@AM:'NU2':@AM:'TK1':@AM:'TK2' There may be a slight speed benefit in restricting the scan by using 'AL'; but this is not material (or possibly even detectable?) in strings of this length. There is also an ongoing maintenance risk because the next programmer might not notice the codes were sorted, and may just add a new one to the end of the string. Regards, Keith. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Re: U2 Users Digest V1 #1968
Another great point of contention. For over 35 years (including pre-MV of the PDP-8 era), I typed FOR I=1 TO 10 and not FOR I = 1 TO 10. Meaning, my 'habit' (not style or standard) does not use Xspace=space1 but X=1. I don't use spaces as separators when using the colon (contatenation) function. Thus I use PRINT XL#10:YL#10. I do use spaces when putting multiple statements on the same line, X=1 ; Y=2 ; Z=3. I know that will ruffle a few feathers as there's a large camp condemning more than one statement on a line. I do use spaces with CALLed sub parameter strings, aka CALL SUB(A, B, C, D, E). In fact, I make a conscious effort to add the spaces as many programmers before me jam punctuationed parameters in the parameter area that makes it hard to discern, aka CALL SUB(TRK.MFT,SHP.RPT,F.FILE, D.FILE,F.TRK.DFR,USER_ANS1,USER_ANS2,RET_VAL). When printing, especially on non-laser printers, the commas and periods look too similar. I add a space after the commas in any read/write commands. Might I digress on file handling: I hate the non-filehandle option on production programs. It's acceptable only for single use, 'programmer's' programs. We can get into a whole dissertation on the nomenclature for file-handles. I believe I have the best practice for the OPEN statement. In fact I had it published by Spectrum years ago. Anyone who still uses OPEN ,CUSTOMER... meaning the null dict reference should get his head out of the sand. It's never been required, at least not by the truly earlier MV flavors (MCD, ULT, MENTOR, R80 etc). If it was required by Prime (spawning UV/UD), then it's not required by U2 today. My 4 cents Mark Johnson - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, November 22, 2007 1:25 PM Subject: RE: [U2] Re: U2 Users Digest V1 #1968 Mark: I always thought a principle of languages was to separate words. In this sentence, ... programs ago that PRINT X/100R2,#10 ... you've separated each word, within the sentence, with a space, but not the BASIC code. Why not BASIC? PRINT (X/100) R2,(#10) or X = (4 + 5) * 7 I believe you're correct when you talk about principles and inherited code. Sometimes principles go out the window. However, when writing new code certain principles should be followed and one is left to themselves, or others, to devise their own style. Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: Thursday, November 22, 2007 9:43 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Re: U2 Users Digest V1 #1968 Thanks David. I feel less alone. As far as the order of processing, it's an acquired taste. We all recall learning the order of calculations between +, -, / and *. Despite it compiling without parenthesis and coming up with the right answer, I too like to make it more obvious with using parens. X=4+5*7 vs X=4+(5*7) or X=(4+5)*7. You know the story. With that in mind, I've proven thousands of programs ago that PRINT X/100R2,#10 works as expected without fearing that it may come up as X/(100R2,#10). Only by testing did I gain the confidence to omit the parens. [snipped] My 3 cents Mark Johnson --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: RE: [U2] OCONV Extraction Question - Good Practice
--- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Re: U2 Users Digest V1 #1968
Thanks David. I feel less alone. As far as the order of processing, it's an acquired taste. We all recall learning the order of calculations between +, -, / and *. Despite it compiling without parenthesis and coming up with the right answer, I too like to make it more obvious with using parens. X=4+5*7 vs X=4+(5*7) or X=(4+5)*7. You know the story. With that in mind, I've proven thousands of programs ago that PRINT X/100R2,#10 works as expected without fearing that it may come up as X/(100R2,#10). Only by testing did I gain the confidence to omit the parens. In the Jurrasic Pick era, people got tired of typing EXTRACT (et al) and started using DIM arrays or other FIELD etc methods to save keystrokes. I too retired the letters OCONV() when I gained that confidence. I know that I can use DATE()d2/ and the numeric expressions earlier. I also know that I cannot use TIME()MTHS so I revert to OCONV(). I also know that if a date value may be empty in a formatted line, I don't trust XD2/L#10 so I use (XD2/)L#10. Bottom line is what's comfortable and what environment you are working with. Like David, I've been around the block a bunch and have seen horrible code that I can cognitively omit using. One clients' system has this style of dynamic array handling embedded everywhere and I dare not change it without a whole lot of finger crossing: Z=CHAR(254) ; ZZ=CHAR(253) REC=NAME:Z:ADD:Z:CITY:Z:STATE:Z:ZIP:Z:Z:Z:STR(Z,15):PHONE1:ZZ:PHONE2:Z:SALES MAN WRITE REC ON CUSTOMER, CUSTNO Quick, which attribute are the phone numbers on? When you inherit this kind of garbage and have your hands tied on justifying its improvement, then you can get an appreciation for the diversity of MV programming and don't get too caught up with tweaking the few best commands. I won't offend the FMT/OCONV crowd but I will defend against those who stand on their soapbox and offend simpler coding. My 3 cents Mark Johnson - Original Message - From: David A Barrett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, November 22, 2007 9:47 AM Subject: [U2] Re: U2 Users Digest V1 #1968 There was this: Speaking of mis-used commands and side-stepping some of the given code craziness... It is better practice to atomize the code into discrete elements such as... Var1.F = oconv(Var1, 'MD0') Var2.F = oconv(Var2, 'MD2') Var3.F = oconv(Var3, 'MD4') Crt.Str = Var1.F 'R#6 Crt.Str := Var2.R 'R#12' Crt.Str := Var3.F 'R#14' crt Crt.Str rather than to try to kill two birds with one stone by including an oconv statement inside a crt statement such as... crt oconv(Var1, 'MD0') --Bill And this: Womack, Adrian wrote: IMO, the only thing wrong with your example is the use of the trailing format strings - everyone (and I mean everyone) should be using the FMT function, making your example: CRT FMT(OCONV(VAR1,MD0),R#6 ):FMT(OCONV(VAR2,MD2),R#10 ):FMT(OCONV(VAR3,MD4),R#14) Yikes! As someone who has spent the last 25 years of my life looking at/fixing/changing code that someone else wrote I have to say that I value terseness over everything else. Create a variable just to hold the formatted version of some other variable to avoid embedding OCONV's in a PRINT/CRT/DISPLAY statement? Just looking at code like that would have me drawing a warm bath and getting out the razor blades. Never mind having to write code like that. Personally, I find the trailing D2/ a little too subtle, and prefer the use of OCONV statements just to make the conversion jump out a little more when someone takes a quick glance at the code. Justification and fill via R%6 and so on works just fine for me, and the extra space taken up with FMT function calls only serves to make the code harder to read. As to a disaster waiting to happen. I've never seen, never even heard of it happening. Doubt that I ever will. Programmers make typos all the time, keeping the code terse and clean is the absolute best way to make them easier to spot, easier to avoid and easier to fix. I don't like: PRINT ABC/100L%6 because I'm never quite trust the order of operations or my rememberance of them. I'd use: PRINT (ABC/100)L%6 I never saw a line of code that wouldn't be improved by adding some parenthesis. :) And I'd never use: X = (ABC/100)L%6 or X = OCONV(ABC,MD2,) Unless there was some extraordinary reason to have a variable floating around with formatted data in it. I consider it a best practice to keep all variables as internal, unformatted data and apply the formats in the output commands themselves. Dave Barrett, Lawyers' Professional Indemnity Company --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit
Re: [U2] OCONV Extraction Question - Good Practice
That's what the compiler is for. After all, it has the final word on the sourse code and any 'pre-compilers'. I'm having a similar dialog with someone on the D3 forum about their insistence upon 'changing' the syntax of data/basic statements as he feels that their syntax is not 'natural'. So he spends a lot of time developing his own pre-compiler that allows his new expressions to work for him yet get converted to the eventual data/basic compiler. I'm glad that you recognize that you're in a closed shop and don't have to worry about outside considerations. Given the vast amount of $OPTIONS that can be set in U2 systems, then you can customize your environment to exactly the one you like and go from there. Your two examples are just that, examples. I'm not going to stand on a soapbox and imply that you don't test. Not at all. But this kind of stuff comes up in the testing cycle of the project and if unexpected results occur, as in your 2 examples, then the testing has done its job in identifying a problem. Has EVERY instance of my typing VAL/100R2#10 been perfect. Of course not, just as every example of your typing FMT(OCONV didn't work every time either. Whether yours gets caught in a pre-compiler, the regular compiler or the testing cycle, it will eventually get caught and repaired. Being in a closed shop is almost a luxury. You have a forced 'style' (the word 'standard' is too global) that allows your entire application to maintain a cohesive feel, look and, most importantly, programmability and maintainability. That's a luxury that I don't have at any of my clients. Zero. I am the current cook in the kitchen and based on the styles and date stamps of prior programmers, I can detect an average of 5-6 different thought processes in the code that all come together for each client's application. There's no reverse-implying a single standard (sorry, 'style'). Many on this forum have this luxury. And I'm sure many do not. Thanks Mark Johnson - Original Message - From: Womack, Adrian [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, November 22, 2007 1:56 AM Subject: RE: [U2] OCONV Extraction Question - Good Practice Using FMT forces correct syntax use. Having the trailing formatting characters, can cause all kinds of issues with small typos in the code (especially when the compiler just takes it all in it's stride). Look at these two examples: * Accidentally inserting a space into a numeric constant A = 123 4 CRT A * displays 123. * missing out a colon or a comma CRT XYZ ABC * Displays ABC We use a syntax checking program which throws both of these out as bad syntax, so the code never gets anywhere near production. IMO the compiler shouldn't accept this type of formatting (or perhaps there should be a compiler $option). Although, we are a closed shop and work exclusively in PI/Open flavour, so portability isn't an issue for us. AdrianW -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: Thursday, 22 November 2007 2:54 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] OCONV Extraction Question - Good Practice I gotta ask. How is it a disaster waiting to happen. This 'best practices' exercise may die an early death with such unauthorized conclusions. How are you judging the CRT example as 'disasterous'. Mark Johnson BTW, the FMT expression may not play well with other MV flavours. Thus, I tend to program continouosly to cover all of my client's needs. DISCLAIMER: Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question - Good Practice
Considering the garbage I've inherited, I feel that I've made many previous expressions more concise and direct. Oh yeah, what Certification ? If any exists, I haven't stumbled upon it. Mark Johnson - Original Message - From: Jerry Banker [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, November 20, 2007 10:00 AM Subject: RE: [U2] OCONV Extraction Question - Good Practice I don't like it. I've been in the language for over 25 years and have passed the certification a couple of times and when I looked at this I was scratching my head for a while. Obviously you know what you are doing but what is going to happen with the next programmer when you retire. -Original Message- From: MAJ Programming [mailto:[EMAIL PROTECTED] Sent: Monday, November 19, 2007 11:12 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] OCONV Extraction Question - Good Practice Oddly enough, to make things more interesting, I would have coded it this way: CRT VAR1R0#6: :VAR2/100R2#10: :VAR3/1R4#14 Less typing. For output, the only time I use OCONV is a MTx time conversion or if the value isn't justified and I want the all the decimals. I use DATE()D2/ beaucoups of times. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question - Good Practice
Exactly why is CRT VAR1/100R2#10 such a challenge to those who want to use CRT FMT(OCONV(VAR1,MD2)R2#10) ? I've concluded that method years ago and haven't looked back. Surely by now if there was some hidden problem I would have run into it by now. Mark Johnson - Original Message - From: Susan Lynch [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, November 20, 2007 3:56 PM Subject: Re: [U2] OCONV Extraction Question - Good Practice Also, according to the UniBasic Reference Manual, The FMT function can produce different results based on the BASICTYPE setting. So, if we are going to discuss programming standards, do we have to discuss them for each BASICTYPE flavor? The manual documents what happens with BASICTYPE U, but those of us who are in SB shops are required to use BASICTYPE P, where the documentation does not often specify what the variations will be. Susan M. Lynch F.W. Davison Company, Inc. - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, November 20, 2007 3:14 PM Subject: RE: [U2] OCONV Extraction Question - Good Practice Adrian: I'm not sure about the disaster part. We've moved from D3 to Unidata (a trying experience) and the string handling seems to work fine. We have code like: CRT OCONV(VAR1, 'MD0') R(#06) : CRT OCONV(VAR2, 'MD2') R(#10) : CRT OCONV(VAR3, 'MD4') R(#14) ; ** end of output line ...and it works perfectly. So, since FMT isn't (or at least hasn't been) as portable as the string formating code (FMT wasn't part of the Adds, GA, R83, AdvPick, D3 line of MV), I'd say using FMT violates the guideline of make it portable. Just a thought... Bill Womack, Adrian wrote: IMO, the only thing wrong with your example is the use of the trailing format strings - everyone (and I mean everyone) should be using the FMT function, making your example: CRT FMT(OCONV(VAR1,MD0),R#6 ):FMT(OCONV(VAR2,MD2),R#10 ):FMT(OCONV(VAR3,MD4),R#14) The old method is a disaster waiting to happen. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: Tuesday, 20 November 2007 2:12 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] OCONV Extraction Question - Good Practice Here begins the voting for differences. I actually do not care for the inclusion of the extra Var1.F variables as, mentioned earlier, is that variable used elsewhere? Plus, it implies that it maybe part of a calculation instead of an upcoming, disposable CRT statement. Will I rot as I use this CRT statement? CRT OCONV(VAR1,MD0)R#6': :OCONV(VAR2,MD2)R#10: :OCONV(VAR3,MD4)R#14. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question - Best Practises
I would be in favor of chapterizing the various coding concepts into a greatest hits collection. As I have transversed perhaps 35 different MV systems during my career, I have had the chance to view many practices, both good and bad. I add the good ones to my collection (always willing to learn) and scratch my head at some of the crazy ones. I do give the benefit of the doubt in some cases as I can 'age' the programs and personally recall the available thought processes at the time. But also having been around since almost the beginning, I can see when some commands were used when the better ones were certainly available. Thus, those fall into the 'bad' category. Example of a bad technique that has no reason for its use: WHOLE.NAME=MARK JOHNSON II=INDEX(WHOLE.NAME, ,1) FIRST.NAME=WHOLE.NAME[1,II-1] ain't that called the FIELD command. Things like that. My 2 cents Mark Johnson - Original Message - From: Baker Hughes [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 19, 2007 10:17 AM Subject: RE: [U2] OCONV Extraction Question - Best Practises It's JUST a preference, presently I know we all reach for a good balance between brevity and clarity. I have some preferences too which I think are ideal, which seem less than ideal to others. ... but rather than mount my own hobby horse I have a suggestion / question that could put these types of exchanges to rest: WHAT IF - the U2UG took it as a future project to compile a Best Practices coding guideline document for our language? There's always helpful 'How to' stuff exchanged here. ...but style question sometimes spiral downward. As someone pointed out recently, we have the blessing and curse of using a rather free style language. Not much Structure-Style is not imposed by the construct of the language itself, like some others. Is it time to codify some best practices relating to structure, modularity, reuse, length of internal subs, etc? I may not like some of the resulting definitions myself but it would build cohesion and greater respect for the MV space. Another thing it would do is chart a clearer path for those coming behind us - we need new blood if the VARs in this space are going to continue to sell/support embedded MV apps. I would personally find it fascinating to see some of our venerable coders get together and see what they produced along this line. I have some names in mind but I'll wait for the nominations to officially open. Happy Thanksgiving. -Baker -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: Saturday, November 17, 2007 12:58 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] OCONV Extraction Question According to who? I know there are some pluses and minuses but where is this decided or is it just a preference. Thanks Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 16, 2007 11:30 AM Subject: RE: [U2] OCONV Extraction Question Speaking of mis-used commands and side-stepping some of the given code craziness... It is better practice to atomize the code into discrete elements such as... Var1.F = oconv(Var1, 'MD0') crt Var1.F 'R#11' rather than to try to kill two birds with one stone by including an oconv statement inside a crt statement such as... crt oconv(Var1, 'MD0') --Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of MAJ Programming Sent: Friday, November 16, 2007 12:48 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] OCONV Extraction Question This is real smart, making things harder than they should be. Just use . Mark Johnson - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, November 14, 2007 5:23 PM Subject: RE: [U2] OCONV Extraction Question Didn't work for me either. It may not fit what you need, but SWAP can make it work. VAR1 = 'SAM':@VM:'TRUDY' SWAP @VM WITH '*' IN VAR1 FMTSTR = 'G*1' CRT OCONV(VAR1,FMTSTR) Brad U.S. BANCORP made the following annotations - Electronic Privacy Notice. This e-mail, and any attachments, contains information that is, or may be, covered by electronic communications privacy laws, and is also confidential and proprietary in nature. If you are not the intended recipient, please be advised that you are legally prohibited from retaining, using, copying, distributing, or otherwise disclosing this information in any manner. Instead, please reply to the sender that you have received this communication in error, and then immediately delete it. Thank you in advance for your cooperation
Re: [U2] OCONV Extraction Question - Good Practice
Here begins the voting for differences. I actually do not care for the inclusion of the extra Var1.F variables as, mentioned earlier, is that variable used elsewhere? Plus, it implies that it maybe part of a calculation instead of an upcoming, disposable CRT statement. Will I rot as I use this CRT statement? CRT OCONV(VAR1,MD0)R#6': :OCONV(VAR2,MD2)R#10: :OCONV(VAR3,MD4)R#14. If so, I wonder how much company I'll have. My 1 cent. Oddly enough, to make things more interesting, I would have coded it this way: CRT VAR1R0#6: :VAR2/100R2#10: :VAR3/1R4#14 Less typing. For output, the only time I use OCONV is a MTx time conversion or if the value isn't justified and I want the all the decimals. I use DATE()D2/ beaucoups of times. - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 19, 2007 2:41 PM Subject: RE: [U2] OCONV Extraction Question - Good Practice The problem of printing non-atomic data gets worse when doing reports with tables, that is, long lines with several variables. Consider the following remedy. The alternative is a nightmare. --Bill Speaking of mis-used commands and side-stepping some of the given code craziness... It is better practice to atomize the code into discrete elements such as... Var1.F = oconv(Var1, 'MD0') Var2.F = oconv(Var2, 'MD2') Var3.F = oconv(Var3, 'MD4') Crt.Str = Var1.F 'R#6 Crt.Str := Var2.R 'R#12' Crt.Str := Var3.F 'R#14' crt Crt.Str rather than to try to kill two birds with one stone by including an oconv statement inside a crt statement such as... crt oconv(Var1, 'MD0') --Bill --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question - Best Practises
I'm all for exposing my personal techniques and watching the flames come. Granted, there will be some holy wars but in the end, many ambiguous conditions may be solved one way or another. I have exposed my personal techniques for many years on these forums and will defend them as I understand the offenders. I am also smart enough to change a technique if I see a better one. It doesn't have to be voted unanimously to be my favorite. We all can tell what techniques will fit comfortably with our existing skills. I, for one, do not care for the EQU CUST.NAME to CUSTOMER(1) style of coding. I do not like using attr 99 for calculated dictionary items (sorry, that's another forum). I have my own preferred way of opening files, file handle names, and even constructively mixing numeric with alphabetic labels. While there will be no winners, everyone will be a winner as we all will become exposed to other techniques that many of us may not have had the luxury of reviewing many different systems. I can't wait. Mark Johnson PS. Hopefully this doesn't become an artistic expression of grandeur. Meaning, if the chapter was the best way to multiply 2 numbers together, A=B*C must win. If someone submits A=e^(ln(B)+ln(C)) then that misses the point. - Original Message - From: Kevin King [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 19, 2007 12:07 PM Subject: Re: [U2] OCONV Extraction Question - Best Practises I'd play on that field, Chuck. Not looking for a flame war, but I know there are a lot of people with some great ideas and there's much to be gained by keeping the lines of communication open. Then again, topics like alpha vs. numeric labels could turn out to be massively polarizing. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question - Best Practises
I am living that mess of the 'future maintainer' right now. I've inherited 2 systems due to the prior programmer leaving town and while that programmer was very smart and had a good memory for the 10+ years of code he wrote, he barely commented anything, has ambiguous program and file names and, due to working 80% with The Programmer's Helper, everything is inconsistently abbreviated. So I figure that 10-15% of what I'm typing is not code but comments. I put comments in programs declaring why I am reviewing it in the first place and what it's attached to. I have a DICT README record in every data file for its nominal purpose and other commentary. I wrote a FIND.ALL program to review every BP file, Proc and MD in these multi-account systems to see if program FIX.RECORD-3 is used anywhere or a one-shot 'programmer's program. I have programs that sniff out OPEN attempted files that STOP upon failure to consider archiving the program out of the mainline BP files. All of this exposure of bad techiques will help many people develop their own Best Practices. MJ - Original Message - From: Kevin King [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, November 19, 2007 1:17 PM Subject: Re: [U2] OCONV Extraction Question - Best Practises In response to Susan's mention of the criteria for evaluating code, I submit that I personally verify code against three criteria: 1) Is it accurate? Does it fulfill its designed mission? Often times code misses this mark simply because of the shifting sands of requirements, and what might have been accurate six months ago may no longer be so. 2) Does it perform as well as it could? This is where the multiple READV/WRITEV thing falls down, as it may not be the most efficient way of achieving a given objective. 3) Is it maintainable? This goes far beyond readable to include elements to strengthen comprehension of the context and intended objective and how the source code interprets the implementation of that objective. This includes standardized code fragments and structures, predictable and consistent variable naming conventions, intentional use and avoidance of certain language elements (such as GE verses = for comparison) and commenting styles and standards. Too often, as Susan has pointed out, programmers write code to make today's problem go away because there are a dozen or more projects lined up behind it, instead of writing the code thinking of the guy who will be reading the code several months from now. I submit that we should always keep the future maintainer in mind, assuming that they know nothing of the context, little of the problem, and less time than needed to achieve their objective. If we don't set the stage for that person's success, we shouldn't be surprised when they don't describe our work in the most complimentary of terms. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question
This is real smart, making things harder than they should be. Just use . Mark Johnson - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, November 14, 2007 5:23 PM Subject: RE: [U2] OCONV Extraction Question Didn't work for me either. It may not fit what you need, but SWAP can make it work. VAR1 = 'SAM':@VM:'TRUDY' SWAP @VM WITH '*' IN VAR1 FMTSTR = 'G*1' CRT OCONV(VAR1,FMTSTR) Brad U.S. BANCORP made the following annotations - Electronic Privacy Notice. This e-mail, and any attachments, contains information that is, or may be, covered by electronic communications privacy laws, and is also confidential and proprietary in nature. If you are not the intended recipient, please be advised that you are legally prohibited from retaining, using, copying, distributing, or otherwise disclosing this information in any manner. Instead, please reply to the sender that you have received this communication in error, and then immediately delete it. Thank you in advance for your cooperation. - --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question
According to who? I know there are some pluses and minuses but where is this decided or is it just a preference. Thanks Mark Johnson - Original Message - From: Brutzman, Bill [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, November 16, 2007 11:30 AM Subject: RE: [U2] OCONV Extraction Question Speaking of mis-used commands and side-stepping some of the given code craziness... It is better practice to atomize the code into discrete elements such as... Var1.F = oconv(Var1, 'MD0') crt Var1.F 'R#11' rather than to try to kill two birds with one stone by including an oconv statement inside a crt statement such as... crt oconv(Var1, 'MD0') --Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of MAJ Programming Sent: Friday, November 16, 2007 12:48 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] OCONV Extraction Question This is real smart, making things harder than they should be. Just use . Mark Johnson - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, November 14, 2007 5:23 PM Subject: RE: [U2] OCONV Extraction Question Didn't work for me either. It may not fit what you need, but SWAP can make it work. VAR1 = 'SAM':@VM:'TRUDY' SWAP @VM WITH '*' IN VAR1 FMTSTR = 'G*1' CRT OCONV(VAR1,FMTSTR) Brad U.S. BANCORP made the following annotations - Electronic Privacy Notice. This e-mail, and any attachments, contains information that is, or may be, covered by electronic communications privacy laws, and is also confidential and proprietary in nature. If you are not the intended recipient, please be advised that you are legally prohibited from retaining, using, copying, distributing, or otherwise disclosing this information in any manner. Instead, please reply to the sender that you have received this communication in error, and then immediately delete it. Thank you in advance for your cooperation. - --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OCONV Extraction Question
This is a case of mis-used commands. MV allows for many ways to skin a cat. In this case, the is the most effecient. You can use the function EXTRACT, FIELD and OCONV but the is the best. Unless you/ve inherited code from over 25 years ago, the wins. Back then, the didn't exist and you had to use EXTRACT which caused people to consider FIELD. The only advantage to using OCONV with the G conversion is if you want more than a single element, aka G0*2 or [EMAIL PROTECTED] (sic). It's almost a no brainer to use . The others are all too cumbersome and don't read that easily. My 2 cents. Mark Johnson - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Wednesday, November 14, 2007 3:22 PM Subject: RE: [U2] OCONV Extraction Question Doug, Any reason you need to use OCONV() instead of FIELD()? Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of D Sent: Wednesday, November 14, 2007 1:05 PM To: u2-users@listserver.u2ug.org Subject: [U2] OCONV Extraction Question VAR1 = 'SAM':@VM:'TRUDY' CRT OCONV(VAR1,'WHATEVER') What replaces WHATEVER, so that I can see the value SAM? I cannot find in the documentation or remember for that matter how to extract a single value using the OCONV function. Thanks in advance, Doug --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material not intended for Public use. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is strictly prohibited. If you received this communication in error, please notify the sender and delete the material from any and all computers or devices. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OT: Where to sell Systech serial port servers (for Serial printers/Serial Terminals)
I could be interested in the systech serial controllers for a reasonable price. Thanks Mark Johnson - Original Message - From: rbl000 [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, October 04, 2007 5:27 PM Subject: Re: [U2] OT: Where to sell Systech serial port servers (for Serial printers/Serial Terminals) If you can't find a local place to donate them, there may be some libraries who would be willing to pay the shipping for such a donation. If you're interested, let me know and I can put you in touch with a listserve you can get their availability posted to. Richard Lewis [EMAIL PROTECTED] --- On Thu 10/04, Clifton Oliver [EMAIL PROTECTED] wrote: From: Clifton Oliver [mailto: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Date: Thu, 4 Oct 2007 00:41:33 -0700 Subject: Re: [U2] OT: Where to sell Systech serial port servers (for Serial printers/Serial Terminals) I doubt it you will ever make anything on these. You might check you local colleges and non-profits to see if you can get them to come haul them away (or pay the shipping) and then you take a charitable contribution deduction.-- Regards,ClifOn Oct 3, 2007, at 11:43 , Larry Hiscock wrote: Gabriel wrote: We also have over 100 ADDS Viewpoint terminals, but I have yet to find someone who will buy them where we make anything after shipping Look at the bright side ... At least you wouldn't have to pay someone to haul them away, which is what will happen if you hold on to them too much longer ;-) Larry Hiscock Western Computer Services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/---u2-users mailing [EMAIL PROTECTED] unsubscribe please visit http://listserver.u2ug.org/ ___ No banners. No pop-ups. No kidding. Make My Way your home on the Web - http://www.myway.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: Re[2]: [U2] Over-coming EDitor shortcomings
Have you tried Accuterm's WED (windows editor) or GED (Graphical design environment) or are you just comparing it as an emulator. I did a comparison between Accuterm Wintegrate 2 years ago for a client and Accuterm won hands down. Plus, despite the features winning, the price was phenomonal. $1000 for 50 licenses for Accuterm versus $200 each for Wintegrate. That's a factor of 10 times more expensive. My 20 cents. Mark Johnson - Original Message - From: Symeon Breen [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, October 16, 2007 6:21 AM Subject: RE: Re[2]: [U2] Over-coming EDitor shortcomings Just to say my 2 pennies on that one - personally I much prefer Wintegrate to Accuterm - Accuterm from the word go feels like an old vb 5 product - the splash screen is straight out of the nineties, it all feels dare I say very American :o . Wintegrate seems to have a much more modern approach, look and feel and has some very exciting features released every year. Rgds Symeon. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming Sent: 16 October 2007 00:33 To: u2-users@listserver.u2ug.org Subject: Re: Re[2]: [U2] Over-coming EDitor shortcomings What is WINE and is it a MV item or a non MV item. I use Accuterm as a wonderful cross-platform Windows-based Notepad style editor for Data/basic programs. Programs come alive when compared to over 25 years of EDIT or other 80x24 screen editors. Just being able to see 60 lines of code with color syntax highlighting is worth the price alone. The very popular MS commands are welcome. Oddly enough, WED is a derivative of the original MS EDIT that was very welcome compared to EDLIN. I am a strong proponent of WED and its Graphical development environment and it's a very good emulator. Please elaborate on your not knowing why anyone would use Accuterm. Those are pretty strong words against one of the most prevelant emulators in the MV world. I may have not used every emulator, especially the freeware ones that pop up on the internet. But I have worked with probably 10 emulators on MV-based systems and Accuterm kills them all, even Wintegrate. My 2 cents. Mark Johnson - Original Message - From: David Tod Sigafoos [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, October 15, 2007 1:43 PM Subject: Re[2]: [U2] Over-coming EDitor shortcomings MAJ, Does Accuterm work under WINE (though not sure why anyone would want to use Accuterm G) Monday, October 15, 2007, 6:07:04 AM, you wrote: SNIP MP I don't argue the stability or anything supporting the use of unix as a MP desktop OS. But in this case, it loses if it cannot use Accuterm. -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ Our greatest duty in this life is to help others. And please, if you can't help them, could you at least not hurt them? - H.H. the Dalai Lama --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Over-coming EDitor shortcomings
By toy it means that it has less credibility? Please explain. I'll borrow a video reference that endorses both sides of the unix/MS desktop debate. In the 1970's, Sony invented the Beta format for video tape and Panasonic (et al) invented the VHS (Video Home System). VHS won the popularity contest yet all along Beta was the better technology. (Oddly enough, the Beta format (later BetaCam SP) was one of the last significant analog tape formats before digital taping came along.) I don't argue the stability or anything supporting the use of unix as a desktop OS. But in this case, it loses if it cannot use Accuterm. My 1 cent Mark Johnson - Original Message - From: Allen E. Elwood [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, October 14, 2007 6:06 PM Subject: RE: [U2] Over-coming EDitor shortcomings This is exactly what people used to say about windows. It was just a 'toy'. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of MAJ Programming Sent: Sunday, October 14, 2007 11:18 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Over-coming EDitor shortcomings When people purposely choose to not follow what's popular, there are certain risks involved. Not having Windows desktops on the client side causes a severe reduction in available software. There is no business argument endorsing $0.00 for gvim versus $20 for Accuterm when it closes the door on incredible productivity tools like WED. We MV people have chosen to NOT follow the traditional SQL-based family of databases. That's our choice. To go to a non-popular desktop that you have just causes a continuous hunt for open-source/freeware with all of the unsupported languages and techniques. I'm not pro-corporate (Big Blue, IBM, MS etc) in this regard and just follow the trends like uninformed sheep. But the situation you describe will only get worse as everyone depends on their peers for advanced products instead of those that are capable of delivering (and supporting) their products. I'd be hard pressed to find someone as fully well versed in all things MV AND Microsoft as Peter Schellenbach. He probably looked at the unix DESKTOP and from a business sense concluded that these 'do it yourselfers' (No flames please) won't spend money on a 'nix variant of Accuterm so why bother. Don't you unix guys have MS emulators in your world of freeware that Accuterm could run on? You get what you pay for. Mark Johnson Tony: keep your flames on me limited to this topic of the editor and none others. Thanks in advance. - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, October 14, 2007 12:40 PM Subject: RE: [U2] Over-coming EDitor shortcomings My point is that my workstation is running Linux (PCLinuxOS, for the curious), as was pointed out, and accuterm doesn't port to *nixes. Our server is AIX. I've put gvim on it since it's free. We don't have deep pockets to be paying much for emulators. I have a product installed called jtelnet which is open-source/free and is called from any java-enabled browser. Works very nicely for our account reps and support engineers. I know that's off the topic of EDitors, but it's all related dollar-wise. Karl quote who=Bertrand, Ron Do not know about Unidata but you can get to any unix directory/file with pointers in Universe. Then you can use either ED or WED and so on. I have to admit to being spoiled by accuterms WED. Ron Bertrand Group Health LIS/ISD From: [EMAIL PROTECTED] on behalf of [EMAIL PROTECTED] Sent: Fri 10/12/2007 9:30 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Over-coming EDitor shortcomings So, what good is that for those of us who live on Unix/Linux and don't have the option of running Accuterm? I use gvim, which has pretty good syntax highlighting, copy/move/find-replace, etc. I prefer it to ED. I've never used AE. I guess it's time to do some experimenting with other technologies. OH, and just for fun, consider this: I write my HTML code with gvim or vim, period... Old School or just stubborn? hmmm. Karl quote who=MAJ Programming Shameless plug for Accuterm If you haven't used WED, their Windows EDitor, you're missing a ton of helpful editor stuff. All of the shortcuts and command-line tricks pale by comparison. Funny, how everybody talks about the latest XYZ alphabetic technologies yet still use an editor barely better than vi or EDLIN. And don't let your years of experience sway you to protecting that fingertip editor. I've been using the regular EDIT, AE or vi coming up on 30 years and WED blows them all away. (this ain't a contest) WED alone without their graphical developer tools (GED) or their powerful emulator is worth the price
Re: Re[2]: [U2] Over-coming EDitor shortcomings
What is WINE and is it a MV item or a non MV item. I use Accuterm as a wonderful cross-platform Windows-based Notepad style editor for Data/basic programs. Programs come alive when compared to over 25 years of EDIT or other 80x24 screen editors. Just being able to see 60 lines of code with color syntax highlighting is worth the price alone. The very popular MS commands are welcome. Oddly enough, WED is a derivative of the original MS EDIT that was very welcome compared to EDLIN. I am a strong proponent of WED and its Graphical development environment and it's a very good emulator. Please elaborate on your not knowing why anyone would use Accuterm. Those are pretty strong words against one of the most prevelant emulators in the MV world. I may have not used every emulator, especially the freeware ones that pop up on the internet. But I have worked with probably 10 emulators on MV-based systems and Accuterm kills them all, even Wintegrate. My 2 cents. Mark Johnson - Original Message - From: David Tod Sigafoos [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, October 15, 2007 1:43 PM Subject: Re[2]: [U2] Over-coming EDitor shortcomings MAJ, Does Accuterm work under WINE (though not sure why anyone would want to use Accuterm G) Monday, October 15, 2007, 6:07:04 AM, you wrote: SNIP MP I don't argue the stability or anything supporting the use of unix as a MP desktop OS. But in this case, it loses if it cannot use Accuterm. -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ Our greatest duty in this life is to help others. And please, if you can't help them, could you at least not hurt them? - H.H. the Dalai Lama --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Over-coming EDitor shortcomings
When people purposely choose to not follow what's popular, there are certain risks involved. Not having Windows desktops on the client side causes a severe reduction in available software. There is no business argument endorsing $0.00 for gvim versus $20 for Accuterm when it closes the door on incredible productivity tools like WED. We MV people have chosen to NOT follow the traditional SQL-based family of databases. That's our choice. To go to a non-popular desktop that you have just causes a continuous hunt for open-source/freeware with all of the unsupported languages and techniques. I'm not pro-corporate (Big Blue, IBM, MS etc) in this regard and just follow the trends like uninformed sheep. But the situation you describe will only get worse as everyone depends on their peers for advanced products instead of those that are capable of delivering (and supporting) their products. I'd be hard pressed to find someone as fully well versed in all things MV AND Microsoft as Peter Schellenbach. He probably looked at the unix DESKTOP and from a business sense concluded that these 'do it yourselfers' (No flames please) won't spend money on a 'nix variant of Accuterm so why bother. Don't you unix guys have MS emulators in your world of freeware that Accuterm could run on? You get what you pay for. Mark Johnson Tony: keep your flames on me limited to this topic of the editor and none others. Thanks in advance. - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, October 14, 2007 12:40 PM Subject: RE: [U2] Over-coming EDitor shortcomings My point is that my workstation is running Linux (PCLinuxOS, for the curious), as was pointed out, and accuterm doesn't port to *nixes. Our server is AIX. I've put gvim on it since it's free. We don't have deep pockets to be paying much for emulators. I have a product installed called jtelnet which is open-source/free and is called from any java-enabled browser. Works very nicely for our account reps and support engineers. I know that's off the topic of EDitors, but it's all related dollar-wise. Karl quote who=Bertrand, Ron Do not know about Unidata but you can get to any unix directory/file with pointers in Universe. Then you can use either ED or WED and so on. I have to admit to being spoiled by accuterms WED. Ron Bertrand Group Health LIS/ISD From: [EMAIL PROTECTED] on behalf of [EMAIL PROTECTED] Sent: Fri 10/12/2007 9:30 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Over-coming EDitor shortcomings So, what good is that for those of us who live on Unix/Linux and don't have the option of running Accuterm? I use gvim, which has pretty good syntax highlighting, copy/move/find-replace, etc. I prefer it to ED. I've never used AE. I guess it's time to do some experimenting with other technologies. OH, and just for fun, consider this: I write my HTML code with gvim or vim, period... Old School or just stubborn? hmmm. Karl quote who=MAJ Programming Shameless plug for Accuterm If you haven't used WED, their Windows EDitor, you're missing a ton of helpful editor stuff. All of the shortcuts and command-line tricks pale by comparison. Funny, how everybody talks about the latest XYZ alphabetic technologies yet still use an editor barely better than vi or EDLIN. And don't let your years of experience sway you to protecting that fingertip editor. I've been using the regular EDIT, AE or vi coming up on 30 years and WED blows them all away. (this ain't a contest) WED alone without their graphical developer tools (GED) or their powerful emulator is worth the price. Accuterm is truly one of the best bargains in the MV world. /Shameless plug for Accuterm - Original Message - From: Jerry Banker [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, October 12, 2007 10:21 AM Subject: RE: [U2] Over-coming EDitor shortcomings I created a pre-store, a few years back, that does something similar thing in the regular editor. I think we were still on UV 7.4 at the time. ED ED FIB 6 lines long. : P 0001: EPre-stored Command saved at 16:50:53 24 JUN 1998 0002: FORMAT 0003: SAVE 0004: XEQ DECATALOG @FILE @ID 0005: XEQ BASIC @FILE @ID 0006: XEQ CATALOG @FILE @ID Bottom at line 6. So when in the regular editor all you have to do is type in: .X FIB Which is a few more key strokes but less than all of the commands. I didn't want to do the run because most of the development at the time was done on a live system. But you could add: XEQ @FILE @ID or XEQ @ID after the last line and save it as FIBR to do as you are doing. Jerry -Original Message- From: Baker Hughes [mailto:[EMAIL PROTECTED] Sent: Friday, October 12, 2007 8:40 AM To: u2-users@listserver.u2ug.org Subject: [U2] Over-coming EDitor
Re: [U2] select statement with single quotes
The ` character has an interesting twist in my travels. Somehow, somewhere in the past, using an apostrophe to bound text in an English statement caused unpredictable results. The Quote (double quote if you're counting) character didn't have those problems. Thus, I ceased using the single quote (apostrophe character) for anything except as a text value, not as a quotation bounding character. The ` grave character is relegated as text only and in those systems that I see character stripping subroutines, it's removed along with the control characters. The premise was that the purpose of many text fields (as opposed to validated fields) is its LIKE-style lookup later. If the maint program removed them, then the lookups could strip their sought text and make their match. If the correct spelling of RESUME (re-su-may) has the grave character on the last E but it gets stripped, then it's RESUME (re-soom). Words like O'rielly retain their apostrophe though. While there is an increase in foreign character modifiers, aka umlauts, tildes, graves, in today's global communications, they present inconsistent results when searched for later. If the user doesn't include the grave in RESUME, it's a different word and meaning. On the other hand, the accepted spelling of many words with modifiers is without as well. Not many people know of using the alt156 keystroke combination to add cuteness to their words. It's like typing an attribute mark. My 2 cents Mark Johnson - Original Message - From: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Sunday, October 14, 2007 12:36 PM Subject: Re: [U2] select statement with single quotes A grave is also a tic isn't it? Karl quote who=Kevin King Glen pretty well made my point. The ` is a grave, not an apostrophe. Bill, I'm not sure what exactly you mean; technically the ' is the apostrophe AND also single quote. In fact, apostrophe is the proper name, single quote is merely convenient vernacular. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- Karl Pearson Director of I.T. ATS Industrial Supply, Inc. [EMAIL PROTECTED] http://www.atsindustrial.com 800-789-9300 x29 Local: 801-978-4429 Fax: 801-972-3888 To mess up your Linux PC, you have to really work at it; to mess up a microsoft PC you just have to work on it. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Over-coming EDitor shortcomings
Shameless plug for Accuterm If you haven't used WED, their Windows EDitor, you're missing a ton of helpful editor stuff. All of the shortcuts and command-line tricks pale by comparison. Funny, how everybody talks about the latest XYZ alphabetic technologies yet still use an editor barely better than vi or EDLIN. And don't let your years of experience sway you to protecting that fingertip editor. I've been using the regular EDIT, AE or vi coming up on 30 years and WED blows them all away. (this ain't a contest) WED alone without their graphical developer tools (GED) or their powerful emulator is worth the price. Accuterm is truly one of the best bargains in the MV world. /Shameless plug for Accuterm - Original Message - From: Jerry Banker [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Friday, October 12, 2007 10:21 AM Subject: RE: [U2] Over-coming EDitor shortcomings I created a pre-store, a few years back, that does something similar thing in the regular editor. I think we were still on UV 7.4 at the time. ED ED FIB 6 lines long. : P 0001: EPre-stored Command saved at 16:50:53 24 JUN 1998 0002: FORMAT 0003: SAVE 0004: XEQ DECATALOG @FILE @ID 0005: XEQ BASIC @FILE @ID 0006: XEQ CATALOG @FILE @ID Bottom at line 6. So when in the regular editor all you have to do is type in: .X FIB Which is a few more key strokes but less than all of the commands. I didn't want to do the run because most of the development at the time was done on a live system. But you could add: XEQ @FILE @ID or XEQ @ID after the last line and save it as FIBR to do as you are doing. Jerry -Original Message- From: Baker Hughes [mailto:[EMAIL PROTECTED] Sent: Friday, October 12, 2007 8:40 AM To: u2-users@listserver.u2ug.org Subject: [U2] Over-coming EDitor shortcomings /snip FIX 0001 PA 0002 FORMAT BP I2,Enter BP item 0003 ED BP I2,Enter BP item 0004 HUSH ON 0005 DELETE BP.O I2,Enter BP item 0006 HUSH OFF 0007 BASIC BP I2,Enter BP item My 2 bits on this topic. Karl snip\ Which is why I like the AE [alternate] editor. Once you've executed a format command in your logon session, you simply type 'FOR' at any time the rest of the day, in any edit session, to format with the same parameters. FOR -I3 -M3 [Indention of 3, margin of 3] BTW, If you're chasing a pesky bug that's hidden in a 14 tier nested LOOP,IF,CASE,Whatever then use this: 'FOR -TRACE' it will put pipes in for you where we used to draw lines with our ruler to trace the logical flow. Then when your done and want to compile: 'FIBR' will file it, compile it, and run it [don't get to habitual with the 'R' if your in a sub]. The AE invoked compiler removes the old source when it starts, that way if the compile produces no object, it doesn't run the old object code. At least this is the behavior on UV 10 or higher. 356: 357:IF HOLD # '' AND NOT(ALARM) THEN *--: FOR -I3 -M3 Margin=3, Indentation=3, -incase !! *--: FOR Margin=3, Indentation=3, -incase !! *--: FIB Filed DOE.WRITE.SUB.F1675 in file BHB. Compiling: Source = '/system1/dev.programs/BHB/DOE.WRITE.SUB.F1675', Object = '/system1/dev.programs/BHB.O/DOE.WRITE.SUB.F1675' *** 000671 Compilation Complete. Of course, you could stack the FORmat command and the FIBR command into a saved prestore that you recall when you begin your edit session, but that's another subject. FWIW, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] OT: Where to sell Systech serial port servers (for Serial printers/Serial Terminals)
Gimme a price and description on the Systech serial controllers. I have one client who uses them and could opt for spares. Thanks Mark Johnson - Original Message - From: rbl000 [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Thursday, October 04, 2007 6:27 PM Subject: Re: [U2] OT: Where to sell Systech serial port servers (for Serial printers/Serial Terminals) If you can't find a local place to donate them, there may be some libraries who would be willing to pay the shipping for such a donation. If you're interested, let me know and I can put you in touch with a listserve you can get their availability posted to. Richard Lewis [EMAIL PROTECTED] --- On Thu 10/04, Clifton Oliver [EMAIL PROTECTED] wrote: From: Clifton Oliver [mailto: [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Date: Thu, 4 Oct 2007 00:41:33 -0700 Subject: Re: [U2] OT: Where to sell Systech serial port servers (for Serial printers/Serial Terminals) I doubt it you will ever make anything on these. You might check you local colleges and non-profits to see if you can get them to come haul them away (or pay the shipping) and then you take a charitable contribution deduction.-- Regards,ClifOn Oct 3, 2007, at 11:43 , Larry Hiscock wrote: Gabriel wrote: We also have over 100 ADDS Viewpoint terminals, but I have yet to find someone who will buy them where we make anything after shipping Look at the bright side ... At least you wouldn't have to pay someone to haul them away, which is what will happen if you hold on to them too much longer ;-) Larry Hiscock Western Computer Services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/---u2-users mailing [EMAIL PROTECTED] unsubscribe please visit http://listserver.u2ug.org/ ___ No banners. No pop-ups. No kidding. Make My Way your home on the Web - http://www.myway.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/