Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

@gilsones

Desktop ou web para esse sistema?

Recommended Posts

Bom dia pessoal,

 

Eu tinha desenvolvido um sisteminha de cadastro de pessoas no próprio MS Access para um vereador aqui da cidade. Esse sistema era simples, tinha um formulario para cadastrar e editar os registros, um grid com os registros e o mais importante, um 'relatório' para a impressão de etiquetas. Ele usam isso até hoje, sem problemas.

 

Mas agora ele me pediu algo mais seguro, pois outras pessoas usarão esse sisteminha, e ele tem medo de copiarem o arquivo Access com todos os dados.

 

Preciso elaborar algo para ele.

 

1) Pensei em fazer um banco de dados online, porém o problema seria na impressão das etiquetas, pois no navegador imprimiria aqueles cabeçalhos e rodapés que estragariam algumas etiquetas. (sei que dá pra remover nas configs do browser, mas não quero isso). Pensei em fazer a parte de 'relatório' em Flash usando o PrintJob do AS3, não teria o problema do cabeçalho e rodapé, mas teria outro problemas de impressão, já que teria que imprimir mais de 100 folhas (o Flash só envia pra impressão depois de tudo pronto, ou seja, carregar mais de 100 páginas e depois enviar pra impressão causaria lentidão até o inicio da impressão).

 

2) Outra opção é criar um aplicativo desktop, mas como não é muito a minha praia, embora eu crie algumas coisas, não sei se seria muito seguro, pois não ha nada que impeça alguma pessoa de copiar o banco de dados e levar embora. Sei que existe a possibilidade de senha tanto no sistema quanto no banco de dados, mas eu mesmo ja tive que quebrar algumas senhas e sei que não é uma coisa impossível.

 

3) Eu poderia mesclar as idéias, criar um BD online e uma API, e depois um aplicativo desktop que em conjunto com essa API faça a manipulação dos registros, e também a impressão dos relatórios. (não vi algo do tipo ainda a não ser em celulares, não sei se seria uma método porco).

 

 

Alguém teria alguma sugestão, ideia, qualquer coisa de como fazer isso é bem vinda!!

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o método numero 3 é muito usado. Você pode criar um banco de dados online em MySQL ou em SQLServer e usar uma aplicação desktop para acessar seu banco online. Algumas linguagens de programação como o .NET já possuem conectores específicos para estes bancos de dados e tornam a cópia dos registros mais difícil, para não dizer impossível.

 

O problema de impressão em uma aplicação desktop você não teria, pois ele não imprime os cabeçalhos e também não envia depois de tudo pronto, você vai ter um trabalho em fazer a lógica para montar a página, já que é tudo mais ou menos manual, a não ser que você use algo como o Crystal Reports e faça um relatório de etiquetas mais simples e rápido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o método numero 3 é muito usado. Você pode criar um banco de dados online em MySQL ou em SQLServer e usar uma aplicação desktop para acessar seu banco online. Algumas linguagens de programação como o .NET já possuem conectores específicos para estes bancos de dados e tornam a cópia dos registros mais difícil, para não dizer impossível.

 

O problema de impressão em uma aplicação desktop você não teria, pois ele não imprime os cabeçalhos e também não envia depois de tudo pronto, você vai ter um trabalho em fazer a lógica para montar a página, já que é tudo mais ou menos manual, a não ser que você use algo como o Crystal Reports e faça um relatório de etiquetas mais simples e rápido.

 

Então, na aplicação desktop deve ter um evento a ser disparado ao termino de uma impressão, assim quando uma acabar eu envio outra para a impressão, e se houver algum erro eu paro o loop. Assim não sobrecarrega o buffer da empressora e não causaria a "espera" para o inicio da impressão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas isto demoraria muito, a impressão em desktop não funciona por buffer, ele manda um unico pacote para a impressora. O loop para você montar essas páginas é mais rápido do que você enviar uma a uma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas isto demoraria muito, a impressão em desktop não funciona por buffer, ele manda um unico pacote para a impressora. O loop para você montar essas páginas é mais rápido do que você enviar uma a uma.

 

Já pensei nisso também, eu poderia enviar de 10 em 10 páginas por exemplo.

imagina se eu precisar imprimir 1000 páginas...

 

Tenho que pensar bem antes de começar desenvolver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem mais ou menos a ideia de quantas páginas você vai precisar imprimir? Você pode fazer esse processo por meio de threads.

 

Então, como o sistema é para o vereador, na verdade essas páginas são etiquetas de endereço das pessoas cadastradas, mas até aqui sem problemas.

 

O numero de páginas pode varias, 100, 1.000...

Pois ele pode imprimir etiqueta para mandar carta do dia das mães, dia dos pais, ou para todos cadastrados.

 

Então preciso dar importância para a maior quantidade de páginas.

 

Oque seria esse threads?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, mas se forem apenas nomes, independente da quantidade de páginas, vai ser rápido, porque são poucas coisas para imprimir. Grids e listas são coisas mais complexas e o computador faz em menos tempo até, essa parte creio que não haja problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, mas se forem apenas nomes, independente da quantidade de páginas, vai ser rápido, porque são poucas coisas para imprimir. Grids e listas são coisas mais complexas e o computador faz em menos tempo até, essa parte creio que não haja problema

 

Vai ser nome e endereço, para colocar no envelope e enviar via Correios.

 

depois vou fazer uns testes com PDF, de repente 1000 folhas também não fique tão pesado, já que é só texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, faça um Stress Test usando a maior quantidade possível de registros e veja quanto tempo ele pode demorar no máximo, qualquer coisa use as outras áreas de programação para tirar dúvidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uma solução simples rápida e fácil e antiga também rsrs é vc criar um banco cliente servidor como por exemplo PostgreSQL ou MS SQL ou MySQL ... depois simplesmente vincularor odbc ao seu programa existente do msaccess o banco pode ficar remoto ou local mesmo o fato que não será tão fácil copiar a base dos dados se copiar vai copiar só a aplicação ... ... quando isso vc pode bloquear criando o mde do seu sistema fazendo um bloqueio por arquivo num determinado local ou por a identificação da máquina ... assim só funciona nela...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.