Sabeis si existe algun límite al confeccionar la variable que nos indique Topscope o Bottomscope ?
Me explico:
Tengo una dbf llamada albaran con su indice CDX indexado por : index on _field->Conductor+dtos(_field->fecha)+STR(_field->Tipo) tag "Conductor" .
El campo conductor el Caracter, y el campo Tipo es Numérico.
Ahora bien, cuando voy a utilizar ORDSCOPE, hago lo siguiente:
(Publicas:Conductor el el codigo del conductor y Publicas:cini es una fecha de inicio)
Primero creo la variable con el limite superior: scopeini:=Publicas:Conductor+dtos(Publicas:cIni)
El limite inferior igual: scopefin:=Publicas:Conductor+dtos(Publicas:cFin)
Ahora hago: Ordscope(0,(scopeini))
Ordscope(0,(scopefin))
Y esto Funciona correctamente, me hace un browse con los límites indicados
Hasta ahora sólo he utilizado como limites, el número de conductor y el límite de fecha, pero cuando quiero añadir un tercer parámetro, que está en el índice y que es el tipo de albaran, ya no hace ningún filtro, me sigue haciendo sólamente el filtro por las dos primeras condiciones.
Si cambio las condiciones, y en lugar de la fecha pongo conductor+ '2' (que es el tipo), también funciona, osea que me filtra por conductor mas el tipo.
- Code: Select all Expand view
dbUseArea(.T.,,Publicas:cUnidad+Publicas:cSubd+"\Conduc",aAlias[26],.T.)
(aAlias[26])->(OrdSetFocus("Codigo"))
dbUseArea(.T.,,Publicas:cUnidad+Publicas:cSubd+"\ALBARAN",aAlias[24],.T.)
(aAlias[24])->(OrdSetFocus("Conductor"))
Publicas:nConduc:=(aAlias[26])->codigo
scopeini:=Publicas:nConduc+dtos(Publicas:cIni)
scopefin:=Publicas:nConduc+dtos(Publicas:cFin)
(aAlias[24])->(Ordscope(0,(scopeini)))
(aAlias[24])->(Ordscope(1,(scopefin)))
(aAlias[24])->(Dbgotop())
do while !(aAlias[24])->(Eof())
ncobro1+= (aAlias[24])->baseimpo
nbultos1+= iif ((aAlias[24])->kkilos = 0,(aAlias[24])->kilos,(aAlias[24])->kkilos)
cuentaal1+=1
(aAlias[24])->(dbskip())
enddo
(aAlias[24])->(Ordscope(0,Nil))
(aAlias[24])->(Ordscope(1,Nil))
(aAlias[24])->(Dbgotop())
*********************************************************************
** HASTA AQUI TODO CORRECTO
********************************************************************
scopeini:=Publicas:nConduc+dtos(Publicas:cIni)+'2'
scopefin:=Publicas:nConduc+dtos(Publicas:cFin)+'2'
(aAlias[24])->(Ordscope(0,(scopeini)))
(aAlias[24])->(Ordscope(1,(scopefin)))
(aAlias[24])->(Dbgotop())
do while !(aAlias[24])->(Eof())
ncobro2+= (aAlias[24])->baseimpo
nbultos2+= iif ((aAlias[24])->kkilos = 0,(aAlias[24])->kilos,(aAlias[24])->kkilos)
cuentaal2+=1
(aAlias[24])->(dbskip())
enddo
*************************************************************
* ESTE ULTIMO SCOPE NO HACE NADA, ME TOMA LA BASE DE DATOS ENTERA
*******************************************************************
Esto me ha llevado a pensar si hay un limite al confeccionar la variable, o es que estoy haciendo algo mal.
Un saludo