× Linguagem de Programação ADVPL

Perguntas PutSx1 - Consulta padrão - Tabela temporária

Mais
11 anos 3 meses atrás #10536 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.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 3 meses atrás #10537 por lalberto
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

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.

Tempo para a criação da página:0.097 segundos
Joomla templates by a4joomla