Ir para conteúdo
Fórum Script Brasil
  • 0

ENTRE DATAS


Guest GASILVABH

Pergunta

Guest GASILVABH

Olá pessoal,

Estou novamente precisando da ajuda de vocês.

No meu BD eu tenho uma rotina que emite folhas de ponto beleza! estou incluindo no mesmo bd a escala de férias mensal. ta ficando uma jóia. Porém me deparei com a seguinte situação. Preciso que seja impresso na folha de ponto dos funcionários o período de férias e a mensagem "Férias regulamentares". Na folha de ponto fiz o seguinte:

O usuário do prograama escolhe o mês para imprimir as folhas de ponto a partir de um form (1 a 12) que abre o relatório

no relatório:

=SeImed(PartData("m";[inicio])=[mes];"DE " & [inicio] & "A ";SeImed(PartData("m";[Termino])=[mes];"DE " & [inicio] & " a ";"DE ____/_____/____ A ____/_____/_____"))

=SeImed(PartData("m";[inicio])=[mes];"FÉRIAS REGULAMENTARES";SeImed(PartData("m";[Termino])=[mes];"FÉRIAS REGULAMENTARES";""))

Funciona só que me esqueci que há casos onde o funcionário sai de férias por exemplo em 28/01/2008 e só retorna em 03/03/2008 como a função compara o [mes] com o [início] e o [término] o que fica entre as datas fica de fora neste caso o mês de fevereiro.

O que eu posso fazer comparar do [início] ao [termino] utilizando o [mes] que o usuário escolhe na hora de imprimir?

TENHO OS DADOS DOS FUNCIONARIOS

COM INICIO E TERMINO DAS FERIAS

O QUE EU PRECISO

QUANDO IMPRIMIR FOLHA DE PONTO DO MES "x"

QUEM TIVERT FERIAS MARCADAS NESTE MES"X" SAIA IMPRESSO O PERIODO DE [iNICIO] A [TERMINO]

QUEM NÃO TIVER FERIAS MARCADAS NESTE MES"X" SAIA IMPRESSO

"DE ____/_____/____ A ____/_____/_____"

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Você precisa marcar as folhas de ponto de saída de férias e as de retorno de férias para os períodos entre meses.

Você pode testar se o [mes] de entrada de férias estiver marcado e imprimir a data de entrada e de retorno de férias

e fazer a mesma coisa para o [mes] de retorno de férias. Os demais deverão ficar em branco, tal como você necessita.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

MEU PROBLEMA ESTA EM COMPARAR O [MES] ESCOLHIDO PELO USUÁRIO PARA IMPRIMIR AS FOLHAS DE PONTO COM AS DATAS DE [iNICIO] E [TERMINO]

EX. FUNCIONÁRIO DE FERIAS DE [28/01/2008] A [03/03/2008]

QUANDO O USUÁRIO IMPRIMIR AS FOLHAS DE PONTO DO [MES] DE JANEIRO, FEVEREIRO OU MARÇO DEVERÁ APARECER OPERÍODO PARA TODOS OS FUNCIONÁRIOS QUE ESTIVEREM DE FÉRIAS NAQUELE [MES] OS DEMAIS FICARIA EM BRANCO.

O FLUXO E MUITO GRANDE ENTÃO EU TENHO FUNCIONARIOS DE FERIAS TODO MES E EM MUITOS CASOS O PERÍODO DE FÉRIAS SE ESTENDE A DOIS OU TRES MESES COMO NO EXEMPLO ACIMA.

AS FOLHAS DE PONTO SÃO EMITIDAS PARA TODOS AO MESMO TEMPO E OS DADOS ESTÃO NUMA MESMA TABELA POR ISSO NÃO USEI UMA CONSULTA E SIMA UMA FORMULA NO PROPRIO RELATORIO

Link para o comentário
Compartilhar em outros sites

  • 0

Penso que você tem um campo inicioFerias e fimFerias o que teria de ser feito é em tempo de execução, ou seja pode ser usado a propriedade "ao formatar" ou "ao imprimir" do relatório e ir omparando data a data,

if me.suaData=>inicioFerias or me.suaData<=fimFerias then

me.suaEntrada.value="FERIAS"

end if

bom o raciocinio é esse, dai basta fazer as adequações, posso colocar resolvido?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest GASILVABH

DA MANEIRA QUE EU FIZ, COLOCANDO NO RELATÓRIO A FÓRMULA

=SeImed(PartData("m";[inicio])=[mes];"FÉRIAS REGULAMENTARES";SeImed(PartData("m";[Termino])=[mes];"FÉRIAS REGULAMENTARES";""))

FUNCIONA, PORÉM ATÉ O MÊS DE SETEMBRO, QUANDO PROSSIGO OUTUBRO, NOVEMBRO E DEZEMBRO, REPETE COMO SENDO JANEIRO, MESMO ALTERANDO AS CONFIGURAÇÕES DE DATA

Link para o comentário
Compartilhar em outros sites

  • 0
Guest GASILVABH

DESCULPE, NA VERDADE A FÓRMULA É A SEGUINTE

=SeImed(PartData("m";[inicio])<=[mes] E PartData("m";[Termino])>=[mes] E PartData("yyyy";[Termino])=[ano];"DE " & [inicio] & " A " & [Termino];"DE ____/_____/____ A ____/_____/_____")

sendo que [mes] e [ano] são fornecidos pelo usuário através de um formulário na hora de imprimir as folhas de ponto

que chama o relatório que é a folha de ponto do [mes] e [ano] escolhido contendo os dados dos funcionarios na parte superior(onde deve aparecer o período de férias se for o caso) e um sub-relatório com a grade do mes (dias da semana, sabado, domingo e feriados)

Link para o comentário
Compartilhar em outros sites

  • 0

Bom o exemplo que fiz é utilizando as datas como um todo no caso você tah fazendo por partes, leve em consideração que nem sempre o periodo de ferias será todo dentro de um mesmo mês, e o campo dia pode ser usado para incrementar uma variavel que guardará a data que deverá ser utiliza na comparação:

suaData=DATA(2008,01,me.seuCampodia)

if suaData=>inicioFerias or suaData<=fimFerias then

me.suaEntrada.value="FERIAS"

end if

Bom é isso ai!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...