Power Builder - Código personalizado en sle

 
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

Código personalizado en sle

Publicado por Ruby C. (231 intervenciones) el 10/07/2014 04:49:08
Hola., resulta que tengo un datawindow con el nombre de dw_1, en donde tengo almacenados los productos por categorías y códigos.

En un sle_buscar, he programado para que busque en otro datawindow que esta en la misma ventana, por categoría y filtre todos los productos por código de esa categoría, ejemplo (Z000001) es de zapatos, (G000001) es de gorros, (CH00001), es de chompaz, etc... hasta allí todo perfecto.

Ahora, como los códigos no comienzan igual entonces recupero el ultimo valor de ese dw_1 en un SLE_1 que esta en la ventana, para luego sumarle o incrementarle un numero mas a ese código y finalmente poder insertarlo al campo cod_producto, del dw_1. este campo es varchar (tipo texto).

No logro sumarle un numero mas a este sle_1, solo me muestra el ultimo registro, como se puede lograr esto?

Gracias por su ayuda, lo necesito con urgencia amigos, les agradeceré mucho por su ayuda.

Espero respuesta:

CODIGO


string val
long filas
val = dw_1.getitemstring(1, "cod_producto")
sle_codi.text = string(string(val))

string agre
agre= val
val=string(Filas+1)
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

Código personalizado en sle

Publicado por angel garcia (54 intervenciones) el 11/07/2014 00:36:33
bueno .. la mejor solucion es tener como código un campo autoincremental como clave primaria y un codigo identificador para cada producto, pero dado el problema la mejor solucion es convertir la parte numerica del código en un LONG , a ese sumarle el uno y luego volver a concatenar el código.

crea una funcion que tome como parametro de entrada un string y retorne un long

AQUI EL CODIGO DE LA FUNCION

FUNCION f_valor_num

string vretorna
long cant_letras, i
string parte_letra

cant_letras = len(cadena)

FOR i=1 to cant_letras
parte_letra = mid(cadena, i, 1)

IF isnumber( string(parte_letra) ) then
vretorna += parte_letra
END IF
NEXT
return double(vretorna)


val= parte_letra + STRING(f_valor_num(val) +1)

Saludis
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

Código personalizado en sle

Publicado por Ruby C. (231 intervenciones) el 11/07/2014 14:36:20
Hola Angel Garcia, gracias por tu respuesta, no entre ayer a internet por que estaba estudiando para el examen de ayer, felizmente todo bien, ahora volviendo al tema, me dices que tengo que crear una función que tome como parámetro de entrada un string y retorne un long?

dime ¿en donde se crea esa funcion?, y como lo aria?, recién estamos trabajando en este lenguaje de programación y a mi me toco esta parte tediosa

Debe ser por eso que me dice error en esta parte de tu código:

cant_letras = len(cadena)
val= parte_letra + STRING(f_valor_num(val) +1) ///esto es por que me falta la (funcion f_valor_num)


Me dice que identifique variable cadena
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