Sidebar: Did (does) any system require the null expression for DICT in an OPEN statement. Haven't used them since 1978 when I accidentally forgot it and never looked back.
Just curious. Mark Johnson ----- Original Message ----- From: "Allen E. Elwood" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Monday, November 07, 2005 7:24 PM Subject: RE: [U2] Sort help needed > Here's a generic sort routine to use as an example. It is capable of > sorting any number of attributes in a file. Basically, after using LOCATE > you have to use INSERT. > > *TEST.SORT Sort unlimited associated fields off of one field > OPEN "", "ORDER.BACK" TO ORDER.BACK ELSE PRINT "GAAAAAA";STOP > ORD = "" > ORD<11> = CHANGE('789,456,123',",",@VM) > ORD<12> = CHANGE('1,2,3',",",@VM) > ORD<13> = CHANGE('4,5,6',",",@VM) > ORD<14> = CHANGE('SOMETHING, THAT, SHOULDNOTCHANGE',",",@VM) > ORD<31> = CHANGE('7,8,9',",",@VM) > ORD<32> = CHANGE('10,11,12',",",@VM) > > * Setup Parameters > SORT.REC = ORD > ATTR.LIST = "12,13,31,32" > ATTR.LIST = CHANGE(ATTR.LIST, ",", @AM) > ATTR.COUNT = DCOUNT(ATTR.LIST,@AM) > DATA.BASE = "" > SORT.ATTR = 11 > SORT.BASE = "" > SORT.COUNT = DCOUNT(SORT.REC<SORT.ATTR>,@VM) > * Sort the data based off of the sort attribute in the sort record > FOR SORT.I = 1 TO SORT.COUNT > SORT.VALUE = SORT.REC<SORT.ATTR, SORT.I> > LOCATE SORT.VALUE IN SORT.BASE<1>,1 BY 'AR' SETTING SORT.INDEX ELSE NULL > SORT.BASE = INSERT(SORT.BASE, 1, SORT.INDEX, 0, SORT.VALUE) > FOR ATTR.I = 1 TO ATTR.COUNT > ATTR = ATTR.LIST<ATTR.I> > ATTR.VALUE = SORT.REC<ATTR, SORT.I> > DATA.BASE<ATTR.I> = INSERT(DATA.BASE<ATTR.I>, 1, SORT.INDEX, 0, > ATTR.VALUE) > NEXT ATTR.I > NEXT SORT.I > * Replace the sort record with the sorted values > SORT.REC<SORT.ATTR> = SORT.BASE > FOR ATTR.I = 1 TO ATTR.COUNT > ATTR = ATTR.LIST<ATTR.I> > SORT.REC<ATTR> = DATA.BASE<ATTR.I> > NEXT ATTR.I > ORD = SORT.REC > WRITE ORD ON ORDER.BACK, 'TEST.SORT' > STOP > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Al DeWitt > Sent: Monday, November 07, 2005 15:27 > To: [email protected] > Subject: [U2] Sort help needed > > > Environment: UniData - Pick Flavor > > > > I'm trying to build a multi-value field in part number order. > > > > I begin with LOCATE PART.NBR IN RECORD<14> BY "AL" SETTING POS ELSE POS > = 0 > > > > The first time through RECORD<14> is empty. The second time RECORD<14> > has one value. If PART.NBR is of greater value than what is now in > RECORD<14> then I want PART.NBR to be the second value, if it is of > lesser value than I want PART.NBR to be inserted before the value in > RECORD<14>. > > > > I will then do a second LOCATE to see where PART.NBR is stored > (RECORD<14,x>) and use that position to insert data into associated > attributes. > > > > My problem is that I haven't done this in a while and when I did it was > in Universe. So not only am I suffering a senior moment I'm dealing > with a language barrier. > > > > Any help would be greatly appreciated. > > > > Thanks. > > > > Al DeWitt > > Stylmark, Inc. > ------- > u2-users mailing list > [email protected] > To unsubscribe please visit http://listserver.u2ug.org/ > ------- > u2-users mailing list > [email protected] > To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/
