Power Builder - Urgente

   
Vista:

Urgente

Publicado por Humbert (8 intervenciones) el 19/04/2008 23:13:17
HOla amigos foristas espero que me puedan ayudar, el problema es el siguiente:

Tengo una ventana(windows) con un control DataWindows y un commandBotton(boton), mi DataWindows esta conectado a una tabla de mi base de datosy lo que quiero es cuando de click en el boton, el campo donde sale el codigo de la tabla(en mi datawindows) se autogenere ejemplo:

si en mi tabla el campo codigo es en el registro (B00015) y cuando de click en el boton me aparezca (B00016)

espero me puedan ayudar gracias saludos
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

RE:Urgente

Publicado por Marce (119 intervenciones) el 20/04/2008 12:22:07
si entendi bien
el codigo del boton tendrias que hacer un insert
ll_new_row=dw.insert(0)

para el nuevo codigo podrias hacer un campo calculado que tome el maximo de la parte numerica del codigo
algo asi max(number(campo_codigo))
o
max(number(campo_codigo)) +1
ahi te puede quedar el problema de los lugares en cero, lo podrias armar preguntando si es menor que 1000 entonces tantos ceros, etc etc.
Es cuestion de anidar if y concatenar strings hasta que te quede como queres.
El campo calculado que tiene el proximo numero de codigo lo envias al campo en cuestion luego del insert

en resumen el codigo del boton va a ser asi:
ll_new_row=dw.insert(0)
dw.object.codigo[ll_new_row]=dw.getitemstring(ll_new_row, campocalculado)

Espero que se entienda, por ahi hay otras maneras... yo particularmente suelo hacer todo lo que puedo en campos calculados.
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

RE:Urgente

Publicado por LBarzi (134 intervenciones) el 21/04/2008 03:45:27
Hola Humbert, yo utilizo la sgte forma:

String ls_Codigo
Long ll_Maximo

Select Max(codigo_personal)
Into :ll_Maximo
From Sis_Personal;

If ll_Maximo <= 0 or IsNull(ll_Maximo) Then
ll_Maximo = 1
Else
ll_Maximo = ll_Maximo + 1
End If

ls_Codigo = String(ll_Maximo, "000")

****************************************************

En esta parte

ls_Codigo = String(ll_Maximo, "000")

uso tres ceros porque?

porque en mi tabla el codigo_personal es de tipo char (4) y se guardan los codigo de la sgte manera:

0001
0002
etc..

*****************************************************

Espero te sea de utilidad

Saludos..

Lima - Perú
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

RE:Urgente

Publicado por Humbert (8 intervenciones) el 22/04/2008 02:46:24
Hola y Gracias a ambos (Marce, LBarzi)pero, Tengo tablas Alumno, Curso ,...y masy es de Char(10) Almaceno en el campo codigo lo siguiente:

ALU0000001
ALU0000002
ALU0000003
.
.
.
.
. Hasta mas.....

y lo que quiero es hacer un Campo que se Autogenere.

Haber si esta vez me entendieron mejor y mepueden ayudar, gracias otra vez y espero sus respuestas de toda la comunidada que integra este forogracias.
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

RE:Urgente

Publicado por lorihen (19 intervenciones) el 23/04/2008 04:30:56
hola este es un ejemplo ke comente hace tiempo
espero ke te sirva saludos

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=73&texto=Power+Builder&n1=450133&n2=2&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
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

RE:Urgente

Publicado por Humbert (8 intervenciones) el 24/04/2008 06:14:52
hola lorihen agradezco tu ayuda pero no se uede ver esa ruta que me das
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

RE:Urgente

Publicado por lorihen (19 intervenciones) el 24/04/2008 21:32:28
un ejemplo que tu base de datos tengas esto
tabla empleados

id_emp nombre
E001 xxx
E002 xxx

string nom,cod
integer n,m
cod=dw_1.getitemstring(dw_1.rowcount(),"id_emp")//el id de tu tabla
m=integer(right(cod,3))+1 //el numero 3 se supone que ira 3 ceros
nom="E"+string(m,"000")
n=dw_1.insertrow(0)
dw_1.scrolltorow(n)
dw_1.setitem(n,1,string(nom))
dw_1.setcolumn(2)
dw_1.setfocus()

saludos de Lima -Peru
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

RE:Urgente

Publicado por Humbert (1 intervención) el 25/04/2008 16:34:40
Muchas gracias a todos los que dieron sus ideas gracias
atte
Humbert
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