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.
The DEFINE function was used to change the date format to DATEMOV(CLM_ACC_DT, 'BOQ').
The define field is used to create the date parameter, when I apply this to the report it produces a "NO HTML OUTPUT" "0 NUMBER OF RECORDS IN TABLE= 0 LINES= 0"
If the Date Paremeter is removed and the define field is included inside the report field, there are no problems and the report is generated properly.
Have you traced the SQL generated by your request? Have you run SQL independently of WebFOCUS to determine if there are actually rows that satisfy your request?
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
First, you can't use DEFINE to set a parameter (unless you're talking about something other than an & variable) to be used in a WHERE statement. Also, DATEMOV doesn't change any format, just moves the date to a specific date. It must also use a full component DATE field (format MDYY, MDYY, etc.-- formats like YYM or A8 won't work). Last, if you are using a defined value in a WHERE and you have very much data, you're asking for trouble. It can't do the WHERE until after the record is read, so it's going to basically to a table scan. If you can show some code, we can probably give you a more specific answer.
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
( QRT_RUN GE '&FROM_ENTER_DATE.FROM Q# YYYY.' ) AND ( QRT_RUN LE '&TO_ENTER_DATE.TO Q# YYYY.' );
Thanks for the input it has answered some of the troubles.
What I need is know what to do or where to look to learn to do it; I need to have a "DATE PARAMETER" where the user enters the desired Quarter (Q1-Q4) and year as a start point and end point. (CLM_ACC_DT) the format is (YYMD) is the date field that will be used.
ThanksThis message has been edited. Last edited by: TXFB_INS,
-DEFAULT &BEGQY='Q4 1989'
-DEFAULT &ENDQY='Q4 1990'
DEFINE FILE EMPDATA
QRT_RUN/QYY=DATEMOV(HIREDATE,'BOQ');
END
TABLE FILE EMPDATA
PRINT *
QRT_RUN
WHERE QRT_RUN GE '&BEGQY';
WHERE QRT_RUN LE '&ENDQY';
END
The user can enter quarter and year (must be in format Qn yyyy) for beginning and end. I would suggest using two separate dropdown boxes and then appending those values in your code: -SET &BEGQY=&BEGQ|' '|&BEGY ;
As I mentioned in the last post, this is not going to be very efficient - especially if you have a huge data set - because your only selection criteria is on a DEFINEd field. This is NOT passed in the SQL to the DBMS so it's going to do a SELECT *.
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
Come to think of it, you don't even need to do a DATEMOV. You can just do QRT_RUN/QYY=HIREDATE; or in your case QRT_RUN/QYY=CLM_ACC_DT;
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007
If you're talking about the selection criteria, here are a couple suggestions.
If you have a Year in the native table (that corresponds to the year in CLM_ACC_DT), create a WHERE for the year as well as the quarter and year. This will get you a little better efficiency. If not, (or for maximum efficiency) take the quarters and years entered by the user. Using dialogue manager -SET commands and DATEMOV and CHGDAT functions, calculate the first day of the beginning quarter and the last day of the ending quarter as & variables. Then use these & variables in your WHERE statement:
WHERE CLM_ACC_DT GE '&BEGDT.EVAL' AND CLM_ACCT_DT LE '&ENDDT.EVAL';
Regards,
Darin
In FOCUS since 1991 WF Server: 7.7.04 on Linux and Z/OS, ReportCaster, Self-Service, MRE, Java, Flex Data: DB2/UDB, Adabas, SQL Server Output: HTML,PDF,EXL2K/07, PS, AHTML, Flex WF Client: 77 on Linux w/Tomcat
Posts: 2298 | Location: Salt Lake City, Utah | Registered: February 02, 2007