In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Comportamiento extraño de seek en DBFDATA6

Foro público de Xailer en español
Jose Luis Gonzalez
Mensajes: 3
Registrado: Jue Mar 09, 2006 1:16 am

Comportamiento extraño de seek en DBFDATA6

Mensaje por Jose Luis Gonzalez »

Estoy usando Xailer 1.92 version demo. (Sin cambiar nada al codigo
original del ejemplo)
Al ejecutar el proyecto incluido en Samples - Datacontrols -DBFDATA6
Son 3 errores :
1) Al acceder a la pantalla donde se despliegan las facturas (presionado el
boton de facturas) , si existe solamente un registro se queda trabada.
2) En la captura de partidas para la factura, al capturar la clave del
articulo por ejemplo "XA"
la deja pasar como si existiera. Y pone la descripcion correspondiente a
XAILER como si hubiesemos
capturado la clave "XAILERPER" (como si hubiese una busqueda suave)
¿por que lo deja pasar si la funcion parece escrita correctamente, en su
ejemplo?
¿Por que la funcion ::Seek() regresa .T. si la clave no existe.?
METHOD ChkArticulo( oGridEdit ) CLASS TFrmFraEdi
If !::oBrwArt:lEditMode
Return NIL
Endif
With Object ::oDbfArt
:OrdSetFocus( "CODIGO" )
If !Empty( oGridEdit:Value ) .and. :Seek( oGridEdit:Value ) <==
Seek regresa TRUE (ponel el valor de found en True)
// If !Empty( oGridEdit:Value ) .and. :ForcedSeek( oGridEdit:Value ) <===
Tambien lo deja pasar sin problema
// a pesar de que no existe el codigo del articulo
::oBrwArt:SetValue( 2, :Nombre )
::oBrwArt:SetValue( 4, :PVP )
::GetDescuento()
::CalculaLinea()
::CalculaTotal( .f. )
Else
oGridEdit:Value := ""
With Object ::oBrwArt
if :nLen > 0
:SetValue( 2, "" )
:SetValue( 4, 0 )
:SetValue( 5, 0 )
:SetValue( 6, 0 )
Endif
End with
Tone( 100, .1 )
Endif
End With
RETURN Nil
3)¿ Por que al momento de Guardar la informacion si detecta que no existe el
codigo del articulo al utilizar un ForceSeek?
Versión Xailer: Xailer 1.9.2 Version 1.9
Compilador: xHarbour build 1.0.0 Intl. (SimpLex) PCode Version: 9
Compilador C/C++: Borland C++ 5.8.0
Plataforma: Windows Windows Vista Professional 6.00.6001 Service Pack
1
----------------------- Información detallada del
error -----------------------
Subsistema: Xailer: TRddDataSource
Código de error: 0
Estado: .F.
Descripción: Error de DbSeek() en ARTICULO
Operación: Valor XA
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TDBFDATASET:SEEK (1144)
(b)XDBFDATASET:XDBFDATASET (125)
TDBFDATASET:FORCEDSEEK (0)
TFRMFACTURAS:CALCULAR (300)
TFRMFACTURAS:SAVELINES (272)
TFRMFACTURAS:MANTENEDITAR (106)
(b)TFRMFACTURAS:CREATEFORM (125)
TDBBROWSE:ONDBLCLICK (0)
TDBBROWSE:WMLBUTTONDBLCLK (2043)
RUNFORM (0)
TAPPLICATION:RUN (209)
MAIN (16)
Este es la parte de codigo que lo hace
With Object ::oDbfLin
If :Seek( ::oDbfCab:Codigo )
Do While :Factura == ::oDbfCab:Codigo .and. !:Eof()
::oDbfArt:ForcedSeek( :Articulo ) <=====================aqui si
detecta que el codigo del articulo no existe
cTipo := ::oDbfArt:TipIva
Responder