Power Builder - no me reconoce la funcion rigth

 
Vista:

no me reconoce la funcion rigth

Publicado por johan (21 intervenciones) el 23/09/2002 23:02:27
hola, mi estimado milson no me reconoce la funcion rigth a la hora que compilo, cual crees que sea el error.
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

olvidenlo, jaja

Publicado por johan (21 intervenciones) el 23/09/2002 23:05:02
olviden la pregunta
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:no me reconoce la funcion rigth

Publicado por Milson Cardona (613 intervenciones) el 23/09/2002 23:07:59
Eso me temí, puesto que descubrí el error después de que te envié el comentario..... me disculpas el despiste... puesto que quise escribir
RIGHT (derecha)

Un saludo especial desde COLOMBIA
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

sigue igual

Publicado por johan (21 intervenciones) el 24/09/2002 00:36:02
sigue igual...
que hago ahora segun me comentaron tengo que inicializar el nreg o algo asi para que se grabe el ultimo codigo que ingrese y verifique si ya existe o no,si es asi aumente en uno.pero como hago esto ya que los codigos siguen con los mismo.
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

exactamente que es lo que no funciona

Publicado por Milson Cardona (613 intervenciones) el 24/09/2002 15:18:53
Explicame que es lo que no funciona, porque en el código (script) que te envié en comentarios anteriores, te mostre la forma en que inicializas la variable NREG(inicializas la vble cuando le asignas un valor)... y el resto del ejemplo lo que hace es aumentar la parte numérica del nombre y luego armar un nuevo nombre consecutivo al anterior...........además te comento que yo mismo probé el ejemplo y me funcionaba perfectamente.......

te aconsejo que le hagas un seguimiento PASO A PASO (DEBUG), para que detectes en realidad en que parte de la aplicación esta el error...

un saludo especial desde COLOMBIA
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

te explico

Publicado por johan (21 intervenciones) el 25/09/2002 23:05:53
saludos, bueno me explico, lo que pasa es que cuando lo pruebo sale lo mismo no cambien en nada el codigo que me remitiste, lo que pasa es que la numeracion sigue igual escribo practicante y sale pra001 y si escribo practicas sale pra001 que es lo mismo no cambia , no aumenta en uno como deberia, ahora me comentaron que ese codigo era solo para una aplicacion y que cuando se iniciaba denuevo volvia a uno, lo que quiero yo ,es que se guarde el codigo y si vuelvo a ingresar un nuevo codigo parecido o igual lo,aumente en uno.espero que me entiendas
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

primera posible solución

Publicado por Milson Cardona (613 intervenciones) el 26/09/2002 14:55:06
Bueno, me supongo que el código lo estas almacenando en un campo de una tabla........y que tienes una ventana de captura, donde obtienes el nuevo código que deseas guardar con el último consecutivo, aumentado en 1.......Se me ocurren 2 formas de hacerlo....

1- CON SQL EMBEBIDO.
- pides u obtienes una nueva entrada sopongamos que es "PRACTICA" y la almacenas en una vble STRING
ls_nombre = UPPER(sle_1.text) //la instrucción depende de como capturas la nueva entrada, aquí supongo que es un SINGLE LINE EDIT, y además la paso a mayusculas, claro que esto lo puedes controlar desde el mismo SLE.
- en otra vble STRING capturas los 3 primeros caracteres de "practica"
ls_cadena = LEFT(ls_nombre,3)
- con esta sentencia SQL buscas en la tabla y encuentras el último código almacenado
SELECT MAX(SUBSTR(tabla.campo_codigo,4,3))
INTO :ls_codigo
FROM tabla
WHERE SUBSTR(tabla.campo_codigo,1,3) = :ls_cadena;

-verificas si el campo ls_codigo es NULL le asignas "000".
IF ISNULL(ls_codigo) THEN
ls_codigo = "000"
END IF

- a la vble ls_codigo le aplicas el script que te envié en comentarios pasados para aumentar la parte numérica de un STRING.
-luego unes las variables ls_cadena y ls_código
- y ya tienes el nuevo nombre armado, si es el primero que vas almacenar quedará 'PRA001', sino quedará con el siguiente consecutivo.

lo que no entiendas lo preguntas

UN SALUDO ESPECIAL DESDE COLOMBIA
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

segunda posible solución

Publicado por Milson Cardona (613 intervenciones) el 26/09/2002 15:14:05
2- RECUPERANDO LOS CÓDIGO EN UN DATAWINDOW.

-creas un nuevo datawindow, con un argumento de recuperación tipo string y la siguiente sentencia SQL
SELECT SUBSTR(tabla.campo_codigo,4,3) codigos
FROM tabla
WHERE SUBSTR(tabla.campo_codigo,1,3) = :ls_argumento_string;
ORDER BY codigos

- pides u obtienes una nueva entrada sopongamos que es "PRACTICA" y la almacenas en una vble STRING
ls_nombre = UPPER(sle_1.text) //la instrucción depende de como capturas la nueva entrada, aquí supongo que es un SINGLE LINE EDIT, y además la paso a mayusculas, claro que esto lo puedes controlar desde el mismo SLE.
- en otra vble STRING capturas los 3 primeros caracteres de "practica"
ls_cadena = LEFT(ls_nombre,3)
- haces el retrieve al datawindow que creaste y le envias la variable ls_cadena
DW_1.RETRIEVE(ls_cadena)
- verificas que haya recuperado datos, y recuperas el último, sino asignas '000'
IF DW_1.rowcount() > 0 THEN
ls_codigo = DW_1.getitemstring(DW_1.rowcount(),'codigos')
ELSE
ls_codigo = '000'
END IF

- a la vble ls_codigo le aplicas el script que te envié en comentarios pasados para aumentar la parte numérica de un STRING.
- luego unes las variables ls_cadena y ls_código
- y ya tienes el nuevo nombre armado, si es el primero que vas almacenar quedará 'PRA001', sino quedará con el siguiente consecutivo.

UN SALUDO ESPECIAL DESDE COLOMBIA
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