Primero creamos un Control Ole insertando el Cristal Report Viewer en la Ventana
Luego en un Boton ponemos el siguiente Codigo.
Todavia no se como pasarle parametros.
Asi que Continuara
int li_rtn
any la_valor
OLEObject lole_crystal
lole_crystal = CREATE OLEObject
li_rtn = lole_crystal.ConnectToNewObject( "CrystalRuntime.Application.9" )
if li_rtn=0 then
if li_rtn=0 then
la_valor=lole_crystal.OpenReport("C:\Recibo.rpt", 1)
ole_1.Object.ReportSource=la_valor
ole_1.Object.ViewReport()
end if
end if
TwoBooT
Este Blog lo voy a dedicar a mi principal fuente de alimentacion PowerBuilder y otros lenguajes de programacion.
viernes, 27 de abril de 2012
martes, 3 de abril de 2012
Validar CUIT/CUIL en PowerBuilder
of_validar_cuit(string as_cuit)
Codigo
string ls_multiplos="5432765432"
int li_digito_cuit,li_digito_multiplo
int li_resultado=0
int li_acumulado=0
int li_modulo=0
int li_codigo=0
int li_inicio,li_fin
int li_digito_verificador
li_fin=len(as_cuit)
if li_fin<>11 then
messagebox("Advertencia","Verifique la longitud del CUIT")
return -1
else
li_digito_verificador=integer(right(as_cuit,1))
end if
for li_inicio=1 to li_fin - 1
li_digito_cuit=integer(mid(as_cuit,li_inicio,1))
li_digito_multiplo=integer(mid(ls_multiplos,li_inicio,1))
li_resultado=li_digito_cuit * li_digito_multiplo
li_acumulado += li_resultado // li_acumulado=li_acumulado + li_resultado
next
li_modulo=Mod(li_acumulado,11)
li_codigo=11 - li_modulo
if li_codigo=10 then li_codigo=0
if li_codigo=11 then li_codigo=1
if li_codigo<>li_digito_verificador then
messagebox("Advertencia","CUIT / CUIL No Valido")
return -1
else
return 0
end if
Codigo
string ls_multiplos="5432765432"
int li_digito_cuit,li_digito_multiplo
int li_resultado=0
int li_acumulado=0
int li_modulo=0
int li_codigo=0
int li_inicio,li_fin
int li_digito_verificador
li_fin=len(as_cuit)
if li_fin<>11 then
messagebox("Advertencia","Verifique la longitud del CUIT")
return -1
else
li_digito_verificador=integer(right(as_cuit,1))
end if
for li_inicio=1 to li_fin - 1
li_digito_cuit=integer(mid(as_cuit,li_inicio,1))
li_digito_multiplo=integer(mid(ls_multiplos,li_inicio,1))
li_resultado=li_digito_cuit * li_digito_multiplo
li_acumulado += li_resultado // li_acumulado=li_acumulado + li_resultado
next
li_modulo=Mod(li_acumulado,11)
li_codigo=11 - li_modulo
if li_codigo=10 then li_codigo=0
if li_codigo=11 then li_codigo=1
if li_codigo<>li_digito_verificador then
messagebox("Advertencia","CUIT / CUIL No Valido")
return -1
else
return 0
end if
Paradigmas y Lenguajes - Clase Practica 3 (30/03/2012)
Consigna:
Al codigo fuente realizado en la clase anteriror modificarlo para que realize las siguientes tareas
- Cargar 5 Alumnos
- Mostrar Alumnos Cargados
- Ordenar Alumnos por Matricula
- Mostrar Alumnos Ordenados
Codigo:
#include < cstdlib>
#include <iostream>
using namespace std;
struct alumnox
{ char nombre[20];
char apellido[20];
int edad;
char carrera[20];
int matricula;
} ;
int cargaralumno(alumnox& alumno);
int ordenaralumno(alumnox alumnos[]);
int mostraralumno(alumnox alumnos[]);
int main(int argc, char *argv[])
{ int inicio,fin;
alumnox alumnos[5];
int i_rtn;
for (inicio=0; inicio<5;inicio ++)
{
i_rtn=cargaralumno(alumnos[inicio]);
}
mostraralumno(alumnos);
// ordenaralumno(alumnos);
mostraralumno(alumnos);
return EXIT_SUCCESS;
}
int cargaralumno(alumnox& alumno)
{
printf("Nombre: ");
scanf("%s",&alumno.nombre);
printf("Apellido: ");
scanf("%s",&alumno.apellido);
printf("Edad: ");
scanf("%i",&alumno.edad);
printf("Carrera: ");
scanf("%s",&alumno.carrera);
printf("Matricula: ");
scanf("%i",&alumno.matricula);
return 0;
}
int mostraralumno(alumnox alumnos[])
{ int inicio;
for (inicio=0; inicio<5;inicio ++)
{
printf("Alumno: %s,%s Edad: %i",alumnos[inicio].nombre,alumnos[inicio]. apellido,alumnos[inicio].edad);
printf("Carrera: %s Matricula: %i",alumnos[inicio].carrera,alumnos[inicio].matricula);
}
return 0;
}
int ordenaralumno(alumnox& alumno)
{
alumnox alumnoaux;
return 0;
}
sábado, 20 de febrero de 2010
Bajar de RapidShare, MegaUpload con Internet para Todos
Tengo ganas de ver el ultimo capitulo de Lost y no puedo bajarlo por que me dice que la ip ya la esta usando otro infeliz. Puteo a medio mundo por que el torrent vine a 2 km /h. Asi que me puse a investigar un poco, por decirlo de una manera amena, y encontre el r Proxy Switcher primero baje la version standart, para luego bajar esta que esta crackeada.
- Entramos a IE a
- Herramientas -> Opciones de internet
- Solapa de Conexion
- Click a Configuracion Lan
- Marcamos Usar Servidor Proxy
- en Direccion ponemos "Proxy" (sin las comillas) y en puerto 3128
- Bajamos el Proxy Switcher / Instalamos / Crackeamos
- Ejecutar y esperar que haga el scan de los servidores Proxy
- Una vez que termino vamos al Arbol (TreeView) y en Working Ordenamos por Reponse
- Doble click a server y debajo Click a Keep Alive
- y Listo
martes, 30 de junio de 2009
Tesis Final 2008

Google Talk Mediante con Martin nos repartimos las tareas, el flaco y yo, aunque mas el flaco, nos encargamos del relevamiento en la Funlar, y con martin (aunque mas Martin) armamos la estructura de la tesis que esta basada en la Metodologia Agil XP.
Todos los dias por la mañana mientras laburaba en APOS, me conectaba con martin para evaluar los cambios que haciamos en la tesis, tambien tenia que despertarlo al flaco para que vaya hacer las cosas empezaba a las 9:00 y terminaba a las 11:00 de despertarlo. A la tarde ya en IPT hablaba con martin para contarle lo que habia relevado Ariel y asi armar las "historia de usuarios". A su vez me juntaba con el flaco para armar la arquitectura de la aplicacion para la cual realice un framework (recontra mini )en PB, para que podamos hacer los ABM mas rapido y prolijamente, al cual lo termine de armar la noche del Cumple de Ariel, con unos cuantos Fernets encima, ariel ayudaba con los diagramas de clases y hacia el DER.
A todo esto con el flaco no podiamos hacer andar las transacciones en el Sistema, es decir la Aplicacion era funcional, pero las unidades de trabajo (transacciones) hacian caso omiso a los RollBacks y Commit del sistema, si una instruccion sql fallaba (INSERT,UPDATE,DELETE) y queriamos deshacer lo hecho por las instrucciones anteriores correspondientes a la misma transaccion no respondia que dando todo a medias. Esto nos trajo muchos dolores de cabeza.
Bueno ya tengo que trabajar asi que aca la tesis y despues sigo contando.
jueves, 30 de octubre de 2008
lunes, 22 de septiembre de 2008
Jugando a ser Guty o Josho

Que lo disfruten.
Suscribirse a:
Entradas (Atom)