Pular para o conteúdo principal

Postagens

Enviando e-mails usando ADVPL

Para enviar e-mail no Protheus, usando o ADVPL, primeiro configure os parâmetros seguintes: MV_RELSERV: smtp.seudominio.com.br MV_RELACNT: contato@seudominio.com.br MV_RELPSW: senha da conta (MV_RELACNT) Depois de configurar, para ver e copiar o fonte , clique aqui (Google Groups, link seguro).

Impressão com imagens no Protheus

Muitas vezes é necessário incluir uma imagem num relatório (uma logomarca por exemplo). Uma das maneiras de se fazer isto, é usar a classe TMSPRINTER() . O programa exemplo abaixo, ilustra bem como fazer. Este usa também a classe TFONT() (o tamanho do fonte leva o sinal de menos) : # include "PROTHEUS.CH" # include "RWMAKE.CH" user function fImprimeG() local oFont08 := tfont():New( 'Courier new' ,, -8, .t.),,; oFont09 := tfont():New( 'Courier new' ,, -9, .t.),,; oFont10 := tfont():New( 'Courier new' ,,-10, .t.) oPrint:=tmsprinter():new( "Impressao Grafica" ) oPrint:setportrait() oPrint:SetpaperSize(9) // PAPEL A4 if .not. oPrint:Setup() // MOSTRA JANELA DE CONFIGURAÇÃO DE IMPRESSAO msgalert( "IMPRESSAO CANCELADA." ) return nil endif // ESTE BLOCO PODE FICAR EM LOOP (DO WHILE, FOR..., ETC.) oPrint:StartPage() // oPrint:sayBitmap(linha, coluna, "C:\SUAPASTA\SUAIMAGEM.BMP", largura, al...

Criando Listbox no Protheus

Se você precisa criar uma list box, o ADVPL possui a classe tComboBox. O exemplo abaixo mostra seu funcionamento. Não esqueça de incluir a chamada da função em seu menu ( na imagem ). Segue o código: #include "rwmake.ch" user function fComboCli()   local aCodCli:={},;   cQuery,;   oCombo, oFont := tfont():new( "lucida console" ,,-11,.t.), oDiag1   cQuery := "SELECT A1_COD FROM SA1010 WHERE A1_NOME LIKE 'JOAO%'"   cQuery := changequery(cQuery)   dbusearea(.t., "TOPCONN" , tcgenqry(,,cQuery), "SA1TMP" , .f., .t.)   if .not. SA1TMP->( eof ())      SA1TMP->( dbgotop ())       do while .not. SA1TMP->(eof())         aadd(aCodCli, SA1TMP->A1_COD)         SA1TMP->( dbskip ())       enddo   else      msgalert( "Nenhum cliente encontrado para o criterio informado." )       return nil   endif   SA1TMP-...

Quando e quais tabelas customizadas SZ eu criei ?

Para saber, é simples. Você pode montar no Proteus (ou em sua intranet) uma tela que mostre o resultado da query abaixo: SELECT name, crdate FROM sysobjects WHERE xtype='U' AND name LIKE 'SZ%' ORDER BY crdate desc :)

Campos memo do Protheus com ASP e SQL Server

Se você trabalha com intranet e MS-SQL Server , acessando tabelas do Protheus via Web, já deve ter tido a necessidade de acessar campos tipo MEMO. O que ocorre é que apesar de você criar o campo como tipo MEMO, o Protheus (Configurador) cria este no SQL Server como tipo IMAGE. Se você armazenar a frase "Teste observacao", no momento que você mostrar em sua página, vai aparecer um bocado de interrogações. Isto porque a frase fica gravada como: 0x5465737465206F62736572766163616F2E. O conteúdo gravado no campo é binário. Para apresentá-lo, você pode usar a seguinte query (considerando que por exemplo uma tabela chamada SZT010 e um campo com o nome ZT_OBS): SELECT CONVERT (VARCHAR( 8000 ), CONVERT (BINARY( 8000 ), ZT_OBS )) AS cZTOBS FROM SZT010 WHERE ZT_DATA = '20100106' AND ZT_FILIAL = '02' Ou seja, quando você mostrar cZTOBS, a frase será mostrada normalmente. •  Quem viu este post, também viu:     Listar campos das tabelas   ...

SQL para Listar os campos das tabelas

Usando SQL para listar os campos das tabelas desejadas: Este script é prático caso você tenha necessidade de listar campos (e outras propriedades) de uma ou mais tabelas do Protheus.  Neste exemplo o script mostra os campos da SA1010: SELECT TABELAS.NAME, COLUNAS.NAME AS COLUNA, TIPOS.NAME AS TIPO, COLUNAS. LENGTH AS TAMANHO, COLUNAS.ISNULLABLE AS EH_NULO FROM sysobjects AS TABELAS , syscolumns AS COLUNAS , systypes AS TIPOS WHERE -- JOINS TABELAS.ID = COLUNAS.ID AND COLUNAS.USERTYPE = TIPOS.USERTYPE AND TABELAS.NAME = 'SA1010' •  Veja também: Usando ADVPL com SQL