- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Problemas a tentar escrever o conteúdo de um campo do tipo MEMO em relatório TREPORT
×
Linguagem de Programação ADVPL
Perguntas Problemas a tentar escrever o conteúdo de um campo do tipo MEMO em relatório TREPORT
- cintra_daniel
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 95
- Obrigados Recebidos: 0
11 anos 2 semanas atrás #18378
por cintra_daniel
Problemas a tentar escrever o conteúdo de um campo do tipo MEMO em relatório TREPORT foi criado por cintra_daniel
Boa Tarde pessoal!
Estou com um pouco de dificuldade de escrever o conteúdo de um campo do tipo MEMO em um relatório feito com TReport, porque quando o conteúdo do campo é pequeno e em uma linha só funciona legal, porém se o conteúdo for muito grande e com várias linhas ele corta.
Minha query que pega o conteúdo do campo de acordo com o código selecionado no momento:
_cQuery123 := "SELECT ISNULL(CONVERT(VARCHAR(1024),CONVERT(VARBINARY(1024),XLM_OBS)),'')"
_cQuery123 += " AS XLM_OBS FROM XLM010 WHERE D_E_L_E_T_ = '' AND XLM_COD = '"+Codigo+"'"
Aqui eu defino o valor da TRCELL para pegar o retorno da função:
oSection2:Cell("TRB->XLM_OBS"):SetValue(TransformaMemo((cTRB)->XLM_OBS))
Aqui está a função mencionada acima:
Static Function TransformaMemo(Memo)
Local cLinha := ""
For nX := 1 to MlCount(Memo,150)
cLinha += Alltrim(MemoLine(Memo,150,nX)) + " "
Next nX
Return cLinha
Alguém pode me ajudar?
Estou com um pouco de dificuldade de escrever o conteúdo de um campo do tipo MEMO em um relatório feito com TReport, porque quando o conteúdo do campo é pequeno e em uma linha só funciona legal, porém se o conteúdo for muito grande e com várias linhas ele corta.
Minha query que pega o conteúdo do campo de acordo com o código selecionado no momento:
_cQuery123 := "SELECT ISNULL(CONVERT(VARCHAR(1024),CONVERT(VARBINARY(1024),XLM_OBS)),'')"
_cQuery123 += " AS XLM_OBS FROM XLM010 WHERE D_E_L_E_T_ = '' AND XLM_COD = '"+Codigo+"'"
Aqui eu defino o valor da TRCELL para pegar o retorno da função:
oSection2:Cell("TRB->XLM_OBS"):SetValue(TransformaMemo((cTRB)->XLM_OBS))
Aqui está a função mencionada acima:
Static Function TransformaMemo(Memo)
Local cLinha := ""
For nX := 1 to MlCount(Memo,150)
cLinha += Alltrim(MemoLine(Memo,150,nX)) + " "
Next nX
Return cLinha
Alguém pode me ajudar?
Por favor Acessar ou Registrar para participar da conversa.
- clistenis
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 97
- Obrigados Recebidos: 0
11 anos 1 semana atrás #18423
por clistenis
Respondido por clistenis no tópico Problemas a tentar escrever o conteúdo de um campo do tipo MEMO em relatório TREPORT
Amigo Daniel boa tarde.
No TMSPrinter eu faço da seguinte forma:
nLin+=35
nLines := MLCount(_sObs)
for ix:=1 to nLines
oPrint:Say(nLin+=50, 150, MemoLine(_sObs,130,ix), oFont10)
next ix
Onde nLin é o cálculo das linhas do relatório.
Espero que ajude.
Abraços
No TMSPrinter eu faço da seguinte forma:
nLin+=35
nLines := MLCount(_sObs)
for ix:=1 to nLines
oPrint:Say(nLin+=50, 150, MemoLine(_sObs,130,ix), oFont10)
next ix
Onde nLin é o cálculo das linhas do relatório.
Espero que ajude.
Abraços
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Problemas a tentar escrever o conteúdo de um campo do tipo MEMO em relatório TREPORT
Tempo para a criação da página:0.084 segundos