Power Builder - guardar e imprimir un registro a la misma vez

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Javier (75 intervenciones) el 28/04/2014 20:47:26
Hola amigos, tengo algunos meses investigando que código utilizar para que mi programa de captura pueda imprimir el registro que acabo de insertar, o lo que es lo mismo: imprima el ultimo registro de mi DW (ya que tengo un campo autoincrement).
He encontrado algunas respuestas pero no están terminadas y los usuarios que hicieron la pregunta ya no continuaron preguntando y no confirmaron si resolvieron su problema.

Los campos de mi Dw son: reg (autoincrement), num_prod, varchar(10), nombre, varchar(30), fecha, (date)....
tengo un botón que guarda los cambios, y siempre tengo que ir a otra ventana de búsqueda por num_prod e imprimir ese producto que acabo de insertar. pero quisiera un código para GUARDAR E IMPRIMIR A LA MISMA VEZ ese producto.
utilizo PB 12.5 con su respectivo SQL ANYWHERE.

Saludos amigos.
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
Imágen de perfil de Adolfo
Val: 250
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Adolfo (260 intervenciones) el 29/04/2014 00:12:56
Esto funciona para SQL Anywhere en otros servidores de bases de datos es ligeramente distinto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
////// El codigo empieza a qui, este codigo recupera el ultimo ID insertado en cualquier tabla de la BD de SQL Anywhere
String ls_query
Long ll_id
 
ls_query = 'SELECT @@IDENTITY'
DECLARE cur_id DYNAMIC CURSOR FOR SQLSA;
PREPARE SQLSA FROM :ls_query;
OPEN cur_id;
 
if sqlca.sqlcode = -1 then
	MessageBox("Error","No se pudo ejecutar la query busca ID de orden de embarque recien insertado~n~r"+sqlca.sqlerrtext)
	Return
end if
FETCH cur_id INTO :ll_id;
if sqlca.sqlcode = -1 then
	MessageBox("Error","No se pudo ejecutar la query de lectura del último ID insertado~n~r"+sqlca.sqlerrtext)
	Return
end if
CLOSE cur_id;
 
//Listo en la variablesll_id esta el numero del último ID almacenado, ya lo que sigue es tu codigo para que mandes llamar la funcion para imprimir
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: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Javier (75 intervenciones) el 29/04/2014 23:56:03
con tu codigo no me mostro error, muchas gracias, ahora el del error es mi codigo ya que no me deja buscar un el registro por medio del campo autoincrement, o posiblemente porque es del tipo numerico.


para imprimir se abre otra ventana con un DW freeform y normalmente lo llamo por el numero de producto, pero no se como llamarlo por el numero de reg (ID autoincrement), ya que cuando pongo despues de tu codigo lo siguiente:

ll_id="string(reg)='"+sle_1.text+"'"
DW_1.print()

Ahi me sale error en la linea de arriba al guardar: Error incopatible types in assignment: LONG, STRING,
a lo mejor es algo sencillo, disculpame es que no tengo mucho en power builder.

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

guardar e imprimir un registro a la misma vez

Publicado por Leopoldo Taylhardat (710 intervenciones) el 30/04/2014 00:07:06
Saludos...

si defines una variable long no puedes usar string
ll_id=long(sle_1.text)

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
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Javier (75 intervenciones) el 30/04/2014 09:20:46
ok ya no me muestra ningun error, pero no carga ningun numero en mi sle_1. pense que de esa manera se iba a visualizar el ultimo registro de mi DW en el Sle, ya que me comentaste que la variable ll_id lo contenia.
por favor perdona mi ignorancia, te doy mas detalles:

tengo una ventana de captura, y luego un boton GUARDAR, ese boton me lleva a otra ventana donde tengo un DW freform, un sle_1 y un boton buscar, en es sle_1 colocaba el numero de mi producto y lo buscaba con el boton, pero ahora como debo hacer para que automaticamente al presionar el boton guardar se abra la segunda ventana, se ponga el ultimo registro (por medio del campo autoincrement) en el sle_1?

Tu codigo para sacar el ultimo registro lo puse en el evento open de la segunda ventana, y ahi mismo mas abajo estoy poniendo ll_id=long(sle_1.text), y es como no hace nada.
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
Imágen de perfil de Adolfo
Val: 250
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Adolfo (260 intervenciones) el 30/04/2014 15:34:54
mmm creo que ya te entendí pero yo no lo haría de la forma que lo estas haciendo tu, yo haría lo siguiente:

BOTON GUARDAR:
Realizo la inserción de datos en la tabla
Inmediatemanete despues de la inserción de datos corro el codigo para obtener el ultimo ID insertado.
Luego abro la ventana que va ha imprimir (suponiendo que se llama w_imprime) de la siguiente forma:
OpenWithParm(w_imprime,String(ll_id))
Y luego en evento Open de la ventana w_imprime pongo:

dw_reporte.settransobject() //Concto mi DW a mi canal de datos
sle_1.text = Message.StringParm //Recuper el parametro que me enviaron
dw_reporte.retrieve(sle_1.text) //luego recupero la información
cb_print.event clicked() //hago click sobre el boton imprimir

y yo tendría un boton llamado cb_print tendria el siguiente codigo:
dw_reporte.print(true,true)

Ahora bien la dw_reporte debera tener un parametro para recuperación de datos en función al ID que estamos recuperando no al producto.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Javier (75 intervenciones) el 30/04/2014 21:57:16
ya casiiiiiiiiii.. .. hice los pasos como me dijiste, solo el ultimo no, ya que tampoco se como hacerlo: (Ahora bien la dw_reporte debera tener un parametro para recuperación de datos en función al ID que estamos recuperando no al producto.).

aparte: cuando intenta imprimir, sale el manejador de impresion y me dice, imprimir de la 1-174, osea que quiere imprimir todos los registros y no nadamas el ultimo.
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: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

guardar e imprimir un registro a la misma vez

Publicado por Javier (75 intervenciones) el 07/05/2014 02:42:51
Muchas Gracias Adolfo por tu apoyo!! despues de tanto estar intentando ya pude hacerlo... mil gracias!!
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