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]Alinhar ListBox a direita

    Compartilhe
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Alinhar ListBox a direita

    Mensagem  Assis em Ter 07 Maio 2013, 23:06

    Boa noite

    Neste exemplo o formulario tem uma listbox que na consulta que a alimenta já tem a formula para alinhar o campo "Vlr" á direita.

    Mas no formulario não alinha à direita.



    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Jungli em Qua 08 Maio 2013, 01:45

    Boa noite amigo Assis,

    em anexo o arquivo modificado.

    Só lembrando que o alinhamento ainda tem um bug, (não está funcionando com todas as fontes), ainda estou trabalhando nisto. Funciona perfeitamente com as fonte: consolas, você utilizá-la somente onde pretende usar o alinhamento, para não descaracterizar muito seu layout.

    espero ter ajudado,
    abraços
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Qua 08 Maio 2013, 11:29

    Bom dia
    Jungli

    Espero que se conseguir resolver o bug das fontes poste no forum.

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Sex 04 Abr 2014, 18:46

    Jungli

    Neste formulário.

    Será que dá para alinhar à " DIREITA " os campos Débito, Crédito e Saldo.

    Tenho win 8.1 64 e Office 2007 atualizado.

    Obrigada


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Ter 08 Abr 2014, 16:05

    Up


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    rdrck
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 983
    Registrado : 11/03/2014

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  rdrck em Ter 08 Abr 2014, 17:16

    Olá Assis,
    Em 2008 fiz um projeto com um colega meu para controle de procedimentos.
    Em um relatório queríamos justificar o texto do campo Andamentos.
    Ele achou (e estou usando até hoje) o seguinte código, para criar a função Justifica:

    Código:

    Function Justifica(lpzText, ControlText As Control, objReport As Report) As String

    Dim Carac As String, Newtext As String
    Dim Numspaces As Long, WidthSpace As Integer
    Dim WidthControl As Integer
    Dim i As Integer, Inicio As Integer
    Dim LastPos As Integer, PosSpace As Integer, PoscharBreak As Integer
    Dim FinalText As String, SpacesInStr As Integer
    Dim SizeText As Integer
    Dim POSI As Long, CI As Integer
    Dim NextCarac As String
    Dim N As Long

    'As próximas 4 linhas definem as propriedades de fontes do relatório com as
    'definições da caixa de texto que irá receber o texto justificado, pois as
    'dimensões do texto para cálculos são feitas através da propriedade TextWidth
    'do relatório

    objReport.FontName = ControlText.FontName
    objReport.FontSize = ControlText.FontSize
    objReport.FontBold = ControlText.FontBold
    objReport.FontItalic = ControlText.FontItalic
    'Obtém o tamanho da caixa de texto que irá receber o texto alinhado
    WidthControl = ControlText.Width
    'Obtém o tamanho de espaço na fonte atual
    WidthSpace = objReport.TextWidth(" ")
    'obtém o tamanho do texto a ser justificado
    SizeText = Len(lpzText)

    i = 1
    Inicio = 1
    POSI = 0
    Do While i < SizeText + 1
    Carac = Mid(lpzText, i, 1) 'extrai um caracter de cada vez
    Newtext = Newtext + Carac 'cria nova seqüência de caracteres
    Select Case Carac
    Case Chr(13) 'se o caracter for ENTER - final do parágrafo ...
    FinalText = FinalText + Left(Newtext, Len(Newtext) - 1) + Chr(13) + Chr(10)
    Newtext = ""
    i = i + 1
    LastPos = 0
    Inicio = i + 1
    Case " " 'se o caracter for ESPAÇO
    If objReport.TextWidth(Newtext) > WidthControl Then
    'Se a nova seqüência for maior que o controle que irá receber o texto,
    'refaz a nova seqüência para caber na caixa de texto
    Newtext = Mid(lpzText, Inicio, LastPos - Inicio)
    'obtém o número de espaços necessários, que deverão ser inseridos na nova
    'seqüência de texto
    Numspaces = Fix((WidthControl - objReport.TextWidth(Newtext)) / WidthSpace) - 1
    For N = 1 To Len(Newtext)
    'Calcula o número de espaços existentes na nova seqüência de texto
    Carac = Mid(Newtext, N, 1)
    If Carac = " " Then SpacesInStr = SpacesInStr + 1
    Next N
    POSI = 1
    CI = 1
    PoscharBreak = 0
    Do While CI < Numspaces
    'Insere espaços no texto nos espaços já existentes no mesmo
    Carac = Mid(Newtext, POSI, 1)
    If Carac = " " Then
    NextCarac = Mid(Newtext, POSI + 1, 1)
    If NextCarac <> " " Then
    Newtext = Mid(Newtext, 1, POSI) + String(1, " ") + Mid(Newtext, POSI + 1)
    POSI = POSI + 1
    CI = CI + 1
    End If
    PoscharBreak = PoscharBreak + 1
    If PoscharBreak = SpacesInStr Then
    PoscharBreak = 0
    POSI = 0
    End If
    End If
    If POSI < (SizeText + 1) Then
    POSI = POSI + 1
    Else
    POSI = 1
    End If
    Loop
    FinalText = FinalText + Newtext + Chr(13) + Chr(10)
    Newtext = ""
    i = LastPos
    LastPos = 0
    Inicio = i + 1
    Else
    LastPos = i
    End If
    End Select
    i = i + 1
    Loop
    Justifica = FinalText & Newtext

    Exit_Justifica:
    Exit Function

    Err_Justifica:
    Resume Exit_Justifica

    End Function


    No campo do relatório txtExtenso (Andamento), colocamos logo abaixo uma caixa de texto não acoplada de mesmo tamanho e, no evento Ao Formatar do Detalhe do relatório, colocamos:

    Private Sub Detalhe_Format(Cancel As Integer, FormatCount As Integer)
    Me![txtJust] = Justifica(Me![txtExtenso], Me![txtJust], Me)
    End Sub

    Isso serve para justificar o texto.
    De repente você pode adaptar para o alinhamento à direita.
    Espero que ajude.


    .................................................................................
    Meu Programa / OS:
    Access 2007 - Windows 7.
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Jungli em Ter 08 Abr 2014, 17:21

    Boa tarde mestre Assis, vou dar uma olhada e já lhe retorno.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Ter 08 Abr 2014, 17:23

    Obrigado

    Roderick Cantuária

    Mas o meu caso não é num relatório, mas sim numa caixa de listagem.


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Jungli em Ter 08 Abr 2014, 17:49

    Eis, o baita ...
    Anexos
    ExemploAvelino_old.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (103 Kb) Baixado 103 vez(es)
    avatar
    wsenna
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  wsenna em Ter 08 Abr 2014, 18:19

    Olá Assis, boa tarde.


    Amigão, veja esse exemplo:


    Abraços, WSenna
    Anexos
    Alinhamentos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (49 Kb) Baixado 145 vez(es)
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Ter 08 Abr 2014, 18:34

    Obrigado Jungli

    Perfeito

    Qual o truque para os campos "Data"

    Estava a ver de colucava o campo DataMovimento ao centro, assim  " jAlinhaQry(DataMovimentos,13,'standard',2)) " mas não resulta


    StrSQL = "Select idMovimento,DataMovimento AS Data,space(0) & Historico AS Movimento, Rubrica, Entidade, iif(valorDebito=0,'',jAlinhaQry(valorDebito,13,'standard',3)) As Débito, "
    StrSQL = StrSQL & "iif(valorcredito=0,'',jAlinhaQry(valorCredito,13,'standard',3)) AS Crédito, "
    StrSQL = StrSQL & "jAlinhaQry(SaldoLinha,15,'standard',3) as Saldo FROM " & tblTemp & " WHERE " & filtro & " ORDER BY dataMovimento;"


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Jungli em Ter 08 Abr 2014, 18:57

    Dim StrSQL As String
    StrSQL = "Select idMovimento,jAlinhaQry(DataMovimento,12,'dd/mm/yyyy',2) AS Data,space(0) & Historico AS Movimento, Rubrica, Entidade, iif(valorDebito=0,'',jAlinhaQry(valorDebito,13,'standard',3)) As Débito, "
    StrSQL = StrSQL & "iif(valorcredito=0,'',jAlinhaQry(valorCredito,13,'standard',3)) AS Crédito, "
    StrSQL = StrSQL & "jAlinhaQry(SaldoLinha,15,'standard',3) as Saldo FROM " & tblTemp & " WHERE " & filtro & " ORDER BY dataMovimento;"
    Me!Lista.RowSource = StrSQL


    Deverá observar o formato o campo.

    abs.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Ter 08 Abr 2014, 20:16

    Perfeito Jungli
    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Jungli em Ter 08 Abr 2014, 21:10

    Por nada. Precisando estamos aqui.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Sex 11 Abr 2014, 13:57

    Boa tarde
    Mestre Jungli

    Esta SQL é diferente da outra,

    Dim strSql As String
    strSql = "SELECT * FROM FiltroGeral  ORDER BY idmovimento;"
    Me.lst_1.RowSource = strSql
    End Sub

    E não estou a conseguir criar a SQL do campo "ValorMovimento" alinhado á direita.

    Obrigado

    PS- O autor deste form para filtrar dados é do Grande Piloto


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 639
    Registrado : 07/05/2010

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Jungli em Ter 15 Abr 2014, 00:08

    Boa noite mestre Assis,

    Desculpe a demora em responder, estou tendo problemas com a internet.

    Eis o banco alinhado.
    Anexos
    FiltroListBoxAssis_old.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (52 Kb) Baixado 109 vez(es)


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3014
    Registrado : 06/11/2009

    Re: [Resolvido]Alinhar ListBox a direita

    Mensagem  Assis em Ter 15 Abr 2014, 10:30

    Bom dia Jungli

    Obrigada


    .................................................................................
    *** Só sei que nada sei ***

    fcawarf
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 30/10/2013

    Alinhamento Campos ListBox

    Mensagem  fcawarf em Seg 03 Jul 2017, 13:34

    Wsenna, esse seu exemplo é justamente o que precisava, mas minha versão de access é 2013 e a função na consulta não funciona.
    Tem como adaptá-la para essa versão?

    Obs. O exemplo por código não consegui usar, como não tem identificação dos campos não sei como adaptar ao meu BD.

    Obrigado!

      Data/hora atual: Ter 21 Nov 2017, 17:31