Miguel,
> #1: XAILER: TDbfDataSet:aLinkedControls
> EMPTY. Nothing to update.
Completamente normal. Es un mensaje de advertencia que SOLO ve el
programador desde el IDE, nunca el usuario final, y te está diciendo que no
había ningún DataControl vinculado y por tanto ningún campo ha podido ser
actualizado. Tiene mucho más sentido utilizar los métodos FastAddNew() y
FastUpdate() en dicho caso.
Es una muy mala costumbre ni siquiera cambiar el recno() de una tabla en
medio de un proceso OnPostEdit, y tu estás haciendo hasta un PACK.
Tampoco tiene ningún sentido que llames a CancelEdit() pues de hecho le
edición ya ha terminado en ese momento, y lo único que consigues es entrar
en recursividad que es lo que te está pasando. Tampoco es buena idea llamar
al evento OnPostEof y mucho menos desde OnPostEdit como si el usuario
estuviera pulsando cursor abajo.
Este IF nunca se cumple:
> LOCAL nReg
> nReg = RECNO()
> IF ::Reg <> ::oDbfDataset1:RecNo()
> lCanceled := .t.
> ENDIF
Ya que lógicamente Recno() o y oDataSet:Recno() es lo mismo, a no ser que
Recno() apunte a otro Alias, que puede ser.
Te recomiendo que rehagas tu código utilizando la nueva propiedad
lAllowInsert que te va a simplificar completamente tu código.
Siento los problemas que te ha ocasionado esta nueva versión de los Browses,
pero es que realmente han sido muy modificados para incluir precisamente la
posibilidad de insertar y añadir registros entre otras cosas. Espero que las
mejoras hayan merecido la pena y no te supongan muchos problemas.
Si me mandas un pequeño ejemplo que muestre el error te lo reenvío
modificado utilizando las nuevas características del Browse y verás lo
sencillo que es ahora realizar un proceso de alta directamente sobre el
propio Browse.
Un saludo,
"Miguel C." <
mcastabaron@cajamar.es> escribió en el mensaje
news:45faae90$[email=
1@news.xailer.com...]
1@news.xailer.com...[/email]
> Hola Ignacio,
>
> Ejecutando el programa en el ide (version 1.3a) al añadir una linea nueva
> en
> blanco en el browse el Debug me da este mensage:
>
> #1: XAILER: TDbfDataSet:aLinkedControls
> EMPTY. Nothing to update.
>
> Por otro lado he aislado donde se produce el error y comentado estas
> lineas
> deja de producirse el error:
>
> METHOD DBBrowse1PostEdit( oSender, lCanceled, nKey ) CLASS TForm24
> LOCAL nReg
> nReg = RECNO()
> IF ::Reg <> ::oDbfDataset1:RecNo()
> lCanceled := .t.
> ENDIF
> IF Empty( ::oDbfDataset1:Codigo ) .And. Empty( ::oDbfDataset1:Color )
> .OR. ;
> Empty( ::oDbfDataset1:S ) .And. Empty( ::oDbfDataset1:M ) .And.;
> Empty( ::oDbfDataset1:L ) .And. Empty( ::oDbfDataset1:XL ) .And.;
> Empty( ::oDbfDataset1:XXL ) .And. Empty( ::oDbfDataset1:TU )
> ::oDbfDataset1:Delete()
> ::oDbfDataset1:Pack()
> ::oDbfDataset1:GoTo(nReg)
> ::oDbBrowse1:Refresh()
> ENDIF
> IF lCanceled
> ::lInsertar := .f.
> ::oDbBrowse1:Canceledit()
> ELSEIF ::lInsertar
> ::DBBrowse1PastEof( oSender )
> ENDIF
>
> RETURN Nil
>
> ¿Qué está mal?
> (Si reinstalo la version 1.2 y compilo de nuevo todo funciona bien)
> Gracias.
>
>
> "Ignacio Ortiz de Zúñiga" <
NoName@xailer.com> escribió en el mensaje
> news:45f7b00a$[email=
1@news.xailer.com...]
1@news.xailer.com...[/email]
>> Miguel,
>>
>> en el código que me mandas no veo nada erroneo aunque no llego a entender
>> porque cierras el dataset, pero no obstante no hay ni una sola llamada a
>> oDataset:AddNew, oDataSet:Update y oDBBrowse:Edit() como comentabas en tu
>> anterior email.
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>>
http://www.xailer.com
>>
>>
>> "Miguel C." <
mcastabaron@cajamar.es> escribió en el mensaje
>> news:45f79001$[email=
1@news.xailer.com...]
1@news.xailer.com...[/email]
>> > Hola Ignacio
>> > Te envio el codigo donde se produce el error, si no te sirve para
> detectar
>> > el error me lo dices e intentare hacer un pequeño ejemplo
>> >
>> > METHOD BtnBmp1Click( oSender ) CLASS TForm24
>> > LOCAL IMP
>> > ::oDbfDataset1:GoToP()
>> > WHILE !EOF()
>> > REPLACE IMPORTE WITH (S+M+L+XL+XXL+TU) * PRECIO
>> > SKIP
>> > END
>> > SUM IMPORTE TO IMP
>> > SELECT 3
>> > USE .DATAPEDCLIGE INDEX .DATAPECLCOCO, .DATAPEDCLCOL,
>> > .DATAPEDCLCOD
>> > DBGOTOP()
>> > FLOCK()
>> > DELETE FOR NUMERO = PED_CLI->NUMERO
>> > PACK
>> > UNLOCK
>> > ::oDbfDataSet1:lOpen:=.F.
>> > IF NETNAME()="AMELIE" .OR. NETNAME()="OFICINA-01"
>> > APPEND FROM .DATAPEDCLI1 FOR Numero = PED_CLI->Numero
>> > ELSEIF NETNAME()="MOSTRADOR-02"
>> > APPEND FROM .DATAPEDCLI2 FOR Numero = PED_CLI->Numero
>> > ELSEIF NETNAME()="ALMACEN-02"
>> > APPEND FROM .DATAPEDCLI3 FOR Numero = PED_CLI->Numero
>> > ENDIF
>> > DBCLOSEAREA()
>> > ::oDbfDataSet1:lOpen:=.T.
>> > SELECT 1
>> > REPLACE IMPORTE WITH IMP
>> > RETURN Nil
>> >
>> > Saludos.
>> >
>> > "Ignacio Ortiz de Zúñiga" <
NoName@xailer.com> escribió en el mensaje
>> > news:45f6e019$[email=
1@news.xailer.com...]
1@news.xailer.com...[/email]
>> >> Miguel,
>> >>
>> >> No consigo reproducirlo. Te importaría mandarnos un pequeño projecto
> que
>> >> muestre el error. Muchas gracias.
>> >>
>> >> Un saludo,
>> >>
>> >> --
>> >> Ignacio Ortiz de Zúñiga
>> >>
http://www.xailer.com
>> >>
>> >>
>> >> "Miguel C." <
mcastabaron@cajamar.es> escribió en el mensaje
>> >> news:45f6adcd$[email=
1@news.xailer.com...]
1@news.xailer.com...[/email]
>> >> > Hola Ignacio,
>> >> >
>> >> > Quizás no he explicado bien como se produce el error:
>> >> > 1.- Tengo un DBBrowse
>> >> > 2.- Añado una linea nueva al Browse asi:
>> >> > ::oDbfDataset1:AddNew()
>> >> > ::oDbfDataset1:Update()
>> >> > ::oDbBrowse1:Edit()
>> >> > 3.- El error se produce en el momento que clico en el Bottom para
>> >> > grabar
>> >> > los datos en la Dbf.
>> >> > Lo que me ha llamado la atención es que con todas las versiones
>> > anteriores
>> >> > esto pasaba sin problemas y ahora da este error.
>> >> >
>> >> > Gracias por tu tiempo. Saludos.
>> >> >
>> >> >
>> >> > "Ignacio Ortiz de Zúñiga" <
NoName@xailer.com> escribió en el mensaje
>> >> > news:[email=
45f65d67@news.xailer.com...]
45f65d67@news.xailer.com...[/email]
>> >> >> Miguel,
>> >> >>
>> >> >> No se puede crear o modificar otra línea cuando se está en edición.
>> >> > Primero
>> >> >> ha de salir de edición. Xailer hace tiempo que evita este tipo de
>> >> >> operaciones. Lo revisaremos para evitar el GPF pero tenga en cuenta
>> >> >> que
>> >> >> la
>> >> >> operación que esta intentando hacer no está permitida.
>> >> >>
>> >> >> Un saludo,
>> >> >>
>> >> >> --
>> >> >> Ignacio Ortiz de Zúñiga
>> >> >>
http://www.xailer.com
>> >> >>
>> >> >>
>> >> >> "Miguel C." <
mcastabaron@cajamar.es> escribió en el mensaje
>> >> >> news:45f5cb65$[email=
1@news.xailer.com...]
1@news.xailer.com...[/email]
>> >> >> > Hola a todos,
>> >> >> >
>> >> >> > Con la nueva versión obtengo el siguente error ejecutando el
>> >> >> > programa
>> >> >> > en
>> >> >> > una
>> >> >> > opción que no he tocado desde hace bastante tiempo:
>> >> >> >
>> >> >> > GPF (Code=c00000fd):
>> >> >> > Stack overflow
>> >> >> > Pila de llamadas (.....)
>> >> >> >
>> >> >> > El error se produce con estoy en browse con edicion e intento
>> > modificar
>> >> > o
>> >> >> > insertar una linea nueva.
>> >> >> > Gracias y saludos.
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >
>> >
>> >
>>
>>
>
>
>