Boa tarde,
Qual a melhor forma de criar uma tabela no formulário com os dados vindo de um dataset customizado?
Estou fazendo da seguinte forma (peguei como exemplo a forma que é feito no formulário padrão da TOTVS), diretamente no formulário, via script:
Formulário:
<div class="panel panel-default" id="dvItmMov">
<div class="panel-heading">
<h4 class="panel-title">
<a class="collapse-icon up" data-toggle="collapse" data-parent="#accordion" href="#collapseItmMov">Itens de Movimento</a>
</h4>
</div>
<div id="collapseItmMov" class="panel-collapse collapse">
<div class="panel-body">
<div id="tblItmMov"></div>
</div>
</div>
</div>
Script:
var codcoligada = $('#CodColigada').val();
var idmov = $('#IdMov').val();
var fields = new Array(codcoligada, idmov);
var dsItens = DatasetFactory.getDataset("dsBuscarItemOC", fields, null, null);
var xmlNewDataSet = dsItens.values[0]['XML'];
var xml = $.parseXML(xmlNewDataSet);
$xml = $(xml);
var itmMovJSON = [];
$(xml).find('Resultado').each(function(index) {
itmMovJSON.push({
'prd': $(this).find('ITEM').text(),
'und': $(this).find('UNIDADE').text(),
'qtde': formatMoney($(this).find('QUANTIDADE').text(), '', '.', ','),
'preco': formatMoney($(this).find('PRECOUNITARIO').text(), 'R$ ', '.', ','),
'vlrtotal': formatMoney($(this).find('VALORTOTAL').text(), 'R$ ', '.', ',')
});
});
var tblItmMov = FLUIGC.datatable('#tblItmMov', {
mobileMainColumns: [0, 2, 3],
dataRequest: itmMovJSON,
renderContent: ['prd', 'und', 'qtde', 'preco', 'vlrtotal'],
header: [{
'title': 'Produto'
}, {
'title': 'Unidade'
}, {
'title': 'Quantidade'
}, {
'title': 'Preço Unitário'
}, {
'title': 'Valor Total'
} ],
search: {
enabled: true,
onlyEnterkey: true,
searchAreaStyle: 'col-md-5',
onSearch: function(res) {
var t = this.tableData;
if (res) {
var data = itmMovJSON;
var search = data.filter(function(el) {
return ( (el.prd.toUpperCase().indexOf(res.toUpperCase()) >= 0));
});
tblItmMov.reload(search);
}else
{
tblItmMov.reload(itmMovJSON);
}
}
},
scroll: {
target: ".target",
enabled: false
},
navButtons: {
enabled: false
}
}, function(err, data) {});
Os dados não são carregados na tabela, apesar de o dataset retornar as informações corretamente:
<NewDataSet>
<Resultado>
<ITEM>13.05088 - CARTUCHO HP 662 XL COLORIDO</ITEM>
<UNIDADE>UN</UNIDADE>
<QUANTIDADE>2.0000</QUANTIDADE>
<PRECOUNITARIO>60.0000000000</PRECOUNITARIO>
<VALORTOTAL>120.00000000000000</VALORTOTAL>
</Resultado>
<Resultado>
<ITEM>13.05089 - CARTUCHO HP 662 XL PRETO</ITEM>
<UNIDADE>UN</UNIDADE>
<QUANTIDADE>5.0000</QUANTIDADE>
<PRECOUNITARIO>79.0000000000</PRECOUNITARIO>
<VALORTOTAL>395.00000000000000</VALORTOTAL>
</Resultado>
</NewDataSet>
Aparentemente trata-se de um dataset customizado, certo? Você está colocando para retornar XML, é isso?
— Marcos Michalski 04 de Jul de 2019Sim Marcos, dataset customizado. Pelo o que eu entendi, ele pega o retorno do dataset, converte para XML e depois converte para JSON.
Consegui resolver o problema seguindo o exemplo do link http://tdn.totvs.com/display/public/fluig/Acessando+Datasets#AcessandoDatasets-Formul%C3%A1rios. Obrigado.
— lsantoro07 04 de Jul de 2019