Bom dia gente gostaria de uma ajuda dos especialistas da GUJ, estou com um problema que está me tirando o juízo (rsrsrs), fiz uma aplicação web adobe FLEX + JAVA, onde é feito uma busca no banco de dados e populando m advancedatagrid dai quando o cliente da 2 cliques numa linha do advancedatagrid ele abre o .pdf em um caminho no computador, exemplo cada empresa do banco de dados tem um (pdf) empresa tech - (124578.pdf), empresa home - (7457891.pdf) isso eu trago do banco de dados e sei que aquele .pdf é dele, então vai a dúvida fui testar no cliente e quando outro computador entra no software pelo browser que pesquisa e acha a empresa ele da 2 cliques para abrir .pdf, não abre, só abre la no servidor todas linhas que o cliente quis abrir o .pdf não abriu na máquina cliente foram abertos todos la no servidor, téria alguma forma de ajeitar isso, e gente outra coisa eu tive que saber no servidor o caminho e pasta onde iria ficar os pdfs para por no código java, mais se ele formatarem o servidor e quiserem colocar em outro o software não acha o caminho como faço para resolver essa situação vou postar os códigos abaixo, obrigado a todos:
vou comentar as partes do código para ficar melhor o entendimento.
OBS: no banco existe a tabela exemplo: empresa varchar(50), pasta varchar(50), imagem varchar(50)
ai no banco os dados ficam assim:
Empresa pasta Imagem
Tech C00800123 tech.pdf
Home C00800999 home.pdf
isso eu pego do banco de dados gente via código no adobe flex ai pego a linha selecionada e os campos pasta e imagem e mando em 2 strings para o java, ai ele pesquisa no local que eu defini se tiver ele abri o .pdf se não retorna para o cliente uma mensagem dizendo que não existe o documento digital.
aqui é o código do adobe FLEX, código de 2 cliques no AdvanceDataGrid
protected function duploclick_auditoria(event:MouseEvent):void{
var auditoriaService:RemoteObject = new RemoteObject("auditoriaService");
imagem_auditoria = ADGAuditoria.selectedItem.imagem;
pasta_auditoria = ADGAuditoria.selectedItem.pasta;
auditoriaService.verificaPDF(pasta_auditoria.toString(), imagem_auditoria.toString(), status_auditoria);
auditoriaService.addEventListener(ResultEvent.RESULT, resultadoduploclick_auditoria);
}
nesse código pego o resultado do duplo clique e faço as comparações e abertura do .pdf:
[code]public function resultadoduploclick_auditoria(event:ResultEvent):void
{
var auditoriaService:RemoteObject = new RemoteObject(“auditoriaService”);
status_auditoria = event.result as Boolean;
if (status_auditoria == true){
auditoriaService.abrirPDF(pasta_auditoria.toString(), imagem_auditoria.toString());
}else {
Alert.show(“Não existe documento digital”);
}
}
[/code]
Aqui código JAVA
aqui nesse código eu trago uma lista de todos os objetos para preencher o AdvanceDataGrid:
[code]public List listarauditoria()
{
ArrayList<Auditoria> lista_auditoria = new ArrayList<Auditoria>();
Auditoria c;
try
{
statement = CON.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery("select * from documentosauditoria");
while (resultset.next())
{
c = new Auditoria();
c.setId_documentos(resultset.getInt("id_documentos"));
c.setId_tipodocumento(resultset.getInt("id_tipodocumento"));
c.setFolhaderosto(resultset.getString("folhaderosto"));
c.setData(resultset.getString("data"));
c.setPeriodo(resultset.getString("periodo"));
c.setAnexo_volume(resultset.getString("anexo_volume"));
c.setProcesso(resultset.getString("processo"));
c.setInteressado(resultset.getString("interessado"));
c.setAssunto(resultset.getString("assunto"));
c.setImagem(resultset.getString("imagem"));
c.setPasta(resultset.getString("pasta"));
lista_auditoria.add(c);
}
}
catch(SQLException Banco)
{
}
return lista_auditoria;
} [/code]
esse outro eu faço a pesquisa por opção de escolha (filtro) e também trago uma lista do objeto para preencher o AdvanceDataGrid:
public List<Auditoria> pesquisarauditoria(String pesquisa, String opcao_filtro)
{
ArrayList<Auditoria> pesquisar_auditoria = new ArrayList<Auditoria>();
Auditoria c;
try
{
statement = CON.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sql_pesquisa="";
if (opcao_filtro.equals("folhaderosto"))
sql_pesquisa = "select * from documentosauditoria where upper(folhaderosto) like '%"+pesquisa.toUpperCase()+"%'";
else if (opcao_filtro.equals("periodo"))
sql_pesquisa = "select * from documentosauditoria where upper(periodo) like '%"+pesquisa.toUpperCase()+"%'";
else if (opcao_filtro.equals("anexo_volume"))
sql_pesquisa = "select * from documentosauditoria where upper(anexo_volume) like '%"+pesquisa.toUpperCase()+"%'";
else if (opcao_filtro.equals("processo"))
sql_pesquisa = "select * from documentosauditoria where upper(processo) like '%"+pesquisa.toUpperCase()+"%'";
else if (opcao_filtro.equals("interessado"))
sql_pesquisa = "select * from documentosauditoria where upper(interessado) like '%"+pesquisa.toUpperCase()+"%'";
else if (opcao_filtro.equals("assuntoauditoria"))
sql_pesquisa = "select * from documentosauditoria where upper(assunto) like '%"+pesquisa.toUpperCase()+"%'";
else if (opcao_filtro.equals("ocr"))
sql_pesquisa = "select * from documentosauditoria where upper(ocr) like '%"+pesquisa.toUpperCase()+"%'";
resultset = statement.executeQuery(sql_pesquisa);
while (resultset.next())
{
c = new Auditoria();
c.setFolhaderosto(resultset.getString("folhaderosto"));
c.setData(resultset.getString("data"));
c.setPeriodo(resultset.getString("periodo"));
c.setAnexo_volume(resultset.getString("anexo_volume"));
c.setProcesso(resultset.getString("processo"));
c.setInteressado(resultset.getString("interessado"));
c.setAssunto(resultset.getString("assunto"));
c.setImagem(resultset.getString("imagem"));
c.setOcr(resultset.getString("ocr"));
c.setPasta(resultset.getString("pasta"));
pesquisar_auditoria.add(c);
}
}
catch(SQLException Banco)
{
}
return pesquisar_auditoria;
}
Nesse comando eu verifico se o .pdf existe no local pré-definido por mim é ai que está o problema, queria que tive uma pasta exemplo sistemaweb dentro um diretorio imagens e pronto, independente do comptuador ele sempre iria buscar nessa pasta segue exemplo abaixo:
public boolean verificaPDF(String pas,String res, Boolean status){
File f = new File("C:\\Users\\SC\\Desktop\\swamp\\Imagem\\"+ pas + "\\" + res);
if (f.exists()){
status = true;
return true;
}else{
status = false;
return false;
}
}
Da mesma forma está o código de abrir o .pdf, só é aberto no servidor e não na máquina cliente segue código:
public void abrirPDF(String pas,String res){
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
try{
desktop.open(new File("C:\\Users\\SC\\Desktop\\swamp\\Imagem\\"+ pas + "\\" + res));
} catch(IOException e){
System.out.println("ERRO: " + e.getMessage());
}
}
Então gente desde já eu agradeço a todos por esse canal de ajuda um abraço.