viernes, 30 de noviembre de 2012

CheckBox, RadioButton y HProgressBar en Power Builder

Hoy comenzaremos diseñando la siguiente ventana, el objetivo de este post es que aprendas a usar los diversos controles que tiene la herramienta Power Builder, y de tal manera aprendas a programar en el lenguaje Power Script.Los controles a usar son: StatiText, Picture control, command Button, editMask, CheckBox, RadioButton, HProgressBar, MultiLineEdit, SingleLineEdit, GroupBox. Creamos la ventana llamada: w_primero


-->
Control
Propiedad
Valor
cbx_d
Text
Diurno
cbx_t
Text
Tarde
cbx_n
Text
Nocturno
cbx_a
Text
Amanecida
rb_e
Text
EsSalud
rb_i
Text
Integra
rb_o
Text
Otros
sle_nom
Border
True

TextCase
Upper!
sle_ape
Border
True

TextCase
Upper!
em_sueldo
Mask
###,###.00
em_desc
Mask
0.####
em_total
Mask
###,###.00
em_fecha
Mask
dd/mm/yyyy

DropDown Calendar
True
mle_1
VScrollBar
True

HideSelection
True

Border
True
cb_calcular
Text
&Calcular

Default
True
cb_limpiar
Text
&Limpiar
cb_salir
Text
&Salir

Cancel
True
st_1
Text
Registro de Empleados
p_1
OriginalSize
False
hpb_1
MaxPosition
100

setStep
10

Código Fuente:

Declaramos la siguiente variable Instancia:

cb_calcular   Evento: Clicked



cb_limpiar Evento: Clicked


Cb_salir  evento: clicked
Ahora nos vamos a la ventana: w_principal evento timer y escribimos el siguiente código:

Y en el evento Open de la ventana escribimos:


Explicación:

Lo que esta aplicación hace es que calcula un sueldo de un determinado empleado, el cual se usa los controles checkbox y radiobutton, como veras, los checkbox se pueden seleccionar varios al mismo tiempo y tienen que estar dentro de un groupBox, en cambio los radiobutton solo se puede selecionar uno, y tambien se tiene que insertar dentro del groupBox.

Al momento de darle clic en calcular, mandamos a true la variable de ambito instancia: ib_flag = true, para que pueda activarse nuestra barra y tenga el efecto de que esta cargando, el codigo se puede visualizar en el evento timer de la ventana, y usando las condiciones se logra obtener este resultado. El cual va aumentando de 3 en 3 hasta llegar a 100, una vez llegado al maximo se cambia la varibale ib_flag = False para que termine de ejecutarse, si te das cuenta en el open de la ventana se puso el codigo: timer(0.008), esto nos indica que esta ventana ejecutará el evento timer cada 0.008 milisegundos, de tal manera ese evento sigue funcionando.Es por eso que se controla con las banderas o los flags.

Esto es sólo un ejemplo para usar los controles, espero que la idea de usar estos controles haya quedado clara. 



Si quieres descargar el código fuente entra al siguiente link:

Hasta la proxima!!

Arreglo bidimensionales en Power Builder

Arreglo:
-->
En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo. De esta forma en Power Builder usando el lenguaje Power Script podemos realizar este tipo de procesos, usando a la memoria RAM para que los datos ingresados queden grabados de manera volátil en un instante. Para nuestra implementación, realizaremos un programa en la herramienta Power Builder donde se pueda detallar toda esta teoria.


Laboratorio:
Creamos un Espacio de trabajo wrk_arreglo, una aplicación app y diseñamos las siguientes dos ventanas:

w_listado : Controles: DropDownListBox (lb_nombres, lb_edad), command button (cb_registrar, cb_cerrar)


-->
Control
Propiedad
Valor
lb_nombres
VScrollBar
True

Sorted
False
lb_edad
VScrollBar
True

Sorted
False
W_listado
Title
:: ARREGLO ::

MaxBox
False

Resizable
False

Icon
Form!

w_datos:

-->
Control
Propiedad
Valor
sle_nombre
Textcase
Upper

Limit
30



em_edad
Mask
##

Max
99

Spin
True

Luego declaramos en la parte Instancia el siguiente código:

w_listado : cb_registrar


w_listado : cb_cerrar


w_listado : lb_nombres evento: SelectionChanged


 w_listado : lb_edad evento: SelectionChanged


w_listado : Evento OPEN



w_datos : cb_guardar


w_datos : cb_cancelar

Explicación:

Bien, el siguiente programa expuesto tendra el siguiente comportamiento: Al abrir en primer lugar w_listado, nos saldra una ventana donde no nos mostrara nada, tenemos que darle en el boton registrar para que nos abra la ventana: w_datos, donde recien podemos dar algunos valores que nos piden, de esta forma nuestro arreglo ira creciendo, como tambien subira su indice: gi_pos. 

En este caso estamos usando el control lista para detallar los datos ingresados, el control lista tiene como metodo: additem, el cual te permite agregar valores cadena a la lista. Es por eso que al hacer el for, tenemos que convertir la edad que esta en numero a cadena.




Si quieres descargar el código fuente entra al siguiente link:

Hasta la proxima!!

martes, 27 de noviembre de 2012

MAX - MIN en Power Builder

Hola a todos. Hoy hablaremos un poco de las funciones internas que tiene Power Builder y el porque Power Builder es una herramienta rapida o eficaz para programar, con esto no digo que Power Builder es lo mejor, al contrario saca de apuro si lo sabes usar. Bien comenzemos, hoy estudiaremos las funciones Max - Min.

Max:
Determina el mayor de 2 números.

Sintaxis:
Max ( x,  y )

Min:
Determina el menor de 2 números.

Sintaxis:
Min ( x,  y )

Mientras que en Visual Basic 6.0 el mayor de 2 numeros se hacia aproximadamente en 5 lineas, en Power Builder se logra hacer en sólo una linea de código. Con la ayuda de sus funciones incorporadas, te quita el tiempo de estar creando una funcion.

Laboratorio:

Crear un Workspace llamado: wrk_demo01, una aplicacion llamada: app_demo01, y una ventana llamada: w_ejemplo01. Luego diseñar la siguiente ventana:

Luego escribimos el siguiente codigo en el boton cb_calcular:


Código del cb_limpiar:

Código del cb_salir:


Esta ventana al ser ejecutada, nos mostrara el mayor y menor de 4 números:


Es más, aqui les dejo la funcion o la logica como funciona el algoritmo del max:




Hasta la proxima!

viernes, 16 de noviembre de 2012

El lenguaje de Programacion JAVA



¿Qué es Java?

Java es un lenguaje de programación con las siguientes características:
  • Es más o menos fácil. No presenta los problemas de C y C++. Puesto que: No hay pointers, Structs, Typdefs, #defines, Administración de memoria: Toma como modelo Orientado a objetos la tecnología de objetos de C++ por su facilidad de aprendizaje. 
  • Distribuído: tiene extensas capacidades de conexión TCP/IP, accesa e interactúa con HTTP y FTP usando librerías clase API, contenidas en el JDK.
  • Robusto: Extenso chequeo de errores en compilación y tiempo de ejecución, la implementación de lenguaje reduce muchos de los errores más comunes, Chequeo de límites de arreglos, Verificación de "Byte code".
  • Arquitectura neutral: Compila código fuente en "Byte Code" a una "máquina virtual" (máquina independiente), El sistema tiempo de ejecución Java es un interpretador "byte code" (máquina dependiente)
  • Seguridad: La implementación del lenguaje remueve accesos ilegales a memoria. No hay pointers, No hay "run time casting", Verificador "Byte code" antes ejecución; El verificador Byte code verifica el formato del código, detecta de pointers falso, violación a accesos de objetos, y cambios en el tipo de objetos o clases.
  • Portable: Arquitectura independiente (especificación máquina virtual), Las plataformas donde se pueden ejecutar son: Windows, Linux, Solaris, etc.
  • Alto perfomance: Las características de displays y multithread causa cuellos de botella en este ambiente, Compiladores Just in Time (disponible en mayo o junio) Recompila en tiempo de ejecución, La máquina esdependiente pero de más velocidad de ejecución, La optimización del Byte code Java es la última respuesta.
  • Multithread: Un programa puede contener múltiples "threadas" en ejecución, Threads son procesos independientes y ejecutados simultáneamente, Esta es una área donde la arquitectura hace la diferencia.
  • Dinámico: Los uniones de los objetos y clases en el tiempo de ejecución, Permiten que las clases y objetos externos siempre están actualizadas sin que sea necesario recompilar.

jueves, 15 de noviembre de 2012

Variables, Tipos de dato y Operadores en JAVA

Variables: 

 Las variables del lenguaje de programación son similares a C y C++. Los identificadores pueden comenzar con "_ ", "$", o letras, Pueden contener dígitos (0-9), Se deben tener en cuenta las mayúsculas y minúsculas, Entre los tipos de datos tenemos:

-->
Enteros

byte
8 bits

short
16 bits

int
32 bits

long
64 bits

De punto flotante


float
32 bits

double
64 bits

Boleanos


bolean
true or false

Carácter


char
16 bits

Cadena de caracteres


String


Operadores:
Los operadores de Java son muy parecidos en estilo y funcionamiento a los de C. En la siguiente tabla aparecen los operadores que se utilizan en Java, por orden de precedencia:


-->
Operador
Significado

++ --
Aumenta o disminuye una unidad a una variable

*, /, %
Multiplicación, División y División entera(Mod)

+, -
Suma y resta

<  ,  >  ,  <=  ,  >= , ==  ,  !=

Menor, Mayor, Menor o Igual, mayor o Igual, Igual y Diferente de.

&& , ||
And y Or


Comentarios:
En Java hay tres tipos de comentarios:
 
// comentarios para una sola línea

/* comentarios de una o
más líneas
*/

Sentencias De Asignación:
Se utiliza el operador de asignación =, para asignar un valor a una variable.
Por ejemplo:

i = i + 1 es equivalente a i++
i = i + 2 es equivalente a i+=2

miércoles, 14 de noviembre de 2012

Estructuras de Control en JAVA



a) Selectivas Simple / Doble - if/else

if(boolean) {
sentencias;
}
else {
sentencias;
}


b) Selectivas Múltiples - switch
 
switch( expr1 )
{
case expr2:sentencias;break;case expr3:sentencias;break;default:sentencias;break;
}

Estructuras Repetitivas
 
Estructura FOR

for(inicialización; comparación ; incremento) {
instrucciones
}

Ejemplo: Imprimir los 100 primeros números naturales

for(int i=1;i<=100;i++){
System.out.println(i);
}
 
Estructura While
 
Inicialización

while(comparación){
instrucciones
}

Ejemplo: Imprimir los 100 primeros números naturales
i=1
While(i<=100){
System.out.println(i);
i++;
}

Estructura Do-While
 
Inicialización
do{
instrucciones
}while(comparación)

Ejemplo: Imprimir los 100 primeros números naturales

i=1 //Inicialización de variable
do{
System.out.println(i);
i++;
}while(i<=100)