× Linguagem de Programação ADVPL

Perguntas Fazer pesquisa com FWMBrowse usando Tabela Teporária

Mais
10 anos 10 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 10 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 10 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 10 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.094 segundos
Joomla templates by a4joomla