Focal Point Banner


As of December 1, 2020, Focal Point is retired and repurposed as a reference repository. We value the wealth of knowledge that's been shared here over the years. You'll continue to have access to this treasure trove of knowledge, for search purposes only.

Join the TIBCO Community
TIBCO Community is a collaborative space for users to share knowledge and support one another in making the best use of TIBCO products and services. There are several TIBCO WebFOCUS resources in the community.

  • From the Home page, select Predict: WebFOCUS to view articles, questions, and trending articles.
  • Select Products from the top navigation bar, scroll, and then select the TIBCO WebFOCUS product page to view product overview, articles, and discussions.
  • Request access to the private WebFOCUS User Group (login required) to network with fellow members.

Former myibi community members should have received an email on 8/3/22 to activate their user accounts to join the community. Check your Spam folder for the email. Please get in touch with us at community@tibco.com for further assistance. Reference the community FAQ to learn more about the community.


Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     Determining if a record is the last in a table or hold file [SOLVED]

Read-Only Read-Only Topic
Go
Search
Notify
Tools
Determining if a record is the last in a table or hold file [SOLVED]
 Login/Join
 
Member
posted
Baisically, I would like to create a define to add a (concatentate) comma to a field def unless it is the last record in the table or hold file. Not sure how to go about doing this.

This message has been edited. Last edited by: l-moore,
 
Posts: 5 | Registered: June 12, 2007Report This Post
Expert
posted Hide Post
Something like this, first determine the value of the last row in the table:

TABLE FILE CAR
SUM
LST.COUNTRY
ON TABLE HOLD AS H001
END
-RUN

-READ H001 &COUNTRY.A10.

DEFINE FILE CAR
CCOM/A11 = IF COUNTRY EQ '&COUNTRY' THEN COUNTRY ELSE COUNTRY | ',';
END

TABLE FILE CAR
PRINT 
CCOM
END

If by statements are required, add them to both TABLE requests:
TABLE FILE CAR
SUM
COUNTRY
BY HIGHEST 1 COUNTRY
ON TABLE HOLD AS H001
END
-RUN

-READ H001 &COUNTRY.A10.

-TYPE &COUNTRY

DEFINE FILE CAR
CCOM/A11 = IF COUNTRY EQ '&COUNTRY' THEN COUNTRY ELSE COUNTRY | ',';
END

TABLE FILE CAR
PRINT 
CCOM
BY COUNTRY
HEADING
"LAST COUNTRY: &COUNTRY"
END


Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
 
Posts: 10577 | Location: Toronto, Ontario, Canada | Registered: April 27, 2005Report This Post
Virtuoso
posted Hide Post
DEFINE FILE CAR
AANT/I5 WITH SEATS = 1;
END
TABLE FILE CAR
SUM AANT
PRINT CAR MODEL SEATS
 COMPUTE RECNUM/I5 = RECNUM+1;
 COMPUTE COMMA/A1 = IF RECNUM EQ C1 THEN ' ' ELSE ',';
BY COUNTRY
END

This shows a possibility to do it in one pass.
Hope this helps ...


GamP

- Using AS 8.2.01 on Windows 10 - IE11.
in Focus since 1988
 
Posts: 1961 | Location: Netherlands | Registered: September 25, 2007Report This Post
Expert
posted Hide Post
Elegant!


Francis


Give me code, or give me retirement. In FOCUS since 1991

Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
 
Posts: 10577 | Location: Toronto, Ontario, Canada | Registered: April 27, 2005Report This Post
Member
posted Hide Post
This started as a way to fill out a JavaScript parameter. Here is what I came up with to generate the data...

TABLE FILE EXPENSES
LIST MONTH
RENT
UTILITIES
ON TABLE HOLD AS LEE1
END


-SET &MYCOUNT = &RECORDS;
-RUN

DEFINE FILE LEE1
ROWNUM/D9 = LIST;
ROWCOUNT/D9 = &MYCOUNT;
RENTNUM/A12 = FTOA(RENT,'(D10.2)', 'A12');
UTILNUM/A12 = FTOA(UTILITIES,'(D10.2)', 'A12');
DATA_LINE/A64 = '{ month: "' || MONTH || '", rent: ' || RENTNUM || ', utilities: ' || UTILNUM || '}';
COMMA/A1 = IF ROWNUM EQ ROWCOUNT THEN '' ELSE ',';
END

TABLE FILE LEE1
PRINT DATA_LINE
COMMA
ON TABLE HOLD AS TEST
END


Then we just pass the hold file to the HTMLFORM and Bingo!
 
Posts: 5 | Registered: June 12, 2007Report This Post
  Powered by Social Strata  

Read-Only Read-Only Topic

Focal Point    Focal Point Forums  Hop To Forum Categories  WebFOCUS/FOCUS Forum on Focal Point     Determining if a record is the last in a table or hold file [SOLVED]

Copyright © 1996-2020 Information Builders