Armando, comenta // esto:
oBrx:bKeyCount := {|| oRsAdj:RecordCount() }
Que retorna ahora?
Armando, comenta // esto:
oBrx:bKeyCount := {|| oRsAdj:RecordCount() }
Que retorna ahora?
#include "FiveWin.ch"
#include "xbrowse.ch"
function Main()
local oDlg, oBrw, nKey := VK_RETURN
DEFINE DIALOG oDlg SIZE 300, 200
@ 0, 0 XBROWSE oBrw OF oDlg ARRAY { { "one","two","three" } } AUTOCOLS
oBrw:CreateFromCode()
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW // Con cursor de todo el renglón
oBrw:nColDividerStyle := LINESTYLE_LIGHTGRAY
oBrw:nRowDividerStyle := LINESTYLE_LIGHTGRAY // ok
oBrw:lColDividerComplete := (.F.) // (.T.) Matiene siempre llena la pantalla
oBrw:nHeaderHeight := 25 // Altura de los encabezados
oBrw:nRowHeight := 22 // Altura del renglón
oBrw:nHeaderLines := 1 // Número de líneas de encabezados
oBrw:nDataLines := 1 // Número de líneas de detalle
oBrw:nFooterHeight := 20 // Altura del footer
oBrw:nFooterLines := 1 // Número de líneas en el footer
oBrw:lFooter := (.T.) // Sí queremos línea de footer
oBrw:lHScroll := (.F.) // Quitamos el scroll horizontal
oBrw:bChange := { || PonImagen(oFld,oBrw,oImagen) }
/* // ????
aCols[ 1] := oBrw:AddCol()
aCols[ 1]:bStrData := { || IF(oRsAdj:RecordCount() > 0,oRsAdj:Fields("ADJ_FIL"):Value,SPACE(1))}
aCols[ 1]:cHeader := "Nombre del archivo"
aCols[ 1]:nHeadStrAlign := AL_LEFT
aCols[ 1]:nDataStrAlign := AL_LEFT
aCols[ 1]:nWidth := 70
*/
oBrw:l2007 := (.F.)
oBrw:nStretchCol := STRETCHCOL_LAST
// ???
oBrw:bClrHeader := { || {CLR_WHITE,CLR_BLACK} }
oBrw:bClrStd := { || {CLR_BLACK,CLR_WHITE} }
oBrw:bClrFooter := { || {CLR_WHITE,CLR_BLACK} }
// ???
// oBrw:nRecSelColor := oApp:nRowParClr // Triangulo de selección
oBrw:bClrSel := { || {CLR_BLACK,CLR_WHITE} }
// ???
//oBrw:bClrSel := {|| IF( oRsAdj:AbsolutePosition % oApp:nRowsInt == 0 ,{ CLR_BLACK, oApp:nRowParClr },{ CLR_BLACK, oApp:nRowNonClr }) }
//oBrw:bClrSelFocus := { || {oApp:nFClrFocus,oApp:nBClrFocus} }
oBrw:bGoTop := { || IF( ! oRsAdj:BOF() .AND. ! oRsAdj:EOF(), oRsAdj:MoveFirst(), ) }
oBrw:bGoBottom := { || IF( ! oRsAdj:BOF() .AND. ! oRsAdj:EOF(), oRsAdj:MoveLast(), ) }
oBrw:bBof := { || oRsAdj:BOF() }
oBrw:bEof := { || oRsAdj:EOF() }
// ???
// oBrw:bBookMark := { | uBm | IF( oRsAdj:BOF() .AND. oRsAdj:EOF(), 0, IF( uBm == NIL, oRsAdj:BookMark, oRsAdj:BookMark := uBm ) ) }
// oBrw:bKeyNo := { | n | IF( oRsAdj:BOF() .AND. oRsAdj:EOF(), 0, IF( n == NIL, oRsAdj:AbsolutePosition, oRsAdj:AbsolutePosition := n ) ) }
// oBrw:bKeyCount := {|| oRsAdj:RecordCount() }
// ????
// oBrw:SetAdo(oRsAdj)
// oBrw:bClrStd := {|| IF( oRsAdj:AbsolutePosition % oApp:nRowsInt == 0 ,{ CLR_BLACK, oApp:nRowParClr },{ CLR_BLACK, oApp:nRowNonClr }) }
// oBrw:nRecSelColor := oApp:nRowParClr
oBrw:bKeyDown = { | nKey, nFlags | IIF( nKey == VK_DELETE, DltAdj( oDlg, oBrw ), ) }
oBrw:bLDblClick = { | nRow, nCol, nFlags | MsgInfo( "Left Doble Click" ) }
ACTIVATE DIALOG oDlg CENTER ON INIT ( oDlg:oClient := oBrw, oDlg:Resize() )
return nil
Static function DltAdj( oDlg, oBrw )
? "Wow... Go on..."
oBrw:Refresh()
Return Nil
function PonImagen(oFld,oBrw,oImagen)
return nilKarinha:
Ajustando tu ejemplo con array funciona bien, yo uso recordset y ahí ya no funciona.
Que deseas que te envíe?
Saludos y en verdad aprecio tu esfuerzo
No uso xbrowse, que hace recordset? És necesario mismo?
Mira en \samples\TESTXBR3.PRG si ayuda.
No necesita enviar un ejemplo autocontenido.
Salu2.
oBrx:blDblClick := { | nRow, nCol, nKey | Editar(oBrx)}
//oBrx:blDblClick := { | nRow, nCol, nKey | MuestraPDF(oBrx) }/*
============================================================================
============================================================================
*/
STATIC FUNCTION MuestraPDF()
LOCAL oWndPdf, oPdf, cTmp, cFilePdf
MsgInfo("HOLA! ")
RETURN(.T.)FUNCTION EditarPDF( oBrx )
LOCAL oWndPdf, oPdf, cTmp, cFilePdf
MsgInfo("HOLA! ")
RETURN(.T.)Karinha:
Tal parece que el problema va entre diálogos y ventanas, finalmente lo estoy resolviendo con un simple
WaitRun()
En verdad aprecio todo el tiempo e interés por ayudarme.
Un abrazo
Cristóbal:
Exacto, eso busco, que el usuario de un doble clic al renglón del browse que contiene
el nombre del fichero PDF a abrir y que este se abra con Acrobat Reader.
Como mencioné, con el mortal WaitRun() lo solucioné.
Como dice nuestro amigo R.F. "Estaba matando pulgas a cañonazos!."
Saludos y gracias por el aporte.