Jump to content
  • Welcome!

    We are so excited to have you here.

    Join now to access our forum discussions on all things ibi - products, solutions, how-to's, knowledgebase, peer support and more.

    Please register or login to take part. (If you had a previous community account simply click > Sign In > Forgot Password)

     

  • Our picks View All

    • We're reaching out to get your valuable input on an important naming initiative! 

      To continuously improve the user experience and clarity within our product, we're undertaking a naming initiative for a specific type of filter. These filters are essential for applying logic to individual components such as tiles, containers, or charts, yet they operate in the background, not visible or editable by end-users during runtime.

      The existing term, "Static Filters," has surfaced a potential for confusion, particularly with the "Static List Parameter"—a feature with a different purpose and a longer history in our system. To eliminate this ambiguity and to ensure our terminology is as clear and intuitive as possible, we're seeking your perspective on alternative terminology.

      Your expertise is crucial in helping us select a term that enhances clarity and usability across our product, documentation, and demonstrations. We've prepared a concise UX survey, accessible via the link below, that should only take a few minutes of your time. We encourage you to share any additional thoughts or suggestions beyond the survey questions as well. Thank you for contributing your expertise to this important effort!

       

      Survey Link - https://forms.gle/dK8YjFRNVfUU5f9L9

       
      • 1 reply
        • Like
    • Exciting news! We've launched our new education platform, designed to provide customized training and resources to help you master our products and services. Access tailored learning centers with courses and materials specific to your needs

      To access the ibi Education Center, you'll need a TIBCO account. If you don't have one, simply register here and then you can request access to the education platform via our online form.

      While You Explore:

      Click on the Graduation cap icon in the left hand margin then the top section labeled “Course Catalog” for all ibi courses available


      You can also use the Genie feature to help search and locate course material


      Not seeing something, send us an email with course suggestions 




      Start maximizing your product knowledge today! For questions, contact [email protected]
      • 1 reply
        • Thanks
        • Like
    • Join us as we commemorate ibi's remarkable 50-year journey of pioneering data solutions. The ibi Golden Summit is more than just an event; it's a celebration of our legacy and a glimpse into the future. This exciting event will bring innovation, insight, and networking opportunities directly to you. We can’t wait to meet you in New York City!

      Join us in person to get access to: Hands-On Labs, Breakout Sessions, our Expert Room, and hear what’s next for the ibi product portfolio. 

      October 14, 2025

      New York City, New York 

      8:00am-5:00pm 

      Convene: 101 Park Ave

      Registration is NOW OPEN!
      • 1 reply
        • Like
    • Your participation will help us better understand the distribution of WebFOCUS versions among our clients.

      Thank you for your input!
      • 2 replies
        • Like
    • Get ready for an enhanced learning experience! We're thrilled to announce the launch of our new learning platform, expected this March. This platform will offer a robust catalog of courses designed to empower you with the skills you need.

      At launch, you'll have access to 47 courses across three key areas:

      WebFOCUS Analytics: 8 Courses

      Mainframe: 14 Courses

      Data Intelligence: 25 Courses

      And that's just the beginning! We're committed to continuously expanding our offerings and plan to add more beginner and advanced courses each quarter.

      Accessing the New Platform:

      For Existing Users:

      We're working to make the transition to the new platform as smooth as possible. Existing user accounts will be migrated based on activity levels. Users who have been active within the past year will be automatically migrated to the new platform. Users who have been inactive for a year or longer will not be migrated. If your account is inactive and not migrated, you will need to re-register on the new platform. We will provide detailed instructions on this re-registration process soon.

      New User Registration:

      We are currently finalizing the new user registration process. We will share details on how to register as a new user as soon as we have them.

      Stay Tuned!

      We're excited about this new platform and the opportunities it will provide. Please keep an eye out for further announcements regarding the launch and migration details. We'll share more information as it becomes available.
      • 13 replies
        • Thanks
        • Like
    • If you are a WebFOCUS administrator, you may have a mix of users with different levels of experience and in different locations accessing your environment.  In these cases, it may be useful to provide some messages and introductory content to all users to simplify communication.

      In this video, I'll show some quick ways for administrators to present this information in the Hub.  
      • 10 replies
        • Thanks
        • Like

Welcome to the ibi Community

See recent community activity

  • ibi™ WebFOCUS® - Container Edition provides a scalable, microservices-based analytical platform designed for container-based deployments.
    This new offering packages WebFOCUS® software components in Docker images, enabling key components and functionality of the WebFOCUS platform to be isolated, packaged into specific containers and run on Kubernetes. As a result, each WebFOCUS component can be scaled independently to accommodate users, data, and data sources on demand.
    This article shows you how to enable Horizontal Pod Autoscaling (HPA) and set up your minimum and maximum replicas.
    You've got two ways to do it: 
    Set your min and max replicas in the Helmfile Or, edit the HPA manually. Before you start: WebFOCUS Container Edition (WF-CE) is already running in a Kubernetes deployment. (Follow deployment guide: https://docs.tibco.com/products/ibi-webfocus-container-edition-1-3-4)
    You can check your current HPA configuration using
    kubectl get hpa -n webfocus
     
    Option 1: Define Replicas in Helmfile
    Navigate to your WFCE installer location ..IBI_wfce_1.3.4/scripts/helmfile/environments Locate either dev-wf.integ.yaml.gotmpl or cloud-wf.integ.yaml.gotmpl (depends on your deployment). Enable autoscaling and set your `minReplicas` and `maxReplicas` like this:  
    autoscaling: enabled: true minReplicas: 1 maxReplicas: 3  

    Note:
    You can do this for `appserver`, `edaserver`, `etcd`, and `clm`. For `appserver`, remember to uncomment `sessionAffinity` in `wf.integ.yaml.gotmpl`. It ensures that requests from a particular client are always routed to the same backend server (pod, instance, or node) for the duration of a session.
    Once you've made your changes, upgrade the deployment. Go to /IBI_wfce_1.3.4/scripts/helmfile and run the following commands helmfile -e dev -l name=appserver sync && \ helmfile -e dev -l name=edaserver sync  
    Output:

     
    Once done, to check if your HPA policy was applied, use the below command:
    kubectl get hpa -n webfocus
     
    Good to know:
    Settings in `dev-wf.integ.yaml.gotmpl` or `cloud-wf.integ.yaml.gotmpl` override `wf.integ.yaml.gotmpl`. And `wf.integ.yaml.gotmpl` overrides `values.yaml` (which is in `~/IBI\_wfce\_1.3.4/scripts/charts/appserver`). It is advised not to modify values.yaml  
    Option 2: Edit HPA Manually
    Run the following command for each component that requires HPA configuration changes
    kubectl edit hpa -n webfocus <component name>
    kubectl edit hpa -n webfocus edaserver
     
    Then, validate your HPA policy using
    kubectl get hpa -n webfocus
     
    Important: You can only update HPA policies for components that already have HPA enabled.
     
    Thank you for your interest in WebFOCUS CE, and we hope this documentation proves useful to you! 
    For any further assistance, feel free to contact ibi Support team.
  • Username and Password… these days, nobody should be using them on a daily basis. We now have MFA (Multi-Factor Authentication) methods to verify who we are in a dynamic way that requires user interaction. 
    The risks of reusing passwords, or data breaches that expose them, or even weak passwords used by end-users because they are easy to remember, came to an end thanks to this MFA, but that exposed how many hardcoded accounts were being used in too many places, and it’s time to fix that.
    Office365 and several other services won’t allow logins performed by simply uid/pwd anymore, requiring to use of MFA methods to validate users. But what happens when a service is executed in the background, and the user shouldn’t be required to confirm that it’s their login? Or for service accounts? And here comes the OAuth2 method to save the day. Providers are offering API methods to generate Tokens that can be used to perform these operations without user interaction (for example, logins to AWS, GitHub, Azure…), and our products are adopting those methods so you don’t have to worry about the EOS of service accounts.
    ReportCaster is one of those products that uses the uid/pwd to send scheduled reports by mail to distribution lists or emails, and you can now change that method to use OAuth2 to perform that operations without user interaction. This feature was introduced in WebFOCUS 9.3, and here are some tips that you can use to successfully change to this method of Authentication.
    During the creation of this Article, I’ll use the latest Production release available for you, which is 9.3.4. But we’re improving some features that I’ll also show through screenshots (still in development, so they could change). I’m also going to use Office 365 as the SMTP provider, so some of the steps may vary depending on the email server you are using.

    We’ll first need to create our Application and register it under our Azure account portal (https://portal.azure.com). I’ve created mine and named as SMTP OAuth App, keep reading to find the steps to achieve this.

     

    1. Register Your App in Microsoft Entra ID

    Go to Azure Portal → Microsoft Entra ID → App registrations.
    Click "New registration".
    Set a name (e.g., "SMTP OAuth App").
    Choose "Accounts in any organizational directory and personal Microsoft accounts".
    Set a redirect URI (the one were ReportCaster is installed and will perform the call, if not using localhost, you’ll require this URI to be under SSL).

     

    2. Configure API Permissions

    Go to your app → API permissions → Add a permission.
    Choose APIs my organization uses → search for Office 365 Exchange Online.
    Add the APIs you want to use, like
    SMTP.Send Mail.Send Mail.Send.Shared From Microsoft Graph, choose
    offline_access (for refresh tokens) openid  You can adjust your needs for these APIs and you’ll see the description of each one to confirm if you need it or not:

    Notice the 'Status' column, I already have it 'Granted', if you are an Azure administrator, you can grant the permissions from that same screen, but if not, you'll be prompted later (I'll show you when). This part is very important, as if you don't have the proper permissions, the connection to the SMTP server will be rejected.
     
     
    3. Generate Client Secret

    Go to Certificates & secrets → New client secret.
    Save the secret value securely.

     
     
    4. Collect the required URLs to validate the user, and the ClientID of your recently created Application 
    You can obtain the ClientID from the Overview of your Application, and there, you have the link to the 'Endpoints' too: 

     
    Click on the Endpoints and grab the Authorization V2 and Token V2 endpoints. (If you use a personal account, the endpoint changes, I've highlighted that one, also, if you are using internal users for your company, the endpoints will contain your Directory (Tenant) ID instead of the 'common' word:

     
     
    5. Implement OAuth 2.0 Flow

    Use the OAuth 2.0 Authorization Code Flow or Device Code Flow to obtain an access token, which is generated on the WebFOCUS ReportCaster Configuration Console. You can create a new Email Distribution specific folder to test this configuration, without messing with your current existing (and working) one:

     
    You'll need to introduce a Name for the Mail Server (the one you desire), the mail server URL (in this case, Office365 forces you to use STARTTLS, so I'm adding their TLS port after a colon, smtp.office365.com:587
    Once done, select the OAuth2 Authentication method, and open it to start configuring. Here we'll be using the information we've been gathering from Azure.
    Paste the Authorization URI and Token URI endpoints you copied from previous step. Introduce the ClientID and the Client Secret as well.
    For the scope, I'll be using https://outlook.office.com/SMTP.Send offline_access that allows me to use the SMTP.Send API as well as the offline_access (to refresh the token)
    The redirect URI will be the one for your server were WebFOCUS ReportCaster is installed, you also introduced that URI on the App Registration: https://<servername>:<port>/ibi_apps/oauth2_callback
    This last step will automatically create the Permissions URL, that you have to copy and paste into a new tab on the browser to generate the Authorization Code

     
     
    6. Obtain the Authorization Code
    After you introduce the Permission URL on a new tab, you'll be prompted for your credentials, which are the ones you've used on your Azure Application that has the proper privileges and API authorizations we selected before. Just after that, you'll be prompted to Grant permissions for the scopes we've used on the configuration.

    Accept them, and you'll be redirected to a page that will give you the Authorization Code you have to introduce back on the ReportCaster Configuration, grab the value of the 'code' parameter until you reach the & for the 'state' parameter (don't worry about the invalid messages, this screen will be changed on the next release to allow you to copy directly the code value): 

    This will likely be the new screen (still in development, so its final interface could differ from this screenshot):

     
    7. Obtain the Token
    Paste the generated Authorization Code and the 'Generate Token' button will be enabled, you can then click on it and after a few seconds, you'll see the token being automatically filled on the configuration, so you just need to click Ok to close that screen, and save the changes on ReportCaster configuration (that'll require to restart the ReportCaster service)

     
     
    8. Test your new configuration
    Create a new schedule (or edit an existing one), edit the distribution method of Email

    And select the Options tab, there you'll now be able to select the Email Profile you want to use for that schedule, by default, you'll have the 'System default' one, click on the Email Profile dropdown list and choose the one we have just created, then, you can click on the Test Connection button and you will see the successful connection:

     
     
    9. Run the schedule
    Running the schedule with traces will allow you to see the correct method and connection peformed against your SMTP server

    And the Report log shows that it has been correctly distributed:

     
     
    Now, you can disable the old authentication method you were using with uid/pwd, which is going to be deprecated soon by most of the SMTP providers.
    I hope this article allows you to move forward and adapt your servers to the new technologies and security methods to keep your data and customers safe.
    If you have any questions, don't hesitate to contact us, and/or open a Support Ticket if needed so we can help you on configuring this.
    Happy and secure distributions!
    Pablo Alvarez
     
     
  • As you embrace the modern interface and enhanced functionalities of WebFOCUS Designer, we are pleased to inform you that many familiar and frequently used features from InfoAssist are now seamlessly integrated.
    In this article, we've highlighted the newly added enhancements such as ranking and the enhanced control over prompted filter sorting in Designer. These are just the latest additions in WF release 9.3.4 aimed at providing a more consistent and user-friendly experience for everyone, especially those transitioning from InfoAssist.
    Reordering Your Filters is Now a Breeze!
    For our users familiar with InfoAssist, you know how convenient it is to arrange your filters exactly the way you want them. Now, this same intuitive functionality has arrived in WebFOCUS Designer!
    Previously, while Designer allowed users to add filters, reordering them required starting the process all over again. This could be frustrating, especially when dealing with numerous filters and the need to make a simple adjustment to their sequence.

    Now, users can effortlessly reorder prompted filters within the Designer interface using a simple drag-and-drop action. Need to prioritize a specific filter? Just click and drag it to its desired position in the filter toolbar.

    Here’s what users can expect from this enhancement:
    Easy Drag and Drop: Simply click on a filter control and drag it to its new location within the filter toolbar. Visual Feedback: While dragging, users will see an indicator near the cursor, potentially showing the field being moved. The filter control being dragged will also have a clear blue outline, making it easy to identify. Clear Drop Indicators: As users drag a filter over the toolbar, a visual cue will indicate precisely where the filter will be placed between existing controls. Toolbar Boundaries: If a filter is dragged outside the filter toolbar, a cancel indicator will appear, and dropping it elsewhere will result in no changes being applied. Value Retention: When a filter is repositioned, it retains any previously applied values, so users won't need to reset their selections. Persistence: Upon saving and reopening a chart, report, or authored page, the filter order will be preserved. No Impact on Chaining: This enhancement will not affect existing chaining configurations, even in hierarchical mode. Steps: 
    Launch Designer, select a masterfile, and create a chart or report. Add the necessary filters to the filter bar. If the filter order is incorrect (e.g., Country, Model, Car instead of Country, Car, Model), simply drag and drop the misplaced filter (in this case, Model) to the desired position (the end of the list). An indicator will show where the filter is being dropped. This drag-and-drop reordering functionality also applies to Authored pages. This enhancement brings a significant improvement to the filter management experience in WebFOCUS Designer, making it more efficient and user-friendly. 
     

    Reorder Filters.mp4 Sort Your Dropdowns!

    When authoring content and adding a drop-down type prompted filter to the filter bar, users can now right-click and see a Sort option. This new feature allows users to sort the order of the drop-down values in either Ascending or Descending order.

    By default, the drop-down values will be sorted in Ascending order. However, users can easily change this as needed.
    Behind the scenes, while the system already maintained a default Ascending sort order, selecting Descending will now explicitly write SORT=DESCENDING.

    The drop-down values displayed will always reflect the user's chosen sort order. This selected order (Ascending or Descending) will also be maintained at run time, ensuring the drop-down values are presented as expected (A to Z or Z to A). Furthermore, the user's sort selection will be saved and accurately restored when the content is reopened.
    Steps:
    Launch Designer. Select a masterfile and create a chart or a report. Add the necessary filters to the filter bar. Right-click on a dropdown filter. Select "Sort Descending" to order the filter values from Z to A.
    Sort asc-dcs.mp4 Ranking Comes to WebFOCUS Designer!
    For WebFOCUS users familiar with InfoAssist, the ability to rank data within a report was a valuable feature. Now, this capability is being introduced to WebFOCUS Designer, bridging the gap and making migration even smoother.
    In InfoAssist, users could easily add a "Rank" column to their reports, displaying a sequential ranking (1, 2, 3,...n) based on a selected field's values. The ranking was initially in ascending order, with an option to change it to descending, though the Rank column itself always showed 1 to N.
    Now, Designer is incorporating these powerful ranking options.
    How to Apply Ranking in Designer:
    Users can create reports as they normally do in Designer. To apply ranking: Right-click on the desired field within the Summaries bucket. Under Sort Limit, users will now find a Rank option with a flyout menu. This menu offers the following choices: Rank by Highest Rank by Lowest Off (This is the default selection) Selecting either Rank by Highest or Rank by Lowest will apply the ranking based on the chosen order. What Happens When Ranking is Applied:
    A virtual field with the same name as the original field (e.g., "Sales") will be added to the Rows bucket. By default, this field will be hidden. At preview time, a new column titled "Rank" will appear at the beginning of the report. Managing Ranked Fields: Right-clicking on the ranked field in the Rows bucket will present users with several options: Rename Title: This functions similarly to the standard rename option, allowing users to change the title of the original field (e.g., "Sales"). Changes will be visible at preview and design time if the field is not hidden. Rename Rank Title: This allows users to rename the "Rank" column itself. The change will be reflected at both design and run time. Hide/Unhide: This option controls the visibility of the original field (e.g., "Sales") in the report. By default, this field is hidden when ranking is initially applied. Remove: Selecting this will remove the ranking from the field. The Rank option in the Summaries bucket for that field will revert to "Off." This addition of ranking capabilities in WebFOCUS Designer offers enhanced data analysis and presentation options, providing a more familiar experience for users transitioning from InfoAssist.

    Ranking in Designer.mp4
  • Hi everyone,

    I wanted to share some insights regarding upgrading ibi FOCUS, as it's something we should all be thinking about.
    Upgrading to the latest version of ibi FOCUS brings several key benefits, including performance enhancements, increased security, and an improved user experience. Things like 64-bit processing, better internal sorting, and seamless usage of Pervasive Encryption really make a difference.
    Another big plus is the new functionality available. We're talking improved tools via ibi FOCUS Studio, seamless XLSX usage without needing Java or a client, and access to ibi FOCUS Studio and ibi Open Data Hub. These features can really empower users and streamline your workflows.
    The modern and intuitive interface is also worth mentioning. With FOCUS Studio availability, navigating and utilizing the software becomes much easier via a Web browser rather than a 3270 emulator. The improved Data Adapter configuration via the FOCUS Studio Console is particularly helpful.
    Of course, upgrading does take time and testing. I saw an example where a customer migrated from a 25-year-old version to a newer one in about six months. I would plan for at least 12 months but each installation will be different depending on the number of procedures and use of non-standard syntax.  It's crucial to plan and test thoroughly to ensure a smooth transition.
    Finally, there are risks to staying on an older version. While support is currently available, there's always the possibility that operating system or database requirements could force restrictions in the future. It's better to be proactive and stay up-to-date.
    Just wanted to put this out there for consideration. Let me know your thoughts and experiences with upgrading ibi FOCUS!
  • Summary
    This solved issue discusses the order of the 'ON TABLE' and 'FOOTING' commands in a WebFOCUS focexec. The user encountered unexpected behavior where the 'ON TABLE SUBFOOT' appeared after the 'FOOTING' section instead of in the expected order. Through suggestions, including enabling PRINTPLUS and adjusting the footings, the user was able to achieve the desired report layout. The solution involved applying these adjustments within the source code to ensure footings are correctly positioned.
    Original Content
    Posted by: dz on March 11, 2013, 06:02 PM
    [SOLVED] foot and subfoot
    I'm using "ON field SUBFOOT", "ON TABLE SUBFOOT" AND "FOOTING" in a focexec. Somehow the "ON TABLE SUBFOOT" displayed at the end of the report after the "FOOTING".

    What can affect this order? I use the same in another program and all is fine.
    This message has been edited. Last edited by: Kerry, March 18, 2013 12:48 PM
    Posted by: Doug on March 11, 2013, 06:18 PM
    As it should... "ON TABLE SUBFOOT" means "ON TABLE" (After the TABLE FILE reuest has processed the results) and FOOTING is what will be done there (at the end of the report. "FOOTING" is a page footing...

    What order do you want?
    Posted by: dz on March 11, 2013, 06:21 PM
    The order should be:

    1. ON Field SUBFOOT
    2. ON TABBLE SUBFOOT
    3. PAGE FOOTING (prints on every page)

    but the order is:

    1. ON Field SUBFOOT
    2. PAGE FOOTING (prints on every page)
    2. ON TABBLE SUBFOOT
    Posted by: Doug on March 11, 2013, 06:24 PM
    From within Dev Studio, press F1, select "Search" and enter "creating headings and footings", and press enter. See if that lines up with your expectations.
    Posted by: Waz on March 11, 2013, 06:29 PM
    Try SET PRINTPLUS = ON
    Posted by: Doug on March 11, 2013, 06:30 PM
    Good point. PRINTPLUS is good.
    Posted by: MAdams1 on March 12, 2013, 08:26 AM
    Go into the source code and type BOTTOM after FOOTING in the style. So you would end up with FOOTING BOTTOM This will shoot your page footing to the bottom of the page. I use this for page numbers.
    Posted by: Doug on March 12, 2013, 08:28 AM
    Another good point. BOTTOM is good. I forgot that in this post.
    Posted by: dz on March 12, 2013, 10:09 AM
    I tried using "FOOTING BOTTOM".

    The result was the "ON TABLE TOTAL" was on a separate page after the footing.
    Posted by: dz on March 12, 2013, 10:19 AM
    Waz was correct. "SET PRINTPLUS = ON" did it.

    Thank you.
    Posted by: MAdams1 on March 12, 2013, 10:23 AM
    You also need to have PRINTPLUS = ON

    Try this car file example;

    SET PRINTPLUS = ON TABLE FILE CAR BY LOWEST CAR.COMP.CAR BY LOWEST CAR.CARREC.MODEL ON CAR.COMP.CAR SUBFOOT "this is the on by field subfoot" FOOTING BOTTOM "<TABPAGENO of <TABLASTPAGE this is the page footing" ON TABLE SUBFOOT "this is the report footing" ON TABLE SET PAGE-NUM NOLEAD ON TABLE NOTOTAL ON TABLE PCHOLD FORMAT PDF ON TABLE SET HTMLCSS ON ON TABLE SET STYLE * INCLUDE = endeflt, $ ENDSTYLE END
    Posted by: dz on March 12, 2013, 10:30 AM
    Thank you MAdams1 it works perfect now.
    Posted by: Waz on March 12, 2013, 04:29 PM
    😊
    Original Forum ID: 4077093926
  • Summary
    This post discusses the user's attempt to pass parameters using the -INCLUDE directive in WebFOCUS. The user outlines their goal of standardizing prompts and reusing an external procedure across different FEX files. They express a desire to ensure specific data is correctly passed and share their initial attempts along with suggestions and guidance received from the community. The conversation also touches on the parameters needed for comparison in their data source.
    Original Content
    Posted by: Geoff Fish on May 22, 2013, 12:23 PM
    passing parameters with a -INCLUDE
    First off I want to thank those who responded to my earlier question regarding counts.

    Secondly I have read the documentation regarding my next issue and I know that it says that parameters do not get passed with -INCLUDE.
    However the desired result is to get the values in the print statement below to be passed to a second fex. I would prefer to do this because we are trying to standardize our prompts for the workgroup that we are in and maintain some consistency and be able to reuse an "external procedure". So Im trying to pass the values from my statement below to a separate fex.

    This may not work and if it does not I am willing to creatively explore other possiblities. Hoswever I would like to preserve if possible the idea of having this data creation external to the fex producing the actual results so that we can reuse.

    My first attempt was using -INCLUDE and it did prompt me, however I would like to use the 'TERMNOW' TERMYRAGO and TERMYRAGO2 against the TERM from my data source so that i can do 2 year comparisons aginst last year and 2 years ago. I will have to do dates also but, i figure If i can get the terms to work I can get the dates to work also following the same logic.

    Im sure its something simple that someone else has done before, but I often get pulled off projects like this to create a new report and then have to backtreack to where I began. A little guidance goes a long way.


    geoff


    DEFINE FILE SUBTERM
    TERMCHAR/A9=EDIT(SUBTERM.SEG01.STVTERM_CODE, '9999$$');
    TERM/A9=EDIT(SUBTERM.SEG01.STVTERM_CODE, '$$$$99');
    TERM_YR/I9=EDIT(TERMCHAR);
    TERM_YR_INT/I9=TERM_YR - 1;
    TERM_YR_INT2/I9=TERM_YR - 2;
    TERM_YR_MIN1/A9=EDIT(TERM_YR_INT);
    TERMCALC/A18=TERM_YR_MIN1 || TERM;
    TERM_YR_MIN2/A9=EDIT(TERM_YR_INT2);
    TERMCALC2/A18=TERM_YR_MIN2 || TERM;
    TERMYRAGO/A9=TRIM('L', TERMCALC, 12, '0', 6, TERMYRAGO);
    TERMYRAGO2/A9=TRIM('L', TERMCALC2, 12, '0', 6, TERMYRAGO2);
    TODAY/YYMD=&YYMD
    YRAGOTODY/YYMD=DATEADD(TODAY, 'Y', -1);
    MTAGOTODY/YYMD=DATEADD(TODAY, 'M', -1);
    2YRAGOTDY/YYMD=DATEADD(TODAY, 'Y', -2);
    END
    TABLE FILE SUBTERM
    PRINT
    SUBTERM.SEG01.STVTERM_CODE AS 'TERMNOW'
    SUBTERM.SEG01.TERMYRAGO
    SUBTERM.SEG01.TERMYRAGO2
    TODAY
    MTAGOTODY
    YRAGOTODY
    2YRAGOTDY
    WHERE SUBTERM.SEG01.STVTERM_CODE EQ '&STVTERM_CODE.(FIND SUBTERM.SEG01.STVTERM_CODE,SUBTERM.SEG01.STVTERM_CODE IN subterm).Pick Term.';
    ON TABLE SET PAGE-NUM NOLEAD
    ON TABLE NOTOTAL
    ON TABLE PCHOLD FORMAT HTML
    ON TABLE SET HTMLCSS ON
    ON TABLE SET STYLE *
    INCLUDE = endeflt,
    $
    ENDSTYLE
    END
    Posted by: OPALTOSH on May 23, 2013, 04:09 AM
    If you use -INCLUDE to run another FEX then all $ variables remain active. You do not need to pass anything.

    If you use EXEC to run the other FEX then you need to pass the specific & values you want to be avaialb le in the called FEX.
    Posted by: susannah on May 23, 2013, 04:42 PM
    you're trying to save the value the user selects from his/her 'Pick Term', and pass that on, is that right?
    typically we write our fex on the car file or on ggsales or some file we can all understand , then replicate your issue.
    What Adelaide says is, of course, dead right. but your actual question is still a mystery, as you have only 1 &var and no visible -INCLUDEs
    Posted by: DBADiaz on May 23, 2013, 09:59 PM
    You can use the -PROMPT DM function, and change your TABLE request accordingly
    -PROMPT &VAR1.(FIND COUNTRY IN CAR).Pick a country. -PROMPT &VAR2.(FIND BODYTYPE IN CAR).Pick a body type. TABLE FILE CAR PRINT CAR MODEL BY COUNTRY WHERE COUNTRY EQ '&VAR1'; WHERE BODYTYPE EQ '&VAR2'; END


    You could make a fex that has the -PROMPT and include it on as many other fexes that need those variables.

    Now if you need to drill down from the report, that is a different subject.
    This message has been edited. Last edited by: DBADiaz, May 23, 2013 10:04 PM
    Posted by: Geoff Fish on May 24, 2013, 08:39 AM
    It appears that I need to add some more to the conversation. From the replies I have received it seems I will have to change

    SUBTERM.SEG01.STVTERM_CODE AS 'TERMNOW'
    SUBTERM.SEG01.TERMYRAGO
    SUBTERM.SEG01.TERMYRAGO2
    TODAY
    MTAGOTODY
    YRAGOTODY
    2YRAGOTDY

    to &fieldname in order to pass to another fex so my next step is to change
    2YRAGOTDY to &2YRAGOTDY and so on for all the others to &


    Am i correct? and if so how is that done. This may be something I have done before but, i am not recognizing it in this context..

    Thanks for the responses.
    geoff
    Posted by: susannah on May 24, 2013, 09:48 AM
    ah
    TABLE FILE CAR
    PRINT COUNTRY IF COUNTRY IS 'ENGLAND'
    IF RECORDLIMIT IS 1
    ON TABLE SAVE
    [or ON TABLE HOLD FORMAT ALPHA]
    END
    -RUN
    -READ SAVE &MYTHING.A10
    Original Forum ID: 7477089036
  • Summary
    This solved issue discusses the differences between the JOIN command and the MATCH FILE command in the FOCUS language. The poster seeks clarity on their unique use cases, with various community members responding with technical explanations and resources such as training courses and manuals. A JOIN creates a temporary connection between data sources for reporting while MATCH merges data from multiple sources into a HOLD file. The post emphasizes detailed operational differences, benefits, and considerations for each command.
    Original Content
    Posted by: Mayank Jain on August 24, 2013, 08:03 AM
    [SOLVED] Difference b/t Match File & Join Commands
    Hi,

    I am new to FOCUS language. Can someone throw some light on the difference between JOIN Command & MATCH FILE Command. And in what scenario each of these are used.

    Thanks.
    This message has been edited. Last edited by: <Kathryn Henning>, March 21, 2014 08:15 PM
    Posted by: Vivian on August 24, 2013, 06:55 PM
    You should look at the WebFOCUS Keysheet Release 8.0.2 - Gives lots of good information about Match and Join commands.

    All of the WebFOCUS commands in one document!

    Vivian
    Posted by: Mayank Jain on August 25, 2013, 12:07 PM
    Hi Vivian,

    Where can i find "WebFOCUS Keysheet Release 8.0.2"??
    Posted by: Waz on August 25, 2013, 05:23 PM
    There are also courses provided by IBI on these.

    The one thing that needs to be about JOIN is the way that it works. Especially in combination with SET ALL setting.

    There was a great post done a couple of years ago in the forum. You should try to look it up.
    Posted by: Vivian on August 25, 2013, 07:53 PM
    Hello Mayank,

    You can find this at www.aviter.com.

    If you have any questions, feel free to contact me at [email protected].

    Vivian
    Posted by: Twanette on August 26, 2013, 02:15 PM
    Hi,
    The WebFOCUS manual called "Creating Reports With WebFOCUS Language" has two chapters dedicated to "Joining Data Sources" and "Merging Data Sources".

    The two Information Builders training courses that explain JOIN and MATCH in a fair amount of detail are:
    Course 351: Building Reports with Report Painter (Part 1)
    Course 354: Building Reports with Report Painter (Part 2)
    The 2nd course compares JOIN ands MATCH.

    A (somewhat long-winded) helicopter view:
    A JOIN is a temporary, virtual connection between two or more physical data sources. The data in the host file determines which records are retrieved from the cross-reference file. When a record from the host file of a one-to-many join has no corresponding record(s) in the cross-reference file, the record is automatically excluded from the report output. To control this, you could SET ALL to ON, in which case records from the host file, without corresponding records in the cross-reference file, will be displayed in the report output.

    If you JOIN two files: WebFOCUS retrieves a record from the first data source (host file) and then searches for a corresponding record (or records) in the second file (cross-reference file), and stores the results in an Internal Table, which is eventually formatted to produce the report. NB: Only matching records are retrieved from the second file.

    MATCH allows you to merge information from two or more data sources and capture the results (selected records and requested columns) in a HOLD file. If a report needs to be produced, then it must run as a subsequent request off the HOLD file.

    If you MATCH two files: WebFOCUS retrieves the requested records from the first data source and writes the output to a temporary work area. WebFOCUS then retrieves the requested records from the second data source and writes the output to a temporary work area. WebFOCUS then merges the results based on the high-order sort fields and writes the merged results to an Internal Table. The results in the Internal Table are then written to a HOLD file.
    If a report is required, you must then run a TABLE request against the resultant HOLD file.

    So there is a lot more processing, and potentially Disk IO, that goes on in a MATCH process than in a JOIN process!

    If the required indexes etc. are in place, and if you need an Inner Join or a Left Outer Join, then generally your starting point would be a JOIN.
    However, MATCH is ideally suited if you need more capabilities than JOIN – such as merging data sources which do not have indexes, or such as merging two unsorted flat files, or such as merging ALL the requested records from the first data source with ALL the requested records from the second data source.
    Posted by: Rifaz on August 27, 2013, 01:36 AM
    Focal point should have LIKE button in place.
    Posted by: Twanette on August 28, 2013, 01:20 AM
    Thanks ;-)
    Posted by: JALDbaDev on August 28, 2013, 10:08 AM
    This is great! Would love to see more items like this for us Newbies.
    Original Forum ID: 2757030336
  • Summary
    This closed issue discusses a JavaScript form validation problem in a WebFOCUS HTML form with multiple textboxes. The user is seeking a solution to stop form submission if the validation fails. Various interactions in the post indicate attempted solutions and suggestions from community members regarding improvements to the validation logic and handling form submission events. Ultimately, a successful method to prevent submission was suggested, resolving the user’s issue.
    Original Content
    Posted by: Trilochan on May 01, 2013, 05:38 AM
    [CLOSED] Java Script Form Validation in Webfocus
    I have a Webfocus HTML form with more than 10 filter Textbox.I want to validate all the text box value using Java Script.

    I have written below code.
    <!-- Generated by Report Layout Painter --> <HTML> <HEAD> <TITLE>HtmlPage</TITLE> <BASE href=HTTP://localhost:80> <META content="MSHTML 6.00.2900.6325" name=GENERATOR> <SCRIPT id=clientEventHandlersJS type=text/javascript> //Begin function window_onload function window_onload() { UpdateData(); // TODO: Add your event handler code here } //End function window_onload function ValidateForm() { var edit1 = document.getElementById("edit1").value; alert(edit1); if (edit1== "") { alert("Please enter the Textbox value"); return false; } else { return true; } } </SCRIPT> <SCRIPT for=window eventname="onload">window.onload = function() { window_onload(); }</SCRIPT> </HEAD> <BODY style="OVERFLOW: auto">  <IFRAME id=iframe1 style="Z-INDEX: 3; LEFT: 190px; WIDTH: 650px; POSITION: absolute; TOP: 310px; HEIGHT: 260px" tabIndex=3 name=iframe1 autoExecute="False"></IFRAME> <FORM id=form2 style="Z-INDEX: 4; LEFT: 210px; WIDTH: 617px; POSITION: absolute; TOP: 50px; HEIGHT: 214px" tabIndex=4 name=form2 onsubmit="OnExecute(this);return false;" method=post autoExecute="True" default_slider_type="4" form_prompt_location="1" form_number_of_visible_rows="4" form_number_of_columns="4" vert_dist_between_controls="10" form_hor_dist_between_controls="10" form_dist_between_desc_and_input="10" requests_list="0"> <INPUT id=form2Submit style="Z-INDEX: 5; LEFT: 141px; BACKGROUND-IMAGE: url(/ibi_html/javaassist/ibi/html/describe/run16.gif); WIDTH: 38px; BACKGROUND-REPEAT: no-repeat; POSITION: absolute; TOP: 174px; HEIGHT: 22px; BACKGROUND-COLOR: lavender" onclick=ValidateForm(); tabIndex=5 type=submit value=" " name=ITEM1> <INPUT id=form2Reset style="Z-INDEX: 6; LEFT: 271px; BACKGROUND-IMAGE: url(/ibi_html/javaassist/ibi/html/describe/reset.gif); WIDTH: 38px; BACKGROUND-REPEAT: no-repeat; POSITION: absolute; TOP: 164px; HEIGHT: 22px; BACKGROUND-COLOR: lavender" tabIndex=6 type=reset value=" " name=reset1> <FIELDSET id=form2_formbodyid style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 7; LEFT: 5px; PADDING-BOTTOM: 0px; OVERFLOW: auto; WIDTH: 607px; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: absolute; TOP: 5px; HEIGHT: 1px; BORDER-BOTTOM-STYLE: none" tabIndex=7 formbody="1"></FIELDSET> <INPUT id=edit1 style="Z-INDEX: 8; LEFT: 100px; WIDTH: 260px; POSITION: absolute; TOP: 100px" tabIndex=8 name=edit1></FORM> <xml id=ibi_requests> <requests> <request requestid="0" sourcetype="typeFex" targettype="0" targetname="iframe1" ibif_ex="test.fex" ibic_server="EDASERVE" ibiapp_app="chronos"> <variables/></request></requests> </xml></BODY></HTML>


    Here Validation is works.But the form is submitted.I want to stop submission of form if filter text box is not entered or validated.

    In Java script form validation return true means form submission=YES and return false means form submission=NO

    Please help me.Thanks in advance.

    I am using Dev Studio Version 761.
    This message has been edited. Last edited by: <Kathryn Henning>, May 14, 2013 01:21 PM
    Posted by: SeyedG on May 01, 2013, 03:36 PM
    Hi Trilochan,
    Change the onclick event from

    onclick= ValidateForm();

    to

    onclick= "return ValidateForm()";

    I tried this change, and seems to not submit the form unless a value is entered into the text box. Having the 'Return' before the name prevents the forms submission prematurely. Please see http://www.webreference.com/pr...t/confirm/index.html for more info.

    Seyed
    Posted by: Trilochan on May 03, 2013, 07:18 AM
    Hi SeyedG,

    Thanks for your reply.

    Then also it is not working after using below code
    onclick= "return ValidateForm()";

    I think form is submitted due to below code

    onsubmit="OnExecute(this);return false;"

    Please help me,how to restrict form submission.
    Posted by: Francis Mariani on May 03, 2013, 09:25 AM
    [CLOSED] Dev Studio GUI Newbie Question: Where to add form validation?
    Posted by: SeyedG on May 03, 2013, 11:42 AM

    Hi Trilochan,
    In your onsubmit event handler, you are calling a function called 'OnExecute' that does not exist. You could add something like:
    function OnExecute() { alert('Made it to OnExecute'); document.form2.submit(); }

    The link Francis suggested contains valuable information that would be helpful to you.

    Seyed
    Posted by: Trilochan on May 16, 2013, 04:26 AM
    Thanks Francis Mariani for your help.

    Its works for me.
    Original Forum ID: 1947025036
  • Summary
    This closed discussion focuses on a requirement to develop a compound Excel report with multiple tabs using WebFOCUS. The user faced issues when trying to display content from multiple hold files, as only the first file's content was showing in the generated report. Various queries and solutions were discussed to address the limitations, particularly concerning tab naming conflicts in Excel due to duplication from the BYTOC functionality. The user seeks guidance on combining multiple hold file contents efficiently into separate tabs based on specific column values.
    Original Content
    Posted by: Shankar on January 12, 2013, 09:37 AM
    [CLOSED] Is it possible to generate a compound excel report with different tabs.
    Hi,

    we have a requirement in our project where we need to develope an excel file and burst that excel file into different tabs.
    I tried searching the forum with compound excel report with bursting but could not full fill my requirements.
    both the requirements are feasible alone but in together when i want to display my report,it is taking the content of first hold file only and making tabs as per my by column.

    in my fex file, i have four hold files which i am displaying one after other, the report bursts into different seats as per the BY column.
    please find below the query which i have tried:

    sql sqlora
    select name , roll,class, admin number from student
    on table hold as hld1

    sql sqlora
    select name, class, subject, admin number from student
    on table hold as hld2


    Table file hld1
    print
    name
    by admin number noprint
    by roll
    across class

    on table set by display on
    on table pchold format exl2k bytoc

    end
    -run

    table file hld2
    print name
    by admin number noprint
    by subject
    across class

    on table set by display on
    on table pchold format exl2k bytoc
    -end
    -run

    After generating the report , the excel report is generated into different tabs as per the admin number,but i am getting content of first hold file only.

    Kindly help. as we have to deliver this requirement in another three days and i am not sure whether this is feasible or not.


    Regards,
    Shankar

    WF 7.6.11, Windows XP
    DataBase: Oracle 11g,Output :Excel,PDF,HTML
    This message has been edited. Last edited by: Kerry, January 24, 2013 10:27 AM
    Posted by: Dan Satchell on January 12, 2013, 06:42 PM
    You probably won't be able to use BYTOC to accomplish this. One limiting factor is that Excel does not allow duplicate tab names in a spreadsheet. Since BYTOC uses the first BY phrase for the tab names, your use of the same BY phrase in both queries causes a conflict. One solution is to manually create the report(s) for each tab. In the example below, I have placed two reports (one for dealer cost and one for retail cost) on the same tab. If you want each report on a separate tab, you can modify the compound syntax by replacing 'NOBREAK' with a blank. But you will also want to add a TITLETEXT statement to the style sheet in the second query. Just remember that none of the tabs can have the exact same name.

    SET HOLDLIST = PRINTONLY SET ASNAMES = ON -* TABLE FILE CAR BY COUNTRY ON TABLE HOLD AS CNTRYLST END -RUN -SET &COUNTRY_COUNT = &LINES ; -* -REPEAT :ENDREPEAT1 FOR &I FROM 1 TO &COUNTRY_COUNT -SET &COMPOUND1 = IF (&I EQ 1) THEN 'OPEN NOBREAK' ELSE 'NOBREAK'; -SET &COMPOUND2 = IF (&I EQ &COUNTRY_COUNT) THEN 'CLOSE' ELSE ''; -READFILE CNTRYLST -* TABLE FILE CAR SUM DEALER_COST ACROSS CAR AS 'Dealer Cost' WHERE COUNTRY EQ '&COUNTRY'; ON TABLE SUBFOOT " " " " ON TABLE SET STYLE * TYPE=REPORT, TITLETEXT='&COUNTRY', $ ENDSTYLE ON TABLE PCHOLD FORMAT EXL2K &COMPOUND1 END -* TABLE FILE CAR SUM RETAIL_COST ACROSS CAR AS 'Retail Cost' WHERE COUNTRY EQ '&COUNTRY'; ON TABLE PCHOLD FORMAT EXL2K &COMPOUND2 END -:ENDREPEAT1
    Posted by: FrankDutch on January 13, 2013, 02:13 AM
    We use this compound function in combination with the bytoc, but so far only in the second or last compound sheet.

    There might be a way to do this if you would create a dummy by field, by adding a different number depending on the different queries.
    Posted by: Shankar on January 13, 2013, 02:27 AM
    Hi Dan,

    Thanks for your help, but the code piece is showing an error while execution.

    -READFILE CNTRYLST .. is the line where it showing an error.

    however i tried in my actual fex file.
    in the actual report , the report need to separate into different tabs as per one column value and in each tab i need to display all the four hold file contents. when i use this query, 2 hold files generated in two different tabs. but i need those two to be generated in one tab and same two to be generated in other tab as the value changes.

    Could you please help me understanding the use of titiletext so that i can get the content of four sql query in each tab and multiple tabs could be created as the value of the column changes(in the example shown above admin nbr). Thanks


    Regards,
    Shankar
    Posted by: Dan Satchell on January 13, 2013, 02:43 AM
    I thought -READFILE was available in release 7.6.11, but maybe not. That section of the code can be replaced with this code:

    TABLE FILE CAR BY COUNTRY ON TABLE SAVE AS CNTRYLST END -RUN -SET &COUNTRY_COUNT = &LINES ; -* -REPEAT :ENDREPEAT1 FOR &I FROM 1 TO &COUNTRY_COUNT -SET &COMPOUND1 = IF (&I EQ 1) THEN 'OPEN NOBREAK' ELSE 'NOBREAK'; -SET &COMPOUND2 = IF (&I EQ &COUNTRY_COUNT) THEN 'CLOSE' ELSE ''; -READ CNTRYLST NOCLOSE &COUNTRY.10. . . .
    Otherwise, my code sample should work for displaying the contents of four hold files. As long as you are planning to display data from all four hold files on the same tab, then the TITLETEXT duplication problem should not be an issue for you.
    Posted by: FrankDutch on January 13, 2013, 05:07 AM
    ON TABLE PCHOLD FORMAT EXL2K
    ON TABLE SET COMPOUND BYTOC

    This might help also

    It is IMHO a bit to complex to do this with a loop. There are many examples in both the official documentation and in this forum.
    We have this running on the dashboard and in reportcaster .
    Posted by: Tony A on January 13, 2013, 07:14 AM
    I am wondering whether you have not given a precise description of what you need to achieve?

    Is the end result an Excel workbook with one worksheet per "Admin Number" and each worksheet containing two or more reports?

    If so then you will need to resort to combining the data from each extract but still leave the ability to identify where each row of data originated. Then within the final process, split the report sections by using SUBHEAD or the like.

    If we take a similar output where I want to have an Excel workbook with a seperate DIV on each worksheet but containing two reports within the worksheet. The first one is a list of names ordered BY JOBCLASS ACROSS DEPT the second is also a list of names but ordered BY TITLE ACROSS DEPT.

    I can see that JOBCLASS is A8 and TITLE is A20, so I use the larger of the two to contain my "common" field in the concatenated file. I then set another field to hold my report "differentiator" and my code becomes -
    SET ASNAMES = ON SET HOLDLIST = PRINTONLY SET BYDISPLAY = ON FILEDEF TEMPDATA DISK TEMPDATA.FTM (APPEND -RUN DEFINE FILE EMPDATA NAME/A27 = LASTNAME || (', ' | FIRSTNAME); REPORT1/I1 = 1; REPORT2/I1 = 2; SECOND_BY1/A20 = JOBCLASS; SECOND_BY2/A20 = TITLE; END TABLE FILE EMPDATA PRINT NAME BY REPORT1 AS REPORT BY DIV BY SECOND_BY1 AS SECOND_BY BY DEPT ON TABLE HOLD AS TEMPDATA FORMAT ALPHA END -RUN TABLE FILE EMPDATA PRINT NAME BY REPORT2 AS REPORT BY DIV BY SECOND_BY2 AS SECOND_BY BY DEPT ON TABLE HOLD AS TEMPDATA FORMAT ALPHA END -RUN TABLE FILE TEMPDATA PRINT NAME BY DIV NOPRINT BY REPORT NOPRINT BY SECOND_BY AS '' ACROSS DEPT ON REPORT SUBFOOT " " ON REPORT SUBHEAD "JOBCLASS" WHEN REPORT EQ 1 ON REPORT SUBHEAD "TITLE" WHEN REPORT EQ 2 ON TABLE PCHOLD FORMAT EXL2K BYTOC END -RUN
    T
    Posted by: Edwin Welch on January 14, 2013, 07:30 AM
    We have a number of reports that produce multiple tabs due to different formatting and sorting needs. We use the OPEN and CLOSE commands. However, I did discover that this does not work with EXL07 format. Only the first table will be displayed. Notice the OPEN statement following the FORMAT EXL2k on the first table and the CLOSE following the FORMAT EXL2k on the last. On a side note, if one of the tables fail you will only get one tab.

    TABLE FILE ELIG_RETURN
    PRINT
    BANNER_ID
    LAST_NAME
    FIRST_NAME
    REG_HRS
    CLASS_LEVEL_CODE
    STUDENT_TYPE_CODE
    FR1
    SO1
    JR1
    SR1
    UN1
    REGISTRATION_CAMPUS_CODE
    BY LOWEST REGISTRATION_CAMPUS_CODE
    BY LOWEST PIDM NOPRINT
    ON TABLE SET PAGE-NUM NOLEAD
    ON REGISTRATION_CAMPUS_CODE SUBTOTAL FR1 SO1 JR1 SR1 UN1
    ON TABLE COLUMN-TOTAL AS 'TOTAL' FR1 SO1 JR1 SR1 UN1
    ON TABLE PCHOLD FORMAT EXL2K OPEN
    ON TABLE SET HTMLCSS ON
    ON TABLE SET STYLE *
    INCLUDE = endeflt,
    $
    TYPE=REPORT,
    GRID=OFF,
    FONT='TIMES NEW ROMAN',
    SIZE=10,
    TITLETEXT='ELIG RETURN',
    $
    ENDSTYLE
    END
    -RUN
    TABLE FILE NOT_RETURN
    PRINT
    BANNER_ID
    LAST_NAME
    FIRST_NAME
    REG_HRS
    CLASS_LEVEL_CODE
    STUDENT_TYPE_CODE
    FR1
    SO1
    JR1
    SR1
    UN1
    REGISTRATION_CAMPUS_CODE
    BY REGISTRATION_CAMPUS_CODE
    BY LOWEST PIDM NOPRINT
    ON TABLE SET PAGE-NUM NOLEAD
    ON REGISTRATION_CAMPUS_CODE SUBTOTAL FR1 SO1 JR1 SR1 UN1
    ON TABLE COLUMN-TOTAL AS 'TOTAL' FR1 SO1 JR1 SR1 UN1
    ON TABLE PCHOLD FORMAT EXL2K
    ON TABLE SET HTMLCSS ON
    ON TABLE SET STYLE *
    INCLUDE = endeflt,
    $
    TYPE=REPORT,
    GRID=OFF,
    FONT='TIMES NEW ROMAN',
    SIZE=10,
    TITLETEXT='NOT RETURNING',
    $
    ENDSTYLE
    END
    -RUN
    TABLE FILE NEXT_TERM_STU
    SUM
    BANNER_ID
    LAST_NAME
    FIRST_NAME
    REG_HRS
    CLASS_LEVEL_CODE
    STUDENT_TYPE_CODE
    REGISTRATION_CAMPUS_CODE
    FR1
    SO1
    JR1
    SR1
    UN1
    BY LOWEST REGISTRATION_CAMPUS_CODE
    BY LOWEST PIDM NOPRINT
    ON TABLE SET PAGE-NUM NOLEAD
    ON REGISTRATION_CAMPUS_CODE SUBTOTAL FR1 SO1 JR1 SR1 UN1
    ON TABLE COLUMN-TOTAL AS 'TOTAL' FR1 SO1 JR1 SR1 UN1
    ON TABLE PCHOLD FORMAT EXL2K
    ON TABLE SET HTMLCSS ON
    ON TABLE SET STYLE *
    INCLUDE = endeflt,
    $
    TITLETEXT='ENROLLED STUDENTS',
    $
    TYPE=REPORT,
    FONT='TIMES NEW ROMAN',
    SIZE=10,
    $
    ENDSTYLE
    END
    -RUN
    TABLE FILE NEW_STUDENTS
    SUM
    BANNER_ID
    LAST_NAME
    FIRST_NAME
    REG_HRS
    CLASS_LEVEL_CODE
    STUDENT_TYPE_CODE
    REGISTRATION_CAMPUS_CODE
    FR1
    SO1
    JR1
    SR1
    UN1
    BY LOWEST REGISTRATION_CAMPUS_CODE
    BY LOWEST PIDM NOPRINT
    ON TABLE SET PAGE-NUM NOLEAD
    ON REGISTRATION_CAMPUS_CODE SUBTOTAL FR1 SO1 JR1 SR1 UN1
    ON TABLE COLUMN-TOTAL AS 'TOTAL' FR1 SO1 JR1 SR1 UN1
    ON TABLE PCHOLD FORMAT EXL2K CLOSE
    ON TABLE SET HTMLCSS ON
    ON TABLE SET STYLE *
    INCLUDE = endeflt,
    $
    TITLETEXT='NEW STUDENTS',
    $
    TYPE=REPORT,
    FONT='TIMES NEW ROMAN',
    SIZE=10,
    $
    ENDSTYLE
    END
    -RUN
    -EXIT
    Posted by: George Patton on January 15, 2013, 12:39 PM
    The release notes explain that BYTOC (tabs) are not yet available in EXL07 output.
    Posted by: George Patton on January 17, 2013, 02:02 PM


    [Image: Red Face] I lied. Sort of. The above statement is true, but the release notes aren't accurate. BYTOC does indeed work with WF7704 and EXL07.
    Posted by: Rejoice on May 22, 2013, 07:22 PM
    We have WF7704. Can you give us example on how it works?

    Any help is very much appreciated
    Original Forum ID: 8547058726
  • Summary
    This technique post introduces WebFOCUS Visual Discovery Analyst Edition (AE), highlighting its advanced visual analytics capabilities. It emphasizes the use of interactive charts to illustrate trends and relationships in data. A key aspect mentioned is the in-memory data model, which allows for high-performance insights and guided analysis. The post encourages readers to subscribe for more information and updates.
    Original Content
    Posted by: Kerry on June 17, 2013, 11:21 AM
    [TECHNIQUE] Getting Started With WebFOCUS Visual Discovery Analyst Edition (AE)
    Getting Started With WebFOCUS Visual Discovery Analyst Edition (AE)
    by Adam Lotrowski
    WebFOCUS Visual Discovery Analyst Edition (AE) is a new solution that extends Information Builders’ WebFOCUS platform with advanced visual analytics capabilities. The tool features analytics and dashboards composed of various interactive and interconnected charts that show trends, relationships, and other measured values.
    A fundamental concept to WebFOCUS Visual Discovery AE is the in-memory data model, which enables high-performance insights and guided analysis. Behind the scenes, Visual Discovery’s data pool is initially loaded from any combination of data sources and then highly condensed into a proprietary, encrypted format for use by business analysts and data scientists.

    Click here to read more, and subscribe today to receive the WebFOCUS Newsletter in email.
    Original Forum ID: 7557045136
  • Summary
    This resolved issue discusses compatibility with SVG viewing in WebFOCUS when using Internet Explorer. The user encountered a message indicating the need for an SVG viewer while accessing the Analytics tab. The resolution provided suggests that newer browsers handle SVG natively, and recommends using browsers like Chrome, Firefox, or Safari for better support. Additionally, it notes that if IE is used, both IE9+ and WF8+ are necessary to avoid needing an SVG viewer.
    Original Content
    Posted by: dcorp on February 20, 2013, 12:10 PM
    [RESOLVED]is the svg viewer still needed?
    We are running pmf 5.3.1 hotfix 3 and Ie 9.0.8 on WF release 7.7.04m. When accessing the Analytics tab we receive a display stating: "You do not have a supported SVG Viewer installed." Is the SVG viewer still needed? Or do I have some other problem that needs addressed? Thanks in advance.
    This message has been edited. Last edited by: dcorp, February 21, 2013 10:50 AM
    Posted by: Michael Paul on February 20, 2013, 01:56 PM
    Hi dcorp,

    All newer browsers handle SVG natively including Chrome, Firefox, Safari, etc . The only browser with some limitations with native SVG handling is IE.

    IE9 is the first IE browser with full capabilities of native SVG handling and the WF 8x release is the first standards based container for IE web content. Therefore if you are using IE and do not have both IE9+ and WF8+ you will need the SVG viewer.

    If you prefer to not install the SVG viewer you might look into trying one of the other browsers such as Chrome.

    Best Regards,
    Mike
    Posted by: dcorp on February 21, 2013, 10:43 AM
    Mike, Thanks
    Original Forum ID: 9627009826
  • Summary
    This workaround explains how to print a check mark in a report using WebFOCUS. The user inquires about creating a field for a check mark symbol and discovers a solution involving using different fonts, including Zapfdingbats and Wingdings, as well as leveraging images for a more customized look in PDF outputs. Sample codes illustrate methods for defining and printing check marks based on specific conditions. The post facilitates community engagement by sharing code examples and encouraging further exploration.
    Original Content
    Posted by: MSIROTTI on June 12, 2013, 11:27 AM
    [WORKAROUND]How can I print a check mark (tick) in a report?
    I would like to create a field that contains the check mark. Is that possible? The ideal result would be a little square box that could containt the tick sign.
    Any idea? Thanks.
    This message has been edited. Last edited by: MSIROTTI, June 18, 2013 02:48 PM
    Posted by: globalwm on June 12, 2013, 11:32 AM
    Does this help you?

    [CLOSED] How to print the check mark symbol

    ??
    Posted by: MSIROTTI on June 12, 2013, 11:47 AM
    Thank you Francis. I'll look into it.
    Posted by: MSIROTTI on June 18, 2013, 02:52 PM
    I did not find a quick way to do it in PDF (no problem in HTML) but i find the way a print the sign "square-root" that is close enough.
    [ code ]
    DEFINE FILE CAR
    UK/A1=IF COUNTRY EQ 'ENGLAND' THEN HEXBYT(214,'A1') ELSE ' ';
    FR/A1=IF COUNTRY EQ 'FRANCE' THEN HEXBYT(214,'A1') ELSE ' ';
    IT/A1=IF COUNTRY EQ 'ITALY' THEN HEXBYT(214,'A1') ELSE ' ';
    JP/A1=IF COUNTRY EQ 'JAPAN' THEN HEXBYT(214,'A1') ELSE ' ';
    AL/A1=IF COUNTRY EQ 'W GERMANY' THEN HEXBYT(214,'A1') ELSE ' ';

    END

    TABLE FILE CAR
    PRINT CAR MODEL UK FR IT JP AL
    ON TABLE PCHOLD FORMAT PDF
    ON TABLE SET STYLE *
    TYPE=DATA, COLUMN=UK, FONT='SYmbol', $
    TYPE=DATA, COLUMN=FR, FONT='SYmbol', $
    TYPE=DATA, COLUMN=IT, FONT='SYmbol', $
    TYPE=DATA, COLUMN=JP, FONT='SYmbol', $
    TYPE=DATA, COLUMN=AL, FONT='SYmbol', $

    ENDSTYLE
    END
    [ /code ]
    Posted by: njsden on June 19, 2013, 01:16 AM
    Why not having the checkmark you want as a tiny image (.jpeg or .gif) and just include it as part of the data in your report? Provided the image is available somewhere in your Reporting Server (not the Web/App Server) you should have no problem at adding it to your PDF output.

    The only reason I try to avoid "special characters" is that your report may not be so easy to port to other environments that use different character sets and/or code pages, whereas an image is an image is an image 😊
    Posted by: Alex on June 19, 2013, 06:06 AM
    Do a search on "checkmarks" or "wingdings" on this forum. You'll find a good solution there.
    Posted by: MSIROTTI on June 19, 2013, 11:19 AM
    njsden:
    the problem is that the image has to be defined in a field A256 and in PDF that seems to be really 256 char.

    Alex:
    wingdings is fine in HTML, but it doesn't work in PDF, as it was specified in the link in a previous post.

    Thank you both anyway.
    Posted by: MSIROTTI on June 19, 2013, 11:39 AM
    Alex:
    in the search I've found the suggestion of use the font Zapfdingbats; I'll try that, even though I admit that this is a real checkmark and not a square root
    Posted by: njsden on June 19, 2013, 11:52 AM


    @MSIROTTI, I don't think I understand why that seems to be an issue 😕

    DEFINE FILE CAR CHECKIT/A256 = IF COUNTRY EQ 'JAPAN' OR CAR EQ 'MASERATI' THEN 'icon_check_green.jpg' ELSE ''; END TABLE FILE CAR PRINT CAR AS 'Car' COUNTRY AS 'Country' CHECKIT AS 'Chk' SEATS AS 'Seats' ON TABLE PCHOLD FORMAT PDF ON TABLE SET STYLE * TYPE=REPORT, UNITS=PTS, FONT='Arial', SIZE=11, BORDER=1, $ TYPE=DATA,COLUMN=CHECKIT,IMAGE=(CHECKIT),SIZE=(16 16),PRESERVERATIO=ON,$ ENDSTYLE END -RUN


    Provided 'icon_check_green.jpg' is available somewhere in your APP PATH, you would get a PDF document looking like this:




    Your variable length only needs to be as "big" as the image's file name, which is my example above is just 20 characters. Therefore, using CHECKIT/A20 worked just as fine and the result output is similar.
    Posted by: DavSmith on June 19, 2013, 03:59 PM
    MSIROTTI, zapfdingbats will work nicely for you in PDF format if you can do with a basic check mark and standard WebFocus styling.

    If you need a more stylized version, then images, as NJ describes, is the way to go.

    Here's my code example showing how to code a PDF, HTML, EXL2K, and AHTML checkmark:

    -SET &FORMAT='PDF'; TABLE FILE CAR SUM COMPUTE CHECK/A70=IF '&FORMAT' EQ 'PDF' THEN '3' ELSE '<font size="4" color="GREEN" face="wingdings 2"> &|#80 </font>'; BY COUNTRY ON TABLE PCHOLD FORMAT &FORMAT ON TABLE SET STYLE * TYPE=REPORT, GRID = OFF, SQUEEZE=ON,$ TYPE=DATA, COLUMN=N2,COLOR=BLUE,SIZE=15, FONT='zapfdingbats', $ ENDSTYLE END
    Posted by: susannah on June 20, 2013, 02:27 PM
    wfiw, the font wingdings 2, the upper case P is a plain checkmark; the upcase Q,R,S,T, U and V are interesting variations on the theme.
    and the html spec character code for upper case letters are #65 thu #90 (the leading & being understood 😊)
    so DavSmith above uses #80 for that upper case P, and sets the font to windings 2 and voila!
    Original Forum ID: 9447044136
×
  • Create New...