Está en la página 1de 8

/*primer registro*/ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) GO TOP && Mueve el cursor al primer

registro && Muestra un mensaje avisando que && estamos sobre el primer registro WAIT WIND "Primer registro" NOWA && Llama al procedimiento refrescar con el nro. de bloqueo THISFORM.Refrescar(1)

/*uno antes*/ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Preguntamos si no estamos fuera de la tabla && Begin Of File (BOF) && Es verdadero si el puntero esta antes del primer registro IF NOT BOF() SKIP -1 && Retrocedemos un registro IF BOF() && Preguntamos nuevamente si no nos fuimos afuera && Si es as volvemos al primer registro GO TOP && Muestra un mensaje avisando que && estamos sobre el primer registro WAIT WIND "Primer registro" NOWA && Llama al procedimiento refrescar con el nro. de bloqueo THISFORM.Refrescar(1) ELSE && Llama al procedimiento refrescar con el nro. de bloqueo THISFORM.Refrescar(3) ENDIF ENDIF

/*siguiente*/

SELECT ALIAS() && Selecciona el alias en uso (Tabla actual)

&& Preguntamos si no estamos fuera de la tabla && End Of File (EOF) && Es verdadero si el puntero esta despues del ultimo registro IF NOT EOF() SKIP && Avanzamos un registro IF EOF() && Preguntamos nuevamente si no nos fuimos afuera && Si es as volvemos al ultimo registro GO BOTTOM && Muestra un mensaje avisando que && estamos sobre el primer registro WAIT WIND "Ultimo registro" NOWA && Llama al procedimiento refrescar con el nro. de bloqueo THISFORM.Refrescar(2) ELSE && Llama al procedimiento refrescar con el nro. de bloqueo THISFORM.Refrescar(3) ENDIF ENDIF

/*ultimo*/ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) GO BOTTOM && Mueve el cursor al primer registro && Muestra un mensaje avisando que && estamos sobre el ultimo registro WAIT WIND "Ultimor registro" NOWA && Llama al procedimiento refrescar THISFORM.Refrescar(2)

/*uno mas*/ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Guardamos el nro. de registro actual && Por si cancelamos, podemos volver a donde estabamos THISFORM.RegistroActual=RECNO() && Indicamos que estamos agregando un nuevo registro THISFORM.NuevoRegistro=.T. && Verdadero && Agregamos un registro en blanco a la tabla APPEND BLANK && Habilitamos el cuadro de edicion && (El contenedor que tenia los controles para editar los campos) THISFORM.cuadroDeEdicion.ENABLED=.T. && Llama al procedimiento refrescar THISFORM.Refrescar(4) /* refrescar va en el main refrescar*/ LPARAMETER bloqueo && Tipo de Bloqueo SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Si no hay registros no importa que nro. de bloqueo venga, se pone bloqueo 0 bloqueo=IIF(EOF(),0,bloqueo) && Bloqueamos cada control deacuerdo a la tabla de bloqueos THISFORM.Primero.ENABLED=((2=bloqueo) OR (3=bloqueo)) THISFORM.Anterior.ENABLED=((2=bloqueo) OR (3=bloqueo)) THISFORM.Siguiente.ENABLED=((1=bloqueo) OR (3=bloqueo)) THISFORM.Ultimo.ENABLED=((1=bloqueo) OR (3=bloqueo)) THISFORM.Nuevo.ENABLED=((4#bloqueo) OR (0=bloqueo)) THISFORM.Modificar.ENABLED=((4#bloqueo) AND (0#bloqueo)) THISFORM.Borrar.ENABLED=((4#bloqueo) AND (0#bloqueo)) THISFORM.Aceptar.ENABLED=(4=bloqueo) THISFORM.Cancelar.ENABLED=(4=bloqueo) && Bloqueo de el boton cerrar es en relialidad dos bloqueos && el del boton cerrar y el del boton [X] del formulario THISFORM.Closable=(4#bloqueo) THISFORM.Cerrar.ENABLED=(4#bloqueo) && Actualizamos el formulario para que muestre los cambios THISFORM.REFRESH

/*categoras va en el main init */

/*modificar clic*/ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Guardamos en registro actual && cero para indicar que no nos cambiamos de lugar THISFORM.RegistroActual=0 && Indicamos que NO estamos agregando un nuevo registro THISFORM.NuevoRegistro=.F. && Falso && Habilitamos el cuadro de edicion && (El contenedor que tenia los controles para editar los campos) THISFORM.cuadroDeEdicion.ENABLED=.T. && Llama al procedimiento refrescar THISFORM.Refrescar(4)

/*Borrar */ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Verificamos que hay un registro para borrar IF EOF() MESSAGEBOX("No hay registro para eliminar",48,"Aviso") ELSE && Consultamos al operador si realmente desea borrar el registro IF MESSAGEBOX("Esta seguro de querer eliminar este registo",36,"Confirmar")=6 && Si responde que Si borramos DELETE && Despues de borrar && Nos ubicamos sobre el registro siguiente THISFORM.Siguiente.CLICK ELSE && Si respondemos que no, avisa que se cancelo la eliminacin MESSAGEBOX("Cancelo la eliminacin",48,"Aviso") ENDIF ENDIF

/*Aceptar*/ SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Preguntamos si es un nuevo registro IF THISFORM.NuevoRegistro && Declaramos un vector de un solo elemento, && esto es as porque el select devuelve valores a un array (matriz o vector) DIMENSION Nro(1) && Inicializamos el nuevo elemnto con cero (No es necesario poner el sub indice si es un solo elemento) Nro=0

&& Buscamos si ya hay registros cual es el ultimo nro y lo guardamos en Nro SELECT max(ID_CATEGORIA) FROM CATEGORIAS INTO ARRAY Nro && Incrementamos el Nro en uno, para tener el siguiente nro. Nro=Nro+1 && Asignamos el nuevo nro al id de descuento ID_CATEGORIA=NRO THISFORM.cuadroDeEdicion.txtId_categoria.VALUE=Nro ENDIF && Guardamos los cambios en la tabla TABLEUPDATE() && Indicamos que NO estamos agregando un nuevo registro && Ya lo agregamos THISFORM.NuevoRegistro=.F. && Falso && Deshabilitamos el cuadro de edicion && (El contenedor que tenia los controles para editar los campos) THISFORM.cuadroDeEdicion.ENABLED=.F. && Llama al procedimiento refrescar THISFORM.Refrescar(3)

/*cancelar*/

SELECT ALIAS() && Selecciona el alias en uso (Tabla actual) && Cancela los cambios realizados sobre la tabla TABLEREVERT() && Preguntamos si es un nuevo registro && y si no el primer registro que se agrega IF THISFORM.NuevoRegistro AND (RECCOUNT()>=THISFORM.RegistroActual) && Volvemos al registro original donde se estaba GO THISFORM.RegistroActual && Indicamos que NO estamos agregando un nuevo registro && Lo cancelamos THISFORM.NuevoRegistro=.F. ENDIF && Deshabilitamos el cuadro de edicion && (El contenedor que tenia los controles para editar los campos) THISFORM.cuadroDeEdicion.ENABLED=.F. && Llama al procedimiento refrescar THISFORM.Refrescar(3) /*ayuda*/ && Buscamos donde se encuentra el archivo de ayuda && ya que su ubicacin dependera de donde se instale el sistema ruta=FULLPATH(CURDIR() + "Ayuda\categorias.htm") && Se llama al control Hpervinculos que esta en el formulario main MAIN.Enlace.navigateTo(ruta)

/*cerrar*/ && Termina y cierra el formulario THISFORM.RELEASE

/*tres elementos mas*/

/* main*/ && Pone los decimales con coma SET POINT TO "," && Pone el punto en los miles SET SEPARATOR TO "." && Indica que trabajomos por defecto con dos decimales SET DECIMALS TO 2 && Para pasar de cuadro a otro hay que dar enter SET CONFIRM ON && La fechas se ponen como da/mes/ao SET DATE DMY && El ao se acomoda automaticamente con cuatro digitos SET CENTURY ON && No se muestran los registros marcados para eliminacin SET DELETED ON && Declara las variables publicas usadas como && parametro de la consulta PUBLIC cProducto

PUBLIC cProveedor PUBLIC cCategoria && Las inicializamos con los valores && De arranque de la consulta cProducto="" cProveedor="%" cCategoria="%" && Abrimos el formulario principal DO FORM MAIN && Comenzamos la ejecucin de la aplicacin READ EVENTS

También podría gustarte