× Linguagem de Programação ADVPL

Perguntas Consulta Padrao

Mais
11 anos 8 meses atrás #4667 por barater
Consulta Padrao foi criado por barater
Boa tarde
Estou quebrando a cabeça o dia todo e nao consegui chegar a lugar algum. Estou aqui a pedir socorro.
Preciso criar uma consulta padrao com filtro da seguinte forma:

- Tabela: QDH
- Indice: QDH_DOCTO + QDH_RV
- Colunas retorno : QDH_DOCTO, QDH_RV
- Filtro: #U_TQDOM02()
- Retorno: QDH_DOCTO + QDH_RV

Bem, no meu fonte estou usando a query abaixo, onde aglutino por documento e DEVERÁ mostra somente a ultima revisao:

cQuery += "SELECT QDH_DOCTO, MAX(QDH_RV) AS QDH_DOCTO"
cQuery += "FROM "+RetSqlName("QDH")+" (NOLOCK) "
cQuery += "WHERE QDH_FILIAL = "+xFilial("QDH")+" "
cQuery += "AND D_E_L_E_T_ <> '*' "
cQuery += "GROUP BY QDH_DOCTO "
cQuery += "ORDER BY QDH_DOCTO "

Gostaria de uma ajuda de que forma consigo mostrar na minha consulta o resultado desta query (colunas QDH_DOCTO e QDH_DOCTO)?

Obrigado
Cezar

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 8 meses atrás - 10 anos 2 semanas atrás #4669 por lalberto
Respondido por lalberto no tópico Re: Consulta Padrao
Cezar boa tarde, neste caso vc vai precisar montar uma consulta padrão especifica, ou seja, ao invés de executar o padrão protheus ela irá executar uma função sua. Segue um exemplo de como vc deverá fazer.

/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³ BuscaFu Autor ³ Luiz Alberto ³ Data ³ 26/01/10 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Objetivo ³ Tela de Pesquisa Especifica Cadastro de Funcionarios ±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Uso ³ ³±±
±± ³±±
±± ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
/*/
User Function BUSCAFU()
Local aGetArea := GetArea()
Local oBrowCons
Local aMat:={}
Local lOpc:=.F.
Local aInd:={}

SRA->(DbClearFilter())

Aadd(aMat,{"RA_MAT" , "Matricula" , "@!" , "C", 06, 0})
Aadd(aMat,{"RA_NOME" , "Nome Funcionario" , "@!" , "C", 40, 0})

cCondicao:= "SRA->RA_DEMISSA = CtoD('') "
bFiltraBrw := {|| FilBrowse("SRA",@aInd,@cCondicao) }
Eval(bFiltraBrw)

@ 050, 004 TO 500, 750 DIALOG oDlgPrd TITLE "Consulta Funcionarios"
@ 006, 005 TO 190, 370 BROWSE "SRA" FIELDS aMat OBJECT oBrowCons

@ 200, 120 BUTTON "_Pesq Codigo" SIZE 60, 13 ACTION PesqCodSRA()
@ 200, 190 BUTTON "_Pesq Nome" SIZE 60, 13 ACTION PesqNomSRA()
@ 200, 260 BUTTON "_Ok" SIZE 40, 13 ACTION (Close(oDlgPrd), lOpc:=.T.)
@ 200, 310 BUTTON "_Sair" SIZE 40, 13 ACTION Close(oDlgPrd)

oDlgPrd:lCentered := .t.
oDlgPrd:Activate()

//alert('Produto escolhido: '+SB1->B1_DESC)

SRA->(DbClearFilter())


Return lOpc

Static Function PesqCodSRA()

Local cCondicao:=''
Local cGet:=Space(06)
Local aInd:={}

DEFINE MSDIALOG oDlgPesq FROM 96,42 TO 250,305 TITLE "Pesquisa por Matricula:" PIXEL OF oMainWnd
@ 8,11 TO 71,122
@ 13,15 SAY "Expressão: "
@ 13,50 GET cGet picture "@!" SIZE 60,30
@ 40,55 BMPBUTTON TYPE 01 ACTION oDlgPesq:End()

Activate MsDialog oDlgPesq Centered

If !Empty(cGet)
SRA->(dbSetOrder(1))
SRA->(dbSeek(xFilial("SRA")+cGet))

Endif
return


Static Function PesqNOMSRA()
Local cGet:=Space(40)

DEFINE MSDIALOG oDlgPesq FROM 96,42 TO 250,305 TITLE "Pesquisa por Nome:" PIXEL OF oMainWnd
@ 8,11 TO 71,122
@ 13,15 SAY "Expressão: "
@ 13,50 GET cGet picture "@!" SIZE 60,30
@ 40,55 BMPBUTTON TYPE 01 ACTION oDlgPesq:End()

Activate MsDialog oDlgPesq Centered

If !Empty(cGet)
SRA->(DBSetOrder(3))
SRA->(DBseek(xFilial("SRA")+Rtrim(cGet)))
Endif

return





Na tabela SXB
Vc vai criar sua consulta como tipo RE
Conforme Exemplo da tela a seguir:





No meu exemplo vc vai colocar a tabela SRA, e no lugar da função F3AgCom() vc vai colocar U_BUSCAFU() e no lugar do retorno SRA->RA_NUM por exemplo.

Faz um teste ai.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Anexos:
Ultima edição: 10 anos 2 semanas atrás por lalberto.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 semanas atrás #22359 por Rei da TI
Respondido por Rei da TI no tópico Re: Consulta Padrao
Bom dia

Luiz,

Eu peguei sua consulta padrão abaixo como exemplo, funcionou sim, só tive um problema na consulta pelo nome.

1-Se consulto pela lista marco o funcionário e clico em ok, blz passa.
2-Se consulto pelo código da matricula e clico em ok, blz, passa.
3-Se consulto pelo nome do funcionário e clico em ok, aparece um erro, registro não encontrado.

A minha duvida é será que quando retorna o valor não fica na memoria o nome do Funcionário ao invés da matricula?

Teria como me ajudar?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 semanas atrás #22372 por lalberto
Respondido por lalberto no tópico Re: Consulta Padrao
Reinaldo que erro esta apresentando ?

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.

Mais
10 anos 2 semanas atrás #22373 por Rei da TI
Respondido por Rei da TI no tópico Re: Consulta Padrao
Opa

O erro é ...

Não existe registro relacionado a este código.

Por favor Acessar ou Registrar para participar da conversa.

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