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