Como hacer un autonumérico

Buenas, tengo una pequeña duda, espero me puedas ayudar:
La duda es la siguiente, tengo un numero que por defecto me sale nulo, y quiero cambiarlo para que sea un autonumérico, lo que hago es el evento ue_postopen lo inicializo a nulo, porque no se como hacer para que sea un autoincrementable, y si ya existe otro que simplemente le sume uno más, no se si me explico bien, no se como debo hacerlo.
Un saludo y muchas gracias.

1 respuesta

Respuesta
1
Para que un numero o código sea autoincrementable hay dos formas:
1. Por medio de la Base de Datos: cuando creas una tablas y defines un campo de tipo entero (int o integer) por defecto se habilitan otras opciones para este tipo de campo donde se puede especificar un autoincremento y de cuanto en cuanto se autoincrementara, dependiendo de la base de datos.
2. Por medio de una función Global en PowerBuilder donde enviaras un argumento a la función y este te devolverá un numero:
Por ejemplo: supongamos que queremos que al ingresar un nuevo cliente su código se genere automáticamente (es decir si un cliente anterior tuvo el código 1, el nuevo cliente debe tener el código 2 y así sucesivamente).
//Definimos una funcion global y como nombre ponemos: f_gencor
//La función devolverá una variable de tipo Long, así que tienes que poner en [Return Type]=Long
//Define una variable como parametro para la funcion de tipo Long asi [Argument Type]=Long y [Argument Name]=n
//Este es cuerpo de la funcion global
if isnull(n) or n=0 then
 n=1
else
 n=n+1
end if
return n
//Salimos de la función global y nos posicionamos en un botón Nuevo de una ventana, para ingresar un nuevo registro y generar un nuevo código.
//Primero seleccionamos el código del cliente almacenado en la tabla cliente de nuestra Base de Datos.
//Este codigo lo ponemos en el evento clicked() del Boton Nuevo
//definimo una variable
long ll_cliente
//seleccinamos el maximo codigo de la tabla cliente, si no existe ningun codigo (la tabla esta vacia) entonces la funcion devolvera el codigo =1
select max(codigo_cliente) into :ll_cliente from cliente
Using sqlca;
//Llamamos a la función global anteriormente definido y le pasamos la variable ll_cliente, el cual nos devolverá un numero que se asignara a la misma variable (chancara el dato anterior que tenia dicha variable)
ll_cliente=f_gennum(ll_cliente)
//Al final el código generado y almacenado en ll_cliente tenemos que mostrarlo en un campo del datawindow de nuestra ventana.
dw_1.setitem(dw_1.getrow(),"codigo_cliente",ll_cliente)
*La generacion de numero lo hago por una funcion global porque en el futuro necesitaria utilizarla para otras ventas.
Suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas