PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Numero da Coluna no Alias TMP
Versão:
12.1.17
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário ELTON010 ELTON010 em 10/12/2019, 13:40 h
Local: SP  Registro: 29/07/2016  Postagens: 23
Boa tarde ,

Rapazeada me dá uma dica , eu fiz um pivot dinamico no SQL , e estou colocando em um programa advpl que vai disparar um email com os resultados desse pivot dinamico.

O problema é que os titulos da coluna são dinamicos tambem ,pois eles já fazem parte do resultado , vide trecho que monta a coluna no SQL .

declare @colunas_pivot as nvarchar(max), @comando_sql as nvarchar(max)
set @colunas_pivot =
stuff((
   select
     distinct
               ‘,‘ + quotename(SUBSTRING(D2_EMISSAO ,1,6))
        from SD2010
               WHERE CONVERT(DATE,D2_EMISSAO ,103) >= DATEADD(YEAR,-1,CONVERT(date, GETDATE(),103))
               ORDER by 1
        for xml path(‘‘)
    ), 1, 1, ‘‘)
print @colunas_pivot........

o valor no meu D2_EMISSAO vai variar de acordo com o GetDate() no where .

No advpl geralmente fazemos

TMP->Nome_coluna , como a minha coluna é dinamica eu consigo pegar o numero da coluna ao inves do nome ? tipo TMP->col1,



Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 10/12/2019, 15:23 h
Local: SP  Registro: 20/08/2010  Postagens: 532

Procure por FCount() e FieldPos()


Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 10/12/2019, 15:24 h
Local: SP  Registro: 20/08/2010  Postagens: 532
Procure por FCount() e FieldPos()

https://tdn.totvs.com/display/tec/FCount

https://tdn.totvs.com/display/tec/FieldPos

e você poderá trabalhar em conjunto com o laço for..next para montar o corpo do teu email.





com isso eu pego o cabeçalho da coluna , e pra mim pegar o valor ?
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário ELTON010 ELTON010 em 11/12/2019, 14:46 h
Local: SP  Registro: 29/07/2016  Postagens: 23
EMERSON.EN , mano vlw ... era isso mesmo

NEXT _nCount
   FOR _nCont := 11 TO (_cAlias)->(Fcount())
_cTab+=‘
‘+(_cAlias)->(FIELD(_nCont))+‘



com isso eu pego o cabeçalho da coluna , e pra mim pegar o valor ?
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário ELTON010 ELTON010 em 11/12/2019, 14:46 h
Local: SP  Registro: 29/07/2016  Postagens: 23
EMERSON.EN , mano vlw ... era isso mesmo

NEXT _nCount
   FOR _nCont := 11 TO (_cAlias)->(Fcount())
_cTab+=‘
‘+(_cAlias)->(FIELD(_nCont))+‘

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 11/12/2019, 16:34 h
Local: SP  Registro: 20/08/2010  Postagens: 532

nCount := (_cAlias)->(FCount())

for i := 1 to nCount
    // exibe o nome do campo
    cCampo := (_cAlias)->(Field(i))
    alert( cCampo )

    // exibe o conteúdo do campo
    // 1a forma
    alert( (_cAlias)->(FieldGet(i)) )

    // 2a forma
    alert( (_cAlias)->&(cCampo) )


next i


Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal