Buscar en el Blog

viernes, 31 de julio de 2020

Cerrar todas las ventanas hijas - Powerbuilder


Para cerrar todas las ventanas hijas de un MDI realizaremos lo siguiente.
Crearemos una funcion, en mi caso la llamaré uf_closewindowchild la cual recibirá como parámetro una variable del tipo window "iw_handle"
 El código es el siguiente:

Integer li_counter,i
window lw_sheet
window aw_sheets[] 
// valido el window solicitante
if IsNull(iw_handle) or not IsValid(iw_handle) then
return
end if
// obtengo toda las hojas abiertas
lw_sheet = iw_handle.GetFirstsheet( )
if IsValid(lw_sheet) then
do
li_counter++
aw_sheets[li_counter] = lw_sheet
lw_sheet = iw_handle.GetNextSheet(lw_sheet)
loop until IsNull(lw_sheet) or not IsValid(lw_sheet)
end if

for i=1 to li_counter
close(aw_sheets[i])
next

Para usarlo basta con colocar la siguiente instrucción uf_closewindowchild(w_principal), donde w_principal es mi ventana mdi.


domingo, 14 de junio de 2020

El ejercicio legal de la Criminalistica

 
El ejercicio legal de la Criminalistica desarrollado por Marcelo Ebber el 13 de Junio del 2020.




viernes, 10 de abril de 2020

PowerBuilder: Error - bind parameter value for is to big

Error - bind parameter value for is to big


Este error se muestra cuando un queremos guardar una cadena bastante larga.
La solucion a este problema es seleccionar Disable Bind en el profile de ODBC(estoy trabajando con conexion ODBC)

Luego copiamos la sintaxys generado en el evento open.
Con esta opción ya podremos solucionar el error.

PowerBuilder: Control Personalizado - Editmask

ontrol Personalizado - Editmask

Cuando usamos el control Editmask, este control muestra el valor ".00" cuando le hemos dado el formato decimal (Control Editmask de la derecha). Si queremos que este en blanco desde el inicio, debemos agregar codigo a este control. Para poder reutilizarlo vamos a crear un objeto del tipo Standar Visual y elegimos el objeto Editmask.

Nos dirijimos a la sección Event List
Agregamos un nuevo evento




 Le damos un nombre al nuevo evento por ejemplo ue_char



Agregamos el siguiente codigo.

string texto
texto=this.text
if integer(this.text)=0 or this.text=".00" then
    this.setmask(decimalmask!,"####")
    return
end if
if  len(this.text)=1 then
    this.setmask(decimalmask!,"####,###.00")
    this.text=texto
    this.selecttext( len(this.text)-2, 0)
end if  


Aqui pueden descargar el codigo fuente. Esta desarrollado en powerBuilder 11.5.


sábado, 22 de febrero de 2020

PowerBuilder : Activar Autoscript - Atajo de teclado



Ahora para usar un atajo de teclado nos dirijimos a Tools->Keyboard Shorcuts
Luego a Edit->Activate AutoScript. una vez allí presionamos la combinacion de teclas que usaremos como atajo de teclado.