Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola estoy buscando como enumerar un campo para crear un id único.
pero me gustaría tenerlo de la sig forma:
Campo idUnico
ab5687 ab5687-1
ab5687 ab5687-2
ab5687 ab5687-3
cx0152 cx0152-1
cx0152 cx0152-2
cx0152 cx0152-3
como puedo agregar el consecutivo y que inicie de nuevo en 1?
Saludos
Pensando bien, hay un error.
La parte de ordenar la tabla es correcta. Para el resto deberías controlar la variable y solamente hacer la unión para el campo. Porque sino la variable siempre va a crecer y no va a volver a 1 nunca.
Quedaría algo así:
LET vVariable = 1;
FOR i = CantFilas - 1
IF Campo=Before(Campo) Then
vVariable = vVariable+1
ELSE
vVariable=1
END IF
LOAD
Campo&'-'&vVariable as idUnico;
Resident Tabla1
NEXT
Esa debería ser la forma correcta. Revisando lo que comenté, noté un problema de lógica.
Espero que te sirva y puedas solucionar el problema, sino, estamos para ayudar,
Saludos!
Hola!
Para crear id únicos, podes usar la función AutoNumber().
Una forma de hacer lo que pretendes es con un ciclo for. Tenés que ordenar los datos en primer lugar (aplicas "Order By" a la tabla), luego creas una variable que sea igual a 1. En una nueva tabla, tomando los datos de la primera (usando "Resident Tabla1") controlas el valor de "Campo" con el "Campo" anterior (con la función Before()), si son iguales le asignas el valor "Campo&'-'&vVariable+1". Esta comparación la haces dentro de un if.
if(Campo=Before(Campo), "Campo&'-'&vVariable+1", "Campo&'-'&vVariable")
Espero que te sirva,
Saludos!
Pensando bien, hay un error.
La parte de ordenar la tabla es correcta. Para el resto deberías controlar la variable y solamente hacer la unión para el campo. Porque sino la variable siempre va a crecer y no va a volver a 1 nunca.
Quedaría algo así:
LET vVariable = 1;
FOR i = CantFilas - 1
IF Campo=Before(Campo) Then
vVariable = vVariable+1
ELSE
vVariable=1
END IF
LOAD
Campo&'-'&vVariable as idUnico;
Resident Tabla1
NEXT
Esa debería ser la forma correcta. Revisando lo que comenté, noté un problema de lógica.
Espero que te sirva y puedas solucionar el problema, sino, estamos para ayudar,
Saludos!