Buscar en el Blog

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.



viernes, 30 de agosto de 2019

Consultar el ruc desde sunat sin ingresar el captcha.

A continuación les dejo el codigo fuente de consultar datos de la SUNAT usando el número de  RUC, el cual está desarrollado en Power Builder.



link del codigo fuente de giansalex(PHP): https://github.com/giansalex/peru-consult/tree/master/src/Peru/Sunat.

link del codigo fuente en PB: https://github.com/LEXBLAS/consultarRucPbNative

viernes, 19 de abril de 2019

Error 3d Max c000375 windows 7: Solución

Esta es una solución que encontré después de probar todas las alternativas que rondan en internet.


Para esto entramos a la opción 3d Max del Menú inicio y seleccionamos "Change Grafics Mode".
Nos debe aparecer la siguiente imagen.




Por defecto estará n la opcion Direct3D  11. Lo cambiamos por Legacy OpenGL y aceptamos los cambios. Con esto ya podemos ingresar con normalidad a 3d Max.




martes, 9 de abril de 2019

Restaurar basede datos desde una carpeta: Postgresql

Restaurar basede datos desde una carpeta


Lo primero que debemos hacer es detener el servicio de Postgresql.

 Una vez detenido copiamos a la carpeta data al directorio destino y reemplazamos todo el contenido. Luego en la carpeta data debemos eliminar el archivo postmaster.pid e iniciamos nuevamente el servicio de Postgresql e ingresamos al pgAdmin. Con esto ya deben visualizarse las base de datos que copiamos.



De salir algun error al iniciar el servicio, verifique los permisos de la carpeta "data". Asigne todos los permisos al usuario actual, quite el atributo de solo lectura e inicie nuevamente el servicio.

 


jueves, 29 de junio de 2017

Error al iniciar apache en eclipse

Hace unos dias se me presentó un problema al querer iniciar un proyecto de Spring Framework en eclipse.
Al iniciar el apache me arrojaba el siguiente error "Starting Tomcat v9.0 Server localhost has encountered a problem. Server Tomcat v9.0 Server at localhst failed to start."

Por mas que iniciara un nuevo proyecto en blanco, el error persistia. Asi que hice lo siguiente.
Entre a la carpeta "C:/usuarios/miusuario/". Dentro de esa carpeta borre tres carpetas:
  • .eclipse
  • .m2
  • .p2

Una vez eliminadas estas carpetas  inicie nuevamente el proyecto en blanco y ahora si levantaba el proyecto con normalidad.

Nota: Tambien podria funcionar eliminando solamente la carpeta ". m2".




miércoles, 1 de febrero de 2017

PowerBuilder - usando Treeview - Creando un Menu para nuestro sistema


Lo primero será agregar un treeview al que llamaremos tv_menu y un boton. Dentro del  boton es donde vamos a programar a modo de ejemplo. Una vez terminado, ustedes pueden colocar el codigo dentro de constructor del treeview.

El siguiente paso es agregar imagenes al treeview, los cuales seran usados para ser asignados a los items del treeview.

El número que esta al lado izquierdo de la imagen, indica el indice asignado de la imagen. Por ejemplo si deseamos asignar la imagen Asterisk a un item, entonces usaremos el indice 2.

Para insertar los items en el treeview usaremos la funcion insertitemlast.

control_treeview.insertitemlast( padre, "texto que aparecera",indice_de_la_imagen)


El primero parametro que recibe la funcion es el indice del padre, al iniciar el primer item o los primeros items, se le asigna el numero cero. El siguiente parametro es el texto que aparecera en el item y el tercer parametro es el indice de la imagen que se mostrará al lado del item.

Conforme se vayan insertando items, se van asignando automaticamente un indice correlativo.



Si queremos insertar un item hijo a compras el código seria así.


//hijos de Compras
tv_menu.insertitemlast( 3, "Proveedores",5)//11



Codigo para insertar los items al treeview
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//padres
tv_menu.insertitemlast( 0, "Almacen",1)//id 1
tv_menu.insertitemlast( 0, "Ventas",2)//id 2
tv_menu.insertitemlast( 0, "Compras",3)//id 3
tv_menu.insertitemlast( 0, "Configuracion",4)//id 4
//hijos

//hijos de almacen
tv_menu.insertitemlast( 1, "Tablas",7)//5
tv_menu.insertitemlast( 1, "Articulos",8)//6
tv_menu.insertitemlast( 1, "Grupos",9)//7

//hijos de Ventas
tv_menu.insertitemlast( 2, "Clientes",4)//8
tv_menu.insertitemlast( 2, "Documento de Venta",2)//9
tv_menu.insertitemlast( 2, "Reportes",3)//10

//hijos de Compras
tv_menu.insertitemlast( 3, "Proveedores",5)//11
tv_menu.insertitemlast( 3, "Documento de Compra",4)//12
tv_menu.insertitemlast( 3, "Reportes",7)//13

//hijos de Configuracion
tv_menu.insertitemlast( 4, "IGV",8)//14

//hijos de reporte de compras

tv_menu.insertitemlast( 13, "Reportes mensual",6)//15

/*********************************************************/



Si ejecutamos la aplicacion veremos que los items aparecen todos colapsados. Para desplegar los items usaremos el siguiente código.

long ll_tvi
int i

ll_tvi = tv_menu.FindItem(RootTreeItem! , 0)
tv_menu.ExpandAll(ll_tvi)
for i=1 to 3
    ll_tvi = tv_menu.FindItem(NextTreeItem! ,ll_tvi )
    tv_menu.ExpandAll(ll_tvi)

next



Si queremos abrir una ventana cuando presionen dos veces sobre un item, entonces debemos programar en el evento doubleclicked.
Para saber en que item se realizo el doble click, usamos el argumento handle del evento. Este argumento contiene el numero que indica el indice del item. Entonces para abrir una ventana sabiendo el numero de item seleccionado, usaremos choose case.


choose case handle
    case 5
        open(w_ventana1)
    case 6

        //otra ventana
    case 7

      //otra mas
end choose


Nota: Debe agregar una ventana llamada w_ventana1 al proyecto.