MaximoAccess

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

Obrigado

Administração do MaximoAccess

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 : 210
    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)
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1086
    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  IvanJr. 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 : 210
    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 : 210
    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 : 210
    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
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1086
    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  IvanJr. 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 : 210
    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 : 210
    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
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1086
    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  IvanJr. 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.

    Conteúdo patrocinado

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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 14/12/2019, 23:22