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
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;
}
Suscribirse a:
Entradas (Atom)