- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- PutSx1 - Consulta padrão - Tabela temporária
×
Linguagem de Programação ADVPL
Perguntas PutSx1 - Consulta padrão - Tabela temporária
- Rick
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 24
- Obrigados Recebidos: 0
11 anos 9 meses atrás #10536
por Rick
PutSx1 - Consulta padrão - Tabela temporária foi criado por Rick
E ae galera...
Estou aqui mais uma vez para tentar realizar uma façanha com ADVPL
Imagine...
Estou desenvolvendo um relatório... na vdd já está pronto.
Preciso adicionar um parâmetro (perguntas), estou usando putsx1.
Até aí sem novidade... só que meu parâmetro é uma consulta, com f3..
E minha consulta é em uma tabela temporária que eu crio e coloco em uso antes da tela de perguntas
Como faço para o F3 (consulta - que ainda não existe) enxergar minha tabela temporária??
Como crio essa consulta?
Alguém sabe como fazer isso?
Quero fazer assim para não ter que criar uma tabela física no banco
Vlw... espero que alguém possa me ajudar.
Estou aqui mais uma vez para tentar realizar uma façanha com ADVPL
Imagine...
Estou desenvolvendo um relatório... na vdd já está pronto.
Preciso adicionar um parâmetro (perguntas), estou usando putsx1.
Até aí sem novidade... só que meu parâmetro é uma consulta, com f3..
E minha consulta é em uma tabela temporária que eu crio e coloco em uso antes da tela de perguntas
Como faço para o F3 (consulta - que ainda não existe) enxergar minha tabela temporária??
Como crio essa consulta?
Alguém sabe como fazer isso?
Quero fazer assim para não ter que criar uma tabela física no banco
Vlw... espero que alguém possa me ajudar.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 9 meses atrás #10537
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico PutSx1 - Consulta padrão - Tabela temporária
Henrique é possível porém vai ser necessário criar uma função com um dialog e um browse para o cara assim que pressionar o F3 ele chamar essa consulta da tabela temporária.
Bom vamos lá, eu se fosse você não mexeria na SX1, assim que executar o pergunte(cPerg,.t.) e o cara preencher os parâmetros vc na linha seguinte executa sua função chamando essa tela de opções com a tabela temporária.
o cara seleciona o que deseja e ai vc começa a processar o relatório, é bem mais simples eu pelo menos acho.
vc pode usar o listbox, segue um exemplo:
vc vai alimentar um vetor e mostra-lo num browse, o cara vai posicionar na linha desejada e dar um ok, ai vc vai capturar a posição da linha que ele selecionou e pegar o conteudo do vetor com a informação necessária para o filtro.
aNotas := {}
While SZM->(!Eof()) .And. SZM->(ZM_DOC+ZM_SERIE+ZM_FORNECE+ZM_LOJA) == SF2->(F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA)
AAdd(aNotas,{SZM->ZM_DATA,SZM->ZM_DOCN,SZM->ZM_SERN,' Pre-Notas -> Dt: ' + DtoC(SZM->ZM_DATA) + ' Doc: ' + SZM->ZM_DOCN + ' Ser: ' + SZM->ZM_SERN + ' Status: ' + Iif(SZM->ZM_STATUS=='1','Pendente','Finalizada'),SZM->ZM_RECSF1,SZM->(Recno())})
SZM->(dbSkip(1))
Enddo
nOpca := 0
aItens := {}
For nCombo := 1 To Len(aNotas)
Aadd(aItens,aNotas[nCombo,4])
Next
nCombo := 1
While lContinua
nOpca := 0
DEFINE MSDIALOG oDlg0 TITLE 'Pré Notas' FROM 000,000 TO 250,450 PIXEL //"Mapas fiscais"
@20,10 LISTBOX oCombo VAR nCombo ITEMS aItens PIXEL OF oDlg0 SIZE 200, 90 ON DBLCLICK {||nOpca := oCombo:nAt,oDlg0:End()}
oCombo:nAt := nCombo
DEFINE SBUTTON FROM 115, 185 TYPE 1 ENABLE OF oDlg0 PIXEL ACTION ( (nOpca := oCombo:nAt, nCombo := nOpca) , oDlg0:END() )
ACTIVATE DIALOG oDlg0 CENTER ON INIT {|| oCombo:SetFocus()}
If nOpca > 0
SZM->(dbGoTo(aNotas[nOpca,6]))
SF1->(dbGoTo(aNotas[nOpca,5]))
nOpca := -1
lContinua := .F.
Endif
Enddo
If nOpca <> -1
RestArea(aArea)
Return .t.
Endif
Bom vamos lá, eu se fosse você não mexeria na SX1, assim que executar o pergunte(cPerg,.t.) e o cara preencher os parâmetros vc na linha seguinte executa sua função chamando essa tela de opções com a tabela temporária.
o cara seleciona o que deseja e ai vc começa a processar o relatório, é bem mais simples eu pelo menos acho.
vc pode usar o listbox, segue um exemplo:
vc vai alimentar um vetor e mostra-lo num browse, o cara vai posicionar na linha desejada e dar um ok, ai vc vai capturar a posição da linha que ele selecionou e pegar o conteudo do vetor com a informação necessária para o filtro.
aNotas := {}
While SZM->(!Eof()) .And. SZM->(ZM_DOC+ZM_SERIE+ZM_FORNECE+ZM_LOJA) == SF2->(F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA)
AAdd(aNotas,{SZM->ZM_DATA,SZM->ZM_DOCN,SZM->ZM_SERN,' Pre-Notas -> Dt: ' + DtoC(SZM->ZM_DATA) + ' Doc: ' + SZM->ZM_DOCN + ' Ser: ' + SZM->ZM_SERN + ' Status: ' + Iif(SZM->ZM_STATUS=='1','Pendente','Finalizada'),SZM->ZM_RECSF1,SZM->(Recno())})
SZM->(dbSkip(1))
Enddo
nOpca := 0
aItens := {}
For nCombo := 1 To Len(aNotas)
Aadd(aItens,aNotas[nCombo,4])
Next
nCombo := 1
While lContinua
nOpca := 0
DEFINE MSDIALOG oDlg0 TITLE 'Pré Notas' FROM 000,000 TO 250,450 PIXEL //"Mapas fiscais"
@20,10 LISTBOX oCombo VAR nCombo ITEMS aItens PIXEL OF oDlg0 SIZE 200, 90 ON DBLCLICK {||nOpca := oCombo:nAt,oDlg0:End()}
oCombo:nAt := nCombo
DEFINE SBUTTON FROM 115, 185 TYPE 1 ENABLE OF oDlg0 PIXEL ACTION ( (nOpca := oCombo:nAt, nCombo := nOpca) , oDlg0:END() )
ACTIVATE DIALOG oDlg0 CENTER ON INIT {|| oCombo:SetFocus()}
If nOpca > 0
SZM->(dbGoTo(aNotas[nOpca,6]))
SF1->(dbGoTo(aNotas[nOpca,5]))
nOpca := -1
lContinua := .F.
Endif
Enddo
If nOpca <> -1
RestArea(aArea)
Return .t.
Endif
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- PutSx1 - Consulta padrão - Tabela temporária
Tempo para a criação da página:0.108 segundos