Ayuda con apertura de ficheros POR FAVOR
Ayuda con apertura de ficheros POR FAVOR
Tengo una rutina que abre todos los ficheros del sistema, ahora le he ampliado tres ficheros mas, y me da u error, de
** error de apertura **
y no me deja abrir mas de un determinado numero de ficheros, alguno de vosotros conoce una solucion por favor
GRACIAS
** error de apertura **
y no me deja abrir mas de un determinado numero de ficheros, alguno de vosotros conoce una solucion por favor
GRACIAS
Hola,
Primero de todo tenemos de averiguar q fichero es. Tambien se puede mirar la rutina q abre los fichero y ver como lo haces. Mirar si hay campos memo, indices asociados, ....
Necesitamos datos
Tranki q todo tiene solucion
Primero de todo tenemos de averiguar q fichero es. Tambien se puede mirar la rutina q abre los fichero y ver como lo haces. Mirar si hay campos memo, indices asociados, ....
Necesitamos datos
Tranki q todo tiene solucion
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
Ahi va todo el codigo.
#include "FWCE.ch"
function Main()
local oWnd, obmp
DbCloseAll()
Config()
abrir_dbfs_cdx()
indexa_ficheros()
abrir_dbfs_tmp()
menu_principal()
DbCloseAll()
oBmp:End()
return 0
********************************************************
* Configurardor de opciones de menu
********************************************************
FUNCTION iniciar_menu
local oMenu
DEFINE MENU oMenu RESOURCE 102
REDEFINE MENUITEM ID 320 OF oMenu ACTION MsgInfo("MJCC" +;
CHR(13) +;
"Manuel Jose Castro Casas,S.L." +;
CHR(13) +;
"Arcay 124 bajo"+;
CHR(13) +;
"15873 - Bembibre"+;
CHR(13)+;
"La Coruña"+;
CHR(13)+;
"902 234568",;
"Gestion POKECT")
REDEFINE MENUITEM ID 1310 OF oMenu ACTION vehiculo("","","","")
RETURN omenu
********************************************************
* Configuracion del sistema por defecto para arrancar *
********************************************************
STATIC FUNCTION Config()
HB_LANGSELECT("ESWIN")
SET DELETED ON
SET DATE TO ITALIAN
SET SOFTSEEK ON
SET CENTURY ON
SET EPOCH TO 2000
SET CONFIR ON
*Hb_LangSelect ('PL')
*Hb_SetCodePage ('PLWIN')
REQUEST HB_LANG_ES // Para establecer español para Mensajes, fechas, etc..
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)
HB_LangSelect('ES')
HB_SetCodePage("ESWIN") // Para ordenación (arrays, cadenas, etc..)
RETURN 0
********************************************************************
* Abre los ficheros temporales del sistema *
********************************************************************
FUNCTION abrir_dbfs_tmp()
USE ( CurDir() + "\tmp\rescli.dbf") NEW
USE ( CurDir() + "\tmp\resart.dbf") NEW
USE ( CurDir() + "\tmp\resage.dbf") NEW
USE ( CurDir() + "\tmp\resavc.dbf") NEW
USE ( CurDir() + "\tmp\lineas.dbf") NEW
USE ( CurDir() + "\tmp\resvehi.dbf") NEW
RETURN 0
***********************************************************************************
* APERTURA DE FICHEROS CON LOS INDICES GENERADOS
***********************************************************************************
FUNCTION abrir_dbfs_cdx()
USE ( CurDir() + "\dat\planning.dbf") NEW
USE ( CurDir() + "\dat\plandet.dbf") NEW
USE ( CurDir() + "\dat\cliente.dbf") NEW
USE ( CurDir() + "\dat\articulo.dbf") NEW
USE ( CurDir() + "\dat\agenda.dbf") NEW
USE ( CurDir() + "\dat\tareas.dbf") NEW
USE ( CurDir() + "\dat\recuento.dbf") NEW
USE ( CurDir() + "\dat\avc.dbf") NEW
USE ( CurDir() + "\dat\avl.dbf") NEW
USE ( CurDir() + "\dat\fpago.dbf") NEW
USE ( CurDir() + "\dat\barras.dbf") NEW
USE ( CurDir() + "\dat\vehiculo.dbf") NEW
USE ( CurDir() + "\dat\grupo.dbf") NEW
USE ( CurDir() + "\dat\subgrupo.dbf") NEW
USE ( CurDir() + "\dat\familias.dbf") NEW
USE ( CurDir() + "\dat\seccion.dbf") NEW
USE ( CurDir() + "\dat\labo.dbf") NEW
RETURN 0
*************************************************************************
* Indexa los ficheros de la aplicacion por _ que a mi me interesan
**************************************************************************
Function indexa_ficheros ()
Request DbfCdx
Request DbfFpt
RddSetDefault ('DbfCdx')
Request Hb_Lang_PLWIN
Request Hb_CodePage_PLWIN
* Clientes
SELECT cliente
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\cliente.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\cliente.cdx" ) FOR borrado <> 1
* Artículos
SELECT articulo
Index On nombrea Tag inombrec TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
Index On autosel Tag iautosel TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
* Indexa los ficheros de la agenda
SELECT agenda
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\agenda.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\agenda.cdx" ) FOR borrado <> 1
* Indexa fichero de planning
SELECT tareas
Index On subs(dtoc(tfecha),1,5) + alltrim(thora) Tag inombrec TO ( CurDir() + "\dat\tareas.cdx" ) FOR borrado <> 1
* Indexa fichero de recuento de stocks
SELECT recuento
Index ON codigo Tag irecuen TO ( CurDir() + "\dat\recuento.cdx" )
* Indexa el fichero de cabeceras de albaranes de ventas
SELECT avc
Index ON nombrec Tag inombre TO ( CurDir() + "\dat\avc.cdx" ) FOR borrado <> 1
Index ON puntero Tag icodigo TO ( CurDir() + "\dat\avc.cdx" ) FOR borrado <> 1
* Indexa el fichero de albaranes
SELECT avl
Index ON documento Tag icodigo TO ( CurDir() + "\dat\avl.cdx" ) FOR borrado <> 1
Index ON puntero Tag ilineas TO ( CurDir() + "\dat\avl.cdx" ) FOR borrado <> 1
* Indexa el fichero de formas de pago
SELECT fpago
Index ON pagocod Tag icodpag TO ( CurDir() + "\dat\fpago.cdx" )
* Indexa el fichero de codigos de barras
SELECT barras
Index ON bartean13 Tag barras1 TO ( CurDir() + "\dat\barras.cdx" )
Index ON bartean13d Tag barras2 TO ( CurDir() + "\dat\barras.cdx" )
* Fichero de planning
SELECT planning
Index ON fechadoc Tag icodigo TO ( CurDir() + "\dat\planning.cdx" )
* Detalle de plannig
SELECT plandet
Index ON fechadoc Tag icodf TO ( CurDir() + "\dat\plandet.cdx" )
* Vehiculos empresa
SELECT vehiculo
Index On nombrec Tag nombrev TO ( CurDir() + "\dat\vehiculo.cdx" ) FOR borrado <> 1
Index On codigo Tag matricu TO ( CurDir() + "\dat\vehiculo.cdx" ) FOR borrado <> 1
* Grupos
SELECT grupo
Index On percod Tag ipercod TO ( CurDir() + "\dat\grupo.cdx" )
* Subrupos
SELECT subgrupo
Index On percod Tag ipercod TO ( CurDir() + "\dat\subgrupo.cdx" )
* Familias
SELECT familias
Index On famcodigo Tag ifamcod TO ( CurDir() + "\dat\familias.cdx" )
* Secciones
SELECT seccion
Index On sec_codigo Tag iseccod TO ( CurDir() + "\dat\seccion.cdx" )
* Laboratorios
SELECT labo
Index On percod Tag ilabo TO ( CurDir() + "\dat\labo.cdx" )
Return 0
function Main()
local oWnd, obmp
DbCloseAll()
Config()
abrir_dbfs_cdx()
indexa_ficheros()
abrir_dbfs_tmp()
menu_principal()
DbCloseAll()
oBmp:End()
return 0
********************************************************
* Configurardor de opciones de menu
********************************************************
FUNCTION iniciar_menu
local oMenu
DEFINE MENU oMenu RESOURCE 102
REDEFINE MENUITEM ID 320 OF oMenu ACTION MsgInfo("MJCC" +;
CHR(13) +;
"Manuel Jose Castro Casas,S.L." +;
CHR(13) +;
"Arcay 124 bajo"+;
CHR(13) +;
"15873 - Bembibre"+;
CHR(13)+;
"La Coruña"+;
CHR(13)+;
"902 234568",;
"Gestion POKECT")
REDEFINE MENUITEM ID 1310 OF oMenu ACTION vehiculo("","","","")
RETURN omenu
********************************************************
* Configuracion del sistema por defecto para arrancar *
********************************************************
STATIC FUNCTION Config()
HB_LANGSELECT("ESWIN")
SET DELETED ON
SET DATE TO ITALIAN
SET SOFTSEEK ON
SET CENTURY ON
SET EPOCH TO 2000
SET CONFIR ON
*Hb_LangSelect ('PL')
*Hb_SetCodePage ('PLWIN')
REQUEST HB_LANG_ES // Para establecer español para Mensajes, fechas, etc..
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)
HB_LangSelect('ES')
HB_SetCodePage("ESWIN") // Para ordenación (arrays, cadenas, etc..)
RETURN 0
********************************************************************
* Abre los ficheros temporales del sistema *
********************************************************************
FUNCTION abrir_dbfs_tmp()
USE ( CurDir() + "\tmp\rescli.dbf") NEW
USE ( CurDir() + "\tmp\resart.dbf") NEW
USE ( CurDir() + "\tmp\resage.dbf") NEW
USE ( CurDir() + "\tmp\resavc.dbf") NEW
USE ( CurDir() + "\tmp\lineas.dbf") NEW
USE ( CurDir() + "\tmp\resvehi.dbf") NEW
RETURN 0
***********************************************************************************
* APERTURA DE FICHEROS CON LOS INDICES GENERADOS
***********************************************************************************
FUNCTION abrir_dbfs_cdx()
USE ( CurDir() + "\dat\planning.dbf") NEW
USE ( CurDir() + "\dat\plandet.dbf") NEW
USE ( CurDir() + "\dat\cliente.dbf") NEW
USE ( CurDir() + "\dat\articulo.dbf") NEW
USE ( CurDir() + "\dat\agenda.dbf") NEW
USE ( CurDir() + "\dat\tareas.dbf") NEW
USE ( CurDir() + "\dat\recuento.dbf") NEW
USE ( CurDir() + "\dat\avc.dbf") NEW
USE ( CurDir() + "\dat\avl.dbf") NEW
USE ( CurDir() + "\dat\fpago.dbf") NEW
USE ( CurDir() + "\dat\barras.dbf") NEW
USE ( CurDir() + "\dat\vehiculo.dbf") NEW
USE ( CurDir() + "\dat\grupo.dbf") NEW
USE ( CurDir() + "\dat\subgrupo.dbf") NEW
USE ( CurDir() + "\dat\familias.dbf") NEW
USE ( CurDir() + "\dat\seccion.dbf") NEW
USE ( CurDir() + "\dat\labo.dbf") NEW
RETURN 0
*************************************************************************
* Indexa los ficheros de la aplicacion por _ que a mi me interesan
**************************************************************************
Function indexa_ficheros ()
Request DbfCdx
Request DbfFpt
RddSetDefault ('DbfCdx')
Request Hb_Lang_PLWIN
Request Hb_CodePage_PLWIN
* Clientes
SELECT cliente
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\cliente.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\cliente.cdx" ) FOR borrado <> 1
* Artículos
SELECT articulo
Index On nombrea Tag inombrec TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
Index On autosel Tag iautosel TO ( CurDir() + "\dat\articulo.cdx" ) FOR borrado <> 1
* Indexa los ficheros de la agenda
SELECT agenda
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\agenda.cdx" ) FOR borrado <> 1
Index On codigo Tag icodigo TO ( CurDir() + "\dat\agenda.cdx" ) FOR borrado <> 1
* Indexa fichero de planning
SELECT tareas
Index On subs(dtoc(tfecha),1,5) + alltrim(thora) Tag inombrec TO ( CurDir() + "\dat\tareas.cdx" ) FOR borrado <> 1
* Indexa fichero de recuento de stocks
SELECT recuento
Index ON codigo Tag irecuen TO ( CurDir() + "\dat\recuento.cdx" )
* Indexa el fichero de cabeceras de albaranes de ventas
SELECT avc
Index ON nombrec Tag inombre TO ( CurDir() + "\dat\avc.cdx" ) FOR borrado <> 1
Index ON puntero Tag icodigo TO ( CurDir() + "\dat\avc.cdx" ) FOR borrado <> 1
* Indexa el fichero de albaranes
SELECT avl
Index ON documento Tag icodigo TO ( CurDir() + "\dat\avl.cdx" ) FOR borrado <> 1
Index ON puntero Tag ilineas TO ( CurDir() + "\dat\avl.cdx" ) FOR borrado <> 1
* Indexa el fichero de formas de pago
SELECT fpago
Index ON pagocod Tag icodpag TO ( CurDir() + "\dat\fpago.cdx" )
* Indexa el fichero de codigos de barras
SELECT barras
Index ON bartean13 Tag barras1 TO ( CurDir() + "\dat\barras.cdx" )
Index ON bartean13d Tag barras2 TO ( CurDir() + "\dat\barras.cdx" )
* Fichero de planning
SELECT planning
Index ON fechadoc Tag icodigo TO ( CurDir() + "\dat\planning.cdx" )
* Detalle de plannig
SELECT plandet
Index ON fechadoc Tag icodf TO ( CurDir() + "\dat\plandet.cdx" )
* Vehiculos empresa
SELECT vehiculo
Index On nombrec Tag nombrev TO ( CurDir() + "\dat\vehiculo.cdx" ) FOR borrado <> 1
Index On codigo Tag matricu TO ( CurDir() + "\dat\vehiculo.cdx" ) FOR borrado <> 1
* Grupos
SELECT grupo
Index On percod Tag ipercod TO ( CurDir() + "\dat\grupo.cdx" )
* Subrupos
SELECT subgrupo
Index On percod Tag ipercod TO ( CurDir() + "\dat\subgrupo.cdx" )
* Familias
SELECT familias
Index On famcodigo Tag ifamcod TO ( CurDir() + "\dat\familias.cdx" )
* Secciones
SELECT seccion
Index On sec_codigo Tag iseccod TO ( CurDir() + "\dat\seccion.cdx" )
* Laboratorios
SELECT labo
Index On percod Tag ilabo TO ( CurDir() + "\dat\labo.cdx" )
Return 0
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Manolo,
Pudiese tratarse de una limitación de Windows Mobile. Vamos a construir un ejemplo ya a probarlo, y en caso de existir esa limitación, vamos a ver si existe forma de ampliar esa cantidad.
Por favor, no pongas el mismo mensaje tantas veces. Te hemos leido y vamos a ayudarte. Quédate tranquilo.
Pudiese tratarse de una limitación de Windows Mobile. Vamos a construir un ejemplo ya a probarlo, y en caso de existir esa limitación, vamos a ver si existe forma de ampliar esa cantidad.
Por favor, no pongas el mismo mensaje tantas veces. Te hemos leido y vamos a ayudarte. Quédate tranquilo.
Hola,
La aplicacion q mas ficheros abria era 15 y me iba correctamente. He ampliado la apertura (ya por curiosidad), y me abre hasta 19 (con indices asociados) - >Curiosa la limitacion.
Tranquilo Mjcc q Antonio encontrará la solucion (recouerdo los viejos tiempos con el sethandlecount(), o algo asi).
La aplicacion q mas ficheros abria era 15 y me iba correctamente. He ampliado la apertura (ya por curiosidad), y me abre hasta 19 (con indices asociados) - >Curiosa la limitacion.
Tranquilo Mjcc q Antonio encontrará la solucion (recouerdo los viejos tiempos con el sethandlecount(), o algo asi).
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
Pues este problema creo q solo te lo podra solucionar una persona. De todas maneras para salir del paso en la presentacion y tenerlos 'engañados' puedes mirar de abrir y cerrar las tablas cuando las necesites. Supongo q no tendras un proceso q necesites todas abiertas.
Vamos a ver q cuentas AL
Vamos a ver q cuentas AL
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
Mjcc,
Toni tiene razon. Da error en el emulador, pero no en la Pocket. Acabo de instalar el program,a en una pocket y me va fenomenal (como siempre ), pero en cambio me da error en el emulador.
Solucionado ! -> No hay problema en Pocket !
Toni tiene razon. Da error en el emulador, pero no en la Pocket. Acabo de instalar el program,a en una pocket y me va fenomenal (como siempre ), pero en cambio me da error en el emulador.
Solucionado ! -> No hay problema en Pocket !
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Buenas noticias
El error sólo se produce al trabajar en la tarjeta de memoria.
Si la aplicación se copia al directorio raiz, por ejemplo, la aplicación funciona perfectamente. Este es un ejemplo:
El error sólo se produce al trabajar en la tarjeta de memoria.
Si la aplicación se copia al directorio raiz, por ejemplo, la aplicación funciona perfectamente. Este es un ejemplo:
Code: Select all
request DBFCDX
function Main()
local n, cDbfName
for n = 1 to 25
cDbfName = CurDir() + "\_" + AllTrim( Str( n ) )
DbCreate( cDbfName, { { "first", "C", 8, 0 } } )
MsgInfo( cDbfName )
USE ( cDbfName ) VIA "DBFCDX" NEW
INDEX ON first to ( CurDir() + "\_" + AllTrim( Str( n ) ) )
next
MsgInfo( "ok" )
return nil
Si al final del ejemplo de Antonio pones Msginfo( len(aGetWorkAreas()) ), veras como te da q estan las 25 areas abiertas. Verificado en Pocket.
Siau
Siau
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app