It's been quite some time since I have been working regularly in WebFOCUS and I have come across an issue I just cannot solve:
Our database contains mixed characters. I am building a report to search on some alphanumeric fields. I just cannot, for the life of me, figure out how to make the searches not be case sensitive.
My idea was to define a field (A concat field of several fields which use letters and numbers) using UPCASE and then convert what the user inputs to uppercase as well.
1. The UPCASE is not even working. Is this because there are numbers in the data as well?
2. Am I even going about solving the case sensitive issue the right way with the conversions?
In sum, how can I retrieve data when a user enters 'widget' in the search but the database contains 'Widget'?
Thank you.This message has been edited. Last edited by: Kerry,
February 25, 2011, 12:35 PM
Tom Flynn
Here's 1 example, LOCASE could be another, other's may have different examples:
-SET &ECHO=ALL;
-SET &VALUE1 = 'widget';
-SET &VALUE2 = '999widget999';
-SET &VAL_LEN1 = &VALUE1.LENGTH;
-SET &VAL_LEN2 = &VALUE2.LENGTH;
-SET &FMT1 = 'A' | &VAL_LEN1;
-SET &FMT2 = 'A' | &VAL_LEN2;
DEFINE FILE CAR
NEW_COL01/&FMT1 WITH CAR = 'Widget';
NEW_COL02/&FMT1 = '&VALUE1.EVAL';
NEW_COL03/&FMT1 = UPCASE(&VAL_LEN1,NEW_COL01,'A&VAL_LEN1');
NEW_COL04/&FMT1 = UPCASE(&VAL_LEN1.EVAL, '&VALUE1.EVAL', 'A&VAL_LEN1');
NEW_COL05/&FMT2 WITH CAR = '999widget999';
NEW_COL06/&FMT2 = '&VALUE2.EVAL';
NEW_COL07/&FMT2 = UPCASE(&VAL_LEN2,NEW_COL06,'A&VAL_LEN2');
NEW_COL08/&FMT2 = UPCASE(&VAL_LEN2.EVAL, '&VALUE2.EVAL', 'A&VAL_LEN2');
END
TABLE FILE CAR
SUM
NEW_COL01
NEW_COL02
NEW_COL03
NEW_COL04
NEW_COL05
NEW_COL06
NEW_COL07
NEW_COL08
COMPUTE FLAG1/A1 = IF COUNTRY EQ 'ENGLAND' THEN 'N' ELSE
IF NEW_COL03 EQ NEW_COL04 THEN 'Y' ELSE 'N';
COMPUTE FLAG2/A1 = IF COUNTRY EQ 'JAPAN' THEN 'N' ELSE
IF NEW_COL07 EQ NEW_COL08 THEN 'Y' ELSE 'N';
BY COUNTRY
END
-EXIT
This message has been edited. Last edited by: Tom Flynn,