Este é um post disponível para assinantes MVPVideo: 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
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!
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 !!!

Abs !!!
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 !!!

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!

É 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 !!!!
Curso(s):
Space do autor

download


8
0
