FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error que no entiendo en xBrowse
Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM

Error que no entiendo en xBrowse

Posted: Tue Aug 17, 2010 02: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 (fw): Select all Collapse
聽 聽 聽 聽 聽 聽 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 (fw): Select all Collapse
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
Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM

Re: Error que no entiendo en xBrowse

Posted: Wed Aug 18, 2010 04: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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Error que no entiendo en xBrowse

Posted: Wed Aug 18, 2010 04:55 PM

Fernando...

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

Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM

Re: Error que no entiendo en xBrowse

Posted: 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 (fw): Select all Collapse
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,"S铆","No") HEADER "Jornada m煤ltiple" WIDTH 48 ALIGN CENTER
聽 聽 聽 聽 ADD COLUMN TO oBrw AT 9 DATA IF(AG,"S铆","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:={ | 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: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:=CLR_HBLUE
聽 聽 聽 聽 @ 102,127 BUTTON "&Volver" SIZE 47,10 PIXEL OF oDlg ACTION oDlg:End()
聽 聽 聽 聽 聽 聽 *oBtn:="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:="Alineaciones e incidencias de ambos equipos"
聽 聽 聽 聽 @ 102,127 BUTTON oBtn PROMPT "&Volver" SIZE 47,10 PIXEL OF oDlg ACTION oDlg:End()
聽 聽 聽 聽 聽 聽 oBtn:="Cierra ventana auxiliar"
聽 聽 ACTIVATE DIALOG oDlg
ENDIF
oFnt:End()
oFnt1:End()
RETURN


Saludos

Fernando Espinoza
Saludos



Fernando Espinoza
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Error que no entiendo en xBrowse

Posted: 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
Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM

Re: Error que no entiendo en xBrowse

Posted: Thu Aug 19, 2010 04: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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Error que no entiendo en xBrowse

Posted: Thu Aug 19, 2010 04: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 :-)
Posts: 188
Joined: Wed Feb 01, 2006 06:59 PM

Re: Error que no entiendo en xBrowse

Posted: 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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM

Re: Error que no entiendo en xBrowse

Posted: Fri Aug 20, 2010 03: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

Continue the discussion