Olá Galera, olha eu aqui 'travez …
Bem … é o seguinte … Estou desenvolvendo uma aplicação (sob encomenda) para o agendamento se diversos serviços (com data e hora marcada). Graças a DEUS o problema com as Datas eu já solucionei, mas agora estou enfrentando mais um. Possuo em meu banco de dados (PostgreSQL) as seguintes tabelas: clientes, funcionários, servicos, usuarios e agendas. a tabela usuarios possui como chave estrangeira o id dos funcionários e a tabelas agendas possui como chaves estrangeiras os códigos do cliente, do funcionario, do usuario, do serviço. Criei uma tabela para capturar a data, a hora (salvos na tabela agendas) e o nome do cliente, a descrição do serviço e o nome do funcionário que irá executar o serviço, porém esses 3 últimos não estou conseguindo recuperar, preciso de uma ajuda dos colegas mais experientes, pois não tenho a mínima ideia de como fazê-lo. Segue abaixo os códigos da Classe Control (Responsável pelos comandos SQL) …
String consultaRegistroData = "select * from agendas where data = ? order by data, hora";
String consultaRegistroCliente = "select * from agendas, clientes where agendas.codcliente = clientes.codigo and clientes.nome like ? order by data";
String consultaRegistroProfissional = "select * from agendas, funcionarios where agendas.codprofissional = funcionarios.id and funcionarios.nome like ? order by data";
public List<AgendaBean> listarAgendasData(Date data) {
List<AgendaBean> agendas = new ArrayList();
try {
ConexaoBD con = new ConexaoBD();
pstm = con.conecta().prepareStatement(consultaRegistroData);
pstm.setDate(1, data);
rs = pstm.executeQuery();
while (rs.next()) {
ag = new AgendaBean();
ag.setData(rs.getString("data"));
ag.setHora(rs.getString("hora"));
ag.setCodcliente(rs.getInt("codcliente"));
ag.setCodservico(rs.getInt("codservico"));
ag.setCodprofissional(rs.getInt("codprofissional"));
ag.setCodfuncionario(rs.getInt("codfuncionario"));
ag.setModalidade(rs.getString("modalidade"));
agendas.add(ag);
con.desonecta();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não Existe Registro!" + e);
e.printStackTrace();
}
return agendas;
}
public List<AgendaBean> listarAgendasCliente(String nome) {
List<AgendaBean> agendas = new ArrayList();
//List<ClienteBean> clientes = new ArrayList();
//List<ServicoBean> servicos = new ArrayList();
//List<FuncionarioBean> funcionarios = new ArrayList();
try {
ConexaoBD con = new ConexaoBD();
pstm = con.conecta().prepareStatement(consultaRegistroCliente);
pstm.setString(1, nome);
rs = pstm.executeQuery();
while (rs.next()) {
ag = new AgendaBean();
//cb = new ClienteBean();
//fb = new FuncionarioBean();
//sb = new ServicoBean();
ag.setData(rs.getString("data"));
ag.setHora(rs.getString("hora"));
//ag.setCodcliente(rs.getInt("codcliente"));
//cb.setNome(rs.getString("nome"));
//ag.setCodservico(rs.getInt("codservico"));
//sb.setDescricao(rs.getString("descricao"));
//ag.setCodprofissional(rs.getInt("codprofissional"));
//fb.setNome(rs.getString("nome"));
//ag.setCodfuncionario(rs.getInt("codfuncionario"));
//fb.setNome(rs.getString("nome"));
//ag.setModalidade(rs.getString("modalidade"));
agendas.add(ag);
//clientes.add(cb);
//servicos.add(sb);
//funcionarios.add(fb);
con.desonecta();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não Existe Registro!" + e);
}
return agendas;
}
public List<AgendaBean> listarAgendasProfissional(String nome) {
List<AgendaBean> agendas = new ArrayList();
try {
ConexaoBD con = new ConexaoBD();
pstm = con.conecta().prepareStatement(consultaRegistroProfissional);
pstm.setString(1, nome);
rs = pstm.executeQuery();
while (rs.next()) {
ag = new AgendaBean();
ag.setData(rs.getString("data"));
ag.setHora(rs.getString("hora"));
//ag.setCodcliente(rs.getInt("codcliente"));
//ag.setCodservico(rs.getInt("codservico"));
//ag.setCodprofissional(rs.getInt("codprofissional"));
//ag.setCodfuncionario(rs.getInt("codfuncionario"));
//ag.setModalidade(rs.getString("modalidade"));
agendas.add(ag);
con.desonecta();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Não Existe Registro!" + e);
}
return agendas;
}
e da Classe Principal …
private void buscaRegistro() {
AgendaControl c = new AgendaControl();
if (rbData.isSelected()) {
String dataString = tfPesquisaData.getText().trim();
java.sql.Date d;
try {
d = new java.sql.Date(df.parse(dataString).getTime());
agendas = c.listarAgendasData(d);
} catch (ParseException ex) {
ex.printStackTrace();
}
} else if (rbCliente.isSelected()) {
agendas = c.listarAgendasCliente("%" + tfPesquisaCliente.getText().trim() + "%");
} else if (rbProfissional.isSelected()) {
agendas = c.listarAgendasProfissional("%" + tfPesquisaProfissinal.getText().trim() + "%");
}
mostrarAgenda(agendas,clientes, servicos, funcionarios);
}
private void mostrarAgenda(List<AgendaBean> agendas, List<ClienteBean> clientes, List<ServicoBean> servicos, List<FuncionarioBean> funcionarios) {
while (tmAgenda.getRowCount() > 0) {
tmAgenda.removeRow(0);
}
if (agendas.size() == 0) {
JOptionPane.showMessageDialog(this, "Nenhum Agendamento Encontrado!");
} else {
}
String[] campos = new String[]{null, null, null, null, null};
for (int i = 0; i < agendas.size() ; i++) {
tmAgenda.addRow(campos);
try {
tmAgenda.setValueAt(df.format(sdf.parse(agendas.get(i).getData())), i, 0);
} catch (ParseException ex) {
ex.printStackTrace();
}
try {
tmAgenda.setValueAt(hf.format(hf.parse(agendas.get(i).getHora())), i, 1);
} catch (ParseException ex) {
ex.printStackTrace();
}
//tmAgenda.setValueAt(clientes.get(i).getNome(), i, 2);
//tmAgenda.setValueAt(funcionarios.get(i).getNome(), i, 4);
//tmAgenda.setValueAt(funcionarios.get(i).getNome(), i, 4);
}
}
Segue também a tela que foi desenvolvida (mostrando o problema)
