No se si me puedas ayudar de como se hace una clase en power builder 9 Cual de las 2 opciones que te da power builder es mejor Custom class o standard class
1 respuesta
Respuesta de william4425 Mendez
1
1
william4425 Mendez, 6 años con powerbuilder, hast la versión 12 en clásico
usa el custom class..... En el t creas las funciones que necesites... Para usar esas funciones haces lo sgt. Supongamos q tienes tu custom class: uo_persona con una función uo_grabar, para ejecutar esa función es así.. uo_persona uio_per uio_per = create uo_persona uio_per.uo_grabar()
Gracias por tu ayuda experto, ahora no se si puedas ayudarme con algo que me encargaron en el trabajo, hacer una clase que guardara una colección de estructuras, me explico, hice una estructura para que en cada campo se guardara una información de un txt, cada segmento esta separado por pipes(|) y cuando termina un segmento se guarda en su respectivo campo ahora como mencione me pidieron que la estructura con la información se guarde en tablas de sql por medio de una clase Espero que me haya explicado y gracias Ejemplo de la info del txt 500|1|3135|9001885|430||
supongamos una estructura s_struct_datos con los sgt campos:s_dato1,s_dato2,l_dato3,s_dato4,s_dato5. (s:string ; l:long) s_struct_datos s_datos string ls_cadena long ll_d3 int li_pos ls_cadena = sle_1.text /************ PRIMER CADENA ************/ li_pos = pos(ls_cadena,'|') s_datos.s_dato1 = left(ls_cadena,li_pos - 1) ls_cadena = mid(ls_cadena , li_pos + 1 , len(ls_cadena)) /************* SEGUNDA CADENA ***********/ li_pos = pos(ls_cadena,'|') s_datos.s_dato2 = left(ls_cadena,li_pos - 1) ls_cadena = mid(ls_cadena , li_pos + 1 , len(ls_cadena)) /************ TERCERA CADENA ***********/ li_pos = pos(ls_cadena,'|') s_datos.l_dato3 = long(left(ls_cadena,li_pos - 1)) ls_cadena = mid(ls_cadena , li_pos + 1 , len(ls_cadena)) /************ CUARTA CADENA ***********/ li_pos = pos(ls_cadena,'|') s_datos.s_dato4 = left(ls_cadena,li_pos - 1) ls_cadena = mid(ls_cadena , li_pos + 1 , len(ls_cadena)) /************ QUINTA CADENA ***********/ li_pos = pos(ls_cadena,'|') s_datos.s_dato5 = left(ls_cadena,li_pos - 1) ls_cadena = mid(ls_cadena , li_pos + 1 , len(ls_cadena)) ... con eso capturas los datos que quieres... podrías hacerlo realizando un for... lógicamente tendrías que capturar el tipo de dato antes de capturar el dato.
Hola experto, muy agradecido por la ayuda, me sirvió de mucho, solo una aclaración, la información del txt no es solo una linea así como te lo había puesto, sino que tienen más lineas y cada linea tiene más segmentos, fue error mio solo haber puesto una sola linea ejemplo 500|1|3135|9001885|430|| 501|3135|9001885|430|1|T7|470||EXTR920901TS4|GOTF510925HTSNRR04|13.08250|0|0|0|0|0|10964.000|7|1|1|9|LAN 502|9001885|STE970911JX4||SUPERFICIETERRESTRE, S.A. DE CUAJIMALPA DE MORELOS| 516|9001885|CAPSANAUGUSTIN|M0141878| 503|9001885|BL-CLSAI-002318192-6|M| Y lo que se quiere hacer es que la primera linea (500) se guarde en la tabla por ejemplo sdi_500 la segunda linea (501) se guarde en la tabla sdi_501 y así las demás lineas en sus respectivas tablas y cada segmento en sus respectivas columnas espero y me haya explicado de antemano gracias
Haber si entendí... 500|1|3135|9001885|430|| 500 es la tabla y... 1,3135,9001885... son los valores que tomaran las columnas de esa tabla ¿? ... que significa que haya 2 pipes(|)¿?... porque algunas filas terminan con una (|), otras con 2 y otras no tienen nada al final ¿?
Los primeros números con los valores que va a tomar para saber en que tabla se van a ir a guardar, pero también se tiene que guardar en una columna, los demás valores como dices son los valores que tomaran las columnas, los pipes es por que el programa que tengo lee carácter por carácter y al momento de leer un pipe se termina un segmento, y quiero que se guarde el primer valor en la primera columna, y algunas terminan con un pipe por que si tiene todos los valores, cuando terminan con 2 es por que no hay valor al final y cuando no tienen es por error mio, lo copie mal, todos tienen que terminar en pipe, y luego cuando el programa lea un enter, es decir pasa al 501 por ejemplo y esa linea que se guarde en otra tabla ejemplo sdi_501. Espero y me haya explicado, y muchas gracias por tu interés
Dosculpame.. pero no sabría hacer como capturar las lineas sgts... derrep si lo haces con un listbox... ahí puedes capturar las filas... suerte