Jump to content
Fivewin Brasil

browse


Alain da Silva

Recommended Posts

Bom dia, estou testando esse pequeno exemplo com o xbrowse e não aparece o browse.

#INCLUDE "FIVEWIN.CH"
#INCLUDE "XBROWSE.CH"

REQUEST DBFCDX
REQUEST HB_CODEPAGE_PT850
REQUEST HB_LANG_PT
FUNCTION MAIN()
  Local oDlg,OBTN1
  HB_SETCODEPAGE("PT850")
  HB_LANGSELECT("PT")
  SETHANDLECOUNT(255)         // NUMERO MAXIMO DE ARQUIVOS ABERTOS
  RDDSETDEFAULT("DBFCDX")
  SET EXCL OFF
  SET CENT ON
  SET _3DLOOK ON
  SET DATE BRIT
  SET EPOCH TO 1980
  SET EXAC OFF
  SET EXCL OFF
  SET STAT OFF
  SET CONS OFF
  SET BELL OFF
  SET DATE FREN
  SET WRAP ON
  SET SCOR OFF
  SET DELE ON
  SET DECI TO 2
  SET ESCAPE ON
  SET MULTIPLE ON
  SETCANCEL(.F.)
  SET AUTOPEN ON
  SET EVENTMASK TO 128  && (INKEY_ALL)
  SET(_SET_EVENTMASK)
  IF ABRE17()=.F.
     RETURN(.F.)
  ENDIF
  DEFINE ICON oIco FILE "FENIX.ICO"
  DEFINE DIALOG oDlg STYLE WS_OVERLAPPEDWINDOW ICON oIco
         oDlg:lHelpIcon:=.f.
         oDlg:setfont( oFontes )
         oDlg:cCaption:='Fenix Sistem@s - Emissor NF-e'

  @0,10 XBROWSE oBrw OF oDlg;
        FIELDS 'arqnfe->serie','ARQNFE->NOTA' ;
        HEADERS 'Série','Nota Fiscal' ;
        ALIAS "ARQNFE" ;
        AUTOSORT FASTEDIT LINES CELL

  if ! Empty( oCol := oBrw:oCol( "Série" ) )
     oCol:SetCheck( { "ON", "OFF" } )
     oCol:cSortOrder  := nil
  endif


  @18,5 BUTTON oBTN1 PROMPT "Sair" of oDLG ;
         ACTION( oDLG:END() )

  Activate Dialog oDlg Centered  on init (ShowWindow( oDlg:hWnd, 3 ),buildcontrolmenu(odlg),oBrw:SetFocus())

  DBCLOSEALL()
  RELEASE ALL
  RETURN NIL
  Return Nil

**---------------------------------------------------------------

static FUNCTION ABRE17
  SELE 17
  USE e:\wfatura\DADOS\ARQNFE INDEX e:\wfatura\DADOS\ARQNFE
  IF BLOQUEIO()=.F.
     RETURN(.F.)
  ENDIF
  RETURN(.T.)
  
static FUNCTION BLOQUEIO(oArquivo)
  IF NETERR()
     MSGINFO("Arquivo Bloqueado p/ Manutenção | "+oArquivo)
     RETURN(.F.)
  ENDIF
RETURN(.T.)


static func buildcontrolmenu(odlg)
  MENU oMenu
    MENUITEM "Arquivo"
    MENUITEM "Versão" ACTION MsgAbout("FiveWin",FWVERSION+" >> "+VERSION())
    MENUITEM "Sair"
       MENU
         MENUITEM "Retorna ao Menu Principal" resource "SAIRm" action (SAIDLG:=.T.,odlg:END())
       endmenu
  ENDMENU
  odlg:setmenu(oMenu)


obrigado

Link to comment
Share on other sites

Alain

Boa tarde

Segue exemplo com browse de vetor.

LOCAL aPics := { LoadBitmap( GetResources() , "MARCANAO" ) , ;
                 LoadBitmap( GetResources() , "MARCASIM"  )   }



REDEFINE LISTBOX oLista FIELDS ;
         iif(Len(aLista)==0,"",aPics[iif(aLista[oLista:nAt,1]==1,2,1)]),;
         iif(Len(aLista)==0,"",aLista[oLista:nAt,2]),;
         iif(Len(aLista)==0,"",aLista[oLista:nAt,3]) ;
         HEADERS  "M","Matricula","Nome" ;
         ID 150 OF oDlg SIZES 20, 60, 250 

   oLista:bGoTop    = { || oLista:nAt := 1 }
   oLista:bGoBottom = { || oLista:nAt := Eval( oLista:bLogicLen ) }
   oLista:bSkip     = { | nWant, nOld | nOld := oLista:nAt, oLista:nAt += nWant,;
                          oLista:nAt := Max( 1, Min( oLista:nAt, Eval( oLista:bLogicLen ) ) ),;
                          oLista:nAt - nOld } 
   oLista:bLogicLen = { ||  Len( aLista )  }
   oLista:cAlias    = "Array"                  

oLista:bLDblClick := {||  aLista[oLista:nAt,1] := iif(aLista[oLista:nAt,1]==1,0,1),;
                          oLista:Refresh() }

Mas com banco de dados a ideia é a mesma, vetor com imagens da RC (LoadBitmap), de acordo com a opção você apresenta a imagem na coluna.

Neste caso do exemplo se a primeira posição do vetor for 1 mostra a segunda imagem do vetor, caso contrário mostra a primeira.

Att

João Bosco

Link to comment
Share on other sites

exemplo:

  @ 0,0 XBROWSE oLbxAgen FIELDS Agen->Cod_Agen,;
                                Agen->Nom_Agen,;
                                Agen->Usu_Agen,;
                                Agen->Tim_Agen;
                        HEADERS "Cód.",;
                                "Agente Cobrador",;
                                "Usuário",;
                                "Data/Hora";
                        JUSTIFY .f., .f., .f., .f.;
                     FONT oFont ALIAS "AGEN" OF oWndAgen AUTOSORT LINES CELL

   oLbxAgen:nMarqueeStyle       := MARQSTYLE_HIGHLROW
   oLbxAgen:nColDividerStyle    := LINESTYLE_BLACK
   oLbxAgen:nRowDividerStyle    := LINESTYLE_BLACK
   oLbxAgen:lColDividerComplete := .t.
   oLbxAgen:lFooter             := .t.
   oLbxAgen:nFreeze             := 0
   oLbxAgen:bLDblClick          := { || EditAgen(oLbxAgen, .f.) }
   oLbxAgen:bClrSelFocus        := {|| { CLR_BLACK, CLR_FOCO } }
   oLbxAgen:bClrStd             := {|| { CLR_WHITE, If((Agen->(ORDKEYNO()))%2==0, CLR_BRW1, CLR_BRW2) } }
   oLbxAgen:bKeyDown            := {|nKey| BrwKeyAgen(nkey, oLbxAgen, oPesqComboAgen) }
   oLbxAgen:bRClicked           := { | nRow, nCol | BrwPopAgen(nRow, nCol, oWndAgen, oLbxAgen ) }

   oLbxAgen:SetGroupHeader( "CADASTRO AGENTE COBRADOR", 1, 2, oFont4 )

   oCol  := oLbxAgen:aCols[ 1 ]
   oCol:cSortOrder := 'AGEN1'
   ocol:cToolTip:="Clique para ordenar por código"

   oCol  := oLbxAgen:aCols[ 2 ]
   oCol:cSortOrder := 'AGEN2'
   ocol:cToolTip:="Clique para ordenar por descrição"

   oLbxAgen:SetRDD()
   oLbxAgen:CreateFromCode()
   oWndAgen:oClient := oLbxAgen

  ACTIVATE WINDOW oWndAgen MAXIMIZED ON INIT (oLbxAgen:SetFocus(), oLbxAgen:Refresh()) VALID(oLbxAgen:End(), .t.)

Return Nil

Link to comment
Share on other sites

Acredito que esteja faltando isso:
@0,10 XBROWSE oBrw OF oDlg;
FIELDS 'arqnfe->serie','ARQNFE->NOTA' ;
HEADERS 'Série','Nota Fiscal' ;
ALIAS "ARQNFE" ;
AUTOSORT FASTEDIT LINES CELL
oBrw:CreateFromCode()
oBrw:SetFocus()
um abraço
Link to comment
Share on other sites

         @ 0,0 XBROWSE  oLbxAgen FIELDS;
                                 arqnfe->serie,;
                                 arqnfe->nota,;
                                 arqnfe->dtemissao,;
                                 arqnfe->destinata,;
                                 Transf(ARQNFE->VALORTOTAL,"@E 999,999.99");
                        HEADERS;
                                'Série',;
                                'Nota Fiscal',;
                                'Dt.Emissão',;
                                'Destinatário',;
                                'Valor NFe';
                        JUSTIFY .f., .T., .T., .f.,.T.;
                        FONT oFontes ALIAS "ARQNFE" OF ODLG AUTOSORT LINES CELL

  oLbxAgen:nMarqueeStyle       := MARQSTYLE_HIGHLROW
  oLbxAgen:nColDividerStyle    := LINESTYLE_BLACK
  oLbxAgen:nRowDividerStyle    := LINESTYLE_BLACK
  oLbxAgen:lColDividerComplete := .t.
  oLbxAgen:lFooter             := .t.
  oLbxAgen:nFreeze             := 0
  oLbxAgen:bLDblClick          := { || MSGINFO("DUPLI CLICK")}
  oLbxAgen:bClrSelFocus        := {|| { CLR_BLACK, AZULXP } }
  oLbxAgen:bClrStd             := {|| { PRETO, If((ARQNFE->(ORDKEYNO()))%2==0, CINZACL, CINZATL) } }
  oLbxAgen:bKeyDown            := {|nKey| MSGINFO("TECLA")}
  oLbxAgen:bRClicked           := { | nRow, nCol | MSGINFO("UM CLICK")}
  oLbxAgen:SetGroupHeader( "GERENCIAMENTO DE NOTAS", 1, 5, BOOK18 )

  oCol  := oLbxAgen:aCols[ 1 ]
  oCol:cSortOrder := 'PED1'
  ocol:cToolTip:="Clique para ordenar por código"

  oCol  := oLbxAgen:aCols[ 2 ]
  oCol:cSortOrder := 'PED8'
  ocol:cToolTip:="Clique para ordenar por descrição"

  oCol  := oLbxAgen:aCols[ 4 ]
  oCol:cSortOrder := 'PED2'
  ocol:cToolTip:="Clique para ordenar por descrição"

  oLbxAgen:SetRDD()
  oLbxAgen:CreateFromCode()
  odlg:oClient := oLbxAgen

*  oLbxAgen:aCols[1 ]:SetCheck( {"sim","nao"}, {|o,u| o:Value( u ) } )

Atualizando o código, Ele coloca um browse na tela toda.

Como eu delimito o tamanho do browse?

Como eu coloco um checkbox?

Como eu faço pra ja entrar com oCol := oLbxAgen:aCols[ 2 ] ativo?

obrigado

Link to comment
Share on other sites

Como eu delimito o tamanho do browse?
R: retire "
odlg:oClient := oLbxAgen"

Como eu coloco um checkbox?

// somente assim vc terá o checkbox padrão do fivewin

oLbxAgen:aCols[1 ]:SetCheck()

//agora irei te falar como funciona o SetCheck()
oLbxAgen:aCols[1 ]:SetCheck( <{"imagem1","imagem2"}>, {|oBrw,lVAr| <sua_funcao( oBrw, lVar)>} )

o primeiro são as imagens do checkbox, se voce quiser usar os proprios

o segundo é um codeblock o primeiro parametro é o objeto browse e o segundo é o click ou seja .T. ou .F.

// voce pode usar assim tb que fica a imagem padrao e usa a sua função

oLbxAgen:aCols[1 ]:SetCheck( , {|oBrw,lVAr| <sua_funcao( oBrw, lVar)>} )

Como eu faço pra ja entrar com oCol := oLbxAgen:aCols[ 2 ] ativo?

eu não entendi a sua pergunta

Link to comment
Share on other sites

Obrigado pela ajuda Alessandro, eu nunca utilizei o xbrowse.

Quanto ao tamanho do browse ok, funcionou.

Tem como colocar o tamanho da largura do tamanho do vídeo?

of odlg lines cell size 700,250

Ainda não consegui fazer funcionar o check.

olbx:acols[1]:setcheck( , { | olbx,v | msginfo("teste") } ) (não acontece nada!!!) é assim?

Link to comment
Share on other sites

em como colocar o tamanho da largura do tamanho do vídeo?


of odlg lines cell size oDlg:nWidth,250



Ainda não consegui fazer funcionar o check.


olbx:acols[1]:setcheck( , { | olbx,v | msginfo("teste") } ) (não acontece nada!!!) é assim?


o pq, veja que vc colocou o mesma variavel do codeblock que o objeto então vc poderia colocar assim


olbx:acols[1]:setcheck( , { | oBrw,v | msginfo("teste") } )


Link to comment
Share on other sites

Valeu pela ajuda Alessandro, ainda não funcionou o check e nem o tamanho.

@ 10,0 XBROWSE oLbx FIELDS; ​
str(arqnfe->serie,3),;
arqnfe->nota,;
arqnfe->dtemissao,;
subs(arqnfe->destinata,1,60),;
Transf(ARQNFE->VALORTOTAL,"@E 999,999.99"),;
ALLTRIM(ARQNFE->PLACA)+"-"+ARQNFE->NOMET;
HEADERS;
'Serie',;
'Nota Fiscal',;
'Dt.Emissão',;
'Destinatário',;
'Valor NFe',;
'Placa/Motorista';
JUSTIFY .T.,.t., .T., .T., .f.,.T.,.f.;
FONT oFontes ALIAS "ARQNFE" OF ODLG LINES CELL Size oDlg:nWidth,180
oLbx:aCols[1 ]:SetCheck(, {|obrw,v| msginfo("teste") } )
oLbx:nMarqueeStyle := MARQSTYLE_HIGHLROW
oLbx:nColDividerStyle := LINESTYLE_BLACK
oLbx:nRowDividerStyle := LINESTYLE_BLACK
oLbx:lColDividerComplete := .t.
oLbx:lFooter := .t.
oLbx:nFreeze := 0
oLbx:bLDblClick := { || MSGINFO("DUPLI CLICK")}
oLbx:bClrSelFocus := {|| { CLR_BLACK, AZULXP } }
oLbx:bClrStd := {|| { PRETO, If((ARQNFE->(ORDKEYNO()))%2==0, CINZACL, CINZATL) } }
oLbx:bKeyDown := {|nKey| MSGINFO("TECLA")}
oLbx:bRClicked := { | nRow, nCol | MSGINFO("UM CLICK")}
oLbx:SetGroupHeader( "GERENCIAMENTO DE NOTAS", 1, 6, BOOK18 )
oCol:= oLbx:aCols[ 2 ]
oCol:cSortOrder := 'PED1'
ocol:cToolTip:="Clique para ordenar por código"
oCol:= oLbx:aCols[ 3 ]
oCol:cSortOrder := 'PED8'
ocol:cToolTip:="Clique para ordenar por descrição"
oCol:= oLbx:aCols[ 4 ]
oCol:cSortOrder := 'PED2'
ocol:cToolTip:="Clique para ordenar por descrição"
oLbx:CreateFromCode()

IbuCalE.png

Link to comment
Share on other sites

OK

primeiro, o campo tem que ser lógico, não o sendo, não vai funcionar.

segundo, o tamanho eu fiz um teste e não vai funciona, a não ser que vc coloque no on init da dialog, mas na minha sincera opinião não é viável. então vai ter que chegar na unha o tamanho do browse

Link to comment
Share on other sites

Valeu Alessandro, estou abusando do seu conhecimento. Agora apareceu o check [ ]. não sei se é assim quando eu clico em cima não acontece nada. quando dou dois cliques entra na função msginfo("teste") mas a caixa não fica marcada. é assim mesmo?

Como eu coloco imagem?

Outra assunto, estou testando as opções porque pretendo usar esse browse no sistema todo. Como eu coloco o rodapé?

Na TWBrowse que eu usava era assim:

       			*------------------------//RODAPE TOTAL
			OBRWVEN6:lDrawFooters    := .T. // Ativa o footer
			OBRWVEN6:nClrFFore       :={|| VERMELHO}
			OBRWVEN6:nClrFBack       :={|| GetSyscolor(15)}
       			OBRWVEN6:nFooterHeight   :=21
       			OBRWVEN6:nFooterStyle    :=2
       			OBRWVEN6:nFooterHeight 	 :=20
			OBRWVEN6:aFJustify       :={1,1,0,1,2,2,1,1,1,1,1,1,1,2,0,0,0}
                        OBRWVEN6:aFooters        :={||{"","","","","","",Transf(WQUANT,"@E 999,999.9999"),"",Transf(WUNIT,"@E 999,999.99"),Transf(WDESC,"@E 999,999.99"),Transf(WBASE,"@E 999,999.99"),"",Transf(WICMS,"@E 999,999.99"),"",Transf(WIPI,"@E 999,999.99")}}
                        OBRWVEN6:SetSize(50,6,.t.)

e agora essa opção não esta funcionando, será que coloquei alguma coisa a mais que parou?

//----------------------------------------------------------------------------------------------
oCol:=oLbx:aCols[3]
oCol:cSortOrder := 'PED1'
ocol:cToolTip:="Clique para ordenar por Nota Fiscal"
oCol:=oLbx:aCols[4]
oCol:cSortOrder := 'PED8'
ocol:cToolTip:="Clique para ordenar por Data"

Obrigado

Link to comment
Share on other sites

bom, se entendi vc colocou o campo como logico, então use somente assim

oLbx:aCols[1 ]:SetCheck()

não sei pq vc quer ver a mensagem.se for para testes o teste é ver marcado, certo?!

qual o tipo de indice vc usa, se for ntx, pelo que estou vendo, não sei te informar como usar, com cdx basta colocar a TAG do indice.

Link to comment
Share on other sites

Alessandro era só pra ver se funcionava. Mudei ainda não funciona. E o indice é cdx. ele só aparece no taquele "^" na coluna Nota fiscal, na emissão não aparece e também não acontece nada ao clicar na coluna, antes ele muda o índice. acho que coloquei alguma coisa que parou.

  @ 10,0 XBROWSE  oLbx    FIELDS;
                                 arqnfe->marca,;
                                 str(arqnfe->serie,3),;
                                 arqnfe->nota,;
                                 arqnfe->dtemissao,;
                                 subs(arqnfe->destinata,1,60),;
                                 Transf(ARQNFE->VALORTOTAL,"@E 999,999.99"),;
                                 ALLTRIM(ARQNFE->PLACA)+"-"+ARQNFE->NOMET;
                        HEADERS;
                                '',;
                                'Serie',;
                                'Nota Fiscal',;
                                'Dt.Emissão',;
                                'Destinatário',;
                                'Valor NFe',;
                                'Placa/Motorista';
                        JUSTIFY .t.,.T., .T., .T., .f.,.T.,.f.;
                        FONT oFontes ALIAS "ARQNFE" OF ODLG LINES CELL   Size  650,180

                        oLbx:aCols[1]:SetCheck()
*                        oLbx:aCols[1]:SetCheck(, {|obrw,v| msginfo("teste") } )
                        oLbx:bClrSel             := {|| {CLR_WHITE,nRGB(145,145,255)}}
                        oLbx:bClrSelFocus        := {|| {CLR_WHITE,nRGB(000,120,180)}}
                        oLbx:nMarqueeStyle       := MARQSTYLE_HIGHLROW
                        oLbx:nColDividerStyle    := LINESTYLE_BLACK
                        oLbx:nRowDividerStyle    := LINESTYLE_BLACK
                        oLbx:lColDividerComplete := .t.
                        oLbx:lFooter             := .t.
                        oLbx:nFreeze             := 0
                        oLbx:bLDblClick          := { || MSGINFO("DUPLI CLICK")}
                        oLbx:bClrStd             := {|| { PRETO, If((ARQNFE->(ORDKEYNO()))%2==0, CINZACL, CINZATL) } }
                        oLbx:bKeyDown            := {|nKey| MSGINFO("TECLA")}
                        oLbx:bRClicked           := { | nRow, nCol | MSGINFO("UM CLICK")}
                        oLbx:SetGroupHeader( "GERENCIAMENTO DE NOTAS", 1, 7, BOOK18 )
 //----------------------------------------------------------------------------------------------
  oCol:=oLbx:aCols[ 3 ]
  oCol:cSortOrder := 'PED1'
  ocol:cToolTip:="Clique para ordenar por Nota Fiscal"

Link to comment
Share on other sites

Alessando deve ter alguma coisa errada no código. Ainda não funciona.

  DEFINE ICON oIco FILE "FENIX.ICO"
  DEFINE DIALOG oDlg STYLE WS_OVERLAPPEDWINDOW ICON oIco
         oDlg:lHelpIcon:=.f.
         oDlg:setfont( oFontes )
         oDlg:cCaption:='Fenix Sistem@s - Emissor NF-e'

        @ 3,1 GROUP oGrp PROMPT "Emitente"                      OF odlg SIZE  500, 25 PIXEL
         @ 12,5   say "Razão Social: VALPANEMA FLORESTAL LTDA"  OF ODLG SIZE  200, 13 PIXEL FONT FNORMALSAY
         @ 12,200 say "CNPJ: 43.198.696/0004-68"                OF ODLG SIZE  100, 13 PIXEL FONT FNORMALSAY
         @ 12,350 SAY "IE: 570.006.243.110"                     of odlg SIZE   60, 13 pixel FONT FNORMALSAY

         @ 30,1 GROUP oGrp PROMPT "Filtro de Pesquisa Dinâmica" OF odlg SIZE  500,100 PIXEL
         @ 45,5   say "Período"                                 OF ODLG SIZE  200, 13 PIXEL FONT FNORMALSAY
         @ 65,5   say "Série"                                   OF ODLG SIZE  200, 13 PIXEL FONT FNORMALSAY

//gets-----------------------------------------------
  @45,45 get oGet1 var oDat bitmap ".\image\calen.bmp" action "" of oDlg pixel size 50,12

  @ 10,0 XBROWSE  oLbx    FIELDS;
                                 arqnfe->marca,;
                                 str(arqnfe->serie,3),;
                                 arqnfe->nota,;
                                 arqnfe->dtemissao,;
                                 subs(arqnfe->destinata,1,60),;
                                 Transf(ARQNFE->VALORTOTAL,"@E 999,999.99"),;
                                 ALLTRIM(ARQNFE->PLACA)+"-"+ARQNFE->NOMET;
                        HEADERS;
                                ' ',;
                                'Serie',;
                                'Nota Fiscal',;
                                'Dt.Emissão',;
                                'Destinatário',;
                                'Valor NFe',;
                                'Placa/Motorista';
                        JUSTIFY .T.,.T.,.T.,.T.,.F.,.T.,.F.;
                        FONT oFontes ALIAS "ARQNFE" OF ODLG LINES CELL   Size  500,180

                        oLbx:aCols[1]:SetCheck()
                        oLbx:lFastEdit := .T.
                        oLbx:bClrSel             := {|| {CLR_WHITE,nRGB(000,120,180)}}
                        oLbx:bClrSelFocus        := {|| {CLR_WHITE,XPAZUL}}
                        oLbx:nMarqueeStyle       := MARQSTYLE_HIGHLROW
                        oLbx:nColDividerStyle    := LINESTYLE_BLACK
                        oLbx:nRowDividerStyle    := LINESTYLE_BLACK
                        oLbx:lColDividerComplete := .t.
                        oLbx:lFooter             := .t.
                        oLbx:nFreeze             := 0
                        oLbx:bLDblClick          := { || MSGINFO("DUPLI CLICK")}
                        oLbx:bClrStd             := {|| { PRETO, If((ARQNFE->(ORDKEYNO()))%2==0, CINZACL, CINZATL) } }
                        oLbx:bKeyDown            := {|nKey| MSGINFO("TECLA")}
                        oLbx:bRClicked           := { | nRow, nCol | MSGINFO("UM CLICK")}
                        oLbx:SetGroupHeader( "GERENCIAMENTO DE NOTAS", 1, 7, BOOK18 )
 //----------------------------------------------------------------------------------------------
  oCol:=oLbx:aCols[3]
  oCol:cSortOrder := 'PED1'
  ocol:cToolTip:="Clique para ordenar por Nota Fiscal"

  oCol:=oLbx:aCols[ 4 ]
  oCol:cSortOrder := 'PED8'
  ocol:cToolTip:="Clique para ordenar por Data"

  oCol:=oLbx:aCols[ 5 ]
  oCol:cSortOrder := 'PED2'
  ocol:cToolTip:="Clique para ordenar por Destinatário"

  oLbx:SetRDD()
  oLbx:CreateFromCode()



  @18,0  BUTTON oBTN1 PROMPT "Validar"    of oDLG SIZE 40, 13 ;
         ACTION( oDLG:END() )
  @18,7  BUTTON oBTN2 PROMPT "Assinar"    of oDLG SIZE 40, 13 ;
         ACTION( oDLG:END() )
  @18,14 BUTTON oBTN1 PROMPT "Transmitir" of oDLG SIZE 40, 13 ;
         ACTION( oDLG:END() )

  @18,23 BUTTON oBTN3 PROMPT "Pré-Visualizar DANFE" of oDLG SIZE 60, 13 ;
         ACTION( oDLG:END() )
  @18,33.4 BUTTON oBTN4 PROMPT "Imprimir DANFE" of oDLG SIZE 60, 13 ;
         ACTION( oDLG:END() )
  @18,43.8 BUTTON oBTN5 PROMPT "Consultar na SEFAZ" of oDLG SIZE 60, 13 ;
         ACTION ""

  @18,55 BUTTON oBTN6 PROMPT "Cancelar NF-e" of oDLG SIZE 60, 13 ;
         ACTION( oDLG:END() )
  @18,65.4 BUTTON oBTN7 PROMPT "Carta de Correção" of oDLG SIZE 60, 13 ;
         ACTION( oDLG:END() )

  @18,94 BUTTON oBTN8 PROMPT "Finalizar" of oDLG SIZE 60, 13 ;
         ACTION( oDLG:END() )

  Activate Dialog oDlg Centered  on init (ShowWindow( oDlg:hWnd, 3 ),buildcontrolmenu(odlg))

não funciona o order, clico na coluna e não acontece nada.

não funciona o check, clico e não fica marcado.

Link to comment
Share on other sites

rapaz.....vamos tentar uma coisa... depois de muito estudar, testar, essa foi a maneira que encontrei de usar a xbrowse usando o dbf.

 
@ 10,00 XBROWSE oLbx SIZE 500,180 PIXEL OF oDlgCli1 ALIAS "ARQNFE" FOOTER FASTEDIT AUTOSORT LINES CELL
ADD COLUMN TO XBROWSE oLbx DATA marca HEADER " " CENTER
ADD COLUMN TO XBROWSE oLbx DATA serie HEADER "Serie"
ADD COLUMN TO XBROWSE oLbx DATA nota HEADER "Nota Fiscal" ORDER "PED1"
ADD COLUMN TO XBROWSE oLbx DATA dtemissao HEADER "Dt.Emissão" ORDER "PED8"
ADD COLUMN TO XBROWSE oLbx DATA destinata HEADER "Destinatário" ORDER "PED2"
ADD COLUMN TO XBROWSE oLbx DATA VALORTOTAL HEADER "Valor NFe" PICTURE "@E 999,999.99"
ADD COLUMN TO XBROWSE oLbx DATA PLACA + "-" + NOMET HEADER "Placa/Motorista"
 
oLbx:lHScroll          := .F.
oLbx:nMarqueeStyle     := MARQSTYLE_HIGHLROW
oLbx:lRecordSelector   := .F.
         oLbx:nColDividerStyle    := LINESTYLE_BLACK
         oLbx:nRowDividerStyle    := LINESTYLE_BLACK
         oLbx:lColDividerComplete := .T.
oLbx:lAllowColSwapping := .F.
oLbx:lAllowRowSizing   := .F.
oLbx:lAllowColHiding   := .F.
oLbx:nStretchCol       := 2
         oLbx:bClrSel             := {|| {CLR_WHITE,nRGB(000,120,180)}}
         oLbx:bClrSelFocus        := {|| {CLR_WHITE,XPAZUL}}
         oLbx:bClrStd             := {|| { PRETO, If((ARQNFE->(ORDKEYNO()))%2==0, CINZACL, CINZATL) } }
oLbx:lVThumbTrack      := .T.
 
         oLbx:bLDblClick          := { || MSGINFO("DUPLI CLICK")}
         oLbx:bKeyDown            := {|nKey| MSGINFO("TECLA")}
         // tirado, pode ser o problema oLbx:bRClicked           := { | nRow, nCol | MSGINFO("UM CLICK")}
 
oLbx:aCols[1]:SetCheck()
 
oLbx:aCols[3]:cToolTip:="Clique para ordenar por Nota Fiscal"
oLbx:aCols[4]:cToolTip:="Clique para ordenar por Data"
oLbx:aCols[5]:cToolTip:="Clique para ordenar por Destinatário"
 
oLbx:SetGroupHeader( "GERENCIAMENTO DE NOTAS", 1, 7, BOOK18 )
 
oLbx:CreateFromCode()
 
Link to comment
Share on other sites

Alessandro obrigado pela ajuda, dessa forma com ADD COLUMN acho que ficou até mais fácil, agora... no click não funciona.

mas esta mostrando quando o campo esta verdadeiro, ai coloquei a função aqui

oLbx:bLDblClick := { || GRAVAMARCA(OLBX)} refresco o browse e funciona.

Esta funcionando também os índices.

Então mais uma vez obrigado, vou pesquisar agora como colocar imagem e um rodapé no browse.

vlz

Link to comment
Share on other sites

Alessandro se eu coloco sa linhas

oLbx:bLDblClick := { || MSGINFO("DUPLI CLICK")}

Lbx:aCols[1]:SetCheck(,{ || GRAVAMARCA(OLBX)})

ele só entra no duplo click e não entra no check

​se deixo somente a linha do setcheck ele funciona. Funciona igual ao duplo click. Desde que eu de dois cliques, ai ele entra na função e grava .t. na marca.

Link to comment
Share on other sites

o setcheck é com dois cliques mesmo...é isso ai deu certo agora...não sei se é o que vc precisava, porem...ai acredito que não dê para usar todos juntos ao mesmo tempo, rsrsrsrsrsrs ... vai perguntando.

Link to comment
Share on other sites

Valeu Alessandro, funcionou sim. Ja coloquei rodapé. Agora imagens... Eu fiz alguns testes com imagens porém sem sucesso.


//--------------------------------------------
// ok fucionando porém a imagem que aparece dentro do browse é um quadrado *****
* olbx:aCols[ 2 ]:nEditType := EDIT_BUTTON
* olbx:aCols[ 2 ]:bEditBlock := {|nRow, nCol, oCol| oCol:Value := cGetFile( "*.*", "Select a file" ) }
* olbx:aCols[ 2 ]:AddBmpFile( "d:\wfatura\image\EMAIL.bmp" )
* olbx:aCols[ 2 ]:nHeadBmpNo := 1
//-------------------------------------------
​** esse do menu é interessante porém não aparece imagem
* olbx:aCols[2]:nEditType := TYPE_IMAGE
* OLBX:aCols[2]:lBmpStretch := .t.
* OLBX:aCols[ 2 ]:lBmpTransparent := .t.
* OLBX:aCols[2]:bStrImage := {|oCol, OLBX| OLBX:aRow[ 2 ] }
* OLBX:aCols[2]:nDataBmpAlign := AL_CENTER
* OLBX:aCols[2]:bPopUp := { | o | ColMenu( o ) }
* OLBX:aCols[2]:bAlphaLevel := { | o | o:OLBX:aRow[ 3 ] }
//-------------------------------------------
​*** não acontece nada
* olbx:aCols[ 2 ]:nEditType := 1
* olbx:aCols[ 2 ]:bOnPostEdit := {|oCol, xVal, nKey| oCol:Value( xVal ) }
* olbx:aCols[ 2 ]:AddBmpFile("d:\wfatura\image\EMAIL.bmp" )
* olbx:aCols[ 2 ]:nFootBmpNo := 1
//-------------------------------------------
*** não acontece nada
* olbx:aCols[ 2 ]:addbmpfile("d:\wfatura\image\EMAIL.bmp" )
* olbx:aCols[ 2 ]:lBtnTransparent := .t.
* olbx:aCols[ 2 ]:nBtnBmp := 1
//---------------------------------------

minha idéia inicial era testar o campo email, se "S" imagem se "N" sem imagem.

Link to comment
Share on other sites

Tente assim

olbx:aCols[2]:addbmpfile("d:\wfatura\image\EMAIL.bmp" )

olbx:aCols[2]:bBmpData := {|| 1 }

olbx:aCols[2]:nDataBmpAlign := AL_RIGHT


agora para testar faça assim

olbx:aCols[2]:addbmpfile("d:\wfatura\image\EMAIL.bmp" )

olbx:aCols[2]:addbmpfile(<aqui tem que colcoar uma imagem com o fundo do browse> )


olbx:aCols[2]:bBmpData := {|| IF( <variavel> == "S", 1, 2 ) }

olbx:aCols[2]:nDataBmpAlign := AL_RIGHT


o do menu eu nunca usei por coluna tenho que fazer testes para te falar algo, e nem sei se vale a pena, mas kda um tem sua ideia...amanhã te falo...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...