×
Linguagem de Programação ADVPL
Perguntas Tela de consulta
- ariclenesmcosta
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16754
por ariclenesmcosta
Tela de consulta foi criado por ariclenesmcosta
Alguém poderia disponibilizar um fonte de exemplo de uma tela onde o usuário digita algo em um campo(Ex: Código do produto), clica em um botão(Ex: Pesquisar) e após clicar em pesquisar o grid é populado conforme digitação do usuário.
Desde já agradeço a vc´s pela ajuda
Desde já agradeço a vc´s pela ajuda
Por favor Acessar ou Registrar para participar da conversa.
- rodrigolparaujo
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 78
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16953
por rodrigolparaujo
Respondido por rodrigolparaujo no tópico Tela de consulta
Olá, segue um exemplo funcional
#include "protheus.ch"
user function fGrid()
/*declare as variaveis antes*/
DEFINE MSDIALOG oDlg TITLE "Impressão de Etiquetas" FROM 000,000 To 480,nMargDir-10 PIXEL STYLE DS_MODALFRAME
cSerie := "001"
dInicio:= dDatabase-1
dFinal := dDatabase
@ 000, 000 GROUP oFiltro TO 026, 250 PROMPT "Filtro" OF oDlg COLOR 0, 16777215 PIXEL
@ 008, 005 SAY oSay3 PROMPT "Data De:" SIZE 025, 007 OF oFiltro COLORS 16711680, 16777215 PIXEL
@ 006, 024 MSGET oDataDe VAR dInicio SIZE 046, 010 OF oFiltro COLORS 0, 16777215 VALID !Empty(dInicio) PIXEL
@ 008, 074 SAY oSay4 PROMPT "Data Ate:" SIZE 025, 007 OF oFiltro COLORS 16711680, 16777215 PIXEL
@ 006, 098 MSGET oDataAte VAR dFinal SIZE 046, 010 OF oFiltro COLORS 0, 16777215 VALID !Empty(dFinal) PIXEL
@ 008, 146 SAY oSay1 PROMPT "Informe a(s) Nota(s) Fiscal(is):" SIZE 073, 007 OF oFiltro COLORS 0, 16777215 PIXEL
@ 006, 218 MSGET oNF VAR cNF SIZE 105, 010 OF oFiltro F3 "SF2" PIXEL
@ 008, 325 SAY oSay2 PROMPT "Série:" SIZE 025, 007 OF oFiltro COLORS 16711680, 16777215 PIXEL
@ 006, 350 MSGET oSerie VAR cSerie SIZE 020, 010 OF oFiltro VALID !Empty(cSerie) PIXEL
@ 018, 146 SAY oSay2 PROMPT "Separe uma nota fiscal da outra com virgula" SIZE 127, 007 OF oFiltro COLORS 255, 16777215 PIXEL
@ 006, 386 BUTTON oPesquisar PROMPT "Pesquisar" SIZE 037, 010 OF oFiltro Action Processa({|| fAgrupa(cNF,cSerie,dInicio,dFinal) },"Processando...") PIXEL
@ 009, 427 CHECKBOX oCheckBo1 VAR lCheckBo1 PROMPT "Mostrar notas impressas" SIZE 077, 008 OF oFiltro COLORS 0, 16777215 PIXEL
oList := TCBrowse():New(015,005,440,220,,,,oDlg,,,,,,,,,,,,.F.,,.T.,,.F.,,,)
oList:AddColumn(TCColumn():New(" " , {|| If(aItens[oList:nAt,01],oOk,oNo) },,,,,,.T.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Nota Fiscal" , {|| aItens[oList:nAt,02]},"@!",,,"CENTER", 030,.F.,.F.,,{|| .F. },,.F., ) )
oList:AddColumn(TCColumn():New("Série" , {|| aItens[oList:nAt,03]},"@!",,,"CENTER", 040,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Pedido" , {|| aItens[oList:nAt,04]},"@!",,,"CENTER", 030,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Volume" , {|| aItens[oList:nAt,05]},"@!",,,"CENTER", 030,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Emissão" , {|| aItens[oList:nAt,06]},"@D",,,"CENTER", 030,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Código" , {|| aItens[oList:nAt,07]},"@!",,,"CENTER", 040,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Loja" , {|| aItens[oList:nAt,08]},"@!",,,"CENTER", 020,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Cliente/Fornecedor" , {|| aItens[oList:nAt,09]},"@!",,,"LEFT" , 143,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("UF" , {|| aItens[oList:nAt,10]},"@!",,,"CENTER", 020,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Cidade" , {|| aItens[oList:nAt,11]},"@!",,,"LEFT" , 140,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Código" , {|| aItens[oList:nAt,12]},"@!",,,"CENTER", 030,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Transportadora" , {|| aItens[oList:nAt,13]},"@!",,,"LEFT" , 140,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("Nota Mãe" , {|| aItens[oList:nAt,14]},"@!",,,"LEFT" , 40 ,.F.,.F.,,{|| },,.F., ) )
oList:AddColumn(TCColumn():New("Tipo" , {|| aItens[oList:nAt,15]},"@!",,,"LEFT" , 30 ,.F.,.F.,,,,.F., ) )
oList:AddColumn(TCColumn():New("X" , {|| aItens[oList:nAt,16]},"@!",,,"LEFT" , 1 ,.F.,.F.,,,,.F., ) )
oList:SetArray(aItens)
oList:bWhen := { || Len(aItens) > 0 }
oList:bLDblClick := { || aItens[oList:nAt,01] := !aItens[oList:nAt,01],iif(aItens[oList:nAt,01]=.F.,aItens[oList:nAt,14]:=" ",fValida())}
oList:bHeaderClick := { || fSelectAll(oList,aItens,1) }
oList:bRClicked := { || fEdita(@aItens, oList, "@!", 14)}
oFiltro:Align := CONTROL_ALIGN_TOP
oList:Align := CONTROL_ALIGN_ALLCLIENT
oList:SetFocus()
aAdd(aBotoes, {"SUMARIO" , {||u_FATR001C()}, "Imprimir Etiqueta Caixa" , "Imp.Etiq"})
aAdd(aBotoes, {"PARAMETROS" , {||u_FATR001T()}, "Imprimir Etiqueta Tecnico", "Imp.Tec."})
aAdd(aBotoes, {"UPDWARNING" , {||u_FATR001A()}, "Dicas", "Dicas"})
EnchoiceBar(oDlg, {||oDlg:End()}, {||oDlg:End()},,aBotoes)
ACTIVATE MSDIALOG oDlg CENTERED
return
Static Function fAgrupa(cNF,cSerie,dInicio,dFinal)
Local cTmp := GetNextAlias()
Local cWhere := IIF(Empty(cNF),"% SERIE = '"+cSerie+"' %","% SERIE = '"+cSerie+"' AND DOC IN "+ FORMATIN(alltrim(cNF),",") +" %")
Local cOnde := iif(lCheckBo1 ,"% F2_ZZIMPET = 'S' %","% F2_ZZIMPET = ' ' %")
IF SELECT(cTmp) # 0
(cTmp)->(dbCloseArea())
ENDIF
BeginSql Alias cTmp
SELECT DISTINCT FILIAL,DOC,SERIE,EMISSAO,CLIENTE,LOJA,NOME,ESTADO,CIDADE,CODTRANS,TRANSPOR,VOLUME,PEDIDO,TIPO FROM
(
SELECT F2_FILIAL FILIAL,
F2_DOC DOC,
F2_SERIE SERIE,
F2_EMISSAO EMISSAO,
F2_CLIENTE CLIENTE,
F2_LOJA LOJA,
F2_TIPO TIPO,
CASE WHEN F2_TIPO IN ('B','D') THEN A2_NOME ELSE A1_NOME END NOME,
CASE WHEN F2_TIPO IN ('B','D') THEN A2_EST ELSE A1_EST END ESTADO,
CASE WHEN F2_TIPO IN ('B','D') THEN A2_MUN ELSE A1_MUN END CIDADE,
F2_TRANSP CODTRANS,
ISNULL(A4_NOME,SPACE(30)) TRANSPOR,
F2_VOLUME1 VOLUME,
D2_PEDIDO PEDIDO
FROM %Table:SF2% SF2
LEFT OUTER JOIN %Table:SA4% SA4
ON SA4.D_E_L_E_T_ = ' '
AND SA4.A4_FILIAL = %xFilial:SA4%
AND SA4.A4_COD = SF2.F2_TRANSP
LEFT OUTER JOIN %Table:SA1% SA1
ON SA1.D_E_L_E_T_ = ' '
AND SA1.A1_FILIAL = %xFilial:SA1%
AND SA1.A1_COD = SF2.F2_CLIENTE
AND SA1.A1_LOJA = SF2.F2_LOJA
LEFT OUTER JOIN %Table:SA2% SA2
ON SA2.D_E_L_E_T_ = ' '
AND SA2.A2_FILIAL = %xFilial:SA2%
AND SA2.A2_COD = SF2.F2_CLIENTE
AND SA2.A2_LOJA = SF2.F2_LOJA
LEFT OUTER JOIN %Table:SD2% SD2
ON SD2.D_E_L_E_T_ = ' '
AND SD2.D2_FILIAL = %xFilial:SD2%
AND SD2.D2_DOC = SF2.F2_DOC
AND SD2.D2_SERIE = SF2.F2_SERIE
AND SD2.D2_CLIENTE = SF2.F2_CLIENTE
AND SD2.D2_LOJA = SF2.F2_LOJA
WHERE SF2.D_E_L_E_T_ = ' '
AND F2_FILIAL = %xFilial:SF2%
AND %Exp:cOnde%
) AS TAB
WHERE EMISSAO >= %Exp:dtos(dInicio)% AND EMISSAO <= %Exp:dtos(dFinal)%
AND %Exp:cWhere%
ORDER BY FILIAL,DOC,SERIE,CLIENTE,CODTRANS,EMISSAO ASC,VOLUME DESC
EndSql
dbSelectArea(cTmp)
If (cTmp)->(Eof())
ApMsgInfo("Não existem NF's para esta pesquisa.","Informação")
Return .F.
EndIf
ProcRegua((cTmp)->(RecCount()))
aItens:={}
lPrim := .T.
cMae := "N"
While !Eof()
IncProc("Lendo "+(cTmp)->(DOC))
If lPrim
cMae := "S"
lPrim:= .F.
Else
cMae := "N"
Endif
aadd(aItens,{.f.,;
Alltrim((cTmp)->(DOC)),;
Alltrim((cTmp)->(SERIE)),;
Alltrim((cTmp)->(PEDIDO)),;
Alltrim(STR((cTmp)->(VOLUME))),;
dtoc(stod((cTmp)->(EMISSAO))),;
Alltrim((cTmp)->(CLIENTE)),;
Alltrim((cTmp)->(LOJA)),;
Alltrim((cTmp)->(NOME)),;
Alltrim((cTmp)->(ESTADO)),;
Alltrim((cTmp)->(CIDADE)),;
Alltrim((cTmp)->(CODTRANS)),;
Alltrim((cTmp)->(TRANSPOR)),;
SPACE(LEN(Alltrim((cTmp)->(DOC)))),;
Alltrim((cTmp)->(TIPO)),;
" "})
dbSelectArea(cTmp)
dbSkip()
EndDo
dbCloseArea()
oList:SetArray(aItens)
oList:GoTop()
oList:Refresh(.t.)
Return
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.106 segundos