/**
 * TEMPLATE: dataset-interno-base.js
 * =============================================
 * Dataset de dados estaticos/configuracao.
 * Nao acessa banco nem servico externo.
 *
 * QUANDO USAR:
 * - Configuracoes de ambiente (servidor, porta)
 * - Listas fixas (tipos, categorias, status)
 * - Parametros que mudam entre producao e teste
 *
 * PADRAO DE PRODUCAO (VIPal DatasulServerDS):
 * - addColumn para definir estrutura
 * - addRow para cada registro
 * - Comentar/descomentar por ambiente
 */

function createDataset(fields, constraints, sortFields) {

    var dataset = DatasetBuilder.newDataset();

    // =============================================
    // OPCAO 1: CONFIGURACAO DE AMBIENTE
    // =============================================
    dataset.addColumn("${COL_1}");
    dataset.addColumn("${COL_2}");
    dataset.addColumn("${COL_3}");

    // PRODUCAO
    dataset.addRow(new Array("${VAL_PROD_1}", "${VAL_PROD_2}", "${VAL_PROD_3}"));

    // TESTE (descomente para usar)
    // dataset.addRow(new Array("${VAL_TEST_1}", "${VAL_TEST_2}", "${VAL_TEST_3}"));

    return dataset;
}

// =============================================
// OPCAO 2: LISTA FIXA (tipo combo/select)
// =============================================
// function createDataset(fields, constraints, sortFields) {
//     var dataset = DatasetBuilder.newDataset();
//     dataset.addColumn("codigo");
//     dataset.addColumn("descricao");
//
//     dataset.addRow(new Array("01", "Opcao 1"));
//     dataset.addRow(new Array("02", "Opcao 2"));
//     dataset.addRow(new Array("03", "Opcao 3"));
//
//     return dataset;
// }

// =============================================
// OPCAO 3: DATASET SQL GENERICO (helper dsSQL)
// Recebe query e datasource via fields[]
// =============================================
// function createDataset(fields, constraints, sortFields) {
//     var sql = fields[0];
//     var dataSource = fields[1];
//
//     var dataset = DatasetBuilder.newDataset();
//     var ic = new javax.naming.InitialContext();
//     var ds = ic.lookup(dataSource);
//     var conn = null;
//     var stmt = null;
//     var rs = null;
//     var created = false;
//
//     try {
//         conn = ds.getConnection();
//         stmt = conn.createStatement();
//         rs = stmt.executeQuery(sql);
//         var columnCount = rs.getMetaData().getColumnCount();
//
//         while (rs.next()) {
//             if (!created) {
//                 for (var i = 1; i <= columnCount; i++) {
//                     dataset.addColumn(rs.getMetaData().getColumnName(i));
//                 }
//                 created = true;
//             }
//             var arr = new Array();
//             for (var i = 1; i <= columnCount; i++) {
//                 var obj = rs.getObject(rs.getMetaData().getColumnName(i));
//                 arr[i - 1] = (obj != null) ? obj.toString() : "null";
//             }
//             dataset.addRow(arr);
//         }
//     } catch (e) {
//         log.error("dsSQL ERRO: " + e.message);
//     } finally {
//         if (rs != null) rs.close();
//         if (stmt != null) stmt.close();
//         if (conn != null) conn.close();
//     }
//
//     return dataset;
// }
