在Perl中使用HTML进行颜色编码

时间:2017-06-17 11:27:40

标签: html perl

$html -> holds the html table code
$query ->holds the data fetched from table(Oracle)

我将$ query中的数据插入到带有基于条件

的颜色编码的$ html中

代码:

while (my @rec =  $query->fetchrow_array() ) {
  my $file_status = $rec[9];
  my $data_status = $rec[11];
  my $data_status2 = $rec[13];

  if ($file_status eq "Files Received"
    || $data_status eq "Data Not Found"
    || $data_status2 eq "Partial Data") {
    # This changes the font color for all columns in a single row.
    # Is there a way to color code only the specific column?
    $html=$html."\n<font size=3 color=#F12A3D>"; 
  }
  else {
    $html = $html."\n<font size=3><tr>";
  }

  foreach my $x (@rec) {
    if (! defined $x) {
      $x = "";
    }
    $html = $html."<td>$x</td>"
  }
  $html = $html."</tr>"
}

如果列值与条件匹配,请告诉我是否可以使用perl中的html对特定列进行颜色编码(例如,如果第8列=“a”表示记录,则必须打印仅包含第2列的行红色)。如果需要,我可以共享此脚本的完整perl代码。

谢谢, 斯科特

2 个答案:

答案 0 :(得分:0)

首先,它是2017年。我们不再在HTML中使用<font>标签了。最好在HTML标记上设置类,然后使用CSS更改外观。

如果要为单个表格单元格而不是整行进行着色,那么只需将逻辑移动到生成表格单元格的代码中即可。

foreach my $cell_data (@rec) {
  $cell_data //= ''; # Convert undefined values to empty strings
  my $class;

  if ($cell_data eq 'a') { # for example
    $class = 'hilite';
  }
  $html .= '<td';
  $html .= " class='$class'" if $class;
  $html .= ">$cell_data</td>";
}

我还要指出,将原始HTML放在你的Perl代码中是一个非常糟糕的主意。我强烈建议您改为templating solution

答案 1 :(得分:-1)

    int badgeCount = 1;
    ShortcutBadger.applyCount(context, badgeCount);