Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果html表中的任何单元格为空,如何突出显示整行_Java_Html - Fatal编程技术网

Java 如果html表中的任何单元格为空,如何突出显示整行

Java 如果html表中的任何单元格为空,如何突出显示整行,java,html,Java,Html,我已经用下面的代码在邮件正文中创建了html表 st = con.createStatement(); rs = st.executeQuery("SELECT nvl(tt.ACTIVITY_NAME,'') as ACTIVITY_NAME, " + " nvl(tt.TL_NAME,'') TL_NAME, " + " nvl(tt.UW_NAME,'') UW_

我已经用下面的代码在邮件正文中创建了html表

            st = con.createStatement();
            rs = st.executeQuery("SELECT nvl(tt.ACTIVITY_NAME,'') as ACTIVITY_NAME, "
                    + " nvl(tt.TL_NAME,'') TL_NAME, "
                    + " nvl(tt.UW_NAME,'') UW_NAME, "
                    + " nvl(tt.TAT_1,'') TAT_1,"
                    + " nvl(tt.TAT_2,'') TAT_2, "
                    + " nvl(tt.TAT_3,'') TAT_3, "
                    + " nvl(tt.TAT_4,'') TAT_4, "
                    + " nvl(tt.TAT_4_PLUS ,'') TAT_4_PLUS, "
                    + " nvl(tt.g_total ,'') AS GRAND_TOTAL "
                    + " FROM uw_activity_tl_uw_tat tt "
                    + " WHERE tt.ACTIVITY_NAME = 'First UW' "
                    + " ORDER BY tt.TL_NAME,tt.UW_NAME");
            StringBuffer sb = new StringBuffer();

            ResultSetMetaData rsmd = rs.getMetaData();
            int numColumns = rsmd.getColumnCount();
            for (int i = 1; i < numColumns + 1; i++) {
                String columnName = rsmd.getColumnName(i);
                sb.append("<th bgcolor=#fcbe07>" + columnName + "</th>");
            }
            ArrayList<String> a = new ArrayList<String>();

            while (rs.next()) {

                a.add(rs.getString(3));

                if (rs.getRow() % 2 == 0) {
                    sb.append("<tr bgcolor=#fcf6cf>");
                    for (int i = 1; i < numColumns + 1; i++) {
                        if (rs.getString(i) == null) {
                            if(i==3)
                            {
                                sb.append("<td bgcolor=#fcbe07><b>"+ " "+ "</b></td>");

                            }


                        } else {

                            if (i == 6 || i == 7 || i == 8)
                                sb.append("<td><FONT COLOR=#ff0000>"
                                        + rs.getString(i) + "</FONT></td>");
                            else if(i==3 && (rs.getString(3).equalsIgnoreCase("") || rs.getString(3)==null)){
                                sb.append("<td bgcolor=#fcbe07><b>"+ rs.getString(i) + "</b></td>");
                            }else{
                                sb.append("<td>" + rs.getString(i) + "</td>");
                            }
                        }
                    }

                    sb.append("</tr>");
                } else {

                    sb.append("<tr>");
                    for (int i = 1; i < numColumns + 1; i++) {
                        if (rs.getString(i) == null) {
                            if(i==3)
                            {
                                sb.append("<td bgcolor=#fcbe07><b>"+ " " + "</b></td>");

                            }

                        } else {
                            if (i == 6 || i == 7 || i == 8)
                                sb.append("<td><FONT COLOR=#ff0000>"
                                        + rs.getString(i) + "</FONT></td>");
                            else if(i==3 && (rs.getString(3).equalsIgnoreCase("") || rs.getString(3)==null)){
                                sb.append("<td bgcolor=#fcbe07><b>"+ rs.getString(i) + "</b></td>");
                            }else{
                                sb.append("<td>" + rs.getString(i) + "</td>");
                            }
                        }
                    }

                    sb.append("</tr>");

                }

            }

            String html = "<html>" + message.getSubject()
                    + "</title></head><body><table border=\"1\">"
                    + sb.toString() + "</table></body></html>";
            message.setContent(html, "text/html");
st=con.createStatement();
rs=st.executeQuery(“选择nvl(tt.ACTIVITY\u NAME,”)作为ACTIVITY\u NAME,”
+nvl(tt.TL_名称“”)TL_名称
+nvl(tt.UW_名称,)UW_名称
+nvl(tt.TAT_1,,)TAT_1
+“nvl(tt.TAT_2,”)TAT_2,”
+“nvl(tt.TAT_3,”)TAT_3,”
+“nvl(tt.TAT_4,”)TAT_4,”
+“nvl(tt.TAT_4_PLUS,”)TAT_4_PLUS,”
+“nvl(tt.g_总计,”)作为总计”
+“来自uw_活动\u tl_uw_tat tt”
+“其中tt.ACTIVITY_NAME=‘First-UW’”
+“按tt.TL_名称、tt.UW_名称订购”);
StringBuffer sb=新的StringBuffer();
ResultSetMetaData rsmd=rs.getMetaData();
int numColumns=rsmd.getColumnCount();
对于(int i=1;i

在图像中,只有一个单元格高亮显示,我想高亮显示包含任何空单元格的整行。请引导。我的问题是,如果任何单元格为空,如何突出显示整行。

简短回答:移动第三列的复选框并更改

说实话,你的密码有点乱。就我个人而言,我会做出以下改变,使维护变得更加容易:

  • 切换到使用类而不是硬编码bgcolors等等
  • 将系统设置为返回关联数组而不是数字数组。这将使以后阅读代码变得容易得多
  • 设置中间变量以保存返回的值。在那里进行任何和所有的计算和设置。然后一次性转储整个表行。将“功能”代码与“显示代码”分开
  • 然而,在紧要关头,类似这样的事情会让你走:

    tmp = rs.getString(3);
    if (tmp == null) {
      sb.append("<tr bgcolor=#ffffff>");
    } else {
      sb.append("<tr bgcolor=#fcf6cf>");
    }
    
    tmp=rs.getString(3);
    if(tmp==null){
    某人加上(“”);
    }否则{
    某人加上(“”);
    }
    

    顺便说一句-您生成的HTML无效。

    简短回答:移动第三列的复选框并更改

    说实话,你的密码有点乱。就我个人而言,我会做出以下改变,使维护变得更加容易:

  • 切换到使用类而不是硬编码bgcolors等等
  • 将系统设置为返回关联数组而不是数字数组。这将使以后阅读代码变得容易得多
  • 设置中间变量以保存返回的值。在那里进行任何和所有的计算和设置。然后一次性转储整个表行。将“功能”代码与“显示代码”分开
  • 然而,在紧要关头,类似这样的事情会让你走:

    tmp = rs.getString(3);
    if (tmp == null) {
      sb.append("<tr bgcolor=#ffffff>");
    } else {
      sb.append("<tr bgcolor=#fcf6cf>");
    }
    
    tmp=rs.getString(3);
    if(tmp==null){
    某人加上(“”);
    }否则{
    某人加上(“”);
    }
    

    顺便说一句-生成的HTML无效。

    一种方法如下:

    • 创建一个包含要显示的所有列的类。还有一个布尔变量,比如空。如果任何列为null,则将其设置为true
    • 创建一个ArrayList,并在遍历resultset时添加类的每个实例
    • 现在使用此ArrayList渲染输出。因为您已经有了布尔变量available,所以可以使用此值设置行的背景色

      • 一种方法如下:

        • 创建一个包含所有列的类