Código de Clipper/FiveWin - Funciones para el manejo de registros

<<>>

Funciones para el manejo de registrosgráfica de visualizaciones


Clipper/FiveWin

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 26 de Enero del 2005 por Geovaldy E.
15.798 visualizaciones desde el 26 de Enero del 2005. Una media de 28 por semana
Todas estas funciones sirven para manejar un Registro de cualquier Archivo .DBF
Básicamente colocan el registro en un Arreglo y desde hay lo maneja

al Arreglo consta de 3 elementos de los cuales el 1ro es el Nombre o el Alias del Archivo asociado.
el 2do es otro arreglo con las características del registro tales como : NOMBRE DEL CAMPO, TIPO, LONGITUD, DECIMAL y CONTENIDO DE LA VARIABLE EN EL MOMENTO DE CARGAR EL ARREGLO
el 3ro es el numero de Registro que ocupa en el Archivo.
Compilador CLIPPER

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 26 de Enero del 2005gráfica de visualizaciones de la versión: Versión 1
15.799 visualizaciones desde el 26 de Enero del 2005. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/***
* Inicializa el Quinto Elemento del arreglo contenino en 2do elemento de la matriz Madre
*/
FUNCTION IniciaField( aField )
         AEVAL( aField[2], { |Struct,X| aField[2,X,5] := EmptyField( aField[2,X,5], aField[2,X,3] ) } )
RETURN ( aField )
 
/***
* Carga en un arreglo todas las Caracteristicas de un Registro en Particular de un Archivo en Particular
*/
FUNCTION CargaField( sAlias )
         LOCAL AntAlias := ALIAS(), aFields
 
         SELECT( IF( !EMPTY(PCOUNT()), sAlias, ALIAS() ) )
        aFields  := { ALIAS(), DBSTRUCT(), RECNO() }
         AEVAL( aFields[2], { | Struct,X | AADD( aFields[2,X] , &(Struct[1])) } )
RETURN ( aFields )
 
/***
*Conpia el Contenido de un arreglo a otro en aquellos cullos campos tengan el mismo Nombre
*/
FUNCTION DuplicFieldEn( aField1, aField2, Bacios )
         LOCAL Ind1 := 0, Ind2  := 0
 
         FOR Ind1 := 1 TO LEN( aField1[2] )
             Ind2 := ASCAN( aField2[2], {|Y| Y[1] == aField1[2,Ind1,1]} )
             IF(!EMPTY(Ind2))
                aField1[2,Ind1,5] := IF( PCOUNT()==3.AND.!Bacios.AND.!EMPTY(aField2[2,Ind2,5]), aField1[2,Ind1,5], aField2[2,Ind2,5] )
             ENDIF
         NEXT
RETURN ( aField1 )
 
/***
* Retorna la posicion de un campo en particular dentro del registro
*/
FUNCTION NumField( aField, sCampo )
RETURN ( ASCAN( aField[2] , {|X| X[1] == UPPER(SCAMPO) }) )
 
/***
* Actualiza o Incluye Dicho el Arreglo cargado al archivo de cuyo origuen se extrajo
*/
FUNCTION GrabaField( aField, lNewRec, lCommi )
         LOCAL AntFile := ALIAS()
 
         SELECT( aField[1] )
         IF( PCOUNT() >= 2 .AND. lNewRec, ADDREC(), RECLOCK(1) )
         AEVAL( aField[2], { |Struct,X| FIELDPUT( X, Struct[5]) } )
         UNLOCK
         SELECT( AntFile )
RETURN ( AntFile )
 
/***
* Busca cualquieras de los 5 elementos de 2do elemento de la matriz madre
*/
FUNCTION BuscaField( aField, sCampo, nInd )
RETURN(IF( !EMPTY(LEN(aField)), aField[2,ASCAN(aField[2],{|X|X[1] == UPPER(sCampo)}),IF(EMPTY(nInd),5,nInd)], SPACE(LEN(&(sCampo))) ))



Comentarios sobre la versión: Versión 1 (1)

cheq571
24 de Junio del 2005
estrellaestrellaestrellaestrellaestrella
Ha realizado una valoración positiva de este curso.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s1113