我们需要打印的文字包括像“AND”“OR”“IF”这样的单词,即水晶作为代码

时间:2014-06-13 22:13:10

标签: crystal-reports

我正在制作一份自定义报告,实际上并不复杂。仅使用一个表/基本上,如果客户组与参数“Builder”相同,则报表需要打印文本列表。我需要写一个公式来说

IF {?Builder}=”123456”
THEN
“QTXE FANS 6”  DUCT FOR ALL BATHROOMS WITH TUB OR SHOWER 
QTRE FANS 4” DUCT ½ BATH OR ONLY ROOM AND THE LAUNDRY AS LONG AS IT IS NOT THE WHOLE     HOUSE FAN 
PULL WIRE FROM WHOLE HOUSE FAN SWITCH TO FURNACE 
TERMINALS 4 & 6 on relay
IF BIG CUSTOM VERIFY IF HOOD FAN NEEDS PULLED TO FURNACE 
LOW VOLT PANEL WITH # 10 GROUND PULLED TO PANEL AND 110 OUTLET 
ON LOW VOLT TRIM PUT TV CONNECTORS ON THE ENDS AND LEAVE IN PANEL
SPLICE PHONE/CAT 5 TOGETHER MAKE SURE THE HOME RUN IS MARKED
IF WE DO CAT5 JACKS USE B PATTERN
ALL FLOURESCENT LAMPS IN RECESS AND FIXTURES 100% FLO’S 
USE ARLINGTON WEATHER PROOF BOXES 
WE DO NOT SUPPLY AIR SWITCHES FOR NTH 
2 WORK PLUGS AFTER ROUGH 
ON HOUSES WITH SPLIT DUCT SYSTEM PUT IN 50 AMP TEMP PLUG AND 30 AMP FOR TEMP HEAT 
RADON PLUG IN ATTIC OR CRAWL“
ELSE IF {?Builder}=’789123’
THEN
…

你得到了照片。

附件是如何在公式中读取代码的屏幕截图。有没有办法超越这个文本作为纯文本,所以它不被读作代码?enter image description here

4 个答案:

答案 0 :(得分:1)

您需要执行所谓的转义文本。当你逃避某些事情时,你会在命令前放置一个或多个字符,以便告诉解释代码的任何内容,它需要处理转义字符之后的任何内容,而不是通常的情况。但也许试试这个,大文本块现在用单引号封装:

IF {?Builder}=”123456”
THEN
'QTXE FANS 6”  DUCT FOR ALL BATHROOMS WITH TUB OR SHOWER ' + ChrW(13) +
'QTRE FANS 4” DUCT ½ BATH OR ONLY ROOM AND THE LAUNDRY AS LONG AS IT IS NOT THE WHOLE HOUSE FAN ' + ChrW(13) +
"PULL WIRE FROM WHOLE HOUSE FAN SWITCH TO FURNACE "+ ChrW(13) +
"TERMINALS 4 & 6 on relay " + ChrW(13) +
"IF BIG CUSTOM VERIFY IF HOOD FAN NEEDS PULLED TO FURNACE "+ ChrW(13) +
"LOW VOLT PANEL WITH # 10 GROUND PULLED TO PANEL AND 110 OUTLET "+ ChrW(13) +
"ON LOW VOLT TRIM PUT TV CONNECTORS ON THE ENDS AND LEAVE IN PANEL "+ ChrW(13) +
"SPLICE PHONE/CAT 5 TOGETHER MAKE SURE THE HOME RUN IS MARKED "+ ChrW(13) +
"IF WE DO CAT5 JACKS USE B PATTERN "+ ChrW(13) +
"ALL FLOURESCENT LAMPS IN RECESS AND FIXTURES 100% FLO’S "+ ChrW(13) +
"USE ARLINGTON WEATHER PROOF BOXES "+ ChrW(13) +
"WE DO NOT SUPPLY AIR SWITCHES FOR NTH "+ ChrW(13) +
"2 WORK PLUGS AFTER ROUGH "+ ChrW(13) +
"ON HOUSES WITH SPLIT DUCT SYSTEM PUT IN 50 AMP TEMP PLUG AND 30 AMP FOR TEMP HEAT "+ ChrW(13) +
"RADON PLUG IN ATTIC OR CRAWL" ChrW(13) +
ELSE IF {?Builder}=’789123’
THEN
…

答案 1 :(得分:0)

你必须使用保留关键字作为文本,就像这样。

 Stringvar Array keys := ["\n"];
 Stringvar Array values := [Chr(10)+Chr(13)];
 text := Replace(text, keys[i], values[i])

How to insert a line break in a StringVar in Crystal Reports

Double and single quote in string text in crystal report

答案 2 :(得分:0)

您所遵循的流程是错误的。

  1. 如果您想将所有内容都作为段落。

    IF {?Builder}=”123456”
    THEN
    “QTXE FANS 6”  DUCT FOR ALL BATHROOMS WITH TUB OR SHOWER "+
    "QTRE FANS 4” DUCT ½ BATH OR ONLY ROOM AND THE LAUNDRY AS LONG AS IT IS NOT THE WHOLE HOUSE FAN "+
    "PULL WIRE FROM WHOLE HOUSE FAN SWITCH TO FURNACE "+
    "TERMINALS 4 & 6 on relay "+
    "IF BIG CUSTOM VERIFY IF HOOD FAN NEEDS PULLED TO FURNACE "+
    "LOW VOLT PANEL WITH # 10 GROUND PULLED TO PANEL AND 110 OUTLET "+
    "ON LOW VOLT TRIM PUT TV CONNECTORS ON THE ENDS AND LEAVE IN PANEL "+
    "SPLICE PHONE/CAT 5 TOGETHER MAKE SURE THE HOME RUN IS MARKED "+
    "IF WE DO CAT5 JACKS USE B PATTERN "+
    "ALL FLOURESCENT LAMPS IN RECESS AND FIXTURES 100% FLO’S "+
    "USE ARLINGTON WEATHER PROOF BOXES "+
    "WE DO NOT SUPPLY AIR SWITCHES FOR NTH "+
    "2 WORK PLUGS AFTER ROUGH "+
    "ON HOUSES WITH SPLIT DUCT SYSTEM PUT IN 50 AMP TEMP PLUG AND 30 AMP FOR TEMP HEAT "+
    "RADON PLUG IN ATTIC OR CRAWL"
    ELSE IF {?Builder}=’789123’
    THEN
    …
    
  2. 如果您想要分开的行,请按照以下流程进行操作:

    IF {?Builder}=”123456”
    THEN
    “QTXE FANS 6”  DUCT FOR ALL BATHROOMS WITH TUB OR SHOWER "+ ChrW(13) +
    "QTRE FANS 4” DUCT ½ BATH OR ONLY ROOM AND THE LAUNDRY AS LONG AS IT IS NOT THE WHOLE HOUSE FAN "+ ChrW(13) +
    "PULL WIRE FROM WHOLE HOUSE FAN SWITCH TO FURNACE "+ ChrW(13) +
    "TERMINALS 4 & 6 on relay "+ ChrW(13) +
    "IF BIG CUSTOM VERIFY IF HOOD FAN NEEDS PULLED TO FURNACE "+ ChrW(13) +
    "LOW VOLT PANEL WITH # 10 GROUND PULLED TO PANEL AND 110 OUTLET "+ ChrW(13) +
    "ON LOW VOLT TRIM PUT TV CONNECTORS ON THE ENDS AND LEAVE IN PANEL "+ ChrW(13) +
    "SPLICE PHONE/CAT 5 TOGETHER MAKE SURE THE HOME RUN IS MARKED "+ ChrW(13) +
    "IF WE DO CAT5 JACKS USE B PATTERN "+ ChrW(13) +
    "ALL FLOURESCENT LAMPS IN RECESS AND FIXTURES 100% FLO’S "+ ChrW(13) +
    "USE ARLINGTON WEATHER PROOF BOXES "+ ChrW(13) +
    "WE DO NOT SUPPLY AIR SWITCHES FOR NTH "+ ChrW(13) +
    "2 WORK PLUGS AFTER ROUGH "+ ChrW(13) +
    "ON HOUSES WITH SPLIT DUCT SYSTEM PUT IN 50 AMP TEMP PLUG AND 30 AMP FOR TEMP HEAT "+ ChrW(13) +
    "RADON PLUG IN ATTIC OR CRAWL" ChrW(13) +
    ELSE IF {?Builder}=’789123’
    THEN
    …
    

答案 3 :(得分:0)

您最好将每段文字嵌入到自己的text object中,然后根据参数的值显示/取消文字。

例如,包含示例文本的text object的条件抑制逻辑将是:

{?Builder}<>"123456"

您也可以将每个text object放在一个单独的部分中,然后使用相同的逻辑显示/取消该部分。