1

ZK の新機能です。Query Stament の結果の行を含む 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 に答える