7
Autor: Juarez Campos Jean Piere RomeoSoft – http://romeosoft.webuda.com/ DOCUMENTACIÓN DE POWER BUILDER 11 CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL. //realizamos una consulta dinamica DECLARE cargar DYNAMIC CURSOR FOR SQLSA; PREPARE SQLSA FROM " SELECT count(*) FROM estado_civil" ; OPEN DYNAMIC cargar; FETCH cargar INTO :final; CLOSE cargar ; //agregamos al combo, ejemplos como llenar un combo. for cont=1 to final select descripcion into :ls_descripcion from grado_instruccion where idgrado_instruccion=:cont; ddlb_1.AddItem(ls_descripcion); next ENVIAR A OTRO EVENTO Esta función propia de power builder nos permite ir a otro evento //para este caso nos este enviando al evento clicked triggerevent("clicked"); //ejecutar un evento desde otro formulario w_nacido.triggerevent("open"); FECHA (2009-12-25) //mid("nombre",2,2) -->nos muestra es como un subtring en mysql fnaci = right(em_fnaci.text,4) + "-" + mid(em_fnaci.text,4,2) + "-" + left(em_fnaci.text,2); //año-mes-dia //en este caso nos debe estar mostrando así 2009-11-04, para poder trabajar con un determinado campo en mysql LIMPIAR UN ddlb Con este función de power builder estamos dejando en blanca solo la caja en el cual se muestra el resultado. ddlb_sector.selectitem(0); //dejamos en blanco

Documentacion de Power Builder 11

Embed Size (px)

Citation preview

Page 1: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

DOCUMENTACIÓN DE POWER BUILDER 11 CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL. //realizamos una consulta dinamica DECLARE cargar DYNAMIC CURSOR FOR SQLSA; PREPARE SQLSA FROM " SELECT count(*) FROM estado_civil" ; OPEN DYNAMIC cargar; FETCH cargar INTO :final; CLOSE cargar ; //agregamos al combo, ejemplos como llenar un combo. for cont=1 to final select descripcion into :ls_descripcion from grado_instruccion where idgrado_instruccion=:cont; ddlb_1.AddItem(ls_descripcion); next ENVIAR A OTRO EVENTO Esta función propia de power builder nos permite ir a otro evento //para este caso nos este enviando al evento clicked triggerevent("clicked"); //ejecutar un evento desde otro formulario w_nacido.triggerevent("open"); FECHA (2009-12-25) //mid("nombre",2,2) -->nos muestra es como un subtring en mysql fnaci = right(em_fnaci.text,4) + "-" + mid(em_fnaci.text,4,2) + "-" + left(em_fnaci.text,2); //año-mes-dia //en este caso nos debe estar mostrando así 2009-11-04, para poder trabajar con un determinado campo en mysql LIMPIAR UN ddlb Con este función de power builder estamos dejando en blanca solo la caja en el cual se muestra el resultado. ddlb_sector.selectitem(0); //dejamos en blanco

Page 2: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

ELIMINAR UN DATO //Aplicando un procedimiento almacenado declare eliminar procedure for eliminar_paciente(); execute eliminar; fetch eliminar into :ver2; close eliminar; if sqlca.sqlcode=0 then commit; //Mostramos los cambios efectuados en el datawindows

ng_odw_conexion(odw_temppaciente); //es una funcion para conectar un datawindow messagebox("MENSAJE","OPERACIÓN EFECTUADA CORRECTAMENTE"); else

messagebox("ERROR","ERROR: NO SE EFECTUÓ LA OPERACIÓN... VERIFIQUE ~r~n"+SQLCA.SQLErrText); //Mostramos el mensaje mas un mensaje de error del SQL

end if FUNCION PARA CONECTAR UN DATAWINODW //mas el parámetro Argumento Type = datawindow Argumento Name=dw_control () //con esta función podemos conectar cualquier datawindow dw_control.setTransObject(SQLCA); dw_control.retrieve(); DATAWINDOWS //Muestra un rectángulo que indica en que registro se encuentra el foco dw_temppaciente.SetRowFocusIndicator(FocusRect!); //este es un truco del datawindows, para darle color a una fila y a la otra no //lo encuentras en Background/color (en el cuadrado)/y insertamos esta línea de código IF (Mod(GetRow(),2)=0, RGB(255,255,255), RGB(241,255,255)) //getitem: Obtiene un data tipo cadena de una fila y columna especificada en el DataWindow //editk mask //datawindow //tipo de dato //numero de fila //el campos em_historia.text = odw_temppaciente.getitemString(il_resul,"historia_clinica"); //tipo String em_historia.text = odw_temppaciente.getitemNumber(il_resul,"historia_clinica"); //tipo Number paciente.pa_fnaci=odw_temppaciente.getitemdate(li,"fecha_naci"); //tipo Date //setitem Ingresa un dato en una li_fila y columna indicada en un DataWindow dw_temppaciente.setitem(resul,"historia_clinica",em_historia.text);

Page 3: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

//rowcount() nos permite contar una datawindow dw_temppaciente.rowcount(); //reset() limpia un datawindow o borra los datos que tiene almacenados dw_tempdiagnostico.reset(); //obtener un dato en especifico del datawindow, dw_1.Object.columna[num_fila] if dw_paciente.Object.idgrado [fila] = 'S' then cont++; end if //busqueda normal en un datawindows dw_paciente.setFilter("idcarpeta='"+trim(em_ncarpeta.text)+"'"); dw_paciente.Filter(); //exclusivo para reportes dw_diario.settransObject(SQLCA); //una conexión normal dw_diario.retrieve(Date(fnaci),turno);//aquí me busca el parámetro enviado, (fnaci y turno) son parámetros enviados para el datawindow //dentro de un datawindows para activar los botones a usar ( buttonclicked ) string ls_Object; ii_fila = row; //con este determinamos la historia clinica seleccionada ls_Object = String(dwo.name); //objeto relacionado con los botones del dw historia=dw_print.getItemString(ii_fila,"historia_clinica"); //obtener un dato del dw If ls_Object = "cb_actualizar" Then //se elvalua el boton a trabajar open(w_nacido_actu); End If //Actualizar y Anular datos del datawindows li_result=dw_print.update(); if li_result=1 then commit; //guarda o graba else rollback; //anula todo dato modificado end if

Page 4: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

TIPOS DE MESSAGEBOX icon (optional) · Information! (Default) por defecto · StopSign! Alto · Exclamation! Exclamación · Question! Pregunta · None! Nada button (optional) · OK! – solo con el botón OK · OKCancel! – los botones OK y Cancelar · YesNo! – Botones SI o No · YesNoCancel! – Botones SI, NO y Cancelar · RetryCancel! – Botones Reintentar y Cancelar · AbortRetryIgnore! – Botones Abortar, Reintentar y Ignorar

Ejemplos //mensaje de informacion MessageBox("ERROR","SELECCIONE UN REGISTRO VÁLIDO"); //mensaje de exclamacion MessageBox("ERROR","SELECCIONE UN REGISTRO VÁLIDO",Exclamation!); //un mensaje SI o No en una condición, si es verdadero realiza la operación if MessageBox("TITULO","CONTENIDO",Question!,YesNo!,2)=1 then

//operación a realizar end if

TECLA ENTER //el keydown verifica si la tecla pulsada fue un enter para poder realizar la operación if keydown(KeyEnter!) then dw_busqueda.setfocus(); //operación a realiza end if

Page 5: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

FUNCION DE BUSQUEDA SENSITIVA //para mejor presentación, por favor verificar el tipo de evento ya que se a creado un nuevo evento con lo siguiente pbm_keyup después de haber presionado alguna tecla.

//funcion //editk mask //datawindow //el campo a buscar ng_busquedasensitiva(this,dw_busqueda,"cod_dia"); //mi función ng_busquedasensitiva

if len(trim(em_control.text))>0 then //si el numero de caracteres ingresados en el editmask es mayor a 0 entonces se realizará la búsqueda sensitiva //setFilter recibe un campo de la BD : as_campo y con like de sql ire buscando por los caracteres del editmask dw_control.setFilter(ng_campo+" like '%"+trim(em_control.text)+"%'");

Page 6: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

//luego de haberse recibido el(los) caracter(es) se realiza el filtro y muestra los datos que coinciden con el tipo de búsqueda dw_control.Filter(); else //en caso de que no se haya ingresado ningun caracter o se borra todo los caracteres del aem_control //No recibe ningún dato por tanto no se produce ninguna búsqueda dw_control.setFilter(""); //Como no ha recibido ningún dato muestra todos los datos por defecto dw_control.Filter(); end if ENVIAR UN DATOS DE UN DATAWINDOW A OTRO DATAWINDOW DESDE OTRO FORMULARIO try int li_fila; string codigo_dia, descripciones, codigo_cat; codigo_dia=dw_busqueda.getItemString(ii_fila,"cod_dia"); descripciones=dw_busqueda.getitemString(ii_fila,"descripcion"); codigo_cat=dw_busqueda.getItemString(ii_fila,"cod_cat");

// Inserta una li_fila en un DataWindow, en la posición especificada. li_fila=w_hclinica.dw_tempdiagnostico.insertrow(0) // otro formulario (w_hclinica)

//Cambia la posición de li_fila pero no la Columna... en este caso a la li_fila insertarda w_hclinica.dw_tempdiagnostico.scrolltorow(li_fila); // datawindow del otro formulario

//asignamos los datos al campo del temporal_diagnostico w_hclinica.dw_tempdiagnostico.setitem(li_fila,"cod_dia",codigo_dia); w_hclinica.dw_tempdiagnostico.setitem(li_fila,"descripcion",descripciones); w_hclinica.dw_tempdiagnostico.setitem(li_fila,"cod_cat",codigo_cat); close(parent); catch (dwruntimeerror mierrorendw ) messagebox("ALERTA","SELECCIONE UN REGISTRO VÁLIDO",Exclamation!); end try //en el evento itemfocuschange ahí que poner lo siguiente ii_fila = row;

Page 7: Documentacion de Power Builder 11

Autor: Juarez Campos Jean Piere

RomeoSoft – http://romeosoft.webuda.com/

MONTH CALENDAR Date fecha_ini, fecha_fin; //GetSelectDate(fecha_ini) fecha_ini es la que recibe el valor del mc_fecha num=mc_fecha.GetSelectedDate(fecha_ini); //con el RelativeDate(fecha_inicio,6) 6=es el numero a aumentar fecha_fin=RelativeDate(fecha_ini,6); //con esta consulta podemos determinar el número de la semana ** SELECT WEEKOFYEAR(‘2009-11-05’)as semana; COMANDOS BASICOS //con este comando estamos cerrando una ventana close(parent); //activamos el boton agregar dia y desactivamos con false cb_agregar_dia.enabled=true; //asignación de una variable a un objeto em_pro_ap.text = ap; //asignación del color del fondo de un objeto, mejor dicho cambiamos el fondo em_historia.BackColor = RGB(255,200,200); //asignación del foco em_historia.setfocus(); //contar un objeto len(em_codigo.text)