Criando um grid com MarkBrow
A utilização do componente MarkBrow é bem simples, você o encontra em várias rotinas do sistema, como na rotina SPEDNFE ou no Documento de exclusão de saida de Nf, etc…
A função MarkBrow() permite que os elementos de um browser sejam marcados ou desmarcados.
Sintaxe:
MarkBrow ( [ cAlias ] [ cCampo ] [ cCpo ] [ aCampos ] [ lInverte ] [ cMarca ] [ cCtrlM ] [ uPar8 ] [ cExpIni ] [ cExpFim ] [ cAval ] [ bParBloco ] [ cExprFilTop ] [ uPar14 ] [ aColors ] [ uPar16 ] )
Observações
Para utilização da MarkBrow() é necessário declarar as variáveis cCadastro e aRotina () como Private acima da chamada da função.
aRotina
Vetor com as rotinas que serão executadas. Nele será definido o tipo de operação a ser executada (inclusão, alteração, exclusão, visualização, pesquisa, …), sua estrutura é composta de 5 (cinco) dimensões:
[n][1] – Título
[n][2] – Rotina
[n][3] – Reservado
[n][4] – Operação (1 – pesquisa; 2 – visualização; 3 – inclusão; 4 – alteração; 5 – exclusão)
[n][5] – Acesso relacionado à rotina. Se esta posição não for informada, nenhum acesso será validado.
aCampos
[n][1] – Nome do campo
[n][2] – Nulo (Nil);
[n][3] – Título do campo
[n][4] – Máscara (picture).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
User Function AFIN003 Local aPerg := {} Private cAlias := "SE2" Private cCadastro := "Contas a Pagar" Private aRotina := {} Private aTitulos := {} Private aIndexQRY := {} Private aIndexSE2 := {} Private cExp := "" Private aFiltro := {} Private bFiltraBrw := {|| Nil } Private _cQuery := "" Private cText := "" Private aCores := {} Private aCampos := {} Private cArqTrab := "" Private cFiltro := "" Private nOrdPesq := 1 Private cCondicao := "" CriaSx1a('AFIN003F') if !(Pergunte('AFIN003F',.T.)) Alert("Cancelado pelo usuario!") return endif AADD(aRotina,{"Visualizar" ,"U_AFIN003V" , 0,2}) Aadd(aRotina,{"Aviso" ,"U_AFIN003A" , 0,6}) dbSelectArea("SE2") cCondicao := " E2_PREFIXO == 'EIC' " cCondicao += " .AND. E2_NUMDI >= '"+mv_par01 +"' .AND. E2_NUMDI <= '"+mv_par02+"' " cCondicao += " .AND. E2_NUM >= '"+mv_par03 +"' .AND. E2_NUM <= '"+mv_par04+"' " cCondicao += " .AND. E2_FORNECE >= '"+mv_par05 +"' .AND. E2_FORNECE <= '"+mv_par07+"' " cCondicao += " .AND. E2_LOJA >= '"+mv_par06 +"' .AND. E2_LOJA <= '"+mv_par08+"' " cCondicao += " .AND. DTOS(E2_EMISSAO) >= '"+Dtos(MV_PAR09) +"'.And. DTOS(E2_EMISSAO) <= '"+Dtos(MV_PAR10)+"'" if mv_par12>0 cCondicao += " .AND. E2_VALOR >= '"+STR(mv_par11)+"' .AND. E2_VALOR <= '"+STR(mv_par12)+"' " endif If !Empty(mv_par13) cCondicao+= " .AND. E2_HIST $ '"+Alltrim(mv_par13)+"' " endif If !Empty(mv_par15) cCondicao+= " .AND. E2_HAWBEIC == '"+mv_par15+"' " endif If !Empty(mv_par16) cCondicao+= " .AND. E2_PO_EIC == '"+mv_par16+"' " endif bFiltraBrw := {|| FilBrowse("SE2",@aIndexSE2,@cCondicao) } Eval(bFiltraBrw) dbSelectArea("SE2") if mv_par14==1 SE2->(dbSetOrder(5)) Elseif mv_par14==2 SE2->(dbSetOrder(17)) Elseif mv_par14==1 SE2->(dbSetOrder(1)) Endif SE2->(dbGoTop()) SET FILTER TO &(cCondicao) Aadd(aCampos, {'E2_ZZMARCA' ,'C','Ok' ,1,0,'@!'}) Aadd(aCampos, {'E2_NUMDI' ,'C','D.I' ,PesqPict("SE2","E2_NUMDI") ,TAMSX3("E2_NUMDI")[1] ,TAMSX3("E2_NUMDI")[2]}) Aadd(aCampos, {'E2_PO_EIC' ,'C','P.O' ,PesqPict("SE2","E2_PO_EIC") ,TAMSX3("E2_PO_EIC")[1] ,TAMSX3("E2_PO_EIC")[2]}) Aadd(aCampos, {'E2_HAWBEIC' ,'C','Hawb' ,PesqPict("SE2","E2_HAWBEIC") ,TAMSX3("E2_HAWBEIC")[1] ,TAMSX3("E2_HAWBEIC")[2]}) Aadd(aCampos, {'E2_PREFIXO' ,'C','Prefixo' ,PesqPict("SE2","E2_PREFIXO") ,TAMSX3("E2_PREFIXO")[1],TAMSX3("E2_PREFIXO")[2]}) Aadd(aCampos, {'E2_NUM' ,'C','Titulo' ,PesqPict("SE2","E2_NUM") ,TAMSX3("E2_NUM")[1] ,TAMSX3("E2_NUM")[2]} ) Aadd(aCampos, {'E2_PARCELA' ,'C','Parcela' ,PesqPict("SE2","E2_PARCELA") ,TAMSX3("E2_PARCELA")[1] ,TAMSX3("E2_PARCELA")[2]} ) Aadd(aCampos, {'E2_TIPO' ,'C','Tipo' ,PesqPict("SE2","E2_TIPO") ,TAMSX3("E2_TIPO")[1] ,TAMSX3("E2_TIPO")[2]} ) Aadd(aCampos, {'E2_NATUREZ' ,'C','Natureza' ,PesqPict("SE2","E2_NATUREZ") ,TAMSX3("E2_NATUREZ")[1] ,TAMSX3("E2_NATUREZ")[2]}) Aadd(aCampos, {'E2_FORNECE' ,'C','Fornecedor',PesqPict("SE2","E2_FORNECE") ,TAMSX3("E2_FORNECE")[1] ,TAMSX3("E2_FORNECE")[2]}) Aadd(aCampos, {'E2_LOJA' ,'C','Loja' ,PesqPict("SE2","E2_LOJA") ,TAMSX3("E2_LOJA")[1] ,TAMSX3("E2_LOJA")[2]} ) Aadd(aCampos, {'E2_EMISSAO' ,'D','Emissao' ,PesqPict("SE2","E2_EMISSAO") ,TAMSX3("E2_EMISSAO")[1] ,TAMSX3("E2_EMISSAO")[2]}) Aadd(aCampos, {'E2_VENCTO' ,'D','Vencimento',PesqPict("SE2","E2_VENCTO") ,TAMSX3("E2_VENCTO")[1] ,TAMSX3("E2_VENCTO")[2]}) Aadd(aCampos, {'E2_VENCREA' ,'D','Venc.Real',PesqPict("SE2","E2_VENCREA") ,TAMSX3("E2_VENCREA")[1] ,TAMSX3("E2_VENCREA")[2]}) Aadd(aCampos, {'E2_VALOR' ,'N','Valor' ,PesqPict("SE2","E2_VALOR") ,TAMSX3("E2_VALOR")[1] ,TAMSX3("E2_VALOR")[2]}) Aadd(aCampos, {'E2_SALDO' ,'N','Saldo' ,PesqPict("SE2","E2_SALDO") ,TAMSX3("E2_SALDO")[1] ,TAMSX3("E2_SALDO")[2]}) Aadd(aCampos, {'E2_HIST' ,'C','Historico',PesqPict("SE2","E2_HIST") ,TAMSX3("E2_HIST")[1] ,TAMSX3("E2_HIST")[2]}) MarkBrow("SE2","E2_ZZMARCA","",aCampos,.F.,GetMark(,"SE2","E2_ZZMARCA"),,,,,,,,,) Set Filter to SE2->(DbGotop()) Return |