Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Consulta específica

Dúvida
Criar consulta específica

Ambiente
Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - A partir da versão 11.80

 

Solução
A seguir um exemplo de consulta específica para ser utilizado na rotina de Roteiro de Operações, acionada no F3 do campo C2_ROTEIRO, irá apresentar uma listagem dos registros contendo os campos G2_CODIGO, G2_PRODUTO e G2_DESCRI, após selecionar o registro irá retornar G2_CODIGO ao campo C2_ROTEIRO; 

#Include 'Protheus.ch'

User Function ConEspOp()
  Local oDlg, oLbx
  Local aCpos  := {}
  Local aRet  := {}
  Local cQuery := ""
  Local cAlias := GetNextAlias()
  Local lRet  := .F.

  cQuery := " SELECT DISTINCT SG2.G2_CODIGO, SG2.G2_PRODUTO, SG2.G2_DESCRI "
  cQuery +=  " FROM " + RetSqlName("SG2") + " SG2 "
  cQuery +=  " WHERE SG2.D_E_L_E_T_ = ' ' "
  cQuery +=    " AND SG2.G2_FILIAL  = '" + xFilial("SG2") + "' "
  If !Empty(M->C2_PRODUTO)
      cQuery += " AND SG2.G2_PRODUTO = '" + M->C2_PRODUTO + "' "
  EndIf
  cQuery += " ORDER BY 2,1 "

  cQuery := ChangeQuery(cQuery)

  dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAlias,.T.,.T.)

  While (cAlias)->(!Eof())
      aAdd(aCpos,{(cAlias)->(G2_CODIGO), (cAlias)->(G2_PRODUTO), (cAlias)->(G2_DESCRI)})
      (cAlias)->(dbSkip())
  End
  (cAlias)->(dbCloseArea())

  If Len(aCpos) < 1
      aAdd(aCpos,{" "," "," "})
  EndIf

  DEFINE MSDIALOG oDlg TITLE /*STR0083*/ "Roteiro de operações" FROM 0,0 TO 240,500 PIXEL

    @ 10,10 LISTBOX oLbx FIELDS HEADER 'Roteiro' /*"Roteiro"*/, 'Produto' /*"Produto"*/, 'Descricao' SIZE 230,95 OF oDlg PIXEL

    oLbx:SetArray( aCpos )
    oLbx:bLine    := {|| {aCpos[oLbx:nAt,1], aCpos[oLbx:nAt,2], aCpos[oLbx:nAt,3]}}
    oLbx:bLDblClick := {|| {oDlg:End(), lRet:=.T., aRet := {oLbx:aArray[oLbx:nAt,1],oLbx:aArray[oLbx:nAt,2], oLbx:aArray[oLbx:nAt,3]}}}

  DEFINE SBUTTON FROM 107,213 TYPE 1 ACTION (oDlg:End(), lRet:=.T., aRet := {oLbx:aArray[oLbx:nAt,1],oLbx:aArray[oLbx:nAt,2], oLbx:aArray[oLbx:nAt,3]})  ENABLE OF oDlg
  ACTIVATE MSDIALOG oDlg CENTER

  If Len(aRet) > 0 .And. lRet
    If Empty(aRet[1])
        lRet := .F.
    Else
        SG2->(dbSetOrder(1))
        SG2->(dbSeek(xFilial("SG2")+aRet[2]+aRet[1]))
    EndIf
  EndIf
Return lRet

Configure a consulta atrelando a função de usuário conforme prints a seguir;


Em seguida atribua a consulta SG2003 ao campo C2_ROTEIRO

Obs. O exemplo passado serve como uma referência, a regra da consulta específica é de responsabilidade do desenvolvedor/cliente, o suporte da TOTVS não se responsabiliza por eventuais erros e não prestará suporte ao desenvolvimento de regras específicas.

 

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _