如何在WebFOCUS中处理& VARCHAR?

时间:2014-03-12 22:39:07

标签: string variables oracle11g webfocus

我需要明确解释如何在WebFOCUS Developer Studio中处理字符串,尤其是在启动页面和报表本身之间。我不能在文档中找到一个很好的解释,一般来说它们是如何处理的。

我的问题归结为单引号,但我不确定添加和删除它们的时间,地点或原因。在发送多个值时,在定义中使用&amp;变量是否存在问题?我认为这只是处理为<option1> OR <option2> OR ...

更具体地说:在我正在处理的报告中,我在启动页面上有一个列表框控件,用户可以在其中选择一个或多个员工来查询他们的VOIP记录。由于现在配置了HTM / FEX,报告会显示所选择的单个员工的记录,但选择多个员工时则不显示。我无法找到一种方法让这个工作为不止一个人选择。它可能与我的定义有关。

DEFINE FILE TABLE_NAME ADD
  EMPLOYEE/A55V=
    IF (&EMP_NAME EQ CALLING_PARTY) THEN &EMP_NAME ELSE
    IF (&EMP_NAME EQ ORIGINAL_CALLED) THEN &EMP_NAME ELSE
    IF (&EMP_NAME EQ FINAL_CALLED) THEN &EMP_NAME ELSE 'X';
END

TABLE FILE HOLD_VOIP_DATE_RANGE

PRINT 
 TABLE_NAME.SEG01.EMPLOYEE
 TABLE_NAME.SEG01.CALLING_PARTY AS 'Rep'
 TABLE_NAME.SEG01.ORIGINAL_CALLED
 TABLE_NAME.SEG01.FINAL_CALLED
 TABLE_NAME.SEG01.ORIGINATION_TIME
 TABLE_NAME.SEG01.CONNECT_TIME
 TABLE_NAME.SEG01.DISCONNECT_TIME
 TABLE_NAME.SEG01.ORIGINATION_DATE
 TABLE_NAME.SEG01.CALL_TYPE
WHERE EMPLOYEE EQ &EMP_NAME;

注意:列表框中的多个“添加引号”属性设置为“开启”。

欢迎提供反馈。这是我关于SE的第一个问题。如果我需要更具体,请告诉我。

1 个答案:

答案 0 :(得分:0)

Web焦点和变量用作文本替换

-SET &EMP_NAME = 'Bruce Wayne';    
DEFINE FILE TABLE_NAME ADD
  EMPLOYEE/A55V=
    IF (&EMP_NAME EQ CALLING_PARTY) THEN &EMP_NAME ELSE
    IF (&EMP_NAME EQ ORIGINAL_CALLED) THEN &EMP_NAME ELSE
    IF (&EMP_NAME EQ FINAL_CALLED) THEN &EMP_NAME ELSE 'X';
END

TABLE FILE HOLD_VOIP_DATE_RANGE

PRINT 
 TABLE_NAME.SEG01.EMPLOYEE
 TABLE_NAME.SEG01.CALLING_PARTY AS 'Rep'
 TABLE_NAME.SEG01.ORIGINAL_CALLED
 TABLE_NAME.SEG01.FINAL_CALLED
 TABLE_NAME.SEG01.ORIGINATION_TIME
 TABLE_NAME.SEG01.CONNECT_TIME
 TABLE_NAME.SEG01.DISCONNECT_TIME
 TABLE_NAME.SEG01.ORIGINATION_DATE
 TABLE_NAME.SEG01.CALL_TYPE
WHERE EMPLOYEE EQ &EMP_NAME;

一旦执行就会看起来像

-SET &EMP_NAME = 'Bruce Wayne';    
DEFINE FILE TABLE_NAME ADD
  EMPLOYEE/A55V=
    IF (Bruce Wayne EQ CALLING_PARTY) THEN Bruce Wayne ELSE
    IF (Bruce Wayne EQ ORIGINAL_CALLED) THEN Bruce Wayne ELSE
    IF (Bruce Wayne EQ FINAL_CALLED) THEN Bruce Wayne ELSE 'X';
END

TABLE FILE HOLD_VOIP_DATE_RANGE

PRINT 
 TABLE_NAME.SEG01.EMPLOYEE
 TABLE_NAME.SEG01.CALLING_PARTY AS 'Rep'
 TABLE_NAME.SEG01.ORIGINAL_CALLED
 TABLE_NAME.SEG01.FINAL_CALLED
 TABLE_NAME.SEG01.ORIGINATION_TIME
 TABLE_NAME.SEG01.CONNECT_TIME
 TABLE_NAME.SEG01.DISCONNECT_TIME
 TABLE_NAME.SEG01.ORIGINATION_DATE
 TABLE_NAME.SEG01.CALL_TYPE
WHERE EMPLOYEE EQ Bruce Wayne;

我的猜测是你错过了&amp;变量

之外的额外引号