Pular para o conteúdo principal

Cadastro de funções ADVPL



FWDirRemove( cDir, nType, lComplete, lKillFiles )

Função para remover diretórios, com a vantagem de remover somente o ultimo nível ou todo o caminho.

cDir                   Diretório a ser removido
lComplete          Remove todo o caminho (.T.) ou apenas o ultimo nível (.F.)
lKillFiles             Remove os arquivos antes de tentar remover o diretório




FWMakeDir( cDir, lShowMsg )

Função para criar diretório com seus subdiretórios, com a vantagem de criar todo o caminho.

cDir                    Diretório a ser criado
lShowMsg          Exibe ou não mensagem caso não consiga criar o diretório




FwNoAccent( cString )

Retira acentos de uma string

cString                 String a ser retirado os acentos

Exemplo:

cString := 'O avião não pôde aterrissar de manhã'
cString := FwNoAccent( cString )
// Retorna : 'O aviao nao pode aterrissar de manha'




FWGetSX5( cTable, cKey )

Função de retorno dos campos de uma tabela no SX5

cTable                  Tabela para pesquisa no SX5. Parâmetro obrigatório.
cKey                    Chave da tabela SX5. Parâmetro opcional.
                             Se não passar nada retorna todos os registros da tabela passada.

Retorna:
[1] X5_FILIAL
[2] X5_TABELA
[3] X5_CHAVE
[4] X5Descri()




FWEmpLoad( lAll )

Função que carrega as empresas que o usuário logado tem acesso.

lAll                        Se .T. retorna todas as empresas, se .F. retorna empresas que o usuário logado tem acesso

Retorna a[n][1] = Código da empresa
                a[n][2] = Nome da empresa
                a[n][3] = Código da filial
                a[n][4] = Nome da filial




FWEmpName( cEmp )

Função que retorna o nome da empresa

cEmp                    Código da empresa




FWFilName( cEmp, cFil )

Função que retorna o nome da filial

cEmp                    Código da empresa
cFil                        Código da filial




FWTabPref( cCampo )

Retorna o prefixo da tabela a partir do nome de um campo

cCampo               Nome do Campo

Exemplo:

cPref := FWTabPref( 'A1_COD'  )  // Retorna 'SA1'
cPref := FWTabPref( 'AA1_COD' )  // Retorna 'AA1'
cPref := FWTabPref( 'XPTO'    )  // Retorna ''




FWX2Nome( cTable )

Função que retorna a descrição de uma tabela no dicionário conforme idioma

cTable                  Tabela que se deseja obter a descrição

Exemplo:

cNome := FWX2Nome( "SA1" )




FWAliasInDic( cAlias )

Esta função Indica se um determinado alias esta presente no dicionário de dados

cAlias                   Alias da tabela do dicionário de dados




Function FWTimeStamp( nType, dDate, cTime )

Cria um timestamp

nType                   Tipo do timestamp
                                               1 - Formato aaaammddhhmmss
                                               2 - Formato dd/mm/aaaa-hh:mm:ss
                                               3 - Formato UTC aaaa-mm-ddThh:mm:ss-+Time Zone
dDate                   Data a ser usada. O padrão é a data atual
cTime                   Hora a ser usada. O padrão é a hora atual




FWTxt2Array( cString, nSize, lBreak )

Gerar array conforme string quebrando por linha respeitando a quebra de palavras

cString                 String a ser quebrada
nSize                     Tamanho máximo das strings a serem geradas
lBreak                  Respeita CRLF da string original

Exemplo
cString := 'Minha terra tem palmeiras, onde canta o sabia'

aString := FWTxt2Array( cString, 15)

/*
Retorna
[1] -> 'Minha terra'
[2] -> 'tem palmeiras,'
[3] -> 'onde canta o'
[4] -> 'sabia'
*/




FWVetByDic( aVetor, cTable, lItens, nCpoPos )

Função ordenar um vetor conforme o dicionário para uso em, por exemplo, em rotinas de MSExecAuto

aVetor                 Vetor a ser ordenado
cTable                  Referencia da tabela do Dicionário
lItens                    .T. é um vetor de itens / .F. não é um vetor de itens
nCpoPos             Posição da coluna onde está o nome do campo

Exemplo:

aVetor := {}
aAdd( aVetor, { 'A1_EST' , 'SP'                   , NIL } )
aAdd( aVetor, { 'A1_NOME', 'CLIENTE FULANO DE TAL', NIL } )
aAdd( aVetor, { 'A1_COD' , '000001'               , NIL } )

aVetor := FWVetByDic( aVetor, 'SA1' )

/*
// Retorna
{ 'A1_COD' , '000001'               , NIL }
{ 'A1_NOME', 'CLIENTE FULANO DE TAL', NIL }
{ 'A1_EST' , 'SP'                   , NIL }
*/


FONTE: http://efacildemais.blogspot.com.br

Postagens mais visitadas deste blog

REST Protheus Converter charset CP1252 para UTF8 com Header Accept UTF-8

O Protheus possui um tag que pode ser utilizada para conversão para UTF8 de forma transparente, basta enviar no header da requisição a TAG ACCEPT com charset=UTF-8, também pode-se adicionar o appllication/json. Accept : application/json; charset=UTF-8 ou Accept : charset=UTF-8 Isso ajuda pois não precisa mais utilizar as funções DecodeUTF8 e EncodeUT8 pois o próprio rest já vai fazer isso.

Recursividade Minha Linda! Estrutura Produtos Protheus SG1

Fato! Depois que você conhece recursividade em sua vida tudo fica mais leve (rss... ) a recursividade pode ser infinita (pode não ta!) se for infinita vai dar problema, não pode. Mas a recursividade nos ajuda a deixar nosso sistema mais flexível e dinâmico para montar uma série de regras de negócio. Hoje vou falar exatamente da SG1, tabela TOTVS Microsiga Protheus que é utilizada para montar a estrutura de um produto dentro PCP (Planejamento e Controle de Produção). Isso séria algo que a recursividade iria ajudar. Na SG1 temos o campos G1_COD (Pai) e G1_COMP (Filho). G1_COD->G1_COMP->G1_COD->G1_COMP->G1_COD->G1_COMP Seria assim o fluxo da informação. Sem mais delongas, abaixo vou deixar o script para MSSQL para apresentar esses dados. Inté! WITH ESTRUT( CODIGO, COD_PAI, COD_COMP, QTD, PERDA, DT_INI, DT_FIM ,TRT ,RECNO, NIVEL ) AS ( SELECT G1_COD PAI, G1_COD, G1_COMP, G1_QUANT, G1_PERDA, G1_INI, G1_FIM,G1_TRT,SG1.R_E_C_N_O_, 1 AS NIVEL FR