Hola, talvés a alguien de uds se les presento este problema ????? Pues les voy a mostrar como lo pude solucionar !!! ………….ojala les pueda servir……….

Primero q nada esto ocurre cuando hemos utilizado crystal reports basic de Visual Studio y pues entonces devemos descargar los “MS & MSI Files” de la siguiente dirección : https://wiki.sdn.sap.com/wiki/display/BOBJ/Crystal%20Reports%20for%20Visual%20Studio%20.NET%20Runtime%20Distribution%20%20-%20%20Versions%209.1%20to%2012.0; claro que debes descargar de acuerdo a la version de VS q utilices……….(el archivo incluye un doc de como utilizarlo)

Luego copiamos  el archivo (“CrystalReportsRedist2005_x86.msm” en mi caso)  en la carpeta c: \Program Files\Common Files\Merge Modules

Ir al visual studio y hacer click  en Archivo, Nuevo proyecto

En la ventana de dialogo  “Nuevo proyecto” ,  en “Tipos de Proyectos” escojemos Instalación e implementación y en “Plantillas” seleccionamos  Proyecto de Instalacion de windows o  Web Setup Project y aceptamos.

En el  “Explorador de Soluciones”, seleccionas tu proyecto, botón derecho, y selecciona  Agregar|Modulo Combinación (Merge Modules)…….. añade  CrystalReportsRedist2005_x86.msm en tu proyecto, compílalo y ejecuta el instalador……..

Y listo …!!, ahora puedes utilizar los reportes de tu aplicación………..

Hola aqui les presento el algoritmo para validar el numero de cédulo de ua persona, a continuación el codigo en VisualBasic205
• El ruc de una persona natural será 13 dígitos, sin letras, sin caracteres especiales , únicamente números, de los cuales los 10 primeros será la cédula de identidad.
• El tercer dígito es menor a 6 ( 0,1,2,3,4,5 ).
• Los tres últimos dígitos son 001,002,003 etc., dependiendo el número de establecimientos adicionales.
• La validación de la cédula de Identidad pasa un algoritmo “Módulo 10”. Al número se lo divide en 13 partes, las 9 primeras son el número mismo, la 10 es el dígito autoverificador, y las 3 restantes indican si es principal o establecimiento adicional.
• Las 2 primeras posiciones corresponden a la provincia donde fue expedida, por lo cual los dos primeros números no será mayor a 22 ni menor a 1.
• Los 3 últimos bytes no podrán ser 000, ya que siempre por lo menos tendrá una principal.
• Los coeficientes usados para verificar el décimo dígito de la cédula, mediante el algoritmo “Módulo 10”

COEFICIENTES = 2.1.2.1.2.1.2.1.2 ( cuando el residuo es 0 el digito verificador es 0)

Ejemplo: cédula = 1710034065

2 1 2 1 2 1 2 1 2 (Coeficiente)
1 7 1 0 0 3 4 0 6 (Número de Cédula)
2 7 2 0 0 3 8 0 12 = 25 (Multiplicar cada dígito de la cédula por el
3 coeficiente, si es mayor a 10 sumo entre dígitos).

sumar las multiplicaciones

Del resultado de la suma
25/10= 2 Residuo 5 10-5 = 5 (dígito verificador)

Public Class BLCedulaIdentidad

Public Function compruebaCedula(ByVal numCedula As String) As Boolean
Dim dig1, dig2, num1, num2, num3, num4, num5, num6, num7, num8, num9 As String
Dim digProvincia, tercerDig, ultimoDig, resultSuma, residuo, valorComprovador As Integer
Try
dig1 = numCedula.Substring(0, 2)
dig2 = numCedula.Substring(2, 1)
digProvincia = CInt(dig1)
If (digProvincia >= 1 Or digProvincia <= 22) Then
tercerDig = CInt(dig2)
If tercerDig 9 Then
dig1 = sumaDig(dig1)
End If
If dig2 > 9 Then
dig2 = sumaDig(dig2)
End If
If dig3 > 9 Then
dig3 = sumaDig(dig3)
End If
If dig4 > 9 Then
dig4 = sumaDig(dig4)
End If
If dig5 > 9 Then
dig5 = sumaDig(dig5)
End If
If dig6 > 9 Then
dig6 = sumaDig(dig6)
End If
If dig7 > 9 Then
dig7 = sumaDig(dig7)
End If
If dig8 > 9 Then
dig8 = sumaDig(dig8)
End If
If dig9 > 9 Then
dig9 = sumaDig(dig9)
End If
valorComprovador = dig1 + dig2 + dig3 + dig4 + dig5 + dig6 + dig7 + dig8 + dig9
Catch ex As Exception
Throw
End Try
Return valorComprovador
End Function

Public Function sumaDig(ByVal numero As Integer) As Integer
Dim strNumero, strDig As String
Dim numDig, i, valor As Integer
Dim digitos As New List(Of String)
Try
strNumero = Str(numero)
numDig = strNumero.Length
For i = 1 To numDig – 1
strDig = strNumero.Substring(i, 1)
digitos.Add(strDig)
Next
For Each ele As String In digitos
valor = valor + CInt(ele)
Next
Catch ex As Exception
Throw
End Try
Return valor
End Function

End Class

Nota: Cuando el residuo es cero(0) el dígito verificador es 0.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.