Post has attachment
API opensource para geração de planilhas Excel via Advpl:

http://appsoft.com.br/?page_id=29

como posso enviar dados por uma requisição POST para um endereço especifico enviando varios parametros?

Estou usando a função HTTPPOST porem um dos meus parametros é um XML, e a função HTTPPOST envia os dados direto na URL da Request (o que é um tremendo erro, pois a URL possui um tamanho maximo de caracter, o correto seria enviar na Header)

Caros, caros, caros amigos da comunidade ADVPL é com muito prazer e satisfação que iremos, mais uma vez, compartilhar mais um pequeno conteúdo, que por sinal bem simples, que é o comando "do while endDo"  da linguagem ADVPL.


#include "totvs.ch"
//-----------------------------------------------------------------------
//1º Exemplo
/*
    Nesse exemplo estamos passando pelo 'while' 10 vez, sendo que 
    cada vez que passa é apresentado o valor de i, pela função alert(),
    que corresponde a vez que esta passando dentro do 'while'
    Obs: Lembrando que no while, diferentimente do 'for next', 
     i deve ser incrementado em +1 para cada passada.
*/
user function while01()
    local i := 1

   
    while i <= 10
         msgAlert(i)
         i++
    end
return


//-----------------------------------------------------------------------
//2º Exemplo
/*
    Nesse exemplo estamos passando pelo 'while' 20 vez, sendo que 
    em dois em dois, por causa do ( i + 2 ) cada vez que passa
    é apresentado o valor de i, somente os pares. Caso i seja 14 encerra 
    e sai do 'while' por causa do comando exit
*/
user function while02()
     local i := 1

   
      while i <= 20 
           msgAlert(i)
           if i = 15
               exit   
           endIf
           i := ( i + 2 )
       end
return


//-----------------------------------------------------------------------
//3º Exemplo
/*
    Nesse exemplo estamos passando pelo 'while' 10 vez, sendo que 
    de trás pra frente do 10 ao 1, por causa do ( i-- ) cada vez que passa
     é apresentado o valor de i. Caso i seja 5 ou 7 volta no 'while' e nao          mostra a mensagem com o numero corrente devido o comando loop
*/
user function while03() 
       local i := 10

       
       while i >= 1
             if( i == 5 .or. i == 7)
                   i--
                   loop
             endIf
             msgAlert(i)
             i-- 
         end
return


//--------------------------------------------------------------------- 
//4º Exemplo
/*
    Nesse exemplo temos dois 'while' sendo processado ao mesmo      
    tempo. Cada passada de i, j será apresentado 5 vezes. 
*/
user function while04()
        local i := 1
        local j := 1

         
         while i <= 5
              j := 1
             while j <= 5
                    msgAlert( "i = " + str(i) + "   j = " + str(j) )
                    j++
             end
             i++
         end
return

Caros, caros, caros amigos da comunidade ADVPL.
Estamos aqui mais uma vez para compartilhar pérolas,
isso... uma das várias pérolas para nosso dia a dia pra quem trabalha com ADVPL. 
E o que iremos compartilhar hoje é algo, novamente, bem simples, como utilizar de maneira simples o comando ' for next '.

#include "totvs.ch"
//-----------------------------------------------------------------------
//1º Exemplo
/*
    Nesse exemplo estamos passando pelo 'for' 10 vez, sendo que 
    cada vez que passa é apresentado o valor de i, pela função alert(),
     que corresponde  a vez que esta passando dentro do 'for' 
*/
user function testfor01()
    local i := 0

    for i := 1 to 10
         msgAlert(i)
     next
return
 
//-----------------------------------------------------------------------
//2º Exemplo
/*
    Nesse exemplo estamos passando pelo 'for' 20 vez, sendo que 
    em dois em dois, por causa do comando ( step 2 ) cada vez que
    passa é apresentado o valor de i, somente os pares. Caso i seja 14
    encerra e sai do 'for' através do comando exit
*/
user function tstFor02()
    local i            := 0
    local nIni     := 0 
    local nFim  := 20 

    for i := nIni to nFim step 2
         msgAlert(i)
         if i = 14
               exit   
         endIf
      next
return

//-----------------------------------------------------------------------
//3º Exemplo
/*
    Nesse exemplo estamos passando pelo 'for' 20 vez, sendo que 
    de trás pra frente do 20 ao 0, através do comando ( step -1 )
    cada vez que passa é apresentado o valor de i.
*/
user function tstFor03() 
    local i     := 0
    local nIni  := 0 
    local nFim  := 20
   
    for i := nFim to nIni step -1
          msgAlert(i)
    next
return
 

//-----------------------------------------------------------------------
//4º Exemplo
/*
    Nesse exemplo temos dois 'for' sendo processado ao mesmo tempo.
    Cada passada de i, j será passado e apresentado 5 vezes.
    Lembrando que a função str() converte número em string 
*/
user function tstFor04()
    local i       := 0
    local j               := 0
    local nIni_I     := 0 
    local nFim_I  := 15
    local nIni_J    := 0 
    local nFim_J  := 5
   
    for i:= nIni_I to nFim_I
        msgAlert("i = " + str(i))
        for j := nIni_J to nFim_J
            msgAlert( "i = " + str(i) + "   j = " + str(j) )
        next
    next
return

Bom dia a todos os integrantes da comunidade ADVPL.
É com muito prazer e satisfação que vou postar o primeiro conteúdo nessa comunidade. E o que iremos compartilhar hoje é algo bem simples como algumas funções utilizando o comando 'if()'.

#include "totvs.ch"

//-----------------------------------------------------------------------
//1º Exemplo
/*
Neste exemplo estamos apenas verificando se a variável nNumero é
igual a 25.
*/

user function testIf01()
    local nNumero := 25
   
    if( nNumero == 26 )
        aviso("Resultado","Sim. A variável ( nNumero ) é igual a 25",{'OK'})
    else
        aviso('Resultado','Não. A variável ( nNumero ) não é igual a 25', {OK'})
    endIf
return


//-----------------------------------------------------------------------
//2º Exemplo
/*
Neste exemplo estamos chamando dentro da função
testIf02() a função excute(nNumero)  passando como parâmetro
a variável nNumero com o valor de 25
 */

user function testIf02()
    local nNumero := 25
    execute(nNumero)
return

static function execute(nNumero)
    if( nNumero == 25 )
         aviso("Resultado","Sim. A variável ( nNumero ) é igual a 25",{'OK'})
    else
         aviso('Resultado','Não. A variável ( nNumero ) não é igual a 25',{'OK'})
    endIf
return


//-----------------------------------------------------------------------
//3º Exemplo
/*
Neste exemplo estamos chamando dentro da função
testIf03() a função excute(nNumero), só que agora diferente do segundo exemplo que a função excute(nNumero) não recebe nada de retorno, agora a função excute(nNumero) recebe um retorno do tipo lógico e atribui a variável lOk.
 */

user function testIf03()
    local nNumero := 25
    local lOk     := .f.

    lOk := execute(nNumero)
   
    if( lOk )
         aviso("Resultado","Sim. A variável ( nNumero ) é igual a 25",{'OK'})
    else
         aviso('Resultado','Não. A variável ( nNumero ) não é igual a 25',{'OK'})
    endIf
return

static function execute(nNumero)
    lRetorno := .f.
   
    if( nNumero == 26 )
        lRetorno := .t.
    else
        lRetorno := .f.
     endIf
return lRetorno

//Esta função abaixo tem o mesmo objetivo da função excute() acima
static function execute(nNumero)
    local lRetorno := ( nNumero == 26 )  // se nNumero for igual a 26 retorna .t.
return lRetorno
Wait while more posts are being loaded