MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Trancar final de relatório com linha em Z

    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Trancar final de relatório com linha em Z Empty [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  zcarloslopes em 26/11/2019, 14:42

    Boa tarde,

    Venho mais uma vez pedir a vossa ajuda.

    Tem como completar o espaço remanescente da última página de um relatório com uma linha, ou melhor 3 linhas em forma de Z. Isto é, 2 linhas horizontais, uma imediatamente a seguir ao último registo, e a outra no final do detalhe do relatório. A linha na diagonal irá unir as 2 linha horizontais nas extremidades opostas.

    Obrigado


    Última edição por zcarloslopes em 3/12/2019, 09:27, editado 1 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  DamascenoJr. em 27/11/2019, 00:20

    link de um artigo que trata do assunto, bastando pequena adaptação.
    usandoaccess.com.br/dicas/criando-linhas-em-relatorio.asp

    obs: caso não consiga visualizar o artigo completo, sugiro assinatura do site pois sem dúvida te servirá em muitos projetos sanando diversas dúvidas e te fazendo ganhar tempo no desenvolvimento de suas aplicações.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  zcarloslopes em 27/11/2019, 09:06

    Obrigado Ivan pela sugestão,

    Estive a investigar, mas não consigo adaptar o código para o meu propósito.

    A primeira dificuldade será ter apenas 2 linhas sobrepostas, ao invés da 23 linhas do código, ficando uma das linhas logo após o último registo e a outra no final do relatório.

    A segunda dificuldade (ainda maior) será colocar uma linha oblíqua que unisse as duas anteriores nas extremidades opostas, pois esta linha irá variar de cumprimento e inclinação de acordo com o nº de registos do relatório.

    Toda a ajuda será bem-vinda.

    Obrigado
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  zcarloslopes em 28/11/2019, 09:45

    Boa dia a todos,

    Em alternativa ao meu pedido inicial, poderia resolver o problema da forma seguinte:

    Criar uma imagem transparente com um "Z", e assim apenas teria que alterar a altura da imagem de acordo com o espaço vazio sobrante do relatório.

    Alguém pode ajudar com este código, como pego a altura deste espaço sobrante?

    Obrigado
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  zcarloslopes em 28/11/2019, 16:19

    Boa tarde a todos,

    Já quase consegui concretizar o meu propósito.

    Fiz o seguinte:

    Coloquei uma imagem com um "Z" no rodapé da página do relatório;
    Conto o nº de registos do relatório e coloco numa variável;
    Multiplico a variável pela altura que cada registo ocupa no relatório;
    Subtraio o resultado desta multiplicação à altura máxima por página do detalhe do relatório;
    Esta valor será a altura da minha imagem.

    Até aqui está tudo a funcionar direito.

    mas....

    O problema é que (raramente) um registo do relatório tem um nome mais comprido e acaba por ocupar duas linhas..., e nesse caso já não finciona.

    Peço agora ajuda para o seguinte:

    Tem como saber quantos registos de uma determinado txtBox de um relatório tem duas linhas?

    Obrigado
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  DamascenoJr. em 29/11/2019, 02:46

    O link do artigo que indiquei mostra como saber quantos registros foram possíveis de serem exibidos na página.

    Em resumo, no evento "Ao imprimir" da seção detalhe é possível ir contando quantos registros estão sendo colocados na página.

    Por exemplo, o total de registros normalmente na página é 5, mas ao fazer a contagem de registros (através da do evento "Ao imprimir") você detectou que só foram colocados 4 na página, isto é, logicamente um registro ocupou dois espaços.

    Partindo daí dá pra detectar o que você deseja para melhorar seu método.

    Você já fez muitos avanços. Parabéns. Very Happy


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  zcarloslopes em 29/11/2019, 10:03

    Obrigado mais uma vez pela ajuda,

    Entretanto resolvi o problema da contagem de registos com 2 (ou mais) linhas da seguinte forma:

    Coloquei uma txtBox invisível no detalhe do relatório:

    Esta txtBox irá ter o resultado da contagem de caracteres que indicam que houve quebra de linha.

    Esta é a função que usei:
    Código:
    Function StringCountOccurrences(strText As String, strFind As String, _
                                    Optional lngCompare As VbCompareMethod) As Long
    Dim lngPos As Long
    Dim lngTemp As Long
    Dim lngCount As Long
        If Len(strText) = 0 Then Exit Function
        If Len(strFind) = 0 Then Exit Function
        lngPos = 1
        Do
            lngPos = InStr(lngPos, strText, strFind, lngCompare)
            lngTemp = lngPos
            If lngPos > 0 Then
                lngCount = lngCount + 1
                lngPos = lngPos + Len(strFind)
            End If
        Loop Until lngPos = 0
        StringCountOccurrences = lngCount
    End Function
    O caracter procurado foi vbCrLf.

    Por cada vbCrLf encontrado tenho uma linha extra num determinado caracter.

    Entro com este valor nos cálculos para posicionar a imagem.

    Parece estar a funcionar direito, irei fazer mais uns testes, caso esteja tudo bem, colocarei aqui uma descrição mais detalhada do procedimento para quem tiver a mesma necessidade.

    Obrigado
    avatar
    zcarloslopes
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 295
    Registrado : 28/10/2010

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  zcarloslopes em 3/12/2019, 09:27

    Bom dia,

    Após alguns teste, tudo ficou como pretendido, pelo que, irei aqui resumir o processo para quem precisar.

    O processo tornou-se um pouco complicado, e deixo o desafio para uma resolução mais fácil.

    Processo:

    Requisitos:

    Imagem com um "Z" e fundo transparente (ImagemZ);
    Modo de dimensionamento do controlo da imagem: Esticar
    Detalhe do relatório: Ampliável - Sim; Redutível - Sim

    Inseri a imagem (ImagemZ) no rodapé (Página e relatório, testei em ambos) com a largura pretendida, pois esta será fixa.

    Calculei o espaço por página a partir do detalhe. (detalhe + rodapé)

    Calculo o espaço ocupado pelo detalhe, e o espaço sobrante será para a altura do rodapé (Me.Section(2).Height = xxx);

    Posiciono a imagem no início do rodapé (ImagemZ.Top = 0);

    Atribuo a altura à imagem (ImagemZ.Height = (detalhe + rodapé) - (Espaço ocupado pelo detalhe)

    Caso tenha outros controlos no rodapé, estes terão que ser reposicionados (Ex. Me.txtExemplo.Top = ImagemZ.Height + (espaço pretendido))

    Feito.

    Obrigado
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Trancar final de relatório com linha em Z Empty Re: [Resolvido]Trancar final de relatório com linha em Z

    Mensagem  DamascenoJr. em 4/12/2019, 21:22

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 9/8/2020, 12:35