sábado, 23 de julio de 2011

Algunos truquitos en Power Builder.


Pueden parecer insignificantes pero algunas veces hasta lo mas insignificante se vuelve importante en el mundo de la programación; espero les sirva en alguna ocasión. Gracias por los comentarios

* Quieres Saber cuanto tarda tu script en ejecutarse??... comparto un truco que podria ayudarte
long ll_start, ll_elapsed
ll_Start = CPU ( )

//El código que quieres comprobar

ll_elapsed = CPU ( ) - ll_Start

* API que intercambia la funcionalidad de los botones del mouse
Debe crear una funcion externa y luego ejecutarlo

Global External Function:
Function boolean swapmousebutton(boolean var) library 'user32.dll'

powerScript:
boolean rtn, l_mouse
rtn=swapmousebutton(l_mouse)
if l_mouse =true then
   messagebox('Cambio Realizado', 'Boton derecho como boton izquierdo')
else
   messagebox (Cambio realizado', 'boton derecho como boton derecho')
end if

* Necesita una funcionalidad que le ayude a realizar algun evento cuando se mueva el mouse en un  area determinada??....
  Si tiene un cdw... vaya a eventos y cree uno donde el EventId sera : pbm_mousemove
  cuando ya tenga creada el evento verifique en que area es donde quiere realizar lo que fuera...
  (util para uso de monitores touch screen).   Pongo un ejemplo de area:
   if ((xpos>= 1445 and xpos<=1518)  and (ypos>= 1520 and ypos<=1572)) then
        //aqui realizo mis scripts
    end if

*Muestra el día de la semana en español, útil para los reportes que necesiten ser agrupados por día, este codigo debe ser copiado en un campo tipo "COMPUTE FIELD"
case(DAYNAME(DATE(fecha)) when 'Monday' then 'Lunes' when 'Tuesday' then 'Martes' when 'Wednesday' then 'Miercoles' when 'Thursday' then 'Jueves' when 'Friday' then 'Viernes' when 'Saturday' then 'Sabado' else DAYNAME(DATE(fecha)) )

*Muestra el Mes en español,  este codigo debe ser copiado en un campo tipo "COMPUTE FIELD"
Case( Month ( Date ( fecha) )  when 1 then 'Enero' when 2 then 'Febrero'
when 3 then 'Marzo' when 4 then 'Abril' when 5 then 'Mayo' when 6 then 'Junio'
when 7 then 'Julio' when 8 then 'Agosto' when 9 then 'Septiembre' when 10 then 'Octubre'
when 11 then 'Noviembre' else 'Diciembre' )+ ' de '+String ( Year( fecha) )


*Retorna el número de días trasncurridos del año en curso

date ldt_desde,ldt_fecha_sis
date ld_fec_ini
string ls_fec_ini
integer li_dias

ldt_fecha_sis =today()
ld_fec_ini = date('01/01/'+ string(year(today())))
li_dias = daysafter(date(date(ldt_fecha_sis)),ld_fec_ini)
li_dias = (li_dias * -1) + 1
messagebox("Días Transcurridos",li_dias)

* ORDENAR DW POR CUALQUIER COLUMNA DE LA CABECERA

EN EL EVENTO CLICKED DE DW ESCRIBE EL SIGUIENTE CODIGO

string LS_Columna,LS_Col
integer LI_Pos
LS_Col =string(dw_1.GetObjectAtPointer())
for LI_Pos=1 to len(LS_Col)
If Mid(LS_Col,LI_Pos,1) = ' ' then
LI_Pos = len(LS_Col)
LS_Columna = mid(LS_Columna,1,len(LS_Columna) - 2)
Else
LS_Columna = LS_Columna + Mid(LS_Col,LI_Pos,1)
end if
next
dw_1.SetSort(LS_Columna+ A)
dw_1.Sort( )
/*Fuente: http://www.powerbuilder.org*/
*Añadir automáticamente la fecha de compilación a tu aplicación
Declara una variable global de la siguiente manera:
datetime gdt_build = DateTime(Today(), Now())

1 comentario: