Jump to content

David Beagan

Members
  • Posts

    260
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by David Beagan

  1. On our WebFOCUS release 9.1.0 on the search results page, I can hover over the separator line on the search results screen and see the mouse cursor change to a <-||-> pointer and then I can change the width. After adjusting the width of the Name column: Your screenshot looks a little different so yours must be a different release where this resizing feature is not implemented. As an alternative, I tried hitting the gear icon and removing the display of some of the columns, thinking that would make room for the others. Nope, doesn't work.
  2. Yes good to know about UFMT. In my testing this would only work if the Reporting Server is set to code page 65001 - Unicode (UTF-8).
  3. Reposting this code solution so that it is readable and usable for anyone who may find this in the future: DEFINE FILE ggsales AMP_YYMD/YYMD = &YYMD; DATE_YYMD/YYMD = AMP_YYMD - SEQ_NO + 1; DATE_YYMt/YYBMt = DATE_YYMD; DATE_D/D = DATE_YYMD; END GRAPH FILE ggsales SUM UNITS BY DATE_YYMt BY DATE_D WHERE WHERE SEQ_NO FROM 50 TO 70 ON GRAPH PCHOLD FORMAT JSCHART ON GRAPH SET VZERO OFF ON GRAPH SET LOOKGRAPH BAR ON GRAPH SET AUTOFIT ON ON GRAPH SET STYLE * TYPE=DATA, COLUMN=N1, BUCKET=x-axis, $ TYPE=DATA, COLUMN=N2, BUCKET=x-axis, $ TYPE=DATA, COLUMN=N3, BUCKET=y-axis, $ *GRAPH_SCRIPT setFillColor(getSeries(0),new Color(#5388be)); setLabelStagger(getO1Label(),true); *GRAPH_JS_FINAL "xaxis": { "labels": { "nestingConcatSymbol": undefined } } *END ENDSTYLE END
  4. Good one Erin. Note that this behavior is dependent on the setting HTMLENCODE which I think defaults to OFF, the setting you want in this situation. If you turn it on (or it was defaulted to ON in your environment): SET HTMLENCODE=ON TABLE FILE CAR PRINT COUNTRY COMPUTE HTML/A999 = '<a href=https://www.ibi.com>ibi</a>'; END it results in showing the actual HTML code: Also, if the report output's to PDF or Excel, you will probably want to alter the DEFINE to do something different.
  5. You could use SQL passthru to submit your query that uses the two length functions. Then use the results returned to WebFOCUS to determine the next action.
  6. Can you right-click the report window and choose <-- Back ?
  7. A couple others... 102 FOCUS Basic Reporting 126 FOCUS Internals Good point Clayton: "Training fuels adoption and expansion with the organization"
  8. I see that Patrick had *.fex for the Filters in his example. You have .fex
  9. Can you provide a list of future locations for ibi Summits?
  10. Good Patrick, especially if you are already using Notepad++.
  11. Under root_content/WFC/Repository you should find all the Workspace or Domains and their subfolers and fexes. You can use a file search tool to locate strings of interest. It seems most of us use a tool called Agent Ransack to search the files. Windows seach doesn't alsways seem to give expected results.
  12. I used the employee sample table, put something together: The first dropdown has empid_dd.fex to populate it. Each of the others get populated by the other one emp_dd.fex. Like this so that it doesn't try to pull the other ones until an EMP_ID is selected. And then chained like this: When I run the page, it works but it is a bit slow. Seems like nearly a second to populate the boxes after selecting an EMP_ID. There are only about 19 records in employee.
  13. Diana, I'm not sure that changing them to edit boxes stops it from doing all the work. I wonder if chaining Employee Name directly to Title, Department, Supervisor and Class rather than all in a line (assumption on my part) maybe it would make some difference.
  14. I've been using WebFOCUS 9.1 for over a year now. I went into an old WF 8.2.07 installation to check for something. On the 8.2.07 Hub for workspaces, list view, I was immediately struck by what seemed to be the superior interface. The different icons for .fex and .htm and .sch files etc. had a little color making it much easier to differentiate them. There was a search bar right on that page. The tree structure of the Workspaces and subfolders was clearer with + sign icons to click for folder expansion. I'm interested to hear if any one else has observed this or agrees or disagrees.
  15. The Employee Name drop down lists all the emploee's names I assume. And does each of the other dropdowns, before you make a selection, show a full list, all Employee Nums, all Titles, all Departments, etc. ?
  16. In WebFOCUS 9.10, I created a reporting object, and then a report in the reporting object with a parameter &REGION. In the reporting object's Preprocessing Other I put in a default for the parameter variable. When I run it I get the Prompt with Northeast filled in. And then can run the report from there. Or if I change the Proprocessing to -DEFAULTH and run the reporting object then it runs and filter for Northeast. I wonder if it could be a bug with your release of WebFOCUS or maybe you are using it in a different way.
  17. Do your public users access the report with a URL in the browser?
  18. Would it need to be in IBFS:/WFC/Repository/Public ? I looks like there is more detail in the security manual. WebFOCUS Security and Administration, Anonymous Access, page 229
  19. Here’s a suggestion for how you might want to implement this. After you have created defined functions that are generally useful, you wouldn’t want to repeat the define function code in every fex where you use it. So you would reasonably end up putting functions in a fex file and -INCLUDE wherever needed. But I think another approach might even be cleaner. In the Describing Data https://docs.tibco.com/pub/wf-wf/9.2.3/doc/pdf/IBI_wf-wf_9.2.3_dd_language.pdf#page=216 manual, page 216 shows how to reference a DEFINE FUNCTION in an expression in a Master File DEFINE, COMPUTE, or FILTER field. DF.funcfile.defunc(parm1,parm2,...) I can’t find documentation that this feature is available to be used in reporting situations. But I tried it and it works. The file containing the defined functions needs to be a fex file in an app folder such as baseapp. For example: baseapp/functions.fex DEFINE FUNCTION DHMS(SECONDS/P20) DAY/I2 = SECONDS/28800; HR/I2 = MOD(SECONDS/3600, 8); MIN/I2 = MOD(SECONDS/60, 60); SEC/I2 = MOD(SECONDS, 60); DHMS/A20 = EDIT(DAY) |':'| EDIT(HR) |':'| EDIT(MIN) |':'| EDIT(SEC); END DEFINE FUNCTION WORKDAY(DATETIME/HYYMDS) YYMD1/YYMD = DATETIME; WORKDAY/I1 = DATEDIF( YYMD1, YYMD1 + 1, 'BD'); END DEFINE FUNCTION BUSDIFF(DT1/HYYMDS,DT2/HYYMDS) YMD1/YYMD = DT1; YMD2/YYMD = DT2; DAYS/I11C = DATEDIF(YMD1 + 1, YMD2, 'BD'); A8YMD1/A8YYMD = YMD1; DT5PM/HYYMDS = HINPUT(17, A8YMD1|'170000', 8, 'HYYMDs'); DIFFSECS1/I9C = DTDIFF(DT5PM, DT1, SECOND); SECONDS1/I9C = MAX(0, MIN(DIFFSECS1,28800) ); A8YMD2/A8YYMD = YMD2; DT9AM/HYYMDS = HINPUT(17, A8YMD2|'090000', 8, 'HYYMDs'); DIFFSECS2/I9C = DTDIFF(DT2, DT9AM, SECOND); SECONDS2/I9C = MAX(0, MIN(DIFFSECS2,28800) ); SECONDS/I9C = SECONDS1 * DF.functions.WORKDAY(DT1) + DAYS * 28800 + SECONDS2 * DF.functions.WORKDAY(DT2); BUSDIFF/A20 = DF.functions.DHMS(SECONDS); END The BUSDIFF() function’s references to other functions in the code abve uses the similar syntax, for example: DF.functions.DHMS(SECONDS) Now the report just needs to reference the function. TABLE FILE systable PRINT NAME NOPRINT COMPUTE DATE1/HYYMDS = '2024/03/07 13:12:34'; COMPUTE DATE2/HYYMDS = '2024/03/12 12:32:40'; COMPUTE TIME/A20 = DF.functions.BUSDIFF(DATE1,DATE2); ON TABLE SET PAGE NOLEAD WHERE READLIMIT IS 1 END
  20. This BUSDIFF() function defined below I think accomplishes what you are asking for. It uses two additional functions, HDMS() to convert seconds into dd:hh:mm:ss and WORKDAY() that returns a 1 if the date is a workday, 0 if it is not. The WebFOCUS DTDIFF() function includes the start day as part of its counting, but not the last day. That is why there is a +1 in the start date (but not the end day) for the DATEDIF() function in calculating DAYS. Note the functions switch the date order DATEDIF(Start,End,) but DTDIFF(End,Start,). DEFINE FUNCTION DHMS(SECONDS/P20) DAY/I2 = SECONDS/28800; HR/I2 = MOD(SECONDS/3600, 8); MIN/I2 = MOD(SECONDS/60, 60); SEC/I2 = MOD(SECONDS, 60); DHMS/A20 = EDIT(DAY) |':'| EDIT(HR) |':'| EDIT(MIN) |':'| EDIT(SEC); END DEFINE FUNCTION WORKDAY(DATETIME/HYYMDS) YYMD1/YYMD = DATETIME; WORKDAY/I1 = DATEDIF( YYMD1, YYMD1 + 1, 'BD'); END DEFINE FUNCTION BUSDIFF(DT1/HYYMDS,DT2/HYYMDS) YMD1/YYMD = DT1; YMD2/YYMD = DT2; DAYS/I11C = DATEDIF(YMD1 + 1, YMD2, 'BD'); A8YMD1/A8YYMD = YMD1; DT5PM/HYYMDS = HINPUT(17, A8YMD1|'170000', 8, 'HYYMDs'); DIFFSECS1/I9C = DTDIFF(DT5PM, DT1, SECOND); SECONDS1/I9C = MAX(0, MIN(DIFFSECS1,28800) ); A8YMD2/A8YYMD = YMD2; DT9AM/HYYMDS = HINPUT(17, A8YMD2|'090000', 8, 'HYYMDs'); DIFFSECS2/I9C = DTDIFF(DT2, DT9AM, SECOND); SECONDS2/I9C = MAX(0, MIN(DIFFSECS2,28800) ); SECONDS/I9C = SECONDS1 * WORKDAY(DT1) + DAYS * 28800 + SECONDS2 * WORKDAY(DT2); BUSDIFF/A20 = DHMS(SECONDS); END TABLE FILE systable PRINT NAME NOPRINT COMPUTE DATE1/HYYMDS = '2024/03/07 13:12:34'; COMPUTE DATE2/HYYMDS = '2024/03/12 12:32:40'; COMPUTE TIME/A20 = BUSDIFF(DATE1,DATE2); ON TABLE SET PAGE NOLEAD WHERE READLIMIT IS 1 END You should be able to run this code in your environment to try it out.
  21. This can be accomplished by calculating the total number of seconds in three different parts. 1. The number of seconds for the beginning day. (using the DATEDIF() function) 2. Number of days between beginning and ending days and multiplying by 28800 seconds in a day. (using the DTDIFF() function) 3. Number of seconds for the ending day. (using the DATEDIF() function) 4. Add up the above three and reformat these total seconds into a dd:hh:mm:ss diaplay. I will see what I can come up with to do this.
×
  • Create New...