Error que no entiendo en xBrowse

Error que no entiendo en xBrowse

Postby fespinoza » Tue Aug 17, 2010 2:18 am

Tengo un xBrowse donde inserto un boton en una de las columnas para editar los datos de un campo memo, con lo siguiente:

Code: Select all  Expand view

            WITH OBJECT oBrw:oCol(24)
                :nEditType:=EDIT_BUTTON
                :bEditBlock:={ | r,c,o | EditNotes(r,c,o,1) }
            END
 


La función EditNotes la copie de unos de los ejemplos de FWH, y la uso para editar los datos de los campos memo, uno de los cuales esta en formate rtf. Al editar el campo memo puro, no pasa nada; pero al editar el campo con datos rtf me presenta un error, la funcion EditNotes es la siguiente:

Code: Select all  Expand view
FUNCTION EditNotes( nRow, nCol, oCol, nTipo )
LOCAL oDlg, oGet, oBtn, oFnt, oFnt1, aPoint, cNotes:=""
cNotes := IF(nTipo=1, FIELD->ALINEACION, IF(nTipo=2, FIELD->PENALERRAD, FIELD->OBSERVACIO) )
aPoint := ClientToScreen( oCol:oBrw:hWnd, { nRow, nCol } )
nRow   := aPoint[1]
nCol   := aPoint[2]
DEFINE FONT oFnt NAME "Courier New" SIZE 0, -9
DEFINE FONT oFnt1 NAME GetSysFont() SIZE 0, -8
IF nTipo=3
    DEFINE DIALOG oDlg FROM nRow, nCol TO nRow+230, nCol+352 PIXEL STYLE WS_POPUP FONT oFnt1
        @ 02,02 RICHEDIT oGet VAR cNotes OF oDlg SIZE 172,96 PIXEL FILE cNotes READONLY
            oGet:nClrText:=CLR_HBLUE
        @ 102,127 BUTTON "&Volver" SIZE 47,10 PIXEL OF oDlg ACTION oDlg:End()
            *oBtn:cToolTip:="Cierra ventana auxiliar"
    ACTIVATE DIALOG oDlg ON INIT (Centra(oDlg), oGet:LoadAsRTF(cNotes), oGet:SetText(cNotes), ;
        oGet:SetFontName("Ms Sans Serif"), oGet:SetFontSize(10) )
ELSE
    DEFINE DIALOG oDlg FROM nRow, nCol TO nRow+230, nCol+352 PIXEL STYLE WS_POPUP FONT oFnt1
        @ 02,02 GET oGet VAR cNotes TEXT SIZE 172,96 PIXEL OF oDlg READONLY FONT oFnt COLOR CLR_HBLUE
            oGet:cToolTip:="Alineaciones e incidencias de ambos equipos"
        @ 102,127 BUTTON oBtn PROMPT "&Volver" SIZE 47,10 PIXEL OF oDlg ACTION oDlg:End()
            oBtn:cToolTip:="Cierra ventana auxiliar"
    ACTIVATE DIALOG oDlg
ENDIF
oFnt:End()
oFnt1:End()
RETURN
 


El error es el siguiente: "Error FiveWin/3 Cannot create Dialog Box: Title: "

A la espera de sus comentario, un gran saludo

Fernando Espinoza
Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Error que no entiendo en xBrowse

Postby fespinoza » Wed Aug 18, 2010 4:44 pm

Perdonen que les vuelva a insistir, debe haber alguien que haya tenido este problema o tenga una idea de como resolverlo.

Saludos

Fernando Espinoza
Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Error que no entiendo en xBrowse

Postby Daniel Garcia-Gil » Wed Aug 18, 2010 4:55 pm

Fernando...

La mejor forma de ayudarete es que nos publiques un ejemplo que podamos reproducir el error, gracias
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Error que no entiendo en xBrowse

Postby fespinoza » Wed Aug 18, 2010 11:21 pm

Daniel

Para crear el xBrowse uso la funcion xEditar de la siguiente forma, también agrego la función EditNotes, el error se da al llamar a esta función y el dialogo debe presentar el control RichEdit, cuando la variable nTipo=3:

Uso FHW907

Code: Select all  Expand view

FUNCTION xEditar(IDEN)
LOCAL oDlgED, oSay, oBrw, oBut[3], oFnt, oFont2, oFont3, cDbf:=SPACE(0)
USE &RUTRES.&NOMARC
cDBF=NOMARC
INDEX ON DIA TO &RUTRES.INDICE
IF .NOT. FILE("\"+CURDIR()+"\RESULTADOS\"+cDbf)
    MsgAlert("
No existe el archivo "+cDBF,"Alerta")
    DBCloseAll()
    RETURN NIL
ENDIF
* Define dialogo
DEFINE FONT oFnt NAME GetSysFont() SIZE 0, -8
DEFINE FONT oFont2 NAME GetSysFont() SIZE 0, -8 BOLD
DEFINE FONT oFont3 NAME GetSysFont() SIZE 0, -8 NESCAPEMENT 900
DEFINE DIALOG oDlgED RESOURCE "
XEDITAR2" OF oVent TITLE "Archivo: "+NOMARC FONT oFnt
    REDEFINE COLUMN XBROWSE oBrw ID 1601 OF oDlgED UPDATE AUTOCOLS AUTOSORT ;
        ON CHANGE ( oSay:SetText("
Registro: "+STR(RECNO(),4)+"/"+STR(RECCOUNT(),4)) )
        ADD COLUMN TO oBrw AT 1 DATA STR(FECHA,2) HEADER "
Fecha" WIDTH 36 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 2 DATA CFecha(DIA) HEADER "
Día" WIDTH 75 ALIGN LEFT COLOR RGB(255,0,0),RGB(192,192,192)
        ADD COLUMN TO oBrw AT 3 DATA IF(Empty(HORA), "
 :  ", AMPM(ConvHora(HORA))) HEADER "Hora" WIDTH 65 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 4 DATA NOMBRECAMP HEADER "
Nombre torneo" WIDTH 140 ALIGN LEFT COLOR RGB(255,0,0),RGB(192,192,192)
        ADD COLUMN TO oBrw AT 5 DATA ETAPA HEADER "
Etapa" WIDTH 80 ALIGN LEFT
        ADD COLUMN TO oBrw AT 6 DATA IF(Empty(CIUDAD),"
ND",CIUDAD) HEADER "Ciudad" WIDTH 100 ALIGN LEFT
        ADD COLUMN TO oBrw AT 7 DATA IF(ESTADIO="
","ND",ESTADIO) HEADER "Estadio" WIDTH 150 ALIGN LEFT
        ADD COLUMN TO oBrw AT 8 DATA IF(JM,"
","No") HEADER "Jornada múltiple" WIDTH 48 ALIGN CENTER
        ADD COLUMN TO oBrw AT 9 DATA IF(AG,"
","No") HEADER "Entrada gratis" WIDTH 48 ALIGN CENTER
        ADD COLUMN TO oBrw AT 10 DATA IF(ASISTENCIA=0,"
ND",TRANSFORM(Asistencia,"###,###")) HEADER "Asistencia" ;
            WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 11 DATA IF(Arbitro="
","ND",Arbitro) HEADER "Árbitro" WIDTH 150 ALIGN LEFT
        ADD COLUMN TO oBrw AT 12 DATA LOCAL HEADER "
Local" WIDTH 105 ALIGN LEFT
        ADD COLUMN TO oBrw AT 13 DATA STR(GL,2) HEADER "
Goles local" WIDTH 40 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 14 DATA VISITA HEADER "
Visitante" WIDTH 105 ALIGN LEFT
        ADD COLUMN TO oBrw AT 15 DATA STR(GV,2) HEADER "
Goles visita" WIDTH 40 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 16 DATA STR(EXP_L,2) HEADER "
Expulsados local" WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 17 DATA STR(EXP_V,2) HEADER "
Expulsados visita" WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 18 DATA STR(PEN_LE,2) HEADER "
Penales ejecutados local" WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 19 DATA STR(PEN_LC,2) HEADER "
Penales convertidos local" WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 20 DATA STR(PEN_VE,2) HEADER "
Penales ejecutados visita" WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 21 DATA STR(PEN_VC,2) HEADER "
Penales convertidos visita" WIDTH 60 ALIGN RIGHT
        ADD COLUMN TO oBrw AT 22 DATA IF(Empty(DT_LOCAL),"
ND",DT_LOCAL) HEADER "Técnico local" WIDTH 140 ALIGN LEFT
        ADD COLUMN TO oBrw AT 23 DATA IF(Empty(DT_VISITA),"
ND",DT_VISITA) HEADER "Técnico visita" WIDTH 140 ALIGN LEFT
        ADD COLUMN TO oBrw AT 24 DATA IF(! Empty(ALINEACION),"
<Alineación>","<alineación>") HEADER "Alineación" WIDTH 90 ;
            ALIGN LEFT MESSAGE "
De click en el botón para ver la alineación"
        WITH OBJECT oBrw:oCol(24)
            :nEditType:=EDIT_BUTTON
            :bEditBlock:={ | r,c,o | EditNotes(r,c,o,1) }
        END
        ADD COLUMN TO oBrw AT 25 DATA IF(! Empty(PENALERRAD),"
<Penales errados>","<penales errados>") HEADER "Penales errados" ;
            WIDTH 110 ALIGN LEFT MESSAGE "
De click en el botón para ver datos de penales errados"
        WITH OBJECT oBrw:oCol(25)
            :nEditType:=EDIT_BUTTON
            :bEditBlock:={ | r,c,o | EditNotes(r,c,o,2) }
        END
        ADD COLUMN TO oBrw AT 26 DATA IF (! Empty(OBSERVACIO),"
<Rtf>","<rtf>") HEADER "Observaciones" WIDTH 80 ALIGN CENTER
        WITH OBJECT oBrw:oCol(26)
            :nEditType:=EDIT_BUTTON
            :bEditBlock:={ | r,c,o | EditNotes(r,c,o,3) }
        END
        * Características de xBrowse
        FOR i=1 TO Len(oBrw:aCols)   // alinea el texto de la cabecera al centro
            oBrw:aCols[i]:nHeadStrAlign:=AL_CENTER
                NEXT
        oBrw:l2007  := .T.
        oBrw:nColDividerStyle := LINESTYLE_INSET
        oBrw:nRowDividerStyle := LINESTYLE_INSET
        oBrw:nHeaderLines     := 2                        // número de líneas de la cabecera
        oBrw:nHeaderHeight    := 48                       // Altura cabeceras de columna
        oBrw:nRowHeight       := 24                       // Altura entre lineas
        oBrw:lRecordSelector  := .F.                      // poner o no, columna de la flechita de la izquierda
        oBrw:nMarqueeStyle    := MARQSTYLE_HIGHLCELL      // solo ilumina la celda actual
        oBrw:bRClicked        := { | nRow, nCol | BrowPopup2(nRow, nCol, oBrw, "
Archivo: "+NOMARC) }
    REDEFINE SAY oSay ID 1602 OF oDlgED READONLY UPDATE
    REDEFINE BUTTONBMP oBut[1] ID 1603 OF oDlgED BITMAP "
PRINT16" TEXTRIGHT ;
        MESSAGE "
Imprime reporte de datos mostrados por el Browse" ACTION oBrw:Report("Datos del archivo: "+cDBF, .T.)
        oBut[1]:cToolTip="
Imprime reporte de datos mostrados por el Browse"
    REDEFINE BUTTONBMP oBut[2] ID 1 OF oDlgED BITMAP "
CANCELAR" TEXTRIGHT MESSAGE "Cierra ventana" ACTION oDlgED:END()
        oBut[2]:cToolTip="
Cierra ventana"
    REDEFINE BTNBMP oBut[3] ID 3 RESOURCE "
Excel32" OF oDlgED CENTER ADJUST TRANSPARENT 2007 ;
        ACTION MsgRun("
Creando archivo", "Por favor, espere ...", { || CreaArchExcel("Archivo: "+NOMARC) } ) ;
        MESSAGE "
Crea archivo en formato Excel"
        oBut[3]:cToolTip="
Crea archivo en formato Excel"
    oDlgED:bKeyDown:={ | nKey,nFlags | IF( nKey==VK_ESCAPE, oDlgED:End() ,) }   // Sale de oDlgED al aplastar Escape
    oDlgED:lHelpIcon:= .F.                // Para q no salga el signo ?
ACTIVATE DIALOG oDlgED CENTER RESIZE16 ON INIT (Centra(oDlgED), oDlgED:SetIcon(oApp:cIcono))
oFnt:End()
oFont2:End()
oFont3:End()
DBCloseAll()
RETURN .T.
*FDF xEditar


// Función copiada de ../Samples agregada para editar los campos memo con xBrowse
FUNCTION EditNotes( nRow, nCol, oCol, nTipo )
LOCAL oDlg, oGet, oBtn, oFnt, oFnt1, aPoint, cNotes:="
"
cNotes := IF(nTipo=1, FIELD->ALINEACION, IF(nTipo=2, FIELD->PENALERRAD, FIELD->OBSERVACIO) )
aPoint := ClientToScreen( oCol:oBrw:hWnd, { nRow, nCol } )
nRow   := aPoint[1]
nCol   := aPoint[2]
DEFINE FONT oFnt NAME "
Courier New" SIZE 0, -9
DEFINE FONT oFnt1 NAME GetSysFont() SIZE 0, -8
IF nTipo=3
    DEFINE DIALOG oDlg FROM nRow, nCol TO nRow+230, nCol+352 PIXEL STYLE WS_POPUP FONT oFnt1
        @ 02,02 RICHEDIT oGet VAR cNotes OF oDlg SIZE 172,96 PIXEL FILE cNotes READONLY
            oGet:nClrText:=CLR_HBLUE
        @ 102,127 BUTTON "
&Volver" SIZE 47,10 PIXEL OF oDlg ACTION oDlg:End()
            *oBtn:cToolTip:="
Cierra ventana auxiliar"
    ACTIVATE DIALOG oDlg ON INIT (Centra(oDlg), oGet:LoadAsRTF(cNotes), oGet:SetText(cNotes), ;
        oGet:SetFontName("
Ms Sans Serif"), oGet:SetFontSize(10) )
ELSE
    DEFINE DIALOG oDlg FROM nRow, nCol TO nRow+230, nCol+352 PIXEL STYLE WS_POPUP FONT oFnt1
        @ 02,02 GET oGet VAR cNotes TEXT SIZE 172,96 PIXEL OF oDlg READONLY FONT oFnt COLOR CLR_HBLUE
            oGet:cToolTip:="
Alineaciones e incidencias de ambos equipos"
        @ 102,127 BUTTON oBtn PROMPT "
&Volver" SIZE 47,10 PIXEL OF oDlg ACTION oDlg:End()
            oBtn:cToolTip:="
Cierra ventana auxiliar"
    ACTIVATE DIALOG oDlg
ENDIF
oFnt:End()
oFnt1:End()
RETURN


Saludos

Fernando Espinoza
Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Error que no entiendo en xBrowse

Postby Daniel Garcia-Gil » Wed Aug 18, 2010 11:40 pm

Daniel Garcia-Gil wrote:Fernando...

La mejor forma de ayudarete es que nos publiques un ejemplo que podamos reproducir el error, gracias



lo que te quise decir con mi post, es que publiques un ejemplo que podamos nosotros generar y ejecutar para reproducir el mismo error que te sucede
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Error que no entiendo en xBrowse

Postby fespinoza » Thu Aug 19, 2010 4:02 pm

Daniel

Disculpa, este rato no estoy en mi casa donde tengo el código: Pero con el código ya publicado solo faltaría generar la función main que llame a xEditar.

Para probar haría falta un archivo .dbf que tenga dos campos memo grabados con texto plano y con nombres ALINEACION y PENALERRAD y otro campo memo pero que contenga datos de texto en formato rtf llamado OBSERVACIO. El error se da al llamar a la función EditNombre para que edite el campo OBSERVACIO.

Te reitero mis disculpas, ya que seguramente el generar el ejemplo te quitara algo de tiempo.

Saludos cordiales

Fernando Espinoza
Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Error que no entiendo en xBrowse

Postby Daniel Garcia-Gil » Thu Aug 19, 2010 4:10 pm

fespinoza wrote:Daniel

Disculpa, este rato no estoy en mi casa donde tengo el código: Pero con el código ya publicado solo faltaría generar la función main que llame a xEditar.

Para probar haría falta un archivo .dbf que tenga dos campos memo grabados con texto plano y con nombres ALINEACION y PENALERRAD y otro campo memo pero que contenga datos de texto en formato rtf llamado OBSERVACIO. El error se da al llamar a la función EditNombre para que edite el campo OBSERVACIO.

Te reitero mis disculpas, ya que seguramente el generar el ejemplo te quitara algo de tiempo.

Saludos cordiales

Fernando Espinoza



Perfecto, entonces esperare a que publiques el ejemplo :)
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Error que no entiendo en xBrowse

Postby fespinoza » Fri Aug 20, 2010 12:34 am

Daniel

Gracias, ya lo solucione, cuando me puse a armar el ejemplo que me pedías, me di cuenta del error; me faltaba llamar a la DLL que usa el control RichEdit.

hDLL:=LoadLibrary( "Riched20.dll" )

Gracias por tu interes

Fernando Espinoza
Saludos

Fernando Espinoza
User avatar
fespinoza
 
Posts: 188
Joined: Wed Feb 01, 2006 6:59 pm
Location: Ecuador

Re: Error que no entiendo en xBrowse

Postby Daniel Garcia-Gil » Fri Aug 20, 2010 3:27 am

Fernando

esa es exactamente la idea, la mayoria de las veces vemos Los problemas partiendo de cosas sencillas, Es una de las razones por las que insistimos en pedir un ejemplo
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: jair and 18 guests