FoxPro/Visual FoxPro - Separar Apellidos y Nombres

   
Vista:

Separar Apellidos y Nombres

Publicado por Jesus (85 intervenciones) el 24/06/2014 23:36:23
Estimados amigos
Buenas Tardes Tengo la necesidad de separar los datos de mis alumnos en 3 campos Nombres, Ap Paterno y Ap Materno de mi campos Datos ejemplo "ABAD MIJA DE BARCENA MARLENI AURORA"

CAMPOS:
Datos: ABAD MIJA DE BARCENA MARLENI AURORA

COMO QUISIERA Q QUEDE:

Nombres : MARLENI AURORA
Ap Paterno: ABAD
Ap Materno: MIJA DE BARCENA

de antemano mil Gracias por su tiempo y paciencia

Atentamente

Jesus
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
Imágen de perfil de Mauricio

Separar Apellidos y Nombres

Publicado por Mauricio (1368 intervenciones) el 25/06/2014 02:41:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
*prueba esta rutina bajo vfp9:
*--- separar nombres y apellidos
CLEAR
lcnom='' && Nombre
lccom='' && Apellidos Compuestos 
lc = "DE LA CRUZ DE LOS SANTOS PEREZ LUZ EVA"
*lc = "DEL SOLAR VILLANEVA POL MANUEL"
*lc = "LA TORRE VILLANEVA VICTOR MANUEL"
FOR ln = 1 TO ALINES(la, lc,1," ")
  IF LEN(ALLTRIM(la(ln))) <= IIF(GetWordCount(ALLTRIM(lc))=ln OR ;
    GetWordCount(ALLTRIM(lc))-1=ln,1,IIF(LEN(ALLTRIM(la(ln)))=2,2,3))
    IF LEN(ALLTRIM(la(ln+IIF(ln>2,-1,0))))>=4
      lcnom=''
    ENDIF
    lcnom=lcnom+' '+la(ln)
    lccom=lcnom
  ELSE
    lcnom= lccom+' '+la(ln)
    lccom=''
    ? lcnom
  ENDIF
ENDFOR
*

Saludos y comenta como te fue....
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

Separar Apellidos y Nombres

Publicado por Jesus (85 intervenciones) el 25/06/2014 20:07:07
Mauricio Fantastica Solucion pero dime como hago o donde modifico para q solo me jale los datos en 3 campos o variables y no 4 como esta ahora que sale: DE LA CRUZ
DE LOS SANTOS PEREZ
LUZ
EVA

Lo que necesito es que salga en 3 camppos o variables : DE LA CRUZ
DE LOS SANTOS PEREZ
LUZ EVA
Mil Gracias por tu tiempo y apoyo

Atentamente
Jesus
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

Separar Apellidos y Nombres

Publicado por Fidel José (558 intervenciones) el 26/06/2014 02:04:00
No veo una forma sistemática de lograr lo que quieres. Si puedes crear un ayudante para modificar registro por registro. Es la única forma de que te quede algo sensato.

Propuesta
4 textbox
txtNombreTodo
txtApellidopaterno
txtApellidomaterno
txtNombres

1 CommandButton para accionar (se puede evitar automatizando la seleccion de la tabla)
1 optiongroup con 3 option (Paterno, materno , Nombres)
1 Listbox, donde se seleccionarán las partes
1 CommandButton para guardar los cambios.

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
* Se debe ligar la tabla al txtNombreTodo para que ahí aparezca com está ahora.
*<Codigo del CommandButton>
ADDPROPERTY(thisform,"galines[1]","")
lnlines=ALINES(thisform.galines,ALLTRIM(this.Parent.txtNombretodo.Value),1,CHR(32))
WITH this.Parent
	.optiongroup1.Value=1
	.txtApellidoPaterno.value=""
	.txtApellidoMaterno.value=""
	.txtNombres.value=""
ENDWITH
WITH this.Parent.list1
	.clear
	.RowSourceType=5
	.rowSource="thisform.galines"
	.requery
ENDWITH
 
*<Codigo del ListBox. Evento Click o DblClick, según te quede comodo>
* Decide si es una cosa o la otra de acuerdo a la posición del OptionGRoup1
lcValor=this.Value
lnItem=this.listitemid
lnPos=this.Parent.optiongroup1.Value
IF lnPos>0
	DO case
		CASE lnPos=1
			obj=this.Parent.txtApellidoPaterno
		CASE lnPos=2
			obj=this.Parent.txtApellidoMaterno
		CASE lnPos=3
			obj=this.Parent.txtNombres
	endcase
 
	obj.Value=ALLTRIM(obj.value)+IIF(EMPTY(obj.Value),""," ")+lcValor
	Thisform.galines[lnItem]="\"+lcValor
	this.Requery
ENDIF
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

Separar Apellidos y Nombres

Publicado por Jesus (85 intervenciones) el 26/06/2014 04:27:22
Gracias Mauricio voy a probarlo y luego te aviso
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