Page 1 of 1

tecla INS y como modificar dbf por programa

Posted: Wed Apr 11, 2007 10:08 pm
by lafug
Hola Amigos!

Dos preguntas:

- como puedo activar la tecla INS por defecto en un prg para que al ingresar el dato no borre el contenido existente? sin que el usuario tenga que activarla antes de ingresar.

- Como modificar una DBF por programa para adicionar un campo y que funcion me permite verificar si el campo existe?

de antemano muchas gracias por sus comentarios

un xhabrazo
:D

Posted: Wed Apr 11, 2007 10:41 pm
by carlos vargas
un poco de ayuda

donde esta ????? lo haces tu, ya que voy saliendo y no me dio tiempo finalizarlos :-)

Code: Select all

FUNCTION FieldExist(cFieldName)
 LOCAL aFields[FCOUNT()]

 afields(aFields)

 FOR x:=1 TO len(aFields)
  IF aFields[x] = cFieldName
   RETURN .t.
  ENDIF
 NEXT

RETURN .f.

Code: Select all

FUNCTION InsertField(aField)
 LOCAL aStruct:=dbstruct()
 LOCAL cAlias  := alias()
 
 //agrega al arreglo con la estructura el nuevo campo
 aadd(aStruct,aField)

 //crea una tabla temporal
 dbcreate("_TEMP_",aStruct)
 
 //copia todos los registros de la tabla actual a la tabla nueva
 GO TOP
 COPY TO _TEMP_

 //cierra tabla actual
 CLOSE TABLE

 //elimina tabla actual
 ??????

 //renombra la tabla nueva con el nombre de la tabla anterior
 ?????

 //abre tabla nueva con el alias anterior
 ?????
 
RETURN NIL

Code: Select all

 ...
 //verifica si existe el campo ENERO07 en la tabla TEMP
 IF !TEMP->(FieldExist("ENERO07"))

   //altera la tabla agregando el campo
   aNewField := {"ENERO07","N",09,02}
   TEMP->(InsertField(aField))

 ENDIF

Posted: Wed Apr 11, 2007 11:27 pm
by lafug
gracias mil eduardo!!

lo voy a probar

:D