DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim-Parte 29-Controle de Acesso em Nível de tela 2

Nesta vídeo, veremos como criar um método que retorne as operações que determinado usuário possui em determinada tela.

Título:

Tempo: 23:30min

Resumo: Uma rotina de controle de acesso do usuário as ações que ele pode exercer sobre um registro não é uma coisa simples de se fazer. Já fiz na internet alguns componentes, exemplos e técnicas que são em sua maioria criativas e funcionais. Porém eu sempre achei que deveria desenvolver meu método, teria que ser simples, fácil e eficiente e mais que o usuário final pudesse configurar. Neste vídeo mostro como conseguir isso e você verá que realmente e muito simples!

Metodologia de desenvolvimento do exemplo: Mais uma vez a simplicidade foi conseguida graças ao singleton. Através da classe usuário informamos ao objeto qual tela estamos acessando e o mesmo nos retorna as permissões para casa ação que ele tem acesso naquela tela. É utilizado um Record para que possamos retornar mais de um valor por uma função.

Tecnologias utilizadas: RadStudio 2007, FireBird2.0, DBX4.

Exemplos construídos: Método GetPermissao na classe usuário.

Palavras chaves: Delphi2007, DBX4, Record.





    10 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Edson José Dionisio
Boa noite Rodrigo,
até o momento venho acompanhando suas video-aulas sempre a espera da próxima com muito entusiasmo, pois elas são excelentes.
nesta video você tratou de alguns dos erros comuns quando estamos desenvolvendo no delphi, mas ficou a dúvida... e quando a repetição de cadastros? como seriam tratados?
se por exemplo eu cadastrar no sistema José da Silva e uma outra pessoa venha a cadastrar novamente o José da Silva, como seria feito para avisar que o o cadastro já havia sido realizado anteriormente?

P.S: eu adicionei este mesmo comentário numa video-aula relacionada a erros de validação mas vi depois que a data estava ainda em 2008 por isso postei aqui novamente!

Obrigado pela atenção! Smile
[há +1 ano] - Responder

 

[autor] Rodrigo Carreiro Mourão
Olá amigo !!!

Bem a maioria dos programas tem como chave primária o código do cliente ou produto que é sempre auto-incremento, o que nos permite sim adicionar dois clientes com mesmo nome por acidente. Porém temos como nos precaver disto. Um fato seria por exemplo adicionar na tabelas índices únicos. Esses índices, como o nome diz, devem ser únicos na tabela, ou seja, não podem ser repetidos.

Então uma das maneiras seria colocar o campo nome como campo único, assim como CPF. Outra maneira seria fazer a verificação ainda no momento do cadastro para não deixar o usuário chegar até o fim do cadastro atoa.


Um grande abraço !!!
[há +1 ano] - Responder
 

Eduardo Cavalheiro Vilaro
 Eai blz Rodrigo, cara admiro muito suas videos aulas e gostaria de uma saber como solucionar a questão no cadastro de um um Novo registro  Ex. O Código é gerado pelo sequence do banco de dados caso Cancele ele da um rollback, ou seja cria um furo na sequencia de códigos dificultando saber se este registro foi apagado ou foi cancelado ao ser criado. 
[há +1 ano] - Responder

 

[autor] Rodrigo Carreiro Mourão
Olá Amigo, em primeiro lugar obrigado!!!
 
Quanto ao GenID o que eu faço é o seguinte. Se o furo que você se refere é gerar um ID e depois cancelar sem gravar, use apenas em situações que tenha master Detail pois estas funções eu criei para poder ter o ID da chave master antes mesmo de gravar o detail !!  Então em cliente, produto, etc não precisa usá-lo ou use no BeforeApplyUpdates pois ai só será gerado se o usuário realmente gravar!!!
 



Abs !!!
[há +1 ano] - Responder
 

Rodrigo Purgato Bertelle
Boa dia, Rodrigo.
 
Olha eu aqui d novo como minhas dúvidas...
 
Rodrigo é o seguinte to desenvolvendo um projeto de locação de material para construção cívil, e cheguei no financeiro que pra mim é a pior parte..rss.. minha dúvida é a seguinte:
 
 Eu tenho as Contas a Pagar e a Receber certo e tenho o caixa. Oque seria melhor eu criar as tabelas uma Contas a Pagar e outra de Contas a Receber e apos as baixas dos títulos eu lanço na tabela de caixa, ou por exemplo eu crio uma unica tabela "Movimento" que apoós eu baixar o lançamento eu lanço no caixa. oq fazer, oque seria mais correto.
 
Entendeu oque eu quis dizer acima.
 
Obrigado pela sua atenção...
 
[há +1 ano] - Responder
 

[autor] Rodrigo Carreiro Mourão
Olá Rodrigo !!

Entendi perfietamente o que quer dizer e já passei por isso. Bem meu primeiro sistema, ainda em access (velhos tempos) eu tinha a seguinte estrutura:  Tabela de CAR, CAP, CARVcto, CAPVcto.
As tabelas de Contas a Pagar e Receber tinha a mesma estrutura. E as Tabelas de Contas a Pagar Vencimentos e Receber vencimentos (Parcelas das contas) também.

Com o tempo percebi que, para mim, isso não me atendia. Tinha coisa demais, então remodelei mei banco e hoje tenho: Lancamentos e Lancamentos Vencimentos. Na tabela lancamento coloca todas as contas a pagar e a receber e identifico com um flag C ou D. Ja na Tabela de Lancamentos Vencientos os Valores a serem pagaos uma vez que uma conta pode ter varias parcelas. As contas vencidas, vincendas e pagas ficam todas na tambem e de la extario o caixa. Com um select trago tudo pago e recebido hoje por exemplo e monto o caixa de hoje.

Bem isso tem me atendido e fica como uma dica !!

Abs !!!

[há +1 ano] - Responder
 

Rodrigo Purgato Bertelle
Bom dia, Rodrigo.
 
Quando será diponibilizada a próxima video Aula...
 
Obrigado.
[há +1 ano] - Responder

 

Edson José Dionisio
Olá Rodrigo,

eu estou desenvolvendo um sistema escolar para um curso de idiomas onde nele eu tenho a parte financeira, administrativa e a parte escolar propriament dita. algumas das tabelas são alunos, cursos, nivel (ex: básico 1, básico 2, etc) , horários e notas. Rodrigo, eu gostaria de saber como eu faço para na hora em que eu estiver inserindo um novo cadastro numa determinada turma e horário, eu visse a quantidade de alunos cadastrados naquele horário em questão e que quando eu chegasse ao limite de vagas naquele horário, o sistema mostrasse um aviso de que não tem mais vaga naquele horário. há a possibilidade disso?

desde já muito obrigado!Smile
[há +1 ano] - Responder
 

[autor] Rodrigo Carreiro Mourão
Olá Edson !!!

É difícil emitir um parecer sem conhecer o projeto como um todo, mas eu sempre parto do princípio das minhas vídeo aulas "Existe mil e uma maneiras de preparar Neston". Vou lhe mostrar uma maneira de preparar este seu Neston.

No momento de cadastar mais um aluno numa turma e horario execute um select mais ou menos assim:

Select count(*) from alunos where turma = A e horario = B

A Idéia e retonar a quantidade de alunos que estão nesta turma neste horário. Claro que o select não será na tabela de alunos, isso foi só para ilustrar. Essa quantidade você iria comparar com a numero máximo de alunos por turma.

Vale ai criar uma funcão no Delphi tipo:   function HaVaga(Turma, Horário: String): Boolean;

Você passara a turma e o horario e ele retornaria verdadeira se tiver vaga ou falso se nao tiver vaga !!!

Como falei, dar um parecer sem conhecer o projeto e complicado mas espero ter dado uma luz !!

abs !!!!
[há +1 ano] - Responder
 

[autor] Rodrigo Carreiro Mourão
Reenvio !!
[há +1 ano] - Responder
 



Publicidade
Curso Online
Autor
Rodrigo Carreiro Mourão

Consultor de TI especializado em Orientação e Objetos, Design Patterns e Gestão de Projetos. Instrutor certificado pela Borland e Delphi Product Certified. É sócio da RM Factory Soluções em TI e da Szeryng Traduções e Informática. Atua como Supervisor de TI do Grupo Editorial Nacional e é instrutor ...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
8   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03