Olá a todos,
estou aprendendo a utilizar o sc ainda e, pra variar, tenho mil dúvidas. mas aqui só vai uma hahaha
To criando uma GRID Calendário que vai mostrar apenas os eventos do dia corrente…
como fazer??
Abraços,
Tiago
Olá a todos,
estou aprendendo a utilizar o sc ainda e, pra variar, tenho mil dúvidas. mas aqui só vai uma hahaha
To criando uma GRID Calendário que vai mostrar apenas os eventos do dia corrente…
como fazer??
Abraços,
Tiago
Tiago,
Pra fazer uma grid (app tipo Consulta) você tem que montar uma query (SQL), normalmente o SC já faz isso pro vc…
vc só precisa acrescentar uma cláusula WHERE ± assim
WHERE
data_do_evento = current_date // se seu banco for MySql ou Postgres
[]
Deu certo amigo!!
Muito obrigado pela dica…
Abraços,
Tiago
Eu segui esse exemplo (http://www.netmake.com.br/knowledge/article-42.html) para criar um controle de agenda. Funcionou… só que eu queria colocar o controle lincado com o login.
De modo que ele reconhecesse quem está logado e mostrasse agenda apenas de quem está logado.
Alguém conseguiu isso??
abraços,
Tiago
Tiago,
Basta você criar em tua tabela de usuários (se é que já não existe) e na tabela de agendas incllua o campo ID_USUARIO onde nesse campo vc grava a agenda de cada usuário. Assim na hora de logar, basta colocar no SELECT o ID_USUARIO.
Sei que resolveu o caso aqui mas acho que melhorei a condição.
veja bem, da forma que foi dita o calendário aparece os registro apenas do usuário… logo nao posso criar um agendamento que todos da empresa possam ver. Entao fiz assim:
criei 2 campos : 1 que pega o usuario e outro que seto como agendamento publico ou nao.
daí construi ums query com a seguinte where…
SELECT
id,
titulo,
descrição,
data_inicio,
hora_inicio,
data_fim,
hora_fim,
recorrencia,
periodo,
user,
publico
FROM
dbo.calendario
WHERE
(user = ‘[usr_login]’) OR / a primeira condição é pegar o usuario.
(publico <> ‘2’) // a segunda qui retorna apenas o evento que setei como publico caso o usuario logado seja diferente do que agendou…
lá nas configurações do form em SQL -> user = ‘[usr_login]’
no form publico esta como lookup manual Sim =1, Não =2. entao se vc colocar a data de seu aniversário todos vao ver e se vc colocar um agendamento particular só vc vai ver…
ache que é isso…
É o pessoal aqui tá evoluindo…
Mas existem outras formas mais complexa e eficazes, vejamos:
A reposta eu sei qual é, vou perguntar apenas para estimular o raciocínio. Imagine que o seu sistema seja multi-empresa (esse conceito é bastante amplo, uma vez que o conceito de empresa pode ser resumido a departamentos, setores, etc - então imagine que você tenha um sistema multi-setorial) e você tenha o seguinte cenário:
Usuário A (gerente geral) - acessa o calendário de toda a empresa;
Usuário B (gerente de RH) - acessa o calendário dele e de todos os usuários do RH;
Usuário C (Zé-Ruela) - só acessa o seu próprio calendário.
As soluções apresentadas acima não contemplam o cenário. Como resolver?
Forte abraço.
Aí ficou mais fácil,
Basta pegar o que o Jean Matos aprimorou, por sinal ficou excelente, e acrescentar mais filtros, baseado no caso de ser público ou não, pode ser acrescentados outras situações facilmente.
"
Enviado por: Jean Matos
« Online: Novembro 11, 2012, 05:46:31 pm »Inserir citação
Sei que resolveu o caso aqui mas acho que melhorei a condição.
veja bem, da forma que foi dita o calendário aparece os registro apenas do usuário… logo nao posso criar um agendamento que todos da empresa possam ver. Entao fiz assim:
criei 2 campos : 1 que pega o usuario e outro que seto como agendamento publico ou nao.
daí construi ums query com a seguinte where…
SELECT
id,
titulo,
descrição,
data_inicio,
hora_inicio,
data_fim,
hora_fim,
recorrencia,
periodo,
user,
publico
FROM
dbo.calendario
WHERE
(user = ‘[usr_login]’) OR / a primeira condição é pegar o usuario.
(publico <> ‘2’) // a segunda qui retorna apenas o evento que setei como publico caso o usuario logado seja diferente do que agendou…
lá nas configurações do form em SQL -> user = ‘[usr_login]’
no form publico esta como lookup manual Sim =1, Não =2. entao se vc colocar a data de seu aniversário todos vao ver e se vc colocar um agendamento particular só vc vai ver…
ache que é isso…"
joeltonsilva,
Ficou mais amplo, mas ainda não resolve totalmente… por exemplo: se ele for público para um determinado grupo de pessoas (gerentes, diretores e supervisores) e não for público para o resto. Neste caso você precisa criar grupos, dizer que tipos de mensagens esse grupos podem acessar e determinar quais os usuários podem ter acesso a esse ou aquele grupo criado.
Vá em frente que seu raciocínio está correto.
Boa tarde Pessoal
Ressucitando este topico.
Tentei realizar o filtro conforme mencionado com niveis hierarquico, Dir > Ger > Oper usando a macro sc_select_where(add) mas tudo pelo que app calendario nao suporta esta macro.
Alguem tem alguma dica , de acessar calendário com niveis superiores visualizando o niveis abaixo?
Ja tenho tabela com esta hierarquia.
Obrigado.
Att
André
Olha, posso estar enganado, mas com o calendário padrão do SC acho que não vai funcionar. Só se você usar a FullCalendar (que é o componente que o SC usa para o calendário) externamente. Aí você vai poder criar tua própria tabela de eventos e ter o controle que desejas.
Boa tarde
Entendi.
Realizei agora uma manobra dentro do clausula where do SQL e deu certo.
Algo mais ou menos assim
“user_visitante in (select login_rep from v_canal_vendas where login_ger=’[usr_login]’)
or user_visitante =’[usr_login]’”
Desta forma o representante acessa o calendário e ve suas agendas o cada gerente ve sua propria agenda e de seus representantes.
Como nestes 2 niveis deu certo, vou acrescentar os demais.
Abs
Att
Blz, que bom que resolveu.