Power Builder - asignar correlativo

 
Vista:
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

asignar correlativo

Publicado por Raul (231 intervenciones) el 21/11/2014 16:58:41
Buenas horas, como puedo resolver esta necesidad. En una ventana donde ingreso los productos, en el campo producto he puesto un datawindow para poder buscar el producto y al seleccionarlo automáticamente en el campo código_producto le pone el código que le corresponde, funciona perfectamente (ojo) estos productos son muchos y cada producto tiene un código de identificación ejemplo. Aceite = 12001212, Jabón = 13001210, Leche = 14001199 etc.

El segundo paso que deseo es ponerle en otro campo llamado "cod_presonalizado", el código del producto mas el código compuesto o personalizado ejemplo 0001, 0002, etc pero a cada tipo de código, por ejemplo:

Con el código agregado quedaría así:
Aceite = 120012120001
Aceite = 120012120002
Aceite = 120012120003
Aceite = 120012120004
Jabón = 130012100001
Jabón = 130012100002
Jabón = 130012100003
Jabón = 130012100004
Leche = 140011990001
Leche = 140011990002
Leche = 140011990003
Leche = 140011990004
Aceite = 120012120005


Así sucesivamente, si voy agregando que no altere el numero consecutivo si no que para cada producto siga la secuencia 0001,0002, 0003, 0004, 0005, 0006, 0007, 0008, etc.

como lograre esto,...
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

asignar correlativo

Publicado por angel garcia (54 intervenciones) el 21/11/2014 17:08:09
Mi sugerencia es que este cambio se lo realice en la base de datos mediante un proceso de actualización del campo en la tabla, agregando un campo que conste el código personalizado creado en la base de datos e invocado desde el powerbuilder

Saludos.
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

asignar correlativo

Publicado por eduardo.v (23 intervenciones) el 21/11/2014 18:03:19
Raul

Me imagino que al agregar esta nueva columna ("cod_presonalizado") piensas cambiar el Primary Key (en caso tu PK sea código de producto) pues se repetiría el código de producto en varios "productos personalizados".

Una vez superada esta restricción, en la función o procedimiento que genere el "codigo personalizado" para cada nuevo registro debes separar los 4 caracteres que funcionan como identificador (o contador) por cada código de producto y generar un nuevo código.
Por ejemplo:

select convert(integer,max(substring(cod_presonalizado,8,4)))+1
into @li_contador
from producto
where codigo_producto=@codigo_producto

luego creas el nuevo código:

set ls_nuevo_codigo=@codigo_producto+right('0000'+convert(varchar(4),@li_contador),4)

NOTA:
-Revisa bien la sintaxis, la he escrito a mano alzada en este post.
-El código asume que estas trabajando con SQL Server.

Saludos
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

asignar correlativo

Publicado por Raul (231 intervenciones) el 22/11/2014 01:09:01
Gracias chicos lo probare, comento luego
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

asignar correlativo

Publicado por Raul (231 intervenciones) el 24/11/2014 05:50:33
Me gustaría que realice algo como esto que hace excel:

=AP2&"000"&CONTAR.SI(AP$2:AP2;AP2)

lo que hace esto es busca los codigos xxxxxxxx y les incrementa el correlativo,
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

...

Publicado por Leopoldo Taylhardat (710 intervenciones) el 24/11/2014 15:39:28
Saludos...

Veo que quieres definir codigos de barra para los productos...

Mi sugerencia (y ya lo he hecho muchas veces) es crear un trigger de antes de insertar (before insert)
para la tabla que te haga el proceso SIN QUE INTERVENGA TU APLICACIÓN...
No se con cual base de datos trabajas pero te voy a dar los pasos ...
para agregar el nuevo registro vas a enviar el codigo agregado con valor nulo...
el trigger lo construyes asi...
vas a buscar los primeros dígitos para el tipo de producto que estes insertando...
como ejemplo en el caso de aceite debes ubicar '12001212'
luego ubicas el maximo valor que corresponda a esa busqueda..
y tomas los cuatro digitos que te dan la secuencia... 0001, 0002, 0003 etc....
le sumas 1 y asignas ese nuevo valor con la concatenación del valor de tipo de producto + la cadena de ceros para completar los cuatro digitos '0000' + la cadena del valor calculado para el producto (1,2,3,4, etc.).
Nota... asumo que tienes una tabla de tipo de producto con el codigo mayor asociado al tipo de producto...
ejemplo..
TIPO_PRODUCTO CODIGO_MAYOR
ACEITE 12001212
LECHE 14001199
....ETC...

espero que te sirva...
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