× Linguagem de Programação ADVPL

Perguntas Fazer pesquisa com FWMBrowse usando Tabela Teporária

Mais
10 anos 6 meses atrás #22950 por lidiane.raissa
Olá, bom dia.

Estou usando o componente FWMBrowse para criar uma telinha, com uma tabela temporária. Só que eu preciso incluir a opção de pesquisa na tela.

Já criei indice nesta tabela temporária com o IndRegua()... mas não rola.

Alguém sabe como fazer isso?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 6 meses atrás #22951 por João Antônio
Eu uso aqui e funciona, ve se te ajuda:
AAdd(aRotina, {"&Pesquisar", "U_JAxPesqui()", 0, 3})

//cria o indice na hora que estiver criando o arquivo
if ORDEM==1
   IndRegua(&cAlias1, cInd, "ZQ_NUM+ZQ_VOLUME+ZQ_PRODUTO+ZQ_PCOR", , , "Criando índices...")
elseif ORDEM==2
   IndRegua(&cAlias1, cInd, "ZQ_NUM+ZQ_PRODUTO+ZQ_PCOR+ZQ_VOLUME", , , "Criando índices...")
endif
	
//atribui ao arquivo temporario criado o indice criado
&cAlias1->(dbClearIndex())	
&cAlias1->(dbSetIndex(cInd+OrdBagExt()))

//Função para pesquisar dados no arquivo temporário
User Function JAxPesqui(ORDEM)
   Private oDlgPesq, oOrdem, oChave, oBtOk, oBtCan, oBtPar
   Private cOrdem
   Private cChave		:= Space(255)
   Private aOrdens	:= {}
   Private nOrd		:= 1
   Private nOpcao		:= 0
		
   if nOrdemG==1
      AAdd(aOrdens, "VOLUME")
   elseif nOrdemG==2
      AAdd(aOrdens, "PRODUTO")
   endif
	
   DEFINE MSDIALOG oDlgPesq TITLE "Pesquisar "+IIF(nOrdemG==1, " Volume", "Produto") FROM 00,00 TO 100,500 PIXEL
      @020,005 MSGET oChave VAR cChave SIZE 210,08 OF oDlgPesq PIXEL
      @005,005 COMBOBOX oOrdem VAR cOrdem ITEMS aOrdens SIZE 210,08 PIXEL OF oDlgPesq ON CHANGE nOrd := oOrdem:nAt	  
	  
      DEFINE SBUTTON oBtOk  FROM 05,218 TYPE 1 ACTION (nOpcao := 1, oDlgPesq:End()) ENABLE OF oDlgPesq PIXEL
      DEFINE SBUTTON oBtCan FROM 20,218 TYPE 2 ACTION (nOpcao := 0, oDlgPesq:End()) ENABLE OF oDlgPesq PIXEL
   ACTIVATE MSDIALOG oDlgPesq CENTER
	
   if nOpcao==1//se apertar o botao verde
      cChave	:= ALLTRIM(cChave)//tira os espaços para acertar a precisao
		
      if nOrdemG==1
         if LEN(cChave)<6				
            cChave	:= REPLICATE("0", 6-LEN(cChave))+cChave
         endif
      elseif nOrdemG==2
         if LEN(ALLTRIM(cChave))==11
            cChave	:= SUBSTR(cChave,1,8)+SPACE(7)+SUBSTR(cChave,10,2)
         elseif LEN(ALLTRIM(cChave))==8				
            cChave	:= SUBSTR(cChave,1,8)
         endif
      endif
		
      &cAlias1->(dbSetOrder(1)) 	  	
      if &cAlias1->(dbSeek(cNumPed+cChave))	  		
      else
         if ORDEM==1
            MSGALERT("VOLUME "+cChave+" NAO ENCONTRADO...", "CONFIRMAR")
         elseif ORDEM==2  			
            MSGALERT("PRODUTO "+cChave+" NAO ENCONTRADO...", "CONFIRMAR")
         endif
      endif
   endIf
Return

se tiver meio confuso só falar que eu explico

Att.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 6 meses atrás #22956 por lidiane.raissa
Funcionou certinho... :lol:

Só que eu não consegui usar o aRotina... tive que adicionar um botão pra pesquisa...

oBrowse:AddButton("Pesquisar", "StaticCall(fonte, JAxPesqui)", , 5, 0)

Muitooo obrigada :silly:

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 6 meses atrás #22960 por João Antônio
o aRotina é porque esse exemplo meu está em uma MBROWSE, esqueci de falar, desculpe.

Que bom que deu certo, de nada estamos ae.

:whistle:

Por favor Acessar ou Registrar para participar da conversa.

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