Power Builder - Mostrar el ultimo

 
Vista:

Mostrar el ultimo

Publicado por Karla (33 intervenciones) el 15/06/2018 19:29:33
Buenos días, tengo un inconveniente

En un dw_1 estoy guardando documentos, en el 1er campo llamado "tipo_documento" he puesto un listado de documentos que se registraran y en el campo "nro_docum" voy ingresando manualmente el numero de documento que sigue correlativamente.

Ahora deseo poner en un computte un código que muestre el último número ingresado del tipo de documento que selecciono, es decir deseo que se actualice el número automáticamente del último pero del documento que selecciono en el listado.

he puesto esto en el comppute_1 pero solo muestra el ultimo antes de ingresar uno nuevo, es decir al dar clic en Nuevo, inserta un nuevo registro, pero cuando cambio el tipo de documento se borra y no muestra nada.

Max(nro_docum)

Por favor ayuda
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

Mostrar el ultimo

Publicado por Karla (33 intervenciones) el 16/06/2018 20:02:14
Foro esto estoy intentando pero no aumenta el numero consecutivo de cada documento, no se en donde ponerlo o que hay que agregarle

1
2
3
4
5
6
7
8
9
10
11
12
String ls_codigo, ls_mask
 Long ll_codigo, ll_i, ll_total
 ls_mask = '000'
 SELECT max(nro_docum) INTO :ls_codigo FROM datos USING SQLCA;
	ll_codigo = long(ls_codigo)
	IF ll_codigo < 1 or IsNull(ll_codigo) THEN
		ll_codigo = 1
		ELSE
			ll_codigo = ll_codigo + 1
		END IF
		ls_codigo = Right(ls_mask + string(ll_codigo), 3)
		dw_registro.setitem(1,'nro_docum',ls_codigo)
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: 21
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Mostrar el ultimo

Publicado por Hugo QN (33 intervenciones) el 25/06/2018 00:07:57
¿Quieres manejar un correlativo por cada tipo documento?
¿A demas quieres que sea autogenerado?
entonces una vez que insertas el registro en el evento itemchanged del dw_1 debes capturar el codigo de tipo documento y con eso hacer el select a la BD.

ls_tipodoc = data

SELECT max(nro_docum) INTO :ls_codigo FROM datos WHERE id_tipodoc = :ls_tipodoc USING SQLCA;

no hagas lo siguiente.
ls_codigo = Right(ls_mask + string(ll_codigo), 3)

si ya estás convertiendo a numerico has lo siguinete
ls_codigo = String(ll_codigo), '000')
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

Mostrar el ultimo

Publicado por Karka (33 intervenciones) el 25/06/2018 01:50:12
Hola Hugo, no entiendo esto
ls_tipodoc = data
Como lo hago?
Disculpa mi ignorancia
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

Mostrar el ultimo

Publicado por Karla (33 intervenciones) el 25/06/2018 23:37:09
Hola Hugo, estoy tratando con mi código pero no me genera, pone automáticamente 01 y así cambie no auto genera el correlativo, siempre pone para todo 01, así quedo el código:

1
2
3
4
5
6
7
8
9
10
11
12
String ls_codigo, ls_mask, ls_tipodoc
Long ll_codigo, ll_i, ll_total
ls_mask = '00'
SELECT max(nro_docum) INTO :ls_codigo FROM datos WHERE tipo_documento = :ls_tipodoc USING SQLCA;
	ll_codigo = long(string(ls_codigo))
	IF ll_codigo < 1 or IsNull(ll_codigo) THEN
		ll_codigo = 1
		ELSE
			ll_codigo = ll_codigo + 1
		END IF
		ls_codigo = String(ll_codigo, '00')
		dw_registro.setitem(1,'nro_docum',ls_codigo)
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