Sistema de foxpro

hola amigo me puede ayudar con un botton crear un nuevo registro el cual me genere el código automático por la inicial del nombre osea que primero tenga la inicial del nombre y luego un numero en secuencial con respecto a la letra

Respuesta
1

Si me indicas el nombre y estructura de la tabla desde la cual quieres generar el código te podría ayudar

la tabla se llama clientes

id_cliente carácter 5

apellido carácter 30

nombre carácter 40

dirección carácter 60

telf_cliente carácter 25

fech_ing fecha

num_reg carácter 10

cedcliente numérico 17

giro caraceter 40

lim_cred flotante 8 - 2

clase carácter 1

anticipo flotante 8-2

cod_vend numérico 3

Viendo la estructura de tu tabla veo que es un poco complejo generar el código, así que te recomiendo agregar un campo numérico(10) que se llame aux_codigo, entonces asumiendo que tu incluyes ese campo en la tabla clientes pues en el evento valid del text nombre quedaría mas o menos así:

cletra = upper(substr(thisform.txtnombre.value,1,1))

select max(aux_codigo) as ncodigo from clientes where upper(substr(nombre,1,1)) == cletra into cursor cmaxcodigo

select cmaxcodigo

nultimocodigo=iif(isnull(ncodigo),1,ncodigo+1)

thisform.txtcodigo.value = cletra+alltrim(str(nultimocodigo))

** Nultimocodigo lo deberias almacenar en el campo aux_codigo que te indique que crearas

Y basicamente asi seria el procedimiento, espero te sea de ayuda y cualquier novedad me comentas

buenos días lo hice así como me dijiste puse este código

cletra = upper(substr(thisform.txtnombre.value,1,1))
select max(aux_codigo) as ncodigo from clientes where upper(substr(nombre,1,1)) == cletra into cursor cmaxcodigo
select cmaxcodigo
nultimocodigo=iif(isnull(ncodigo),1,ncodigo+1)
thisform.txtcodigo.value = cletra+alltrim(str(nultimocodigo))
** nultimocodigo

en el evento valid de textnombre

y no paso nada quisa lo hice mal a ver si me puede ayudar

agradezco mucho tu ayuda

Intenta con este código

cletra = upper(substr(thisform.txtnombre.value,1,1))
select max(aux_codigo) as ncodigo from clientes where upper(substr(nombre,1,1)) == cletra into cursor cmaxcodigo
select cmaxcodigo

if reccount() = 0

nultimocodigo = 1

else
nultimocodigo=iif(isnull(ncodigo),1,ncodigo+1)

endif
thisform.txtcodigo.value = cletra+alltrim(str(nultimocodigo))

Y verifica que los nombres de los text esten bien escritos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas