Académique Documents
Professionnel Documents
Culture Documents
Prtica
IDE
Integrated Development Environment
IDE
Slide 3
IDE
IDE
Integrated
Integrated
Development
Development
Environment
Environment
Repositri
o
de
Objetos
Program
a Fonte
Projeto
IDE
Slide 4
SIGACFG
TCP
Environment
[Environment]
SourcePath=C:\ERP811\APO
RootPath=C:\ERP811\MP_Data
StartPath=\system\
RpoDb=dbf
RpoLanguage=portuguese
RpoVersion=811
LocalFiles=ads
localdbextension=.dbf
PictFormat=DEFAULT
DateFormat=DEFAULT
[Drivers]
Active=TCP
[TCP]
TYPE=TCPIP
Port=1234
ERP811
APO
BIN
REMOTE
SERVER
INCLUDE
MP_DATA
DATA
SAMPLES
SPOOL
SYSTEM
SYSTEMLOAD
MY PROJECTS
IDE
Slide 5
IDE
Slide 6
IDE
Slide 7
IDE
Slide 8
SERVER
Programa
Fonte
REMOTE
MATA010
Compilao
APO
APO
MATA01
MATA01
00
RPO
Executa
Executa
MATA010
MATA010
MATA010
Executa
Executa
MATA410
MATA410
MATA410
CTBR040
Cad.Produtos
Ped.Vendas
Executa
Executa
CTBR040
CTBR040
Balancete Cont.
IDE
Slide 9
IDE
Slide 10
Utilizando o IDE.
IDE
Slide 11
IDE
Slide 12
IDE
Modelo do relatorio
ATIVOS
TOTAL DE GG
ATIVOS DIVERSOS
LUVA
MANUTENCAO
TERCEIROS
TOTAL DE MC
MOD0001
MOD0002
TOTAL DE MO
ARGOLA
ESCUDO
MOSQUETAO
REBITE
SUPORTE
TIRANTE
TOTAL DE MP
CHAVEIRO
TOTAL DE PA
CORPO
TOTAL DE PI
CORPO DE COURO
TOTAL GERAL:
Slide 13
GG
1
MC
MC
MC
3
MO
MO
2
MP
MP
MP
MP
MP
MP
6
PA
1
PI
1
14
Customizao
Slide 14
Parmetros,
Tabelas,
Perguntas,
Frmulas - Expresses em AdvPL / User Function,
Lantos Padres / Expresses AdvPL/User Function,
Validaes,
Gatilhos,
Campos de Arquivos,
User Function via menu,
Pontos de Entrada,
Dicionrio de Dados Ativo,
SigaRPM,
Crystal,
Integrao Office (Word , Excel)
Dicionrios Sxs
Slide 15
Arquivo
Descrio
SX1
Perguntas e Respostas
SX2
Mapeamento de Tabelas
SX3
Dicionrio de Dados
SX4
SX5
Tabelas
SX6
Parmetros
SX7
Gatilhos
SX9
SXA
SXB
SXD
SXE
SXF
SXG
SXK
SXO
Customizao
Pag. 41
Slide 16
Parmetros
GETMV - Retorna o contedo de um parmetro cadastrado no SX6.
Sintaxe
GETMV( cNomPar, [ lRetPar ], [ uRet ] )
PUTMV Grava informao no parmetro no SX6.
Sintaxe
PUTMV( cNomPar, cConteudo )
Customizao
Pag. 41
Slide 17
Customizao
Pag. 43
Slide 18
Tabelas
TABELA - Retorna o contedo de uma tabela cadastrada no SX5.
Sintaxe
TABELA( cCodTab, cChave, [lHelp] )
Customizao
Pag. 43
Slide 19
Customizao
Pag. 44
Slide 20
Perguntas
PERGUNTE Carrega e Monta a tela de perguntas cadastradas
no SX1.
Sintaxe
PERGUNTE( cGrupo, lMostra )
Customizao
Pag. 44
Slide 21
Customizao
Pag. 45
Slide 22
Gatilho
Criar um gatilho no configurador
Clientes
Ao digitar o CEP deve preencher o estado com SP
Testar no cadastro de clientes, se no tiver o cadastro de clientes
No menu, incluir a funcao MATA030
Tabelas
Slide 23
SA SB SC SD SE SF SG SH SI SJ SM SN -
Cadastros
Estoques
Previses de E/S
Mov. De Estoque
Financeiro
Fiscal
Estruturas
Carga de Mquina
Contbil
Estatsticas
Miscelneas
Ativo Fixo
SO - Assist. Tcnica
SP - Ponto Eletrnico
SQ - Recr. e Seleo
SR - Folha de Pagto
ST - Manut. Industrial
SU - Telemarketing
SV - Concessionrias
SW e SY - Export./Import.
Q? - Qualidade (Celerina)
R? - Recursos Humanos
SZ,QZ,RZ - Livres
P? - Projetos Especiais
Algumas tabelas
Slide 24
Prefixo
Descrio
SA1
Cadastro de Clientes
SA2
Cadastro de Fornecedores
SA3
Cadastro de Vendedores
SB1
Cadastro de Produtos
SB2
SC1
Solicitaes de Compras
SC5
SC6
SC7
Pedidos de Compras
SD1
SD2
SD3
SE1
Ttulos a Receber
SE2
Ttulos a Pagar
SF1
Nomenclatura
Slide 25
Conceito Filiais
Slide 26
Filiais
Os dados das Filiais ficam dentro do arquivo de cada Empresa.
Todo arquivo, exceto SM2, tem um campo XX_Filial que
identifica a Filial:
SA1
A1_FILIAL
A1_COD
A1_NOME
A1_END
SA2
A2_FILIAL
A2_COD
A2_NOME
A2_END
01
01
01
02
02
02
SB1
B1_FILIAL
B1_COD
B1_DESC
B1_TIPO
QA1
QA1_FILIAL
QA1_COD
QA1_DESC
Compartilhado
Exclusivo
A1_COD
A1_NOME
000015
000016
000001
000020
000007
xFilial(SA1)
C5_NUM
C5_EMISSAO
C5_CLIENTE
C5_PROD
C5_VALOR
01
01
01
000001
000005
000007
01/01/04
01/01/04
20/01/04
000002
000023
000016
11.11014
13.13000
15.15140
15.000,00
5.600,00
5.600,00
02
02
02
000001
000005
000007
01/01/04
01/01/04
20/01/04
000002
000023
000016
11.11014
13.13000
15.15140
15.000,00
5.600,00
5.600,00
03
03
03
000001
000005
000007
01/01/04
01/01/04
20/01/04
000002
000023
000016
11.11014
13.13000
15.15140
15.000,00
5.600,00
5.600,00
xFilial(SC5) cFilAnt
Indices
Slide 28
2
...
7
ndice do Usurio 8
A1_TIPO
Pontos de Entrada
Slide 29
Inicio
Declarar varivel M, I
Receber Valor da mercadoria em M
Perguntar se M > 10000
Se sim, Calcular I := M * 0.15
Se no, Calcular I := 0
Imprimir M
Imprimir I
Fim
Slide 30
Inicio
Declarar varivel nValSal, nQtdHor, nSalRec
Declarar varivel nMeta := 180
Receber Valor do Salrio em nValSal
Receber Qtde de Horas em nQtdHor
Perguntar se nQtdHor > nMeta
Se sim, Calcular nSalrec := (nValSal+2) * nQtdHor
Se no, Calcular nSalRec := nValSal * nQtdHor
Mostrar nSalRec
Fim
Slide 31
Exerccio 7
idade := 14
do case
case idade >= 5 .And. idade <= 7
msginfo("Infantil - Classe A")
case idade >= 8 .And. idade <= 11
msginfo("Infantil - Classe B")
case idade = 12 .or. idade = 13
msginfo("Juvenil - Classe B")
case idade >= 14 .And. idade <= 17
msginfo("Juvenil - Classe B")
case idade < 5
msginfo("Infantil - Criana s entra acompanhado)
otherwise
msginfo("Adulto")
endcase
Manipulao de Textos
pag.56
Slide 35
Tipo
Descrio
cValor
Sim
Exemplo:
cCodigo := 000015
nNum := Val(cCodigo)+1
msginfo(nNum) // nNum ter o valor de 16
Manipulao de Textos
pag.56
Slide 36
Sim
nValIni
Sim
nCount
Sim
Exemplo:
cCodigo
cPedaco1
cPedaco2
cPedaco3
:= Paralelepipedo
:= Substr(cCodigo,5,4) // cPedaco1 ter o contedo lele
:= Substr(cCodigo,1,6) // cPedaco2 ter o contedo parale
:= Substr(cCodigo,9,5) // cPedaco3 ter o contedo piped
Manipulao de Textos
pag.56
Slide 37
cConteudo
Sim
nCount
Sim
Exemplo:
cCodigo := Paralelepipedo
cPedaco1 := Left(cCodigo,5) // cPedaco1 ter o contedo paral
Manipulao de Textos
pag.57
Slide 38
cConteudo
Sim
nCount
Sim
Exemplo:
cCodigo := Paralelepipedo
cPedaco1 := Right(cCodigo,5) // cPedaco1 ter o contedo ipedo
Manipulao de Textos
pag.57
Slide 39
cConteudo
Sim
nCount
Sim
Exemplo:
cCodigo := Parede
cCodigo := Padc(cCodigo,14)
// cCodigo ter o contedo Parede
Manipulao de Textos
pag.57
Slide 40
cConteudo
Sim
nCount
Sim
Exemplo:
cCodigo := Parede
cCodigo := Padr(cCodigo,14)
// cCodigo ter o contedo
Parede
Manipulao de Textos
pag.58
Slide 41
Tipo Descrio
cConteudo
Sim
Exemplo:
cCodigo := Parede
cCodigo := Alltrim(cCodigo) // cCodigo ter o contedo Parede
Manipulao de Textos
pag.58
Slide 42
Tipo Descrio
cConteudo
Sim
Exemplo:
cCodigo := Parede
cCodigo := Ltrim(cCodigo) // cCodigo ter o contedo Parede
Manipulao de Textos
pag.58
Slide 43
Tipo Descrio
cConteudo
Sim
Exemplo:
cCodigo := Parede
cCodigo := Ltrim(cCodigo) // cCodigo ter o contedo
Parede
Manipulao de Numeros
pag.61
Slide 44
nConteudo
Sim
Valor a converter
Exemplo:
nCodigo := 1
cCodigo := Str(nCodigo) // cCodigo ter o contedo
Manipulao de Numeros
pag.61
Slide 45
nConteudo
Sim
Valor a converter
nCount
Sim
Qtde de caracteres
Exemplo:
nCodigo := 1
cCodigo := Strzero(nCodigo, 6) // cCodigo ter o contedo 000001
nCodigo := 158
cCodigo := Strzero(nCodigo, 6) // cCodigo ter o contedo 000158
Manipulao de Numeros
pag.61
Slide 46
nConteudo
Sim
Valor a converte
CMask
Sim
Formato do caracter
Exemplo:
nCodigo := 1500
cCodigo := Valor: + Transform(nCodigo, @E 99,999.99)
// cCodigo ter o contedo (Valor: 1.500,00)
Manipulao de Datas
pag.59
Slide 47
Manipulao de Datas
pag.59
Slide 48
Descrio
dData
Data a converter
Sim
Exemplo:
cData := dtos(date()) // cData ter o contedo 20061231
Manipulao de Datas
pag.59
Slide 49
Descrio
dData
Data a converter
Sim
Exemplo:
cData := dtoc(date()) // cData ter o contedo 31/12/06
Manipulao de Datas
pag.59
Slide 50
Descrio
cData
Data a converter
Sim
Exemplo:
cData := 31/12/06
cData := ctod(cData) // cData ter o contedo 31/12/06
Manipulao de Datas
pag.59
Slide 51
Descrio
cData
Data a converter
Sim
Exemplo:
cData := 20061231
cData := stod(cData) // cData ter o contedo 31/12/06
Manipulao de Datas
pag.60
Slide 52
Sim
Data
Exemplo:
nMes := Month(date())
// nMes ter o contedo 12 para a data 31/12/06
Manipulao de Datas
pag.60
Slide 53
Sim
Data
Exemplo:
nDia := Day(date())
// nDay ter o contedo 31 para a data 31/12/06
Manipulao de Datas
pag.60
Slide 54
Sim
Data
Exemplo:
nAno := Year(date())
// nAno ter o contedo 2006 para a data 31/12/06
Manipulao de Datas
pag.60
Slide 55
Descrio
dData
Data
Sim
Exemplo:
cMes := MesExtenso(date())
// cMes ter o contedo Dezembro para a data 31/12/06
Criao de Telas
Slide 56
//Cria um box
Correo
Slide 58
Exer01.prw
Exer02.prw
Exer03.prw
Exer04.prw
Exer05.prw
Exer10.prw
Exer11Array.prw
Exerccio de Casa
Slide 59
Manipulao de Mensagens
Slide 60
Argumento
Obrigat. Tipo
Descrio
cMensagem Sim
cTitulo
No
Titulo da Janela
cTpCaixa
No
Tipo da Caixa
Tipos de caixas:
STOP, utiliza um bitmap para advertncia e tem um boto Ok. Retorna Nil.
INFO, utiliza um bitmap para advertncia e tem um boto Ok. Retorna Nil.
ALERT, utiliza um bitmap para advertncia e tem um boto Ok. Retorna Nil.
YESNO, utiliza um bitmap para advertncia e tem dois botes Sim e No, retorna .T. ou .F.
RETRYCANCEL, utiliza um bitmap para advertncia e tem dois botes Repetir e Cancelar,
retorna .T. ou .F.
Manipulao de Mensagens
Slide 61
Exemplo:
MSGBOX(Mensagem dentro da Janela ALERT, Titulo da Janela, ALERT)
Manipulao de Mensagens
Slide 62
Exemplo:
MSGBOX(Mensagem dentro da Janela INFO, Titulo da Janela, INFO)
Manipulao de Mensagens
Slide 63
Exemplo:
MSGBOX(Mensagem dentro da Janela STOP, Titulo da Janela, STOP)
Manipulao de Mensagens
Slide 64
Exemplo:
MSGBOX(Mensagem dentro da Janela YESNO,Titulo da Janela,YESNO)
Manipulao de Mensagens
Slide 65
Exemplo:
MSGBOX(Mensagem dentro da Janela RETRYCANCEL,;
Titulo da Janela, RETRYCANCEL)
Manipulao de Mensagens
Slide 66
Exemplo:
nOpc := AVISO("Titulo da Janela", "Corpo da Mensagem", ;
{"Sim", "Nao", "Talvez"},1, "Titulo da Mensagem")
If nOpc == 1
msginfo("voce escolheu sim", "Titulo")
ElseIf nOpc == 2
msginfo("voce escolheu nao", "Titulo")
Else
msginfo("voce escolheu talvez", "titulo")
Endif
Manipulao de Mensagens
Slide 67
Manipulao de Mensagens
Slide 68
dbSelectArea()
dbSetOrder()
dbGotop()
dbGoBottom()
dbSeek()
dbskip()
dbFilter()
dbSetFilter()
dbClearFil()
Entre outros...
Exemplo:
Dbselectarea("SD1")
aAreasd1 := Getarea() // Armazena o ambiente do arquivo SD1
SD1->(dbsetorder(3))
SD1->(dbseek(xfilial("SD1") + DTOS("01/03/01"), .T.))
Do While ! Eof() .And. D1_FILIAL == xfilial("SD1") .And. D1_EMISSAO <= mv_par02
// Processamento
Dbskip()
Enddo
Restarea(aAreasd1) // Restaura o ambiente do arquivo SD1
Funo Posicione
Sintaxe:
Posicione(cAlias, nOrdem, cChave, cCampo)
Exemplo:
Posicione("SB1", 1, xFilial("SB1") + cCodigo, "B1_DESC")
Funo Existcpo
Retorna se determinada chave existe ou no no arquivo.
Se existir retorna .T.
Se no existir retorna .F.
Sintaxe :
ExistCpo(cAlias,cChave,nOrdem)
Exemplo :
ExistCpo("SB1", cCodigo, 1)
Funo Existchav
Retorna se determinada chave existe ou no no arquivo.
Se existir retorna .F.
Se no existir retorna .T.
Sintaxe :
ExistChav(cAlias,cChave,nOrdem)
Exemplo :
ExistChav("SB1", cCodigo, 1)
Telas padres
Slide 79
mBrowse()
Modelo2()
Modelo3()
Modelo 3
Slide 80
aRotina
aHeader
aCols
Modelo 3
Slide 81
Sintaxe
Modelo3(cCadastro, cAlias1, cAlias2, aCpoEnchoice, cLinOK, ;
cTudoOK, nOpcE, nOpcG, cFieldOK, lVirtual, ;
nLinhas, aAltEnchoice, nFreeze)
cCadastro Titulo da Janela
cAlias1 alias da enchoice
cAlias2 Alias da getdados
aCpoEnchoice Campos da enchoice
cLinOk - Validacao da linha na Getdados
cTudook Validacao no Ok
nOpcE - Opcao da Enchoice
nOpcG Opcao da Getdados
cFieldOk Validacao dos campos da enchoice
lVirtual Aceita campos Virtuais
nLinhas Qtde de Linhas da Acols
aAltEnchoice - Campos que podem ser alterados na enchoice
nFreeze Campos que devem ser congelados
Banco de Dados
Slide 82
Banco de Dados
Slide 83
Argumento
Obrigat.
Tipo
Descrio
cTipo
Sim
Exemplo
TCConType("NPIPE")
TCConType("TCPIP")
Banco de Dados
Slide 84
Descrio
cTabela
Sim
Exemplo:
If TcDelFile("SA1020")
MSGINFO(Tabela excluda com sucesso)
Else
MSGINFO(No foi possvel excluir a tabela)
Endif
Banco de Dados
Slide 85
Obrigat Tipo
Descrio
xPar1, xPar2 No
Qualquer
cQuery
Expresso
executar.
Sim
da
query
Exemplo:
cQuery := 'SELECT X2_CHAVE, R_E_C_N_O_ from SX2990'
dbUseArea(.T., 'TOPCONN', TCGenQry(,,cQuery), 'TRB', .F., .T.)
cArqTrab := criatrab(Nil, .f.)
Copy to &cArqTrab via TOPCONN
TRB->(dbCloseArea())
que
deseja
Banco de Dados
Slide 86
Obrigat Tipo
Descrio
cTabela
Sim
Lgico
Exemplo:
cTabela:= "SA1990"
cComando := "Delete "+ cTabela +" Where R_E_C_N_O_ > 50000 "
TCSqlExec(cComando)
TCRefresh(cTabela)
Banco de Dados
Slide 87
Tipo
Descrio
cSProc
Sim
xParamX
No
Qualquer
Banco de Dados
Slide 88
Tipo
Descrio
cComando
Codigo em SQL
Sim
Banco de Dados
Slide 89
Argumento
cStoredProc
Obrigat. Tipo
Descrio
Sim
Exemplo
if TCSPExist("SP000001")
cStr := "DROP PROCEDURE "+ "SP000001 "
TCSqlExec(cStr)
endif