Como que eu faço pra alinha um campo do tipo char em um Disp (Output). Por padrão ele sai alinhado a esquerda, mais eu queria alinha a direita. Como que poderia ser feito?
Meu amigo boa noite. estarei postando aqui um exemplo que utilizo há muito anos. Fique a vontade em mudar para o problema em específico. segue: Código: function fn-preencheCaracterAlinhaDireita returns character ( input c-texto as char, input i-tamanhofinal as int, input c-caracter as char ): def var c-destino as char no-undo. def var c-retorno as char no-undo. def var i-tamanho as int no-undo. def var i-x as int no-undo. assign i-tamanho = length( trim(c-texto ) ). do i-x = 1 to ( i-tamanhofinal - i-tamanho): assign c-destino = c-destino + c-caracter. end. assign c-retorno = (c-destino) + (c-texto). return c-retorno. end function. function fn-preencheCaracterAlinhaEsquerda returns character ( input c-texto as char, input i-tamanhofinal as int, input c-caracter as char ): def var c-destino as char no-undo. def var c-retorno as char no-undo. def var i-tamanho as int no-undo. def var i-x as int no-undo. assign i-tamanho = length( trim(c-texto ) ). do i-x = 1 to ( i-tamanhofinal - i-tamanho): assign c-destino = c-destino + c-caracter. end. assign c-retorno = (c-texto) + (c-destino). return c-retorno. end function. Segue exemplo de uso: Código: put fn-preencheCaracterAlinhaDireita( string(' '), 03, c-preenchimento ) format 'x(03)'.
Fiz algo bem parecido: Código: RUN adicionaEspaco (INPUT-OUTPUT cCampoRetornoA, INPUT 9). PROCEDURE adicionaEspaco. define INPUT-OUTPUT parameter cTexto AS CHAR no-undo. define input parameter inpTamanho as integer no-undo. DO WHILE LENGTH(cTexto) < inpTamanho. ASSIGN cTexto = " " + cTexto. END. END PROCEDURE. Achei que existia algo padrão do sistema.