Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marvazoler

Comando pos

Recommended Posts

Boa tarde, estou tentando separar so o primeiro nome de uma pessoa, tipo

 

MARCELO A DA SILVA B

 

um comando para separar o primeiro nome, marcelo, como eu faço isso no relatório

fiz teste no pos mas nada!!

 

 

RLReport1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer isso, terá que fazer um tratamento usando o evento beforeprint (considerando que seja quickreport). Você pode usar a função abaixo pra isso.

 

 

Function Explode(Texto, Separador : String) : TStrings;
var
    strItem       : String;
    ListaAuxUTILS : TStrings;
    NumCaracteres,
    TamanhoSeparador,
    I : Integer;
Begin
    Texto            := StringReplace(Texto, #9, ' ', [rfReplaceAll]);
    ListaAuxUTILS    := TStringList.Create;
    strItem          := '';
    NumCaracteres    := Length(Texto);
    TamanhoSeparador := Length(Separador);
    I                := 1;
    While I <= NumCaracteres Do
      Begin
        If (Copy(Texto,I,TamanhoSeparador) = Separador) or (I = NumCaracteres) Then
          Begin
            if (I = NumCaracteres) then strItem := strItem + Texto[I];
            ListaAuxUTILS.Add(trim(strItem));
            strItem := '';
            I := I + (TamanhoSeparador-1);
          end
        Else
            strItem := strItem + Texto[I];

        I := I + 1;
      End;
    Explode := ListaAuxUTILS;
end;

 

A função explode irá separar seus dados conforme a regra que usar para separar os campos.... digamos que vá usar isso pra separar pelo espaço em branco, você faria assim:

 

 

var ArrayAux  : TStrings;
begin
     ArrayAux  := Explode('MARCELO A DA SILVA B', ' ');
     //Pegando o primeiro valor da string passada na entrada
     ShowMessage(ArrayAux[0]);
end;

 

Ai tudo o que precisa fazer é programar no seu evento beforeprint do componente para chamar a função enviando o dado recebido na entrada e depois atribuir ao retorno desta função a informação desejada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.