Ir para conteúdo
Fórum Script Brasil

Viperino

Membros
  • Total de itens

    15
  • Registro em

  • Última visita

Sobre Viperino

Viperino's Achievements

0

Reputação

  1. Viperino

    ArrayList

    Bom dia. Estou com uma dificuldade em resolver os dois últimos métodos da classe Consultas. O objectivo é: Para o método verificaVaga, passando os detalhes da data, retornar false se existir já uma consulta marcada com esses detalhes e true se não existir e adicioná-la à lista. Por agora dá-me sempre true e não adiciona. Para o método retornaMarcacoes é suposto retornar um objecto lista com as marcações para o dia e mês especificado mas não retorna nada na lista. Alguém me pode ajudar? Obrigado desde já. public class Consulta { private String NOMEDOENTE; private int MES; private int DIA; private int HORA; private int MINUTO; public Consulta(String nd, int m, int d, int h, int mn){ NOMEDOENTE = nd; MES = m; DIA = d; HORA = h; MINUTO = mn; } public String getNOMEDOENTE() { return NOMEDOENTE; } public void setNOMEDOENTE(String nOMEDOENTE) { NOMEDOENTE = nOMEDOENTE; } public int getMES() { return MES; } public void setMES(int mES) { MES = mES; } public int getDIA() { return DIA; } public void setDIA(int dIA) { DIA = dIA; } public int getHORA() { return HORA; } public void setHORA(int hORA) { HORA = hORA; } public int getMINUTO() { return MINUTO; } public void setMINUTO(int mINUTO) { MINUTO = mINUTO; } public boolean isFull( ) { return false; } public String toString() { return "Nome do Doente: "+NOMEDOENTE+" - Data da Consulta: "+DIA+"/"+MES+" às "+HORA+":"+MINUTO; } } import java.util.ArrayList; public class Marcacoes { private ArrayList<Consulta> lista; public Marcacoes() { lista = new ArrayList<Consulta>(); } public void adiciona(Consulta c){ lista.add(c); } public void imprimeTodos() { for (Consulta c : lista) { System.out.println(c); } } public ArrayList<Consulta> getConsultas() { return lista; } public int contaConsultas(){ int cont = lista.size(); return cont; } public boolean verificaVaga(Consulta a){ if (lista.contains(a.getMES()) && (lista.contains(a.getDIA()) && (lista.contains(a.getHORA()) && lista.contains(a.getMINUTO())))){ return false;} else lista.add(a); return true; } public ArrayList<Consulta> retornaMarcacoes(int mes, int dia) { ArrayList<Consulta> lista = new ArrayList<Consulta>(); for (Consulta c : lista) { if ((c.getMES()==(mes) && (c.getDIA()==(dia)))) { return lista; } } return lista; } }
  2. Viperino

    Listas

    Boa tarde. Estive a dar uma vista de olhos no código e fiz algumas modificações. Neste momento, ao inserir um Livro, aparece este erro: Exception in thread "main" java.lang.NullPointerException at pacote.ListaLivros.insereAutLiv(ListaLivros.java:72) at pacote.Menu.main(Menu.java:54) O código é um pouco extenso mas penso que será melhor colocá-lo aqui para ver se alguém tem uma ideia brilhante para me livrar desta. :) Desde já, obrigado por qualquer ajuda.
  3. Viperino

    Listas

    Boa noite. Estou a tentar desenvolver um programa simples para gerir uma livraria usando listas. Isto anda a dar-me uma dor de cabeça... Bem, a verdade é que desisti da abordagem que estava a ter (lista sem cabeça) e tentei com cabeça. Sendo assim, já consigo fazer as 4 primeiras funcionalidades. No resto é que precisava de alguma ajuda. Sendo assim, aqui vai o código que tenho neste momento. Agradeço desde já qualquer ajuda.
  4. Bom dia, fulvio. Testei e dá certo. Obrigado. Mas dei por mim a pensar que talvez esta não fosse a abordagem mais correcta, pelo que optei por eliminar aqui a distinção entre médicos e utentes normais e inserir um campo "Tipo" na tabela utente. Assim, ficou mais fácil. :) No entanto, muito obrigado pelas suas explicações. Têm sido bastante úteis.
  5. Boa tarde, fulvio. Obrigado pela explicação. Ontem foi mais um dia de cão onde não tive acesso à net, mas mais vale tarde que nunca, não é assim? A relação está correcta, penso eu. Um utente (U_Id) é que pode ser tanto "normal" como médico. Na tabela Utente, tenho lá o campo U_Tipo preenchida com "N" ou "M" consoante o caso O que eu não percebo aqui é como é que o query retorna o Id de utente, mas não consegue ir buscar o nome correspondente ao Id... Obrigado
  6. Olá, fulvio. Peço desculpa por só responder agora mas andar a trabalhar na estrada de dia e aulas na universidade à noite deixam muito pouco tempo sequer para aceder à net. É quase meia-noite aqui mas fui experimentar o que postou e agora funciona. Muito obrigado. Mas gostaria que me explicasse aquilo do há, h, t.... Sinceramente, complicou. E tenho que simplificar a coisa, senão vão logo perceber que não fui eu que fiz. rs... Obrigado pela oferta do MSN. Agora não me parece que esteja online, mas amanhã tenho um trabalho bem cedo que conto acabar ainda de manhã e se estiver disponível, por volta da hora do almoço (aqui) voltarei para ver se está por aqui. Entretanto, não querendo abusar, sabe-me dizer porque não consigo que apareça o nome dos Utentes aqui em baixo? O query corre certinho, que é dar os utentes (médicos ou utentes normais) que mais vezes mudaram de zona. Mas o objectivo é ordenar alfabeticamente por nome de utente. (Não sei se me expliquei bem...) Bem, muito obrigado pela sua ajuda até agora.
  7. Boa noite. Cheguei agora da aula. Já experimentei e não executa. Dá a seguinte mensagem: Msg 8120, Level 16, State 1, Line 3 Column 'dbo.Historico_Analises.HA_TA_Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
  8. OK, já não posso testar agora, pois já estou fora de casa, mas volto daqui a umas 4 horas e digo alguma coisa. (não, não vou pedir que espere por mim) :) Mais uma vez, obrigado.
  9. Antes de mais, quero agradecer o tempo que perdeu comigo hoje. Muito obrigado. Bem, agora fiquei todo confundido com essas trocas de nomes das tabelas. :) Há aqui qualquer coisa que correu mal pois não executa. Dá erro na variável TAI-TA_Id. Msg 207, Level 16, State 1, Line 4 Invalid column name 'TAI_TA_Id'. Msg 207, Level 16, State 1, Line 2 Invalid column name 'TAI_TA_Id'.
  10. Não funcionou. Deu assim: Mas como você disse, mesmo que, por exemplo, para a análise tipo 3, repita sempre no total 4, já penso que é suficiente para o que é pretendido. Facilita?
  11. Tópico inicial: http://scriptbrasil.com.br/forum/index.php?showtopic=148684 Eu gostava, mas acho que os meus conhecimentos não dão para tanto... :( O TOP 100.... é automático, não sou eu que introduzo, é o SQL quando faço execute. Obrigado mais uma vez pela resposta. Mas não era isso que eu pretendia. A ver se me consigo fazer perceber melhor com uma imagem: Como deve conseguir ver, há 1 análise do tipo 1, 1 do tipo 2, 4 do tipo 3 e por aí adiante. Era esse valor que eu queria obter com o count mas não estou a conseguir fazer. Espero ter sido mais esclarecedor.
  12. Sim, era exactamente isso. Muito obrigado, fulvio. Estranho como necessitou de mais código do que na view, mas o que interessa é que me ajudou a pôr isto a funcionar. Muito obrigado. Outra questão (esta, penso eu que mais fácil): Nesta view: SELECT TOP (100) PERCENT dbo.Tipo_Analise.TA_Id AS [Tipo de Análise], dbo.Historico_Analises.HA_Id AS [Análise Efectuada], dbo.Historico_Analises.HA_Ind_Suplem AS Variante FROM dbo.T_Ana_Ind INNER JOIN dbo.Tipo_Analise ON dbo.T_Ana_Ind.TAI_TA_Id = dbo.Tipo_Analise.TA_Id INNER JOIN dbo.Historico_Analises ON dbo.Tipo_Analise.TA_Id = dbo.Historico_Analises.HA_TA_Id GROUP BY dbo.Tipo_Analise.TA_Id, dbo.Historico_Analises.HA_Id, dbo.Historico_Analises.HA_Ind_Suplem ORDER BY [Tipo de Análise] recebo as análises de todos os tipos, com variantes. Sabe dizer-me como faço para juntar a estes, um campo com o total por tipo?
  13. Obrigado, fulvio, pela resposta. Então o problema está na SP ou no modo como a executo? É que não consigo executá-la sem ser assim. Se colocar exec A_01 @Date_st='01-01-2000', @Date_end='01-01-2009', @Insurance IS Null aparece a mensagem de erro " erro perto de IS" e não aceita.
  14. Bom dia, pessoal. Gostaria de saber se me podem ajudar com uma dúvida que tenho aqui. Tenho um query em uma view que corre perfeitamente, cujo código é este: Select HA_Id, HA_Seg_Id, HA_Data from dbo.Hist_Analysis where (HA_Data BETWEEN CONVERT(DATETIME,'2001-01-01 00:00:00', 102) AND CONVERT(DATETIME,'2009-01-01 00:00:00', 102) AND (HA_Seg_Id IS NULL) que retorna todos os registos (3, neste caso) entre estas 2 datas e que não têm nada no campo de Seguro (HA_Seg_Id). No entanto, passando para um SP, assim: CREATE PROC A_01 (@Date_st smalldatetime, @Date_end smalldatetime, @Insurance bigint) as SELECT HA_Id as An, HA_Seg_Id as Insur, HA_Data as Date from dbo.Hist_Cli WHERE (HA_Seg_Id = @Insurance) AND (HA_Data>=@Date_st and HA_Data<=@Date_end) não consigo passar o referido valor NULL quando invoco a SP com exec A_01 @Date_st='01-01-2000', @Date_end='01-01-2009', @Insurance=Null O comando aparece como "successfully" mas não retorna registos. Alguém consegue perceber onde está o erro? Obrigado
×
×
  • Criar Novo...