como qe faço pra pegar uma referencia vindo de um textfield e colocor no meu select?
é aquela parte qe precisa por “” %% nao sei bem como eh, abaixo ta o meu codigo, so que ta dando pau, alguem poderia me ajudar…
como qe faço pra pegar uma referencia vindo de um textfield e colocor no meu select?
é aquela parte qe precisa por “” %% nao sei bem como eh, abaixo ta o meu codigo, so que ta dando pau, alguem poderia me ajudar…
Qual o erro?
A chamada do método getText() está correta.
Concatenação de string (quando uma variável será adicionada) em java funciona assim
iint e = 12;
String str = "Valor da variavel e = "+e;
ele so mostra erro de sintaxe
acho tbm qe precisa do sinal de +, nao sei a ordem correta entre esses “”, ++, %%
O símbolo que você está tentando inserir (%) apenas irá dizer ao banco de dados que você precisa de um resultado onde o valor da coluna especificada contenha o valor passado como parâmetro.
A sua string está errada, corrija-a.
consegui, agora ta dando esse erro:
A character to numeric conversion process failed
Manda a pilha dos erros.
E o código.
tenho esse select aqui:
String sql = "select clientes.nom_cliente, "
+ "clientes.end_cliente, "
+ "cidades.den_cidade, "
+ "ordem_montag_lote.num_lote_om, "
+ "ordem_montag_mest.num_om, "
+ "item.den_item, "
+ "cores.den_cor, "
+ "ped_itens_grade.qtd_pecas_solic, "
+ "cidades.cod_uni_feder "
+ "from ordem_montag_mest join ordem_montag_item on (ordem_montag_mest.cod_empresa = ordem_montag_item.cod_empresa and ordem_montag_mest.num_om = ordem_montag_item.num_om) "
+ "join ordem_montag_lote on (ordem_montag_lote.cod_empresa = ordem_montag_mest.cod_empresa and ordem_montag_lote.num_lote_om = ordem_montag_mest.num_lote_om) "
+ "join pedidos on (pedidos.cod_empresa = ordem_montag_item.cod_empresa and pedidos.num_pedido = ordem_montag_item.num_pedido) "
+ "join ped_itens on (pedidos.cod_empresa = ped_itens.cod_empresa and pedidos.num_pedido = ped_itens.num_pedido and ordem_montag_item.num_sequencia = ped_itens.num_sequencia) "
+ "join estrut_grade on (ped_itens.cod_item = estrut_grade.cod_item_pai and ped_itens.cod_empresa = estrut_grade.cod_empresa) "
+ "join ped_itens_grade on (ped_itens_grade.cod_empresa = ped_itens.cod_empresa "
+ "and ped_itens_grade.num_pedido = ped_itens.num_pedido "
+ "and ped_itens_grade.num_sequencia = ped_itens.num_sequencia "
+ "and ped_itens_grade.cod_grade_1 = estrut_grade.cod_grade_1) "
+ "join item on (estrut_grade.cod_empresa = item.cod_empresa and estrut_grade.cod_item_compon = item.cod_item) "
+ "join cores on (ped_itens_grade.cod_grade_1 = cores.cod_cor) "
+ "join clientes on (pedidos.cod_cliente = clientes.cod_cliente) "
+ "join cidades on (clientes.cod_cidade = cidades.cod_cidade) "
+ "where ordem_montag_lote.num_lote_om = '%"+itc.jtflote.getText()+"%' "
+ "order by ordem_montag_mest.num_om, item.den_item ";
+ "where ordem_montag_lote.num_lote_om = '%"+itc.jtflote.getText()+"%' "
aparece o seguinte erro:
A character to numeric conversion process failed
sera que isso é erro de conversao??
O tipo de dado obtido aqui
itc.jtflote.getText()
é numérico?
A coluna ordem_montag_lote.num_lote_om é de um tipo numérico?
Então esqueça os %.
Pode retirá-los.
sao valores numericos sim…
tirei o % e nao deu mais erro, porem nao gerou o arquivo que eu quero,
se eu trocar o
'"+itc.jtflote.getText()+"' por um numero d elote existente, por exemplo o 910,
ele gera o aruivo qe preciso normal…
qe sera qe ta acontecendo??
Ao invés de pegar o valor do textfield direto, atribua-o a uma variável. Aí você até pode debugar ou mesmo confirmar se ela está sendo obtida.
blz, fiz assim:
String lote = itc.jtflote.getText();
declarei como String pq se eu declarar a variavel lote como qualquer outro tipo, ele aparece aquele triangulozinho vermelho com
o ponto de exclamaçao no meio dizendo pra converter a variavel para String…
na hora qe to debugando essa variavel String lote aparece qe recebeu isso(""), acredito qe seja valor nenhum
e se eu levar o mouse em cima dela, aparece a msg
O método getText() retorna uma String.
Sim, nenhum valor foi pego.
O campo foi preenchido?
Posta os trechos do textfield e da variavel.
E utilize as tags
Cara, tira as aspas simples. Valores numéricos não necessitam de aspas.
o campo foi preenchido sim, eu executo
e coloco o 910 qe eu se qe existe no banco…
como assim posta os trechos do textfield e da variavel??
nao entendi…
O problema, neste momento, já é outro.
O SQL se vira e entende que, embora possua aspas, o valor é numérico.
A questão é o que está ocorrendo para que o método get não esteja “pegando” o valor preenchido.
se eu tirar as aspas simples ele da erro de sintaxe
e agora, qe eu faço? snirf 
Posta o código.
eu fiz um teste com
e pedi pra imprimi atraves do System.out.println e ao inves dele imprimir o numero ele imprimi lote…
entao realmente o gettext nao esta pegando o valor qe eu estou digitando…
ai esta o codgio
public class ClasseEiqueta {
static void GerarArquivo() {
Interface itc = new Interface();
String etiqueta = "";
String nom_cliente = "";
String end_cliente = "";
Statement stmt;
ResultSet rs;
String url = ("jdbc:informix-sqli://192.168.0.242:1525:DATABASE=logix;INFORMIXSERVER=prdfiasini;user=informix;password=informix");
Connection conn = null;
System.out.println(url);
try {
Class.forName("com.informix.jdbc.IfxDriver");
}
catch (Exception e) {
System.out.println(e);
}
try {
conn = (Connection) DriverManager.getConnection(url);
System.out.println("\nAqui conn: " + conn.toString());
} catch (SQLException sqlex) {
}
try {
System.out.println("Connected ...");
DatabaseMetaData md = conn.getMetaData();
System.out.println("Driver name: " + md.getDriverName());
System.out.println("Driver version: " + md.getDriverVersion());
System.out.println("Database product name: "
+ md.getDatabaseProductName());
System.out.println("Database product version: "
+ md.getDatabaseProductVersion());
String sql = "select clientes.nom_cliente, "
+ "clientes.end_cliente, "
+ "cidades.den_cidade, "
+ "ordem_montag_lote.num_lote_om, "
+ "ordem_montag_mest.num_om, "
+ "item.den_item, "
+ "cores.den_cor, "
+ "ped_itens_grade.qtd_pecas_solic, "
+ "cidades.cod_uni_feder "
+ "from ordem_montag_mest join ordem_montag_item on (ordem_montag_mest.cod_empresa = ordem_montag_item.cod_empresa and ordem_montag_mest.num_om = ordem_montag_item.num_om) "
+ "join ordem_montag_lote on (ordem_montag_lote.cod_empresa = ordem_montag_mest.cod_empresa and ordem_montag_lote.num_lote_om = ordem_montag_mest.num_lote_om) "
+ "join pedidos on (pedidos.cod_empresa = ordem_montag_item.cod_empresa and pedidos.num_pedido = ordem_montag_item.num_pedido) "
+ "join ped_itens on (pedidos.cod_empresa = ped_itens.cod_empresa and pedidos.num_pedido = ped_itens.num_pedido and ordem_montag_item.num_sequencia = ped_itens.num_sequencia) "
+ "join estrut_grade on (ped_itens.cod_item = estrut_grade.cod_item_pai and ped_itens.cod_empresa = estrut_grade.cod_empresa) "
+ "join ped_itens_grade on (ped_itens_grade.cod_empresa = ped_itens.cod_empresa "
+ "and ped_itens_grade.num_pedido = ped_itens.num_pedido "
+ "and ped_itens_grade.num_sequencia = ped_itens.num_sequencia "
+ "and ped_itens_grade.cod_grade_1 = estrut_grade.cod_grade_1) "
+ "join item on (estrut_grade.cod_empresa = item.cod_empresa and estrut_grade.cod_item_compon = item.cod_item) "
+ "join cores on (ped_itens_grade.cod_grade_1 = cores.cod_cor) "
+ "join clientes on (pedidos.cod_cliente = clientes.cod_cliente) "
+ "join cidades on (clientes.cod_cidade = cidades.cod_cidade) "
+ "where ordem_montag_lote.num_lote_om = '"+itc.jtflote.getText()+"' "
+ "order by ordem_montag_mest.num_om, item.den_item ";
PreparedStatement stmtt = conn.prepareStatement(sql);
ResultSet rss = stmtt.executeQuery();
while (rss.next()){
nom_cliente = rss.getString("nom_cliente");
end_cliente = rss.getString("end_cliente");
String cidade = rss.getString("den_cidade");
String num_lote_om = rss.getString("num_lote_om");
String num_om = rss.getString("num_om");
String den_item = rss.getString("den_item");
String cor = rss.getString("den_cor");
float qtd_item = Float.parseFloat(rss.getString("qtd_pecas_solic"));
String estado = rss.getString("cod_uni_feder");
int int_qtd_item = Float.floatToIntBits(qtd_item);
System.out.println(qtd_item);
for( int i = 0; i < qtd_item; i++ )
{
etiqueta += "^XA";
etiqueta += "\n^FWR";
etiqueta += "\n ^FO660,40^A0,50,40^FDCliente: ^FS";
etiqueta += "\n^FO650,170^A0,75,45^FD"+nom_cliente.trim()+"^FS";
etiqueta += "\n^FO560,40^A0,50,40^FDEndereco: ^FS";
etiqueta += "\n^FO550,200^A0,60,40^FD"+end_cliente.trim()+"^FS";
etiqueta += "\n^FO460,40^A0,50,40^FDCidade: ^FS";
etiqueta += "\n^FO450,170^A0,60,40^FD"+cidade.trim()+"^FS";
etiqueta += "\n^FO360,40^A0,50,40^FDNum Lote: ^FS";
etiqueta += "\n^FO350,210^A0,68,40^FD"+num_lote_om.trim()+"^FS";
etiqueta += "\n^FO260,40^A0,50,40^FDNum OM: ^FS";
etiqueta += "\n^FO255,200^A0,68,40^FD"+num_om.trim()+"^FS";
etiqueta += "\n^FO160,40^A0,50,40^FDItem: ^FS";
etiqueta += "\n^FO150,160^A0,68,40^FD"+den_item.trim()+"^FS";
etiqueta += "\n^FO70,40^A0,50,35^FDCor: ^FS";
etiqueta += "\n^FO70,140^A0,60,35^FD"+cor.trim()+"^FS";
etiqueta += "\n^FO460,510^A0,50,35^FDEstado: ^FS";
etiqueta += "\n^FO450,630^A0,60,35^FD"+estado.trim()+"^FS";
etiqueta += "\n^XZ";
}
GerarArquivo(etiqueta);
}
} catch (SQLException e) {
System.out.println(e);
}
System.out.println("Done!");
}
@SuppressWarnings("unchecked")
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Interface().setVisible(true);
}
});
}
private void mostrarErro(String msg) {
JOptionPane.showMessageDialog(
null,
msg,
"Erro encontrado",
JOptionPane.ERROR_MESSAGE);
}
public static String GerarArquivo(String textoEtiqueta){
try{
File arquivo;
arquivo = new File("c:\\entrega000.etq");
FileOutputStream fos = new FileOutputStream(arquivo);
String texto = textoEtiqueta;
fos.write(texto.getBytes());
fos.close();
}
catch (Exception ee) {
ee.printStackTrace();
}
return "ok";
}
}
Por isso deu erro de sintaxe, por que tem uma string onde não devia.
marcos, o código que nós precisamos é o da interface gráfica. Se você fez no netbeans, deve ter uma opção de “view code”. Posta o código da interface agora que agente acha o erro.
Uma última dica: não digite e aperte o botão. Digite, aperte tab, e só então dê o enter.
botao gerar etiqueta:
private void jbGerarActionPerformed(java.awt.event.ActionEvent evt) {
ClasseEiqueta.GerarArquivo();
}
Ok, esse é um passo, agora preciso que você nos mostre o código onde são criados os text fiels, onde aparece “new JTextfield()”… Tá em algum lugar aí , procura e copia e cola aqui.