1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Gestor de Clientes [src disponivel]

Discussão em 'Programação' iniciada por CrazyBomber, 13 de Julho de 2006. (Respostas: 32; Visualizações: 1728)

  1. CrazyBomber

    CrazyBomber Power Member

    Boas.
    Há uns tempos andei aqui todo contente a postar sobre a minha primeira aplicação em java com interface gráfico.
    Hoje venho mostrar a segunda, um gestor de clientes (algo básico) a pedido do meu pai :D

    Screenshots:
    [​IMG]

    [​IMG]


    Source Code
    Programa

    Tem um wrapperzito bonito e tudo :)
    Usei, para além do habitual: HSQLDB e o ZCalendar (não tenho link :sad:).

    Estejam à vontade para experimentar e abusar do programita, e digam-me se encontrarem alguns bugs :D
     
  2. Hipnoted

    Hipnoted Power Member

    Bom trabalho! Parabens, parece ser fixe!
     
  3. acrobat

    acrobat Power Member

    aqui tens :)
    O que acontece é que o hsqldb devia ter ja a base de dados criada, em vez de a criares em runtime. por qlguma razão ele não criou a tabela.
    a melhor é arrancares a aplicação com os ficheiros do hsqldb o .properties e o .script , mas neste caso nao vais usar cached tables mas sim tabelas em disco...alem disso os ficheiros do hsqldb sao criados com o nome dados\xxx.xxx ou seja ele nao os poe na directoria dados, mas inclui "dados" no nome..
    tirando isto a protecção das datas tb n ta a funcar aceita cenas tipo 44-44-4444. Quanto a jTable tas a fazer uma coisa mal, devias usar um adaptador feito por ti, em vez de um defaultablemodel.. basta estenderes da classe AbstractTableModel e depois implementares os métodos. até tens a tarefa facilitada pk os dados do hsqldb vêm numa matriz!
    de resto ta muito engraçado, e é curioso ver alguem usar java pra uma aplicação deste tipo.. parabéns :)
     
  4. str8edge

    str8edge [email protected] Member

    Parece estar a ficar bom, já agora essas pics tão bem engraçadas, bem como esses teus clientes fictícios?!

    Offtopic:
    Se AJJ vê isso ainda te põe em tribunal por injurias e ofensas à sua integridade e imagem publica... só mesmo na madeira (se duvidam acreditem que acontece e por menos...)
     
  5. CrazyBomber

    CrazyBomber Power Member

    Thx pelos comments :)

    Primeiro, thx acrobat por reparares no tal erro. Já corrigi, fiz de maneira a não se queixar disso :)
    (Foi um exemplo de má programação, da minha parte :sad:)

    Vou tentar mais tarde usar um tablemodel feito por mim, prometo :D

    Quanto à protecção das datas, vou ter tb de ver isso. Em princípio vou meter o tal calendário, assim não tem que enganar :)

    De resto, ainda tenho a próxima versão pronta esta noite, a não ser que o sono me vença :D

    Prometo que não vou por mais screenshots com o "Alberto João Jardim" lol :P
    Foi mesmo só prá piada :sad:

    Thx a todos :D
     
  6. acrobat

    acrobat Power Member

    ok, vou ficar a espera dessa versão... n és o unico que vai ficar a programar java :)
     
  7. CrazyBomber

    CrazyBomber Power Member

    Hihi :P
    Então ja agora vê se me consegues dar uma ajudinha...

    Na tabela Event tenho o atributo 'paga' que pode ser Sim ('S'), Não ('N'), ou Sem Custo ('C').

    Eu quero, para cada cliente, ter a contagem total de Events, a contagem de Events sem custo, a soma do custo dos Events pagos, e a soma do custo dos Events não pagos... ou seja:

    Tabela:
    Código:
    -------------------------------------------------------------
    Cliente|Total|TotalSemCusto|MontantePago|MontantePorPagar
    -------------------------------------------------------------
    c1      |5     |2                  |20                |30
    
    Qq coisa assim do género :)

    Estou a ter uma dor de cabeça do pior para arranjar a query para me conseguir isto tudo :sad:

    A cena é que quero também especificar as datas limite dos Events a ter em conta, para fazer algo como um relatório mensal, por exemplo.

    :sad:
     
  8. acrobat

    acrobat Power Member

    dava jeito ter a estrutura da bd e os campos de cada tabela.., sem isso é dificil
     
  9. CrazyBomber

    CrazyBomber Power Member

    Sorry, sorry.

    Está Aqui:
    Código:
    TABLE Entidade(
        nomeEnt VARCHAR(60) PRIMARY KEY,
        infoEnt VARCHAR(255),
        morada VARCHAR(100)
        tlf VARCHAR(60)
    )
    
    TABLE Event(
        nomeEnt VARCHAR(60),
        nomeEvent VARCHAR(60),
        custo DOUBLE,
        data DATE,
        infoDespesa VARCHAR(255),
        paga VARCHAR(1) NOT NULL,
        PRIMARY KEY( nomeEnt, nomeEvent, data ),
        CONSTRAINT nomeEnt FOREIGN KEY (nomeEnt) REFERENCES Entidade(nomeEnt) ON DELETE CASCADE ON UPDATE CASCADE
    )
    
     
  10. acrobat

    acrobat Power Member

    primeiro acho ke tas a cometer um erro crasso que é a utilização de chaves primarias varchar..
    depois o facto de usares uma chave composta com a data tb n é uma ideia muito famosa...
    devias ter id nas duas tabelas em hsql db seria : id_ent INTEGER IDENTITY
    quanto á peskisa é um bocado complicada, o problema sao as somas que tem um select la dentro
    será kualker coisa do tipo :

    n tenho certeza disto mas deve ser kualker coisa do estilo nao?
     
  11. CrazyBomber

    CrazyBomber Power Member

    "Nunca usar uma id quando não é preciso", foi o que me ensinaram :)

    De qq modo, a Primary Key da Entidade ainda vai ser o BI ou o Nº de Contribuinte (só ainda não me apeteceu andar a alterar essas coisas :sad:).

    Já na tabela Event, devo ter mm que por um id. Também não achei mt bom por a data na Primary Key, estava à procura de uma solução melhor (mas sem id), mas não tou mesmo a ver como.

    Thx pela ajuda, entretanto tb consegui juntar as coisas, mais ou menos :D
    pode-se meter tabelas como argumentos das funções de agregação? Pensava que se tinha de especificar isso no FROM. Bem, assim poupava-me algum trabalho.

    Daqui a bocado já mostro o resultado :D
     
  12. acrobat

    acrobat Power Member

    qt as funcções de agregação acho ke ta bem assim.. ou se calhar não :D olha qt aos id's tb achoke so se deve usar qd é preciso... mas neste caso é preciso! mas melhor solução é o bi ou contribuinte..
     
  13. CrazyBomber

    CrazyBomber Power Member

    Concordo :P
    Fica resolvido na próxima versão lol :D

    Para já consegui fazer o tal relatório de clientes, vou ver se consigo fazer com que aquilo exporte para html, ou qq coisa :)
    (O mais provável é ter que fazer tudo à mão lol :sad:)
     
  14. acrobat

    acrobat Power Member

    kual html ? :) exporta pra pdf :) procura por iText ou jasperreports que deves encontrar o ke precisase se tiveres mesmo muito tempo livre usa o jfreechart pra por aí uns gráficos
     
  15. CrazyBomber

    CrazyBomber Power Member

    Thx pela sugestão :D

    Entretanto já fiz metade do código pra escrever em html :sad:

    Estou a tentar ser eu a fazer tanto código quanto possível :D
     
  16. CrazyBomber

    CrazyBomber Power Member

    Já está :D

    Gestão de Clientes versão 2
    Source


    Novidades:

    Barra de pesquisa na lista de clientes - ele filtra automaticamente de acordo com o nome escrito

    Relatório de clientes - mostra o relatório dos actos de todos os clientes. leva em consideração as datas escolhidas (ou não), pode-se meter só data de inicio, só data de fim, ou as duas :D

    Exportar relatório para html - grava um ficheiro reportX.html na pasta "reports" com os dados do relatório :)


    Screenie:
    [​IMG]

    Estou exausto... foram 2 dias sempre a programar :sad:
    Amanhã não passo 5 minutos em casa :D
     
    Última edição: 14 de Julho de 2006
  17. acrobat

    acrobat Power Member

    pah continuas com erros na data :P isto "1111-444-444" passa... e n consigo por o report a funcar... nunca aparecem dados :)
     
  18. acrobat

    acrobat Power Member

    pelo ke me pareceu estás a usar o netbeans... como é ke akilo gera o .exe?
     
  19. CrazyBomber

    CrazyBomber Power Member

    ops, esqueci-me de ver a cena da data :sad:

    o .exe é gerado com o JSmooth, um wrapper opensource.
    Funciona bastante bem :)

    Quanto às datas, vê se seleccionas periodos em que efectivamente algum dos clientes tem algum acto registado :P

    Se aparece na lista de actos, então aparece no relatório.

    Tenta de novo e diz me se não estiver a dar :sad:
     
  20. acrobat

    acrobat Power Member

    ah pronto.. :) é preciso seleccionar as datas :sad: agora ja da.. n tinha percebido ke era preciso seleccionar..eheh
    pah isto ta bem fixe... keep going
     

Partilhar esta Página