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.
I am trying to determine the correct syntax needed in my code to suppress rows with no data. The blank lines printing are through off the page break. I believe I need to use 'when exists', but not sure how it should be coded. Any help would be appreciated.
Here is my code:
DEFINE FILE ADVISING_QUESTIONNAIRE ADD BLANKLINE/A10 = ' '; ATTRACTLBL/A50 = 'New College Attraction'; SUBJMLBL/A50 = 'Subject(s) Most Enjoyed'; SUBJLLBL/A50 = 'Subject(s) Least Enjoyed'; CRSELBL/A50 = 'Course Choices'; AOCLBL/A50 = 'Areas of Concentration Considered'; CAREERLBL/A50 = 'Career Interest'; PREPROFLBL/A50 = 'Pre-Professional Interests'; OCSLBL/A50 = 'Study Abroad - OCS Interests'; ACADSTRLBL/A50 = 'Academic Strengths'; GOALSLBL/A50 = 'Academic Goals'; ACADNEEDLBL/A50 = 'Academic Skills in need of Strengthening'; SENTENCE1LBL/A85 = 'At New College, in addtion to earning a stellar education, I am looking forward to'; SENTENCE2LBL/A85 = 'Over the next four years, I expect New College to'; SENTENCE3LBL/A85 = 'In order to achieve my goals at New College, I will'; SENTENCE4LBL/A85 = 'As I look ahead to attending New College, I am most worried about'; ADVISORLBL/A50 = 'Advisor Qualities'; EXCURLBL/A50 = 'Extracurricular Interests'; SKILLSLBL/A50 = 'Course Choices'; EXTRALBL/A50 = 'Other Information'; -* AOC_LINES/A1000 MISSING ON = PARAG(1000,AREA_OF_CONCENTRATION,'\',100,'A1000'); ADVISOR_LINES/A1000 MISSING ON = PARAG(1000,ADVISOR_QUALITIES,'\',100,'A1000'); EXCUR_LINES/A1000 MISSING ON = PARAG(1000,EXTRACURRICULAR_INTERESTS,'\',100,'A1000'); ACADSTR_LINES/A1000 MISSING ON = PARAG(1000,ACADEMIC_STRENGTHS,'\',100,'A1000'); ACADGOAL_LINES/A1000 MISSING ON = PARAG(1000,ACADEMIC_GOALS,'\',100,'A1000'); ACADNEED_LINES/A1000 MISSING ON = PARAG(1000,ACADEMIC_SKILLS,'\',100,'A1000'); EXTRA_LINES/A2000 MISSING ON = PARAG(2000,EXTRA_INFO,'\',100,'A2000'); ATTRACT_LINES/A2000 MISSING ON = PARAG(2000,ATTRACTION_NC,'\',100,'A2000'); SUBJM_LINES/A256 MISSING ON = PARAG(256,SUBJECT_MOST1,'\',100,'A256'); SUBJL_LINES/A256 MISSING ON = PARAG(256,SUBJECT_LEAST1,'\',100,'A256'); CAREER_LINES/A1000 MISSING ON = PARAG(1000,CAREER,'\',100,'A1000'); PREPROF_LINES/A256 MISSING ON = PARAG(256,PRE_PROF_INTEREST,'\',100,'A256'); OCS_LINES/A2000 MISSING ON = PARAG(2000,STUDY_ABROAD_OCS,'\',100,'A2000'); SENTENCE1_LINES/A1000 MISSING ON = PARAG(1000,COMPLETE_SENTENCE1,'\',100,'A1000'); SENTENCE2_LINES/A1000 MISSING ON = PARAG(1000,COMPLETE_SENTENCE2,'\',100,'A1000'); SENTENCE3_LINES/A1000 MISSING ON = PARAG(1000,COMPLETE_SENTENCE3,'\',100,'A1000'); SENTENCE4_LINES/A1000 MISSING ON = PARAG(1000,COMPLETE_SENTENCE4,'\',100,'A1000'); SKILLS_LINES/A2000 MISSING ON = PARAG(2000,SKILLS_TALENTS,'\',100,'A2000'); -* AOC_L1/A200 = GETTOK(AOC_LINES,1000,1,'\',200,'A200'); AOC_L2/A200 = GETTOK(AOC_LINES,1000,2,'\',200,'A200'); AOC_L3/A200 = GETTOK(AOC_LINES,1000,3,'\',200,'A200'); AOC_L4/A200 = GETTOK(AOC_LINES,1000,4,'\',200,'A200'); AOC_L5/A200 = GETTOK(AOC_LINES,1000,5,'\',200,'A200'); -* ADVISOR_L1/A200 = GETTOK(ADVISOR_LINES,1000,1,'\',200,'A200'); ADVISOR_L2/A200 = GETTOK(ADVISOR_LINES,1000,2,'\',200,'A200'); ADVISOR_L3/A200 = GETTOK(ADVISOR_LINES,1000,3,'\',200,'A200'); ADVISOR_L4/A200 = GETTOK(ADVISOR_LINES,1000,4,'\',200,'A200'); ADVISOR_L5/A200 = GETTOK(ADVISOR_LINES,1000,5,'\',200,'A200'); -* ATTRACT_L1/A200 = GETTOK(ATTRACT_LINES,2000,1,'\',200,'A200'); ATTRACT_L2/A200 = GETTOK(ATTRACT_LINES,2000,2,'\',200,'A200'); ATTRACT_L3/A200 = GETTOK(ATTRACT_LINES,2000,3,'\',200,'A200'); ATTRACT_L4/A200 = GETTOK(ATTRACT_LINES,2000,4,'\',200,'A200'); ATTRACT_L5/A200 = GETTOK(ATTRACT_LINES,2000,5,'\',200,'A200'); -* CAREER_L1/A200 = GETTOK(CAREER_LINES,1000,1,'\',200,'A200'); CAREER_L2/A200 = GETTOK(CAREER_LINES,1000,2,'\',200,'A200'); CAREER_L3/A200 = GETTOK(CAREER_LINES,1000,3,'\',200,'A200'); CAREER_L4/A200 = GETTOK(CAREER_LINES,1000,4,'\',200,'A200'); CAREER_L5/A200 = GETTOK(CAREER_LINES,1000,5,'\',200,'A200'); -* SUBJM_L1/A100 = GETTOK(SUBJM_LINES,256,1,'\',100,'A100'); SUBJM_L2/A100 = GETTOK(SUBJM_LINES,256,2,'\',100,'A100'); SUBJM_L3/A100 = GETTOK(SUBJM_LINES,256,3,'\',100,'A100'); -* SUBJL_L1/A100 = GETTOK(SUBJL_LINES,256,1,'\',100,'A100'); SUBJL_L2/A100 = GETTOK(SUBJL_LINES,256,2,'\',100,'A100'); SUBJL_L3/A100 = GETTOK(SUBJL_LINES,256,3,'\',100,'A100'); -* PPROF_L1/A100 = GETTOK(PREPROF_LINES,256,1,'\',100,'A100'); PPROF_L2/A100 = GETTOK(PREPROF_LINES,256,2,'\',100,'A100'); PPROF_L3/A100 = GETTOK(PREPROF_LINES,256,3,'\',100,'A100'); -* OCS_L1/A200 = GETTOK(OCS_LINES,2000,1,'\',200,'A200'); OCS_L2/A200 = GETTOK(OCS_LINES,2000,2,'\',200,'A200'); OCS_L3/A200 = GETTOK(OCS_LINES,2000,3,'\',200,'A200'); OCS_L4/A200 = GETTOK(OCS_LINES,2000,4,'\',200,'A200'); OCS_L5/A200 = GETTOK(OCS_LINES,2000,5,'\',200,'A200'); OCS_L6/A200 = GETTOK(OCS_LINES,2000,6,'\',200,'A200'); OCS_L7/A200 = GETTOK(OCS_LINES,2000,7,'\',200,'A200'); -* ACADSTR_L1/A200 = GETTOK(ACADSTR_LINES,1000,1,'\',200,'A200'); ACADSTR_L2/A200 = GETTOK(ACADSTR_LINES,1000,2,'\',200,'A200'); ACADSTR_L3/A200 = GETTOK(ACADSTR_LINES,1000,3,'\',200,'A200'); ACADSTR_L4/A200 = GETTOK(ACADSTR_LINES,1000,4,'\',200,'A200'); ACADSTR_L5/A200 = GETTOK(ACADSTR_LINES,1000,5,'\',200,'A200'); -* END TABLE FILE ADVISING_QUESTIONNAIRE PRINT BLANKLINE AS '' OVER ATTRACTLBL AS '' OVER ATTRACT_L1 AS '' OVER ATTRACT_L2 AS '' OVER ATTRACT_L3 AS '' OVER ATTRACT_L4 AS '' OVER ATTRACT_L5 AS '' OVER -* BLANKLINE AS '' OVER SUBJMLBL AS '' OVER SUBJM_L1 AS '' OVER SUBJM_L2 AS '' OVER SUBJM_L3 AS '' OVER -* BLANKLINE AS '' OVER SUBJLLBL AS '' OVER SUBJL_L1 AS '' OVER SUBJL_L2 AS '' OVER SUBJL_L3 AS '' OVER -* BLANKLINE AS '' OVER CRSELBL AS '' OVER COURSE1 AS '' OVER COURSE2 AS '' OVER COURSE3 AS '' OVER COURSE4 AS '' OVER COURSE5 AS '' OVER COURSE6 AS '' OVER -* BLANKLINE AS '' OVER AOCLBL AS '' OVER AOC_L1 AS '' OVER AOC_L2 AS '' OVER AOC_L3 AS '' OVER AOC_L4 AS '' OVER -* BLANKLINE AS '' OVER CAREERLBL AS '' OVER CAREER_L1 AS '' OVER CAREER_L2 AS '' OVER CAREER_L3 AS '' OVER CAREER_L4 AS '' OVER CAREER_L5 AS '' OVER -* BLANKLINE AS '' OVER PREPROFLBL AS '' OVER PPROF_L1 AS '' OVER PPROF_L2 AS '' OVER PPROF_L3 AS '' OVER -* BLANKLINE AS '' OVER OCSLBL AS '' OVER OCS_L1 AS '' OVER OCS_L2 AS '' OVER OCS_L3 AS '' OVER OCS_L4 AS '' OVER OCS_L5 AS '' OVER OCS_L6 AS '' OVER OCS_L7 AS '' OVER -* BLANKLINE AS '' OVER ACADSTRLBL AS '' OVER ACADSTR_L1 AS '' OVER ACADSTR_L2 AS '' OVER -* ACADSTR_L3 AS '' OVER -* ACADSTR_L4 AS '' OVER -* ACADSTR_L5 AS '' OVER -*
BLANKLINE AS '' OVER ADVISORLBL AS '' OVER ADVISOR_L1 AS '' OVER ADVISOR_L2 AS '' OVER ADVISOR_L3 AS '' OVER ADVISOR_L4 AS '' OVER ADVISOR_L5 AS '' BY ID NOPRINT ON ID PAGE-BREAK WHERE TERM ='&BANNER_TERM'; HEADING " for term ON TABLE SET PAGE-NUM OFF ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * UNITS=IN, PAGESIZE='Letter', SQUEEZE=OFF, ORIENTATION=PORTRAIT, $ TYPE=REPORT, GRID=OFF, FONT='ARIAL', SIZE=9, COLOR='BLACK', BACKCOLOR='NONE', STYLE=NORMAL, $ TYPE=TITLE, STYLE=BOLD, $ TYPE=TABHEADING, SIZE=12, STYLE=BOLD, $ TYPE=TABFOOTING, SIZE=12, STYLE=BOLD, $ TYPE=HEADING, SIZE=12, STYLE=BOLD, $ TYPE=FOOTING, SIZE=12, STYLE=BOLD, $ TYPE=SUBHEAD, SIZE=10, STYLE=BOLD, $ TYPE=SUBFOOT, SIZE=10, STYLE=BOLD, $ TYPE=SUBTOTAL, BACKCOLOR=RGB(210 210 210), $ TYPE=ACROSSVALUE, SIZE=9, $ TYPE=ACROSSTITLE, STYLE=BOLD, $ TYPE=GRANDTOTAL, BACKCOLOR=RGB(210 210 210), STYLE=BOLD, $ TYPE=REPORT, COLUMN=C*, WRAP=7.000000, $ TYPE=REPORT, COLUMN=CRSELBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=AOCLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=ADVISORLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=EXCURLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=ACADSTRLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=ACADNEEDLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=EXTRALBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=ATTRACTLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SUBJMLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SUBJLLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=CAREERLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=PREPROFLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=OCSLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=GOALSLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SKILLSLBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SENTENCE1LBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SENTENCE2LBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SENTENCE3LBL, STYLE=BOLD,SIZE=10,$ TYPE=REPORT, COLUMN=SENTENCE4LBL, STYLE=BOLD,SIZE=10,$ ENDSTYLE END
Thanks,
JohnThis message has been edited. Last edited by: Kathleen Butler,
WebFOCUS 7.6 Windows, All Outputs
Posts: 11 | Location: Florida | Registered: December 08, 2011
You have one data cell per line; I assume output is HTML.
You could add STYLE directives to conditionally assign a class to the items in question (for second data item and beyond in each group) -- e.g.:
TYPE=DATA,COLUMN=SUBJL_L2 , CLASS='hideme', WHEN SUBJL_L2 EQ '',$
-- and use css or javascript to conditionally hide (or remove) the containing row when the page loads. (jquery would help)
But I find CLASS only gets set as specified in STYLE when WF is not otherwise setting a CLASS value.
[soapbox] (That's silly: they should set class="class_word_that_ibi_needs class_word_that_STYLE_specifies" and have their css rules sense whether the class word list includes the specified word-value, rather then testing for exact equality on the entire class string.) [/soapbox]
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
It will help if you post a snippet of the html output (from "view source"), showing the HTML that WF now generates. The snippet should cover a populated data-item followed by a few empty items, when there is no attempt to suppress blank lines.
Within code tags, of course.
Each row would include a TD pair containing the displayed value, within a TR pair of tags.
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005
Another idea.... MARKUP must be set ON in the StyleSheet for this to work in PDF.
DEFINE FILE CAR
XSALES/A30 = IF (SALES EQ 0) THEN '<div style="display:none">' ELSE FPRINT(SALES,'D8','A10');
BLANKLINE/A10 = ' '
END
-*
TABLE FILE CAR
PRINT
BLANKLINE AS '' OVER
COUNTRY AS '' OVER
CAR AS '' OVER
MODEL AS '' OVER
XSALES AS ''
ON TABLE SET STYLE *
TYPE=REPORT, MARKUP=ON, $
TYPE=DATA, COLUMN=XSALES, JUSTIFY=RIGHT, $
ENDSTYLE
ON TABLE PCHOLD FORMAT PDF
END
WebFOCUS 7.7.05
Posts: 1213 | Location: Seattle, Washington - USA | Registered: October 22, 2007
-- so trying to set the class to something else, or to include an additional token, will be futile.
With a little help from jquery you still might be able to locate the empty rows (TR parent of TD tags whose innerHTML is ' ',) and hide or delete those table rows -- but if you want to retain the first row of each response, even when blank, that would be a challenge.
Posts: 1925 | Location: NYC | In FOCUS since 1983 | Registered: January 11, 2005