【问题标题】:Formatting Data to be a certain color将数据格式化为某种颜色
【发布时间】:2019-11-13 04:56:16
【问题描述】:

所以输出工作完美,但我需要帮助的是 SQL 何时输出数据,我希望数据是基于状态的某种颜色。此查询将提取所有不是“PROD”、“NM”、“TERM”、“NULL”、“IDLE”、“YER”的状态。它将在表格中显示的状态是“DOWN”、“PM”和“MDS”。我希望它输出的颜色是蓝色、黄色、红色。有人可以帮我吗?先感谢您!

  #!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common qw(POST GET);
use CGI qw/:standard /;
use DBI;

$dbh = DBI->connect('DBI:ODBC:SMSDWDE2','admin','admin',{RaiseError =>1, AutoCommit=>1});
my $q = new CGI();
print $q->header;
print $q->start_html(-head=>meta({-http_equiv => 'X-UA-Compatible',
                       -content=>'IE=edge,chrome=1'}),

                       -style => {'src'=>'css/eq - Copy1.css'},
                                      {'src'=>'vendor/perfect-scrollbar/perfect-scrollbar.css'},
                                      {'src'=>'vendor/bootstrap/css/bootstrap.min.css'},
                                      {'src'=>'fonts/font-awesome-4.7.0/css/font-awesome.min.css'},
                                      {'src'=>'vendor/animate/animate.css'},
                                      {'src'=>'vendor/select2/select2.min.css'},
                                      {'src'=>'css/util.css'},
                                      {'src'=>'css/main.css'},
                                      -script =>{'type'=>'text/javascript','src'=>'js/main.js'},
                                      {'type'=>'text/javascript','src'=>'vendor/jquery/jquery-3.2.1.min.js'},
                                      {'type'=>'text/javascript','src'=>'vendor/bootstrap/js/popper.js'},
                                      {'type'=>'text/javascript','src'=>'vendor/bootstrap/js/bootstrap.min.js'},
                                      {'type'=>'text/javascript','src'=>'vendor/select2/select2.min.js'},
                                      {'type'=>'text/javascript','src'=>'vendor/perfect-scrollbar/perfect-scrollbar.min.js'},

                                 -title=>'MET IN PHOTO');

print "             
<div id='wrapper'>
        <nav class='navbar navbar-inverse navbar-fixed-top' role='navigation'>
            <div class='navbar-header'>
                <button type='button' class='navbar-toggle' data-toggle='collapse' data-target=''.navbar-ex1-collapse'>
                    <span class='sr-only'>Toggle navigation</span>
                    <span class='icon-bar'></span>
                    <span class='icon-bar'></span>
                    <span class='icon-bar'></span>
                </button>
                <a class='logo' href='#'>
                    <img src='images/ti-logo.png' alt='CoolAdmin' />
                </a>
                </div>
            <div class='collapse navbar-collapse navbar-ex1-collapse'>
                <ul id='active' class='nav navbar-nav side-nav'>

                    <li><a href='CriticalToolsMet.html'><i class='fa fa-globe'></i> METROLOGY</a></li>
                    <li><a href='CriticalToolsCMPIMP.html'><i class='fa fa-globe'></i> CMP/IMP</a></li>
                    <li><a href='CriticalToolsDIFFWET.html'><i class='fa fa-globe'></i> DIFF/WET</a></li>
                    <li><a href='CriticalToolsPHOTO.html'><i class='fa fa-globe'></i> PHOTO</a></li>
                    <li><a href='CriticalToolsPLASMA.html'><i class='fa fa-globe'></i> PLASMA</a></li>
                    <li><a href='CriticalToolsTHINFILM.html'><i class='fa fa-globe'></i> THINFILM</a></li>
                </ul>
                <ul class='nav navbar-nav navbar-right navbar-user'>
                    <li class='divider-vertical'></li>
                    <li>
                        <form class='navbar-search'>
                            <input type='text' placeholder='Search' class='form-control'>
                        </form>
                    </li>
                </ul>
            </div>
        </nav>
        <div id='page-wrapper'>
            <div class='row'>
                <div class='col-lg-12'>
                    <h1>Critical Dashboard <small>Metrology</small></h1>

                </div>
                </div>
            <div class='row'>
                <div class='col-lg-12'>
                    <div class='panel panel-primary'>
                        <div class='panel-heading'>
                            <h3 class='panel-title'><i class='fa fa-bar-chart-o'></i> Fab Dashboard - DMOS5 </h3>
                        </div>
                        <table class='table'>
                            <thead>

                            <tr>

                                    <th>MISTI</th>
                                    <th>STATE</th>
                                    <th>HRS</th>

                                </tr>
                            </thead>
                    </div>";

$sqlstr="Select 
       g.entity as MISTI,
       t.cur_state      as STATE,
       ROUND(((SYSDATE-t.cur_state_dttm)*24),2) AS HRS

From Entity_Grp_Lst g
left outer join trk_id_def t
on g.facility = t.facility
and g.grp_type = t.grp_type
and g.entity=t.entity
and g.grp_type = '720'
WHERE t.cur_state NOT IN ('PROD','NM','TERM','NULL','IDLE', 'YER')
and Entity_Grp_type = '041'
and g.ENTITY_GRP in ('MET')
-- add and g.entity in ('WSI04') to list all tools

AND ROUND(((SYSDATE-t.cur_state_dttm)*24),2) > 48  
order by t.cur_state_DTTM desc

";
$sth = $dbh->prepare($sqlstr);
$sth->execute();
$sth->bind_columns(undef, \$MISTI, \$STATE, \$HRS);
while($sth->fetch()) {

   print "

                            <tbody>
                                <tr class='row100 body'>
                                    <td class='cell100 column1'><FORM ACTION='http://d5lxgenwebapp01z.dal.make.ti.com/get_de1_de2_misti_comments.pl' METHOD='POST' target='_blank' NAME='userInput2'>
        <INPUT TYPE='hidden' NAME='eq' MAXLENGTH='8' VALUE='$MISTI'>
              <INPUT TYPE='hidden' NAME='pages' SIZE='3' MAXLENGTH='2' VALUE='50'>
        <INPUT TYPE='submit' NAME='submit' VALUE='$MISTI'></form></td>
                                    <td class='cell100 column2'>$STATE</td>
                                    <td class='cell100 column3'>$HRS</td>

                                </tr>

   </tr>";
}

print "</tbody>
                        </table>
                    </div>
                </div>

                </div>
            </div>
        </div>
    </div>";
$sth->finish();
$dbh->disconnect();

print "


</body></html>";

【问题讨论】:

  • 你的意思是&lt;td class='cell100 column2 $STATE'&gt;$STATE&lt;/td&gt;和.DOWN { color : blue } .PM { color: yellow } .MDS { color: red }的css
  • 为什么不直接使用 HTML 和 CSS 制作minimal reproducible example?我们有必要查看 perl 和其他服务器的东西吗?
  • 您的 HTML 也是无效的。你有松散的&lt;/div&gt;s 和&lt;/tr&gt;s 到处流淌,data-target=''.navbar-ex1-collapse'&gt; 中有太多引用和一个点

标签: html oracle perl


【解决方案1】:

您可以对此代码进行一些改进。

  • 在您的代码中始终包含use strict 和use warnings。并修复它们揭示的问题(主要是用my 声明变量)。
  • 您有 use CGI /:standard/ 将 CGI 函数的负载导入到您的命名空间,但是您只将这些函数作为 CGI 对象(在 $q 中)上的方法调用,因此不需要导入。
  • 您使用间接对象表示法 (new CGI) 来创建您的 CGI 对象。这将在 99% 的时间内有效,但在极少数情况下,当它中断时,您将浪费数天时间来追踪问题。改用CGI-&gt;new 会更好。
  • CGI.pm 中的 HTML 创建函数(您使用 start_html())已为 deprecated for some time now。请不要使用它们。
  • 在您的 Perl 代码中包含原始 HTML 可能是一个维护问题(正如您似乎已经发现的那样,鉴于您的 HTML 中的错误)。我强烈建议将您的 HTML 从 Perl 代码中移到模板中。 CGI::Alternatives 对此有一些建议。

【讨论】:

    【解决方案2】:

    只需将值作为类名重用

    &lt;td class='cell100 column2 $STATE'&gt;$STATE&lt;/td&gt;

    我也修复了一些非法的 HTML 元素

    .DOWN {
      color: blue
    }
    
    .PM {
      color: yellow
    }
    
    .MDS {
      color: red
    }
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
    <div id='page-wrapper'>
      <div class='row'>
        <div class='col-lg-12'>
          <h1>Critical Dashboard <small>Metrology</small></h1>
    
        </div>
      </div>
      <div class='row'>
        <div class='col-lg-12'>
          <div class='panel panel-primary'>
            <div class='panel-heading'>
              <h3 class='panel-title'><i class='fa fa-bar-chart-o'></i> Fab Dashboard - DMOS5 </h3>
            </div>
            <table class='table'>
              <thead>
    
                <tr>
    
                  <th>MISTI</th>
                  <th>STATE</th>
                  <th>HRS</th>
    
                </tr>
              </thead>
              <tbody>
                <tr class='row100 body'>
                  <td class='cell100 column1'>
                    <form ACTION='http://d5lxgenwebapp01z.dal.make.ti.com/get_de1_de2_misti_comments.pl' METHOD='POST' target='_blank' NAME='userInput2'>
                      <INPUT TYPE='hidden' NAME='eq' MAXLENGTH='8' VALUE='$MISTI' />
                      <INPUT TYPE='hidden' NAME='pages' SIZE='3' MAXLENGTH='2' VALUE='50' />
                      <INPUT TYPE='submit' NAME='submit' VALUE='$MISTI' />
                    </form>
                  </td>
                  <td class='cell100 column2 DOWN'>DOWN</td>
                  <td class='cell100 column3'>$HRS</td>
    
                </tr>
                <tr class='row100 body'>
                  <td class='cell100 column1'>
                    <form ACTION='http://d5lxgenwebapp01z.dal.make.ti.com/get_de1_de2_misti_comments.pl' METHOD='POST' target='_blank' NAME='userInput2'>
                      <INPUT TYPE='hidden' NAME='eq' MAXLENGTH='8' VALUE='$MISTI' />
                      <INPUT TYPE='hidden' NAME='pages' SIZE='3' MAXLENGTH='2' VALUE='50' />
                      <INPUT TYPE='submit' NAME='submit' VALUE='$MISTI' />
                    </form>
                  </td>
                  <td class='cell100 column2 PM'>PM</td>
                  <td class='cell100 column3'>$HRS</td>
    
                </tr>
                <tr class='row100 body'>
                  <td class='cell100 column1'>
                    <form ACTION='http://d5lxgenwebapp01z.dal.make.ti.com/get_de1_de2_misti_comments.pl' METHOD='POST' target='_blank' NAME='userInput2'>
                      <INPUT TYPE='hidden' NAME='eq' MAXLENGTH='8' VALUE='$MISTI' />
                      <INPUT TYPE='hidden' NAME='pages' SIZE='3' MAXLENGTH='2' VALUE='50' />
                      <INPUT TYPE='submit' NAME='submit' VALUE='$MISTI' />
                    </form>
                  </td>
                  <td class='cell100 column2 MDS'>MDS</td>
                  <td class='cell100 column3'>$HRS</td>
    
                </tr>
    
    
    
              </tbody>
            </table>
          </div>
        </div>
    
      </div>
    </div>

    【讨论】:

    • 当 SQL 运行时,它会填充表,因此会有多行,您无法判断哪些状态将位于哪一行。我在上面上传了一张图片。
    • 你不需要 - 只需将它添加为一个类:&lt;td class='cell100 column2 $STATE'&gt;$STATE&lt;/td&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多