FoxPro/Visual FoxPro - Limitar entradas en un GRID

   
Vista:

Limitar entradas en un GRID

Publicado por victor perez (137 intervenciones) el 10/11/2012 14:53:04
Hola amigos,


Mi programa de facturacion utiliza un GRID para introducir las lineas de los articulos facturados. Alli puedo introducir tantas lineas como quiero (no hay limites). Yo quisiera limitar esto a que solo puedan ingresarse 9 lineas para que al imprimirlo todo quede bien.

No se como hacerlo. Lo he limitado por codigo pero luego si necesito editar alguna linea la sentencia que utilizo me limita a poder editarla.

Yo uso un cursor que es el que toma la informacion de todas las lineas facturadas...Le digo al sistema que cuando el cursor tenga 9 o mas articulos me envie hacia otro lado de la facturacion y no me permita introducir mas lineas...pero si tengo que editar, alli radica el problema.

Sugerencias de como resolver esto de manera que solo las lineas que veo en pantalla en el grid sean las que se pueden usar...es decir que no siga corriendo el grid para añadir lineas nuevas.

Desde ya muchas gracias


Victor,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Limitar entradas en un GRID

Publicado por Fidel (321 intervenciones) el 10/11/2012 16:03:36
En lugar de enviar el proceso a otro lado, donde controlas la cantidad de registros:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
select Micursor
nRecActual=recno()
Count to nRegistros
 
&& Count mueve el puntero al último registro, por lo que debes reposicionarlo.
&& Reccount no mueve el puntero porque toma el valor de la cabecera de la tabla ó cursor.
&& Con eso no te permitirá agregar registros desde el control grid.  (bajando la última línea)
&& Acá conviene usar Count y no Reccount(), porque reccount cuenta los registros con marca de && borrado. Count depende de SET DELETE. Pero también puedes escribir
&& COUNT FOR !DELETED() TO nRegistros si trabajas con SET DELETE OFF
 
if nRecActual#0
      go nrecActual
endif
thisform.Grid1.AllowAddNew=iif(nRegistros>=9,.F.,.T.) && le indica al control grid que no admita registros nuevos.
 
 
Si puedes agreagar más registros con
SELECT MICURSOR
APPEND BLANK
with thisform.Grid1
       .refresh
       .SetFocus()
endwith
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Limitar entradas en un GRID

Publicado por victor perez (137 intervenciones) el 10/11/2012 16:29:30
Gracias por la informacion.

Pero, se me complica la programacion. Yo no soy programador de profesion.

PODRIAS ayudarme si te envio el formulario que uso para hacer las facturas.

Si me das tu correo te lo envio inmediamente.


Saludos,


Victor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Limitar entradas en un GRID

Publicado por victor perez (137 intervenciones) el 10/11/2012 17:06:06
Hola,

Ya pude encontrar la solucion ayudandome con lo que me dijiste.

Yo tengo en la primera columna del Grid un TXT donde coloco el codigo.

Alli en el evento gotfocus puse:

Select _items (el cursor que registra los articulos facturados)
if reccount() =9
thisform.pgfpeds.page1.grid1.allowAddNew=.f.
endif

Ya con eso soluciono el problema de que no se puedan agregar mas de 9 registros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar