Bom dia…
Estou com dificuldade no meu programa… eu fiz uma tela que posso usar um filtro para selecionar as informações por data ou cliente.
E quando aparece as informações o usuario seleciona a linha atraves do check box e manda imprimir! Cada linha que ele seleciona gera um arquivo para impressão!
Meu problema é quando o usuario seleciona mais de uma opção… eu não estou conseguindo tratar isso para gerar dois arquivos.
No arquivo jasper estou gerando o documento a partir do ID da coluna… Essa coluna é do tipo numeric que esta como BigDecimal se eu coloco como string ele não gera o documento! O banco de dados é postgres… PeloBigDecimal remessa = new BigDecimal(M_InOut_ID); que eu percebi o erro esta na linha que eu destaquei no codigo… mas o estranho é que o eclipse não passa erro nenhum ele esta gerando essa informação:
-----------> MIssue.set_ValueNoCheck: ReleaseNo - Value too long - truncated to length=4 [11]
===========> LabelPrinting.print: 40031814003278 [11]
LabelPrinting.print: 4003181,4003278 nessa linha ele esta juntando os ID!
Se alguem poder me ajudar eu agradeço!
Segue o meu codigo abaixo:
private void print() {
// Pega o processo definido
int AD_Process_ID = MSysConfig.getIntValue("PrintLabelTESTE", 4000070, Env.getAD_Client_ID(Env.getCtx()));
log.info("ID=" + AD_Process_ID);
//
ProcessInfo pi = new ProcessInfo("Etiqueta", AD_Process_ID);
pi.setAD_User_ID(Env.getAD_User_ID(Env.getCtx()));
pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
// Pega o que esta selecionado
int rows = miniTable.getRowCount();
StringBuffer sb = new StringBuffer();
StringBuffer sbk = new StringBuffer();
for (int i = 0; i < rows; i++) {
IDColumn id = (IDColumn) miniTable.getValueAt(i, 0); // ID in column
// 0
if (id.isSelected()) {
sb.append(id.getRecord_ID());
sbk.append(id.getRecord_ID());
}
}
String M_InOut_ID = sb.substring(0, sb.length());
[color=red]BigDecimal remessa = new BigDecimal(M_InOut_ID);[/color]
selected = sbk.substring(0, sbk.length());
log.severe(M_InOut_ID);
// add os parametros
ProcessInfoParameter param[] = { new ProcessInfoParameter("M_InOut_ID",
remessa, null, null, null), };
pi.setParameter(param);
pi.setPrintPreview(true);
pi.setReportingProcess(true);
ProcessCtl.process(this, m_WindowNo,null, pi, null);
}