1

我是 ZK 的新手,我想用查询语句结果的行创建一个 GRID。

这是我的代码:

    <window title="REPORTE IMPRESION" border="normal">
    <zscript><![CDATA[
    import java.sql.*;
    void submit() {
        //load driver and get a database connetion
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection conn = DriverManager.getConnection(
                "jdbc:sqlserver://127.0.0.1;databaseName=Reports", "sa", "sa");
        PreparedStatement stmt = null;
        try {
            stmt = conn
                    .prepareStatement("select s.ID, s.NOMBRE, c.FECHA, c.PAG, c.TOTAL, c.PAG * 3.3 as TOTAL_PAGAR, c.PAG * 2.67 as Impresion, (c.PAG * 2.67)+(c.PAG * 3.3) as R FROM C_Sucursal s, Corte c where s.CLAVE=c.CLAVE and c.FECHA=?");

            //insert what end user entered into database table
            stmt.setString(1, fecha.getContext());
            //execute the statement and Put the result in a ResultSet
            PreparedStatement consulta1 = stmt;
            ResultSet result1 = consulta1.executeQuery();
            int  i=0;
            while(result1.next()){
                            //Here i need to put the result in a row! 
                System.out.println(result1.getObject(i));
                i++;
            }

        } finally { //cleanup
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException ex) {
                    log.error(ex); //log and ignore
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    log.error(ex); //log and ignore
                }
            }
        }
    }
]]>
     </zscript>
    <div apply="org.zkoss.bind.BindComposer">
        <borderlayout sclass="complex-layout" height="580px">
            <north size="120px" border="0">
                <div>
                    <image sclass="complex-layout-header-img"
                        src="/images/bb.png" />
                </div>
            </north>
            <!-- Content -->
            <center>
                <div>
                    <hlayout>
                        <label sclass="hightlight">
                            Fecha del Corte
                        </label>
                    </hlayout>
                    <datebox id="fecha" width="150px"
                        format="dd-MM-yyyy" />
                    <button label="submit" onClick="submit()" />
                    <grid>
                        <columns menupopup="auto">
                            <column label="ID" sort="auto" />
                            <column label="SUCURSAL" sort="auto" />
                            <column label="PAGINAS" sort="auto" />
                            <column label="EDO_CUENTA" sort="auto" />
                            <column label="TOTAL A PAGAR" sort="auto" />
                            <column label="IMPRESION" sort="auto" />
                            <column label="ENVIO" sort="auto" />
                        </columns>
                    </grid>
                </div>
            </center>
            <south size="40px" border="0"
                style="background: none repeat scroll 0 0 ;">
                <toolbar mold="panel" align="center">
                    DERECHOS RESERVADOS
                </toolbar>
            </south>
        </borderlayout>
    </div>
</window>

如何将查询的结果放在网格的行中?帮助!

我做了一个陈述,结果是我需要放入行中,但我不知道如何放入结果。

4

1 回答 1

1

给您的网格一个 id,将其传递给您的方法,然后您可以在您的方法(您传入的)中使用 Grid 对象,并根据需要创建行来显示您的数据。

<grid id="myGrid">
  <columns menupopup="auto">
    <column label="ID" sort="auto" />
    <column label="SUCURSAL" sort="auto" />
    <column label="PAGINAS" sort="auto" />
    <column label="EDO_CUENTA" sort="auto" />
    <column label="TOTAL A PAGAR" sort="auto" />
    <column label="IMPRESION" sort="auto" />
    <column label="ENVIO" sort="auto" />
  </columns>
</grid>

当你调用你的函数时,将“myGrid”传递给它

submit(myGrid);

假设您有一个私有方法可以为您将结果添加到网格中,并假设您的结果包含在一个名为“Data”的对象中,以下将在网格中显示数据:

private void displayResult(Grid myGrid, List<Data> data)
{

    Rows rows = new Rows();
    rows.setParent(programGrid);    

    for(Data d : data)
    {
        Label idLabel = new Label(d.getID());
        Label sucursalLabel = new Label(d.getSucursal());
        Label paginasLabel = new Label(d.getPaginas());
        .... etc ...

        Row row = new Row();    

        idLabel.setParent(row);
        sucursalLabel.setParent(row);
        paginasLabel.setParent(row);
        .... etc ...

        row.setParent(rows);
    }
}
于 2012-05-31T21:17:38.007 回答