Escolar Documentos
Profissional Documentos
Cultura Documentos
ADVPL Funciones No Documentadas
ADVPL Funciones No Documentadas
Programa:
Versões:
Data de Inclusão: 25/04/2000
Países:
cGetFile ( ExpC1, ExpC2, ExpN1, ExpC3, ExpL1,
ExpN2 )
Exemplo:
dbOrderNickName(cApelido)
dbSetNickName(cIndex,)
Módulo:
Programa:
Versões:
Data de Inclusão:
16/02/2000
Países:
Módulo:
Programa:
Versões:
Data de Inclusão:
25/05/2000
Países:
Para habilitar ou desabilitar a relacao de parametros
nos relatorios
existem 2
maneiras:
Módulo:
Programa:
Versões:
Data de Inclusão:
09/06/2000
Países:
A melhor maneira de se criar novos indices, para
customizacoes no
sistema, eh usando uma nova feature disponivel apenas
no AP5, onde se
coloca no SINDEX, campo NICKNAME, o apelido pelo qual
desejamos chamar o
Indice.
Exemplo
:
O Objetivo quando foi feito isso, eh evitar que o
indice 10 (criado em
uma customizacao), passe a ser o indice 11 na proxima
versao obrigando a
a manutencao dos
Rdmakes.
DBOrderNickName(cNickName)
Módulo:
Programa:
Versões:
Data de Inclusão:
13/06/2000
Países:
Na Versao TopCOnnect eh possivel se utilizar filtros
SQL que sao
resolvidos unica e tao somente pelo
DBMS.
Exemplo de
utilizacao
:
Function
Teste()
Local
cFiltro
dbSelectArea("SX5")
Set Filter to
&cFilter
dbgotop()
Outro
Exemplo
:
dbSelectArea("SX5")
Módulo:
Programa:
Versões:
Data de Inclusão:
15/06/2000
Países:
A Funcao MayIUseCode tem o objetivo de reservar uma
palavra , ou seja
quando uma estacao reserva uma palavra, a outra nao
conseguirah usar.
- Volta para o
Menu
Exemplos de possiveis
usos
:
Nao deixar gravar 2 pedidos de venda com o mesmo
numero
Nao deixar gravar 2 produtos com o mesmo codigo,
melhor lugar a colocar
eh na validacao do produto. ( ATENCAO!! Verificar a
funcao FreeForUse()
para utilizacao da MayIUseCode na validacao do
SX3 ).
Campo
Codigo:
Campo
Memo:
Inicializador
Padrao:
IF(!INCLUI,MSMM(SA1->A1_CODTST),"")
_cTeste := M-
>A1_TESTE
_nTam :=
TamSX3("A1_TESTE")
_nTam1 :=
_nTam[1]
MSMM(_nTam1,,_cTeste,1,,,"SA1","A1_CODTST")
_nTam :=
TamSX3("A1_TESTE")
_nTam1 :=
_nTam[1]
MSMM(SA1-
>A1_TESTE,_nTam1,,_cTeste,1,,,"SA1","A1_CODTST")
_nRegto :=
Recno()
dbSelectArea("SYP")
dbSeek(xFilial("SYP")+SA1-
>A1_CODTST)
If
found()
While SYP->YP_CHAVE==SA1-
>A1_CODTST
Reclock("SYP",.F.)
dbDelete
MsUnlock()
dbSkip()
Enddo
Endif
dbSelectArea(_cAlias)
__Return()
Módulo:
Programa:
Versões:
Data de Inclusão:
07/11/2000
Países:
Extenso(nValor[,lQuantid][,nMoeda][,cPrefixo]
[,cIdioma][,lCent][,lFrac])
Objetivo:
Retornar valores em
extenso.
Pontos da
mudanca:
- Retornar o extenso numerico (quantidade ou valor)
em português,
espanhol ou inglês, mesmo sem utilizar o repositorio
do idioma
correspondente.
Para a
mudanca:
Parametros:
----------------------------
Parametros
novos
----------------------------
Exemplos:
Extenso(500.00)
= "QUINHENTOS
REAIS"
Extenso(500.00,.f.,2,,1)
= "QUINHENTOS
DOLARES"
Extenso(1999.78 ,.T.,2
)
Extenso(1999.78 ,.F.,1
)
Extenso(1999.78 ,.F.,1,,,.f.
)
= "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE
DOLLARS"
Extenso(1999.78 ,.F.,1,,"3",.t.,.t.
)
= "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE AND
78/100 DOLLARS"
Extenso(1999.78 ,.F.,1,,"2",.t.,.f.
)
= "UM MIL, NOVECIENTOS NOVENTA Y NUEVE DOLARES Y
SETENTA Y OCHO
CENTAVOS"
Extenso(1999.78 ,.F.,1,,"1",.t.,.f.
)
= "UM MIL, NOVECENTOS E NOVENTA E NOVE DOLARES E
SETENTA E OITO
CENTAVOS"
Extenso(0.85,.f.,1,,"3",.t.,.t.)
= "85/100
DOLLARS"
Extenso(0.85,.f.,1,,"3",.t.,.f.)
= "EIGHTY-FIVE
CENTS"
Extenso(2001,.f.,1,,"2",.t.,.f.)
= "DOS MIL Y UM
DOLARES"
Extenso(500.05,.f.,1,,"3",.t.,.f.)
Extenso(500.05,.f.,1,,"3",.t.,.t.)
Extenso(500.05,.f.,2,,"1",.t.,.t.)
Módulo:
Programa:
Versões:
Data de Inclusão:
09/11/2000
Países:
Para cálculo do do dígito do CGC é feito a somatoria
dos produtos dos 12
primeiros dígitos pela sua respectiva posiçÆo mais a
somatoria dos
produtos dos 13 primeiros dígitos pela sua respectiva
posiçÆo.
Obs. A posiçÆo dos dígitos é contada da direita para
a esquerda;
Após a 9ø posiçÆo o deve-se considerar os próximos
dígitos como
iniciando a partir do
2ø.
Exemplo
:
2 (12ø
dígito)
3 (13ø
dígito)
286/11 = 26 Resto
0
Módulo:
Programa:
Versões:
Data de Inclusão:
17/04/2001
Países:
Retorno de uma campo data com formatos diferentes
conforme
parametrizacao
desejada.
GravaData(ExpD1,ExpL1,ExpN1)
Parametros?
ExpD1 ?= Data a ser
convertida
Formato 1 ?=
ddmmaa
2 ?=
mmddaa
3 ?=
aaddmm
4 ?=
aammdd
5 ?=
ddmmaaaa
6 ?=
mmddaaaa
7 ?=
aaaaddmm
8 ?=
aaaammdd
Módulo:
Programa:
Versões:
Data de Inclusão:
18/04/2001
Países:
A Funcao FreeForUse tem o objetivo de reservar uma
palavra , ou seja
quando uma estacao reserva uma palavra, a outra nao
conseguirah usar.
Esta funcao ja esta preparada para utilizacao da
MayIUseCode diretamente
no SX3 ( validacao do
campo )
.
Sintaxe :
FreeForUse(cAlias,cChave)
cAlias - Alias do
arquivo
X3_CAMPO =
B1_COD
X3_VLDUSER = FreeForUse("SB1",M-
>B1_COD)
Módulo:
Programa:
Versões:
Data de Inclusão:
18/04/2001
Países:
A Funcao MayIUseCode tem o objetivo de reservar uma
palavra , ou seja
quando uma estacao reserva uma palavra, a outra nao
conseguirah usar.
- Volta para o
Menu
Exemplos de possiveis
usos
:
Nao deixar gravar 2 pedidos de venda com o mesmo
numero
Nao deixar gravar 2 produtos com o mesmo codigo,
melhor lugar a colocar
eh na validacao do produto. ( ATENCAO!! Verificar a
funcao FreeForUse()
para utilizacao da MayIUseCode na validacao do
SX3 ).
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SX1 - Dicionário de
Perguntas
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SX2 - Dicionário de
Arquivos
1. X2_CHAVE Prefixo da
tabela.
2. X2_PATH Caminho da localizaçao da
tabela.
3. X2_ARQUIVO Nome como o qual o arquivo é
encontrado no caminho
especificado.
4. X2_NOMEPOR Descriçao sumária da tabela, em
português.
5. X2_NOMESPA Descriçao sumária da tabela, em
espanhol.
6. X2_NOMEENG Descriçao sumária da tabela, em
espanhol.
7. X2_DELET Controle interno do sistema, quando
as linhas
excluídas. Este campo näo está mais sendo
utilizado.
8. X2_MODO Modo de compartilhamento entre
filiais, sendo: C =
compartilhado e E =
exclusivo.
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SX3 - Dicionário de
Campos
1. X3_ARQUIVO Prefixo da
tabela.
2. X3_ORDEM Ordem de apresentaçao da
coluna.
3. X3_CAMPO Nome da coluna na
tabela.
4. X3_TIPO Tipo de dado armazenado pela coluna,
sendo: C para
caracter, D para data, N para número e M para
memorando. Observaçao : No
caso de campos do Tipo M (Memorando), o contexto do
campo (X3_CONTEXT)
deve ser V
(Virtual)
5. X3_TAMANHO Tamanho do campo. No caso dos números
deve considerar o
tamanho total, incluindo o ponto e as casas
decimais.
6. X3_DEC Quantidade de casas decimais do
campo.Somente para
variáveis do tipo
número.
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SX5 - Dicionário de
Tabelas
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SX6 - Dicionário de
Parâmetros
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SX7 - Dicionário de
Gatilhos
Módulo:
Programa: ATUSX
Versões:
Data de Inclusão:
14/01/2000
Países:
SXB - Dicionário de
Pesquisas
Módulo:
Programa: SERIAL
Versões:
Data de Inclusão:
29/11/2000
Países:
Porta
Serial
============
cTexto :=
SPACE(50)
*/
nHandle :=
LoadLibrary("SERIAL.DLL")
MsOpenPort(nHandle,"COM1:9600,n,8,1")
- Porta
Serial
- Velocida de transmissao em
bps
- Paridade
s/n
- Quantidade de bits de
dados
- Bits de
parada
*/
MsWrite(nHandle,"Comandos a serem
enviados")
/* Envia informacoes para a
porta
*/
MSRead(nHandle,cTexto)
/* Le informacoes da porta e coloca na variavel
informada no segundo
parametro (cTexto no
exemplo)
*/
MsClosePort(nHandle)
/* Fecha a porta
serial
*/
FreeLibrary(nHandle)
Módulo:
Programa: SIGAAUT
Versões:
Data de Inclusão:
11/10/2000
Países:
1)
Objetivo
:
2)
Aplicacao:
4)
Procedimento:
2§ Direto do
sistema
1§)Procedimento utilizando em
JOB
----------------------------------
Para a utilizacao da rotina automatica em JOB nao
utilizar a funçao
MSExecAuto mas sim direto o nome da
funcao.
Exemplo:
Mata010(aProduto,nOpc) // utilizando em
JOB
2§)Procedimentos utilizando
MSExecAuto
-------------------------------------
Exemplo:
MSExecAuto({|x,y| mata010(x,y)},aProduto,3) //
utilizando em
aplicacao
normal.
Modelos de Rotinas
Automáticas:
-------------------------------
1§Modelo
--------
MATA682(aRotAuto)--Apontamento de Horas
Improdutivas
QADA020(aRotAuto,nOpc)--Cadastro de Check
List
QIEA030(aRotAuto)--Programa de atualizacao de
Unidades de Medida
Parametros:
-----------
NIL - parametro
reservado
Exemplo:
User Function
IncProd()
Local aRotAuto :=
{}
Local nOpc := 3 //
inclusao
MSExecAuto({|x,y|
mata010(x,y)},aProduto,nOpc)
If
lMsErroAuto
DisarmTransaction()
break
EndIf
End
Transaction
If
lMsErroAuto
/
*
*/
Mostraerro()
Return .f
.
EndIf
Return .t
.
2§MODELO
--------
CONA050(lLanc,xAutoCab,xAutoItens)*- Lancamentos
Contabeis
MATA100(xAutoCab,xAutoItens,nOpc103)-Entrada de Notas
Fiscais de Compra
MATA102(xAutoCab,xAutoItens,nOpc)-Remito de Entrada
de Materiais
(Compras)
MATA103(xAutoCab,xAutoItens,nOpc,lWhenGet)**- Notas
Fiscais de Entrada
MATA110(xAutoCab,xAutoItens, nOpc)-Solicitacao de
Compra
MATA120(nFuncao,xAutoCab,xAutoItens,nOpcAuto)***-
Pedidos de Compra
MATA140(xAutoCab,xAutoItens,nOpc)-Digitacao das Notas
Fiscais de Entrada
sem os dados
Fiscais
MATA150(xAutoCab,xAutoItens,nOpc)-Rotina de
atualizacao manual das
cotacoes de
compra
MATA241(xAutoCab,xAutoItens)-Programa de
Movimentacoes Internas
(Requisicoes/Devolucoes)
MATA265(xAutoCab,xAutoItens,nOpc)-Distribuicao de
Produtos.
MATA410(xAutoCab,xAutoItens,nOpc)-Programa de
atualizacao de Pedidos de
Venda
MATA415(xAutoCab,xAutoItens,nOpc)-Rotina de
atualizacao dos Orcamentos
de
venda
MATA920(xAutoCab,xAutoItens,nOpc)-SAIDA de Notas
Fiscais de Venda Manual
TMKA061(xAutoCab,xAutoItens,nOpc)-Gerador de
Listas
CFGX016(xAutoCab,xAutoItens)-Manutencao do arquivo de
tabelas do sistema
FINA070(xAutoCab,nOpc)-Programa de Baixa de Titulos a
Receber
FINA080(xAutoCab,nOpc)-Programa de Baixa de Titulos a
Pagar
MATA266(aAutoItens)-Programa de Transferencia de
Material para Expedicao
Parametros:
NIL - parametro
reservado
Exemplo:
User Function
IncPed()
Local aCabPV :=
{}
Local aItemPV1:=
{}
Local aItemPV2:=
{}
Local nOpc := 3 //
inclusao
Private
lMsHelpAuto := .t
.
Private
lMsErroAuto := .f
.
Begin
Transaction
//Cabecalho
{"C5_LIBEROK","S" ,Nil}} //
Liberacao Total
//Items
MSExecAuto({|x,y,z|Mata410(x,y,z)},aCabPv,
{aItemPV1,aItemPV2},nOpc)
If
lMsErroAuto
DisarmTransaction()
break
EndIf
End
Transaction
If
lMsErroAuto
/
*
*/
Mostraerro()
Return .f
.
EndIf
Return .t
.
Módulo:
Programa: SIGACFG
Versões: 609
Data de Inclusão:
07/02/2002
Países: *
No SIGACFG na opcao "Reposit. Imagens" (CFGX012)
possivel
incluir/alterar/excluir imagens nos formatos acima
que sao armazenados
nos arquivos SIGAADV.BMD SIGAADV.BMI
SIGAADV.BMR
Apos cadastrar as imagens na rotina acima, possivel
obter as imagens
atraves do exemplo
abaixo
//
//
Exemplo
//
#include
"protheus.ch"
USER FUNCTION
TesteImg()
Local
oBmp
oBmp:LoadBmp(cImage)
Return
Nil
Módulo: AP5
Programa:
Versões:
Data de Inclusão:
14/01/2000
Países:
Funçäo : AmIIn Data
: 09/06/99
Descriçäo : Verifica se a rotina selecionada esta
sendo chamada de
maquina com licenca de uso para o modulo de
origem.
Sintaxe :
AMIIn(nMD01,...nMD20)
+----------------------------------------------------
--+
| Lista de Módulos do
Advanced
|
+----+---------
+---------------------------------------+
| N§ | Módulo |
Descriçäo
|
+----+---------
+---------------------------------------+
| 01 | SIGAATF | Ativo
Fixo
|
| 02 | SIGACOM |
Compras
|
| 03 | SIGACON |
Contabilidade
|
| 04 | SIGAEST |
Estoque/Custos
|
| 05 | SIGAFAT |
Faturamento
|
| 06 | SIGAFIN |
Financeiro
|
| 07 | SIGAGPE | Gestäo de
Pessoal |
| 08 | SIGAFAS | Faturamento de
Serviço |
| 09 | SIGAFIS | Livros
Fiscais
|
| 10 | SIGAPCP | Planejamento e Controle de
Produçäo |
| 11 | SIGAVEI |
Veiculos
|
| 12 | SIGALOJA| Controle de
Lojas |
| 13 | SIGATMK |
Telemarketing
|
| 14 | SIGAOFI |
Oficina
|
| 15 | SIGARPM | Gerador de
Relatorios |
| 16 | SIGAPON | Ponto
Eletronico
|
| 17 | SIGAEIC | Controle de
Importaçäo |
| 18 | SIGAGRH | Gestäo de Recursos
Humanos |
| 19 | SIGAMNT | ManutençÆo
Industrial |
| 20 | SIGARSP | Recrutamento e Seleçäo
Pessoal |
| 21 | SIGAQIE | InspeçÆo de
Entregas |
| 22 | SIGAQMT |
Metrologia
|
| 23 | SIGAFRT | Front
Loja
|
| 24 | SIGAQDO | Controle de
Documentos |
| 25 | SIGAQIP | InspeçÆo de
Processos |
| 26 | SIGATRM |
Treinamento
|
| 27 | SIGAEIF | ImportaçÆo -
Financeiro |
| 28 | SIGATEC | Assistência
Técnica |
| 29 | SIGAEEC | Easy Export
Control |
| 30 | SIGAEFF | Easy
Financing
|
| 31 | SIGAECO | Easy
Accounting
|
| 32 | SIGAAFV | Administtraçäo de Força de
Vendas |
| 33 | SIGAPLS | Controle de Planos de
Saúde |
| 34 | SIGACTB | Contabilidade
Gerencial |
+ .. | .......
| .....................................
|
| 44 | SIGAESP |
Específicos
|
| 45 | SIGAESP1| Específicos
II |
+----+---------
+---------------------------------------+
Módulo: AP5
Programa: AP5MAIL
Versões:
Data de Inclusão:
07/06/2000
Países:
!!! Eh necessário utilizar o arquivo de include
'Ap5Mail.ch'.
=> Email de
origem.
=>
Destinatario.
=> Opcional.
Copia.
=> Opcional. Copia
oculta.
=>
Assunto.
=> Corpo da
mensagem.
=> Parametro opcional que so eh utilizado quando
eh
necessario enviar um email atraves de um
servidor
remoto. Ver conexao
RPC
OBS
:
CC "Conat1@.....", "Conta2@.......",
"Conta3@....." ;
BCC "Conat7@.....", "Conta8@.......",
"Conta3@......"
Exemplo
pratico
:
#include
'Ap5Mail.ch'
#include
'Protheu.ch'
Function
MandaEmail()
Local cServer :=
'smtp.microsiga.com.br'
Local cAccount :=
'MinhaConta'
Local cPassword :=
'Minhasenha'
Local aLista :=
{}
Local nI :=
1
Local cMensagem :=
''
Local
cTos
cMensagem := 'Colegas' +
CRLF
cMensagem += '' +
CRLF
cMensagem += '' +
CRLF
cMensagem += 'Obrigado' +
CRLF
cMensagem += '' +
CRLF
cMensagem += '' +
CRLF
cMensagem +=
'Ramalho'
Aadd( aLista,
'Conta1@microsiga.com.br'
)
Aadd( aLista,
'Conta2@microsiga.com.br'
)
Aadd( aLista,
'Conta3@microsiga.com.br'
)
Aadd( aLista,
'Conta4@microsiga.com.br'
)
Aadd( aLista,
'Conta5@microsiga.com.br'
)
Aadd( aLista,
'Conta6@microsiga.com.br'
)
DISCONNECT SMTP
SERVER
Return
Exemplo
:
CC
"Conat1@.....;Conta2@.......;Conta3@....."
;
BCC
"Conat7@....;Conta8@.......;Conta3@....."
Exemplo
pratico
:
#include
'Ap5Mail.ch'
#include
'Protheu.ch'
Function
MandaEmail()
Local cServer :=
'smtp.microsiga.com.br'
Local cAccount :=
'MinhaConta'
Local cPassword :=
'Minhasenha'
Local aLista :=
{}
Local nI :=
1
Local cMensagem :=
''
Local
cTos
cMensagem := 'Colegas' +
CRLF
cMensagem += '' +
CRLF
cMensagem += '' +
CRLF
cMensagem += 'Obrigado' +
CRLF
cMensagem += '' +
CRLF
cMensagem += '' +
CRLF
cMensagem +=
'Ramalho'
Aadd( aLista,
'Conta1@microsiga.com.br'
)
Aadd( aLista,
'Conta2@microsiga.com.br'
)
Aadd( aLista,
'Conta3@microsiga.com.br'
)
Aadd( aLista,
'Conta4@microsiga.com.br'
)
Aadd( aLista,
'Conta5@microsiga.com.br'
)
Aadd( aLista,
'Conta6@microsiga.com.br'
)
cTos :=
""
For nI:=1 To
Len( aLista
)
cTos += aLista[nI]
+";"
Next
DISCONNECT SMTP
SERVER
Return
Módulo: AP5
Programa: AP5MAIL
Versões:
Data de Inclusão:
13/09/2000
Países:
--------------------------- A T E N C A O
------------------------------
-----------------------------------------------------
-------------------
Ex
:
User Function
IXSENDMAIL()
Local lOk := .F
.
Local cErro :=
''
If
( lOk
)
If ( !
lOk
)
EndIf
If ( !
lOk
)
GET MAIL ERROR
cErro
MsgAlert( cErro, 'Erro durante a
desconexao' )
EndIf
Else
EndIf
- Anexar
arquivos
Ex
:
- Formato das
mensagens.
Ex
:
Módulo: AP5
Programa: GENERIC
Versões:
Data de Inclusão:
23/03/2001
Países:
Ex.
Módulo: AP5
Programa: IMPRESS
Versões:
Data de Inclusão:
01/02/2000
Países:
Para capturar uma impressora que esta conectada na
rede para a LPTx:
* no prompt do DOS digitar comando "NET USE LPTx \\
[servidor]\[nome de
impressora na
rede]"
Módulo: AP5IDE
Programa: DIVERS.
Versões:
Data de Inclusão:
12/01/2000
Países:
No AP5 IDE, existem alguns comandos que por näo se
encontram disponíveis
nos menus ou na barra de ferramentas, näo säo
conhecidos. Tais comandos
säo acionados através de teclas de atalho, seguindo o
padräo utilizado
por outros editores de
texto:
Módulo: SIGAEST
Programa: DIVERS.
Versões:
Data de Inclusão:
16/03/2000
Países:
Para se realizar a explosÆo de uma estrutura
cadastrada no SG1 pode-se
utilizar as seguintes funçäes em
RDMakes:
**ESTRUT2(cProduto, nQuantidade, cAliasTRB,
cArquivoTRB)
*Parametros:
**ENDESTRUT2(cAliasTRB,
cArquivoTRB)
*Parametros:
FUNCAO GETNEWPAR()
O objetivo da funçao GetNewPar() é ler um parâmetro
(identica a GetMv()),
porém tratando um possível default no caso de o mesmo nao
existir. É
muito utilizada quando da necessidade de se criar algum
parâmetro
específico para um usuário ou quando for criando algum
parâmetro no meio
de uma versao.
Exemplos:
dLei102 := GetNewPar("MV_DATCIAP",ctod("01/01/2001"))
If GetNewPar('MV_DIFSEMP','N')=='S'
lImpEmp := (Aviso('DIFSALDO','Imprime
Diferencas de Empenhos/Reservas? (Padrao=Nao)',
{'Nao','Sim'})==2)
EndIf
c_Codabar
(nRow,nCol,cCode,oPrint,Color,lHorz,nWidth,nHeigth)
c_Code128
(nRow,nCol,cCode,oPrint,cMode,Color,lHorz,nWidth,nHeigth)
c_Code3_9
(nRow,nCol,cCode,oPrint,lCheck,Color,lHorz,nWidth,nHeigth)
c_Sup5
(nRow,nCol,cCode,oPrint,Color,lHorz,nWidth,nHeigth,lBanner,
cFont)
c_UPCA (nRow,nCol,cCode,oPrint,Color,lHorz,nWidth,nHeigth)
c_ean13 (nRow,nCol,cCode,oPrint,Color,lHorz,nWidth,nHeigth)
c_ean8 (nRow,nCol,cCode,oPrint,Color,lHorz,nWidth,nHeigth)
c_ind25
(nRow,nCol,cCode,oPrint,lCheck,Color,lHorz,nWidth,nHeigth)
c_int25
(nRow,nCol,cCode,oPrint,lCheck,Color,lHorz,nWidth,nHeigth)
c_mat25
(nRow,nCol,cCode,oPrint,lCheck,Color,lHorz,nWidth,nHeigth)
Exemplo:
oPrt := ReturnPrtObj()
c_ean13(100,100,"7896934403870",oPrt)
563
Em
um programa ADVPL podemos utilizar QUERY's que irao acessar
o Banco de
Dados diretamente, existem funçoes específicas para
podermos montar e
executar a Query, sao elas:
- TCQUERY() define a Query propriamente dita.
- TCSETFIELD () define o tipo das colunas a serem
consideradas na Query.
- CHANGEQUERY() transforma em sintaxe SQL Server definida
na expressao
convertida de acordo com o Banco de Dados utilizado.
- SQLFOLDER() converte a expressao de um índice xBase em um
índice SQL.
- RETSQLNAME() devolve o nome físico do Banco de Dados
utilizado.
MULTSTR()
Funçao .....: MULTSTR( cValor1 , cValor2 )
Autor ......: Jùlio Wittwer
Parâmetros .: cValor1 / cValor2 : String's numéricas a
serem
multiplicadas
Retorno ....: String numérica correspondente à
multiplicaçao das strings
...
cString1 := "10254001425"
cString2 := "52102555410"
cResult := MULTSTR(cString1,cString2) //
"534259677420281459250"
...
cString1 := "102540"
cString2 := "521478"
cSoma := SOMASTR(cString1,cString2) // "624018"
Sintaxe:
LJDIRECT(<cPath>,[lDrive])
Descricao :
Valida o caminho <cPath>, caso o diretorio nao exista sera
criado.Para
que seja possivel a criacao do diretorio e necessario que:
Parametros:
Retorno :
.T. - O diretorio existe ou foi criado corretamente
.F. - Nao foi possive criar o diretorio, neste caso
apresentara um help
de campo (NOMAKEDIR).
Exemplo:
Prog1.
...
...
Local cDir:="C:\DIR1\DIR2\DIR3"
If !MsSeek(xFilial()+SD1->D1_COD+SD1->D1_LOCAL)
CriaSB2(SD1->D1_COD,SD1->D1_LOCAL)
EndIf
lRet :=
(MsgYesNo(OemToAnsi(cLinha1+cLinha2),OemToAnsi(STR0078)+cPr
oduto)) //"Aten‡„o - "
If ( __lSX8 )
ConfirmSx8()
EndIf
AllTrim(FunName()) //Origem
Return (EnchoiceBar(oDlg,bOK,bcancel,,aButtonsAtu))
MaWndBrowse(0,0,300,600,STR0123,"SF2",,aRotina,,,,.T.,)
EndIf
If SoftLock("SF2")
MsUnLockAll()
HasEmail()
AltSenha()
XCalcEst() ????
LeLog(@cStatus,@cUsuarioI,@cUsuarioA,@cDataI,@cDataA,cTipo)
.
ft_fUse()
ft_fGoTop()
ft_fSkip()
ft_fEOF()
ft_fReadLn()
ft_pFlush()
A Função HeadProva
Este função cria o cabeçalho da contabilização. É tratada de forma diferenciada para os
módulos SIGACON e SIGACTB.
Sintaxe:
nHdlPrv := HeadProva(cLoteAtf, cNomProg, Substr(cUsuario,7,6), @arquivo, .T.)
Onde:
NHdlPrv -> Variável que conterá o num. (Handle) do arquivo (.LAN) criado.
cLoteAtf -> Código do lote do módulo (Ex.: Ativo Fixo: “8866”)
cNomProg -> Nome do Programa (Ex.: “ATFA060”)
cUsuario -> Usuário arquivo: nome do arquivo (Ex.: cArquivo := ‘ ‘)
A função DetProva()
Em primeiro lugar, deve-se estar posicionado no registro, que contém o valor à ser
contabilizado
Sintaxe:
ExpN1 := DetProva(ExpN2,ExpC1,ExpC2,ExpC3)
ExpN1 -> Valor Total da Contabilização
ExpN2 -> Handle retornado da função anterior
ExpC1 -> Código do Lançamento Padrão
ExpC2 -> Nome da rotina Geradora
ExpC3 -> Lançamento Padrão
A função RodaProva()
Esta função irá cria a finalização da contabilização.
Sintaxe:
RodaProva(ExpN1, ExpN2)
ExpN1 -> Handle retornado da função anterior
ExpN2 -> Valor Total da contabililização
No Final, ou seja, após todos registros serem processados utilizar a função
CA100INCL(), cujo objetivo é ler o arquivo gerado (.LAN), e gerar os lançamentos no
arquivo SI2 (Lançamentos contábeis).
Exemplo:
CA100Incl( cArquivo, nHdlPrv, nOpcx, cLoteContabil, lDigita, lAglut, cOnLine,
dData)
Onde:
cArquivo -> Nome do arquivo
nHdlPrv -> Numero do Header
nOpcx -> Numero da Opcao escolhida
cLoteContabil -> Numero do Lote
lDigita -> Se Mostra ou nao
lAglut -> Se Aglutina ou não
cOnLine -> Determina se sera On Line ou pelo cProva
Function
Opcoes(cVarRet,cTitulo,aOpcoes,cOpcoes,nLin1,nCol1,l1Elem,nTam,nElemRet,lMultSelect)
_cdoc:=nextnumero("SD3",2,"D3_DOC",.t.)
NEXTNUMERO("ALIAS",INDICE,"CAMPO",NÃO LEMBRO (HEHEHE))
Eu sei que esta função faz o seguinte:
posiciona no alias no índice informado, vai no final do arquivo e verifica o conteúdo do campo e
soma + 1. Sei que trata letras e números.
A Função HeadProva
Este função cria o cabeçalho da contabilização. É tratada de forma diferenciada
para os módulos SIGACON e SIGACTB.
Sintaxe:
nHdlPrv := HeadProva(cLoteAtf, cNomProg, Substr(cUsuario,7,6), @arquivo, .T.)
Onde:
NHdlPrv -> Variável que conterá o num. (Handle) do arquivo (.LAN) criado.
cLoteAtf -> Código do lote do módulo (Ex.: Ativo Fixo: “8866”)
cNomProg -> Nome do Programa (Ex.: “ATFA060”)
cUsuario -> Usuário arquivo: nome do arquivo (Ex.: cArquivo := ‘ ‘)
A função DetProva()
Em primeiro lugar, deve-se estar posicionado no registro, que contém o valor à ser
contabilizado
Sintaxe:
ExpN1 := DetProva(ExpN2,ExpC1,ExpC2,ExpC3)
ExpN1 -> Valor Total da Contabilização
ExpN2 -> Handle retornado da função anterior
ExpC1 -> Código do Lançamento Padrão
ExpC2 -> Nome da rotina Geradora
ExpC3 -> Lançamento Padrão
A função RodaProva()
Esta função irá cria a finalização da contabilização.
Sintaxe:
RodaProva(ExpN1, ExpN2)
ExpN1 -> Handle retornado da função anterior
ExpN2 -> Valor Total da contabililização
No Final, ou seja, após todos registros serem processados utilizar a função
CA100INCL(), cujo objetivo é ler o arquivo gerado (.LAN), e gerar os lançamentos
no arquivo SI2 (Lançamentos contábeis).
Exemplo:
CA100Incl( cArquivo, nHdlPrv, nOpcx, cLoteContabil, lDigita, lAglut, cOnLine,
dData)
Onde:
cArquivo -> Nome do arquivo
nHdlPrv -> Numero do Header
nOpcx -> Numero da Opcao escolhida
cLoteContabil -> Numero do Lote
lDigita -> Se Mostra ou nao
lAglut -> Se Aglutina ou não
cOnLine -> Determina se sera On Line ou pelo cProva
MSCOMPRESS
Abrangência
Sintaxe
MSCOMPRESS ( < cArq | aArquivos > , [ cDestino ] , [ cSenha ] ) --> cFileName
Parâmetros
Retorno
Descrição
Compacta um ou vários arquivos em um único arquivo com extensão .MZP.
MSCOMPRESS() compacta os arquivos informados em um único arquivo com
extensão
default .MZP. O formato é proprietário e multiplataforma.
Caso a senha seja informada apenas com a senha poderemos descompactar os
arquivos.
Tanto arquivos no local ( Remote ) como no Servidor são aceitos.
Revisão: 07/05/2003
Versão 6.09 Versão 7.10
Argumento Tipo Descrição
cArq | aArquivos (Qualquer)
Arquivo(s) a ser(em) compactado(s). Pode ser do tipo
String , para especificar um único arquivo , ou do tipo
Array , contendo um ou mais arquivo(s) a ser(em)
compatado(s).
cDestino Caracter
Nome do Arquivo destino, caso a extensão seja omitida
será assumido .MZP, se não for informado assumirá o
mesmo nome do cArq com extensão .MZP ou o nome do
1º. Arquivo no Array <aArquivos>.
cSenha Caracter Senha a ser utilizada para criptografar o arquivo
compactado.
Tipo Descrição
Caracter
Caso a compactação seja executada com sucesso , a função retornará uma
sring contendo o nome do arquivo gerado . Caso não seja possível a
compactação , por falta de espaço em disco ou erro de acesso a algum dos
arquivos a ser(em) compactado(s), a função retornará uma string em branco
("").
Grupos Relacionados
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e Arquivos
Veja também
Principal / A Linguagem AdvPl / Exemplos de Codigo AdvPl / Exemplos de Funções de
Acesso a Disco e Arquivos / Exemplo da Função MSCOMPRES
30/8/2004 http://dem.microsiga.com.br/w_wEx011.apw?Cod=000991
AcroPDF - A Quality PDF Writer and PDF Converter to create PDF files. To
remove the line, buy a license.
MSDECOMP
Abrangência
Sintaxe
MSDECOMP ( < cArq > , [ cPathDestino ] , [ cSenha ] ) --> lSucess
Parâmetros
Retorno
Descrição
MSDECOMP() descompacta o arquivo informado em um diretório. O Formato é
proprietário, e
multi-plataforma, suporta apenas arquivos compactados pela função
MSCOMPRESS().
Caso o arquivo seja protegido por senha, apenas com a senha poderemos
descompactá-lo.
Tanto arquivos no local ( Remote ) como no Servidor são aceitos.
Revisão: 07/05/2003
Versão 6.09 Versão 7.10
Argumento Tipo Descrição
cArq Caracter Nome do Arquivo no formato MZP a ser descompactado.
cPathDestino Caracter
Path de destino onde serão gravados o(s) arquivo(s)
descompactado(s). Note que podem ser incluídos caminhos
do servidor como caminhos locais.
cSenha Caracter
Caso o arquivo tenha sido compactado com senha , esta
deve ser especificada ñeste parâmetro para ser poss;ivel a
descompactação do arquivo.
Tipo Descrição
Lógico
Caso a descompactação foi executada com sucesso, a função retornará .T. ,
Em caso de erro durante a descompactação, a função retrornará .F. Verifique
o espaço disponível na unidade de disco para descompactar o(s) arquivo(s)
e/ou se existe amgum arquivo a ser descompactado no pacote que já exista
na unidade de disco , atribuído como "REad-Only".
Grupos Relacionados
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e Arquivos
Veja também
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e
Arquivos / MSCOMPRESS
tFont
Abrangência
Classe que encapsula fonte de edição.
Hierarquia
tFontAbs -> tFont
Descrição
Utilize objeto tFont para modificar a fonte padrão de controles visuais.
Propriedades
Vide classes ancestrais.
Métodos
New
Revisão: 23/02/2003
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10
Descrição Método construtor da classe.
Sintaxe New([acName], [nPar2], [anHeight], [lPar4], [alBold],
[nPar6], [lPar7], [nPar8], [alItalic], [alUnderline])
Parâmetros
Parâmetro Tipo / Descrição
acName Caractere, opcional. Nome da fonte, o
padrão é “Arial”.
nPar2 Reservado.
anHeight Numérico, opcional. Tamanho da
fonte. O padrão é -11.
lPar4 Reservado.
alBold Lógico, opcional. Se .T. o estilo da
fonte será negrito.
nPar6 Reservado.
lPar7 Reservado.
nPar8 Reservado.
alItalic Lógico, opcional. Se .T. o estilo da
fonte será itálico.
CPYT2S
Abrangência
Sintaxe
CPYT2S ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess
Parâmetros
Retorno
Descrição
Copia um arquivo, do cliente ( Remote ) para o servidor,. Caso a compactação seja
habilitada
( lCompacta ), os dados serão transmitidos de maneira compacta e
descompactados antes do uso.
Exemplo
CpyT2S( "C:\TEMP\MANUAL.DOC","\BKP", .T. ) // Copia arquivos do cliente( remote ) para o Servidor compactando antes
CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP" ) // Copia arquivos do cliente( remote ) para o Servidor sem compactar.
Revisão: 19/10/2002
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10
Argumento Tipo Descrição
cOrigem Caracter
Nomes dos arquivos a serem copiados, aceita apenas
arquivos locais ( Cliente ), WildCards ( * e ? ) são aceitos
normalmente.
cDestino Caracter Diretório com o destino dos arquivos no Servidor
lCompacta Lógico lCompacta indica se o(s) arquivo(s) deve(m) ser enviados
em formato compactado.
Tipo Descrição
Lógico lSucess indica , caso verdadeiro , que a cópia foi realizada com sucesso.
Caso
retorne .F. , houve erro na copia do arquivo.
Grupos Relacionados
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e Arquivos
Veja também
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e
Arquivos / CPYS2T
CPYS2T
Abrangência
Sintaxe
CPYS2T ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess
Parâmetros
Retorno
Descrição
Copia um arquivo, do servidor para o cliente ( Remote ). .Caso a compactação seja
habilitada
(lCompacta ), os dados serão transmitidos de maneira compactada e
descompactados antes do
uso.
Exemplo :
CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .T. ) // Copia arquivos do servidor para o remote local, compactando antes de
CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .F. ) // Copia arquivos do servidor para o remote local, sem compactar antes
Revisão: 19/10/2002
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10
Argumento Tipo Descrição
cOrigem Caracter
Nome(s) dos arquivos a serem copiados, aceita apenas
arquivos
no servidor, WildCards ( * e ? ) são aceitos normalmente.
cDestino Caracter Diretório com o destino dos arquivos no Client ( Remote )
lCompacta Lógico Indica se a cópia deve ser feita compactando o arquivo
antes do envio.
Tipo Descrição
Lógico lSucess retorna .T. caso o arquivo seja copiado com sucesso , ou .F. em caso
de falha na cópia.
Grupos Relacionados
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e Arquivos
Veja também
Principal / A Linguagem AdvPl / Funcöes da Linguagem AdvPl / Funcöes de Disco e
Arquivos / CPYT2S
RDListBox(nRow,nCol,nWidth,nHeight,aArray,aCab,;
aColunas,aPicture,lEdit)
Onde:
nRow,nCol := Coordenadas para o ListBox(Linha,coluna)
nWidth := Comprimento em pixel do ListBox
nHeight := Altura em pixel do ListBox
aArray := Array contEndo as colunas de
Edicao/Visualizacao.
aCab := Array contEndo os cabecalhos para as colunas.
aPicture := Array contEndo as pictures para as
colunas.
lEdit := Determina se as colunas serao editadas ou nao.
getcomputername()
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Tranforma Numero de Bits em Tempo de Operacao ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ExpC1=Bit2Tempo(ExpN2) ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ ExpC1 = Retorna o tempo de Operacao no formato "HHHH:MM" ³±±
±±³ ³ ExpN2 = Numero de Bits a ser transformado ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ SIGAPCP ³±±
±
±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßß
*/
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡„o ³Avalia a Picture a ser impressa para Horas (C)entesimais ou ³±±
±±³ ³(N)ormais. ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ TransHora(ExpC1,ExpC2,ExpN1,ExpC3) ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ ExpC1 = Campo a ser impresso ³±±
±±³ ³ ExpC2 = Tipo de hora utilizada (MV_TPHR) ³±±
±±³ ³ ExpN1 = Coluna em que deve ser impresso o campo ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ Generico ³±±
±
±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßß
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡„o ³ Converte o tempo em bits para impressao de acordo com o ³±±
±±³ ³ parametro selecionado (MV_TPHR). Se o parametro do tempo ³±±
±±³ ³ estiver centesimal, o retorno ser numerico, se estiver ³±±
±±³ ³ normal o retorno ser caracter. ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ ConvTime(ExpN1,ExpN2,ExpC1) ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ ExpN1 = Tempo em Bits ³±±
±±³ ³ ExpN2 = Tempo no formato centesimal ³±±
±±³ ³ ExpC1 = Tempo no formato normal ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ RELATORIOS PCP ³±±
±
±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÙ±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡„o ³ Retorna a picture para hora centesimal ou normal ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³Sintaxe ³ TimePict() ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ RELATORIOS PCP ³±±
±
±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßß
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Sintaxe ³ ExpC1:=ConvTimeH6(ExpN1, ExpC2) ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³ ExpC1 = Tempo convertido de acordo com parametro informado ³±±
±±³ ³ ExpN1 = Identifica qual o formato de hora desejado, sendo: ³±±
±±³ ³ 1=Retorna de acordo com MTA680 (mv_par03); ³±±
±±³ ³ 2=Retorna de acordo com MV_TPHR ³±±
±±³ ³ 3=Retorna formato normal ³±±
±±³ ³ 4=Retorna formato centesimal ³±±
±±³ ³ ExpC2 = Hora a ser convertida. Se Nil, usa H6_TEMPO ³±±
±
±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ MATA680/MATA681 ³±±
±
±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÙ±±
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³A690CalendºAutor ³Marcelo Iuspa º Data ³ 18/04/01 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³Transforma os dados binarios referente calendario do SH7 º±±
±±º ³para o formato hora (hh:mm) e os retorna em um array º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP5 º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Function A690Calend(cCalend)
Local aArray := {}, aRet := {}
Local nPrecisa := GETMV("MV_PRECISA")
Local nTamanho
Local cAloc, x, y
Local cAlias := Alias()
Local nRecSH7 := SH7->(RecNo())
Local cHoraFim
dbSelectArea("SH7")
If ! dbSeek(xFilial("SH7")+cCalend)
dbGoto(nRecSH7)
dbSelectArea(cAlias)
Return(aArray)
Endif
cAloc := Bin2Str(SH7->H7_ALOC)
nTamanho := Len(cAloc) / 7
Aadd(aArray, "")
While Len(cAloc) > 0
Aadd(aArray, SubStr(cAloc, 1, nTamanho) + " ")
cAloc := SubStr(cAloc, nTamanho + 1)
Enddo
aArray[1] := aArray[8]
aDel(aArray, 8)
aSize(aArray, 7)
For x := 1 to Len(aArray)
nPos1 := 0
nPos2 := 0
Aadd(aRet, {x})
For y := 1 to Len(aArray[x])
If substr(aArray[x], y, 1) == "x" .and. nPos1 = 0
nPos1 := y
ElseIf substr(aArray[x], y, 1) == " " .And. nPos1 # 0
nPos2 := y
If Len(aRet[Len(aRet)]) < 10
Aadd(aRet[Len(aRet)], Bit2Tempo(nPos1-1))
cHoraFim := SubStr(Bit2Tempo(nPos2-1), 3) + ":00"
cHoraFim := A690Sec2Time(Secs(cHoraFim) - 60)
Aadd(aRet[Len(aRet)], cHoraFim)
Endif
nPos1 := 0
Endif
Next
aSize(aRet[Len(aRet)], 11)
Next
dbGoto(nRecSH7)
dbSelectArea(cAlias)
Return(aRet)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³A690Excec ºAutor ³Marcelo Iuspa º Data ³ 18/04/01 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³Transforma os dados binarios referente a excecao de º±±
±±º ³calendario e retorna em array º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP5 º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Function A690Excec(cStrBin)
Local nPrecisa := GETMV("MV_PRECISA")
Local cStr := Bin2Str(cStrBin) + " "
Local aRet := {}
Local nPos1 := 0, nPos2 := 0
Local cHoraFim
For y := 1 to Len(cStr)
If substr(cStr, y, 1) == "x" .and. nPos1 = 0
nPos1 := y
ElseIf substr(cStr, y, 1) == " " .And. nPos1 # 0
nPos2 := y
If Len(aRet) < 10
Aadd(aRet, substr(Bit2Tempo(nPos1-1),3))
cHoraFim := SubStr(Bit2Tempo(nPos2-1), 3) + ":00"
cHoraFim := A690Sec2Time(Secs(cHoraFim) - 60)
Aadd(aRet, cHoraFim)
Endif
nPos1 := 0
Endif
Next
aSize(aRet, 10)
Return(aRet)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³MATA690A ºAutor ³Marcelo Iuspa º Data ³ 17/05/2001 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³Checa a existencia ou nao do project º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºRetorno ³,T. para usar o project ou .f. exibir no Protheus º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP6 º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Function SeleProject
Local oDlg, nOpt :=2, cCombo1 := "MsProject 2000"
If ApOleClient( 'MsProject' )
DEFINE MSDIALOG oDlg TITLE STR0118 From 145,0 To 230,300 OF oMainWnd
PIXEL //"Carga Máquina"
@ 10,06 SAY STR0147 SIZE 60,8 OF oDlg PIXEL //"Saída do Gráfico:"
@ 08,55 MSCOMBOBOX oCombo1 VAR cCombo1 ITEMS {"MsProject 2000", "Protheus"}
SIZE 80,34 Of oDlg Pixel
DEFINE SBUTTON FROM 30,120 TYPE 1 ACTION (nOpt := oCombo1:nAt, oDlg:End())
ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTERED
Endif
Return(nOpt==1)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³MATA690A ºAutor ³Marcelo Iuspa º Data ³ 17/05/2001 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³Transforma string de hora em um numero (total de minutos) º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºParametro ³String tipo hora ("10:40" ou "10:40:00") º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºRetorno ³Numero de minutos da string fornecida º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP6 º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Function HoraToBit(cHora)
Return(If(Empty(cHora), 0, Val(SubStr(cHora, 1, 2)) * 60 + Val(SubStr(cHora, 3, 2))))
Eu conheço a função fFeriado, o qual voce passa a filial e a data e ele valida se a
data é verdadeiro ou falço, ja a questão do dia util irei pesquisar.
Para qual finalidade voce necessita desta função?
fDesc_Mes( nMes, nFormato ) -> retorna o nome do mês de número nMes no formato nFormato.
fValidFil() -> retorna uma lista (string) com todas as filiais disponíveis para o usário corrente (????)