- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Criação de Índice Tabela SXP
×
Linguagem de Programação ADVPL
Perguntas Criação de Índice Tabela SXP
- gustavo13
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 119
- Obrigados Recebidos: 0
11 anos 8 meses atrás #11216
por gustavo13
Criação de Índice Tabela SXP foi criado por gustavo13
Olá!
Estou desenvolvendo uma tela que exiba os logs de alteração da tabela cliente, e queria adicionar um índice ou filtro na tabela SXP, pois ela tem 1GB de informação e demora muito para posicionar nos registros da SA1. Alguém tem um exemplo ou ideia de como eu posso desenvolver isto?
Agradeço.
Estou desenvolvendo uma tela que exiba os logs de alteração da tabela cliente, e queria adicionar um índice ou filtro na tabela SXP, pois ela tem 1GB de informação e demora muito para posicionar nos registros da SA1. Alguém tem um exemplo ou ideia de como eu posso desenvolver isto?
Agradeço.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- gustavo13
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 119
- Obrigados Recebidos: 0
11 anos 8 meses atrás #11230
por gustavo13
Respondido por gustavo13 no tópico Criação de Índice Tabela SXP
Ajudou muito.
Meu fonte esta assim por enquanto, ainda não fiz a tela só explodi a tabela na tela pra visualizar as informações, mas eu não consigo fechar a tabela TRBPRO, porque?
#include "rwmake.ch"
#include "protheus.ch"
User Function MA030BUT()
Local aButtons := {} // Botoes a adicionar
aadd(aButtons,{'BUDGETY',{|| U_AltCli()},'Consulta Alterações','Alterações'})
Return (aButtons )
User Function AltCli ()
SA1Alias := Alias()
dbselectarea("SXP")
aCampos := {}
AADD(aCampos,{"XP_UNICO" ,"C",20,0}) // Codigo
AADD(aCampos,{"XP_NOVVAL" ,"C",10,0}) // Nome do vendedor
AADD(aCampos,{"XP_ANTVAL" ,"C",10,0}) // Data da emissao
AADD(aCampos,{"XP_CAMPO" ,"C",10,0}) // serie
AADD(aCampos,{"XP_DATA" ,"D",08,2}) // Documento
AADD(aCampos,{"XP_USER" ,"C",15,0}) // Codigo cliente
AADD(aCampos,{"XP_OPER" ,"N",04,0}) // Loja
AADD(aCampos,{"XP_ALIAS" ,"C",03,0}) // Descricao cliente
cAlias := "TRBPRO"
cArqTRB := CriaTrab(aCampos,.T.)
dbUseArea(.T.,,cArqTRB,cAlias,.F.)
IndRegua("SXP",cArqTrb,"XP_ALIAS+XP_UNICO",,"XP_ALIAS=='SA1'")
_coun := 0
DbselectArea("SXP")
do while !EOF() .And. SXP->XP_ALIAS == 'SA1'
If alltrim(SXP->XP_UNICO) == M->A1_COD+M->A1_LOJA
dbselectarea("TRBPRO")
reclock("TRBPRO", .t. )
TRBPRO->XP_UNICO := SXP->XP_UNICO
TRBPRO->XP_NOVVAL := SXP->XP_NOVVAL
TRBPRO->XP_ANTVAL := SXP->XP_ANTVAL
TRBPRO->XP_CAMPO := SXP->XP_CAMPO
TRBPRO->XP_DATA := SXP->XP_DATA
TRBPRO->XP_USER := SXP->XP_USER
TRBPRO->XP_OPER := SXP->XP_OPER
TRBPRO->XP_ALIAS := SXP->XP_ALIAS
_coun++
msunlock()
Endif
dbselectarea("SXP")
dbskip()
ENDDO
U_ShowTrb("TRBPRO")
DbCloseArea(cAlias)
Meu fonte esta assim por enquanto, ainda não fiz a tela só explodi a tabela na tela pra visualizar as informações, mas eu não consigo fechar a tabela TRBPRO, porque?
#include "rwmake.ch"
#include "protheus.ch"
User Function MA030BUT()
Local aButtons := {} // Botoes a adicionar
aadd(aButtons,{'BUDGETY',{|| U_AltCli()},'Consulta Alterações','Alterações'})
Return (aButtons )
User Function AltCli ()
SA1Alias := Alias()
dbselectarea("SXP")
aCampos := {}
AADD(aCampos,{"XP_UNICO" ,"C",20,0}) // Codigo
AADD(aCampos,{"XP_NOVVAL" ,"C",10,0}) // Nome do vendedor
AADD(aCampos,{"XP_ANTVAL" ,"C",10,0}) // Data da emissao
AADD(aCampos,{"XP_CAMPO" ,"C",10,0}) // serie
AADD(aCampos,{"XP_DATA" ,"D",08,2}) // Documento
AADD(aCampos,{"XP_USER" ,"C",15,0}) // Codigo cliente
AADD(aCampos,{"XP_OPER" ,"N",04,0}) // Loja
AADD(aCampos,{"XP_ALIAS" ,"C",03,0}) // Descricao cliente
cAlias := "TRBPRO"
cArqTRB := CriaTrab(aCampos,.T.)
dbUseArea(.T.,,cArqTRB,cAlias,.F.)
IndRegua("SXP",cArqTrb,"XP_ALIAS+XP_UNICO",,"XP_ALIAS=='SA1'")
_coun := 0
DbselectArea("SXP")
do while !EOF() .And. SXP->XP_ALIAS == 'SA1'
If alltrim(SXP->XP_UNICO) == M->A1_COD+M->A1_LOJA
dbselectarea("TRBPRO")
reclock("TRBPRO", .t. )
TRBPRO->XP_UNICO := SXP->XP_UNICO
TRBPRO->XP_NOVVAL := SXP->XP_NOVVAL
TRBPRO->XP_ANTVAL := SXP->XP_ANTVAL
TRBPRO->XP_CAMPO := SXP->XP_CAMPO
TRBPRO->XP_DATA := SXP->XP_DATA
TRBPRO->XP_USER := SXP->XP_USER
TRBPRO->XP_OPER := SXP->XP_OPER
TRBPRO->XP_ALIAS := SXP->XP_ALIAS
_coun++
msunlock()
Endif
dbselectarea("SXP")
dbskip()
ENDDO
U_ShowTrb("TRBPRO")
DbCloseArea(cAlias)
Por favor Acessar ou Registrar para participar da conversa.
- gustavo13
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 119
- Obrigados Recebidos: 0
- gustavo13
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 119
- Obrigados Recebidos: 0
11 anos 8 meses atrás #11235
por gustavo13
Respondido por gustavo13 no tópico Criação de Índice Tabela SXP
Criei a Mbrowser, mas como retirar os botoes que vieram como padrão, não queria opção de incluir, alterar, só o de sair. Bom eles não funcionam mas não ficou bom deixa-los lá.
aHeadMBrow := HeadBrow()
dbSelectArea("TRBPRO")
dbgotop()
MBrowse(,,,,"TRBPRO",aHeadMBrow,,,,,,"","")
TRBPRO->( dBCloseArea() )
RETURN()
Static Function HeadBrow()
Local aHead := {}
//Campos que aparecerão na MBrowse, como não é baseado no SX3 deve ser criado.
//Sequência do vetor: Título, Campo, Tipo, Tamanho, Decimal, Picture
AAdd( aHead, { "Novo Valor" , {|| TRBPRO->XP_NOVVAL } ,"C", 12 , 0, "" } )
AAdd( aHead, { "Valor Antigo" , {|| TRBPRO->XP_ANTVAL } ,"C", 12 , 0, "" } )
AAdd( aHead, { "Campo Alterado" , {|| TRBPRO->XP_CAMPO } ,"C", 12 , 0, "" } )
AAdd( aHead, { "Data da Alteração", {|| TRBPRO->XP_DATA } ,"D", 08 , 2, "" } )
AAdd( aHead, { "Usuário" , {|| TRBPRO->XP_USER } ,"C", 15 , 0, "" } )
AAdd( aHead, { "Operação" , {|| TRBPRO->XP_OPER } ,"N", 04 , 0, "" } )
aHeadMBrow := HeadBrow()
dbSelectArea("TRBPRO")
dbgotop()
MBrowse(,,,,"TRBPRO",aHeadMBrow,,,,,,"","")
TRBPRO->( dBCloseArea() )
RETURN()
Static Function HeadBrow()
Local aHead := {}
//Campos que aparecerão na MBrowse, como não é baseado no SX3 deve ser criado.
//Sequência do vetor: Título, Campo, Tipo, Tamanho, Decimal, Picture
AAdd( aHead, { "Novo Valor" , {|| TRBPRO->XP_NOVVAL } ,"C", 12 , 0, "" } )
AAdd( aHead, { "Valor Antigo" , {|| TRBPRO->XP_ANTVAL } ,"C", 12 , 0, "" } )
AAdd( aHead, { "Campo Alterado" , {|| TRBPRO->XP_CAMPO } ,"C", 12 , 0, "" } )
AAdd( aHead, { "Data da Alteração", {|| TRBPRO->XP_DATA } ,"D", 08 , 2, "" } )
AAdd( aHead, { "Usuário" , {|| TRBPRO->XP_USER } ,"C", 15 , 0, "" } )
AAdd( aHead, { "Operação" , {|| TRBPRO->XP_OPER } ,"N", 04 , 0, "" } )
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Criação de Índice Tabela SXP
Tempo para a criação da página:0.090 segundos