Crystal Report - Iniciales en Cadena para HIV

 
Vista:

Iniciales en Cadena para HIV

Publicado por Javier E. Salvay (50 intervenciones) el 10/11/2006 16:55:05
Hola a todos, el tema es este... estoy con el sistema para bioquímica y llegué a una parte que es sobre el HIV :( , la cual no me gusta, pero bueno...

En Argentina, cuando un paciente se hace este tipo de evaluación, el resultado no puede ir con su nombre completo, sino que deben ir sus [b]iniciales [/b](Juan Dominguez - J.D.) seguido por su fecha de nacimiento, ej: J.D. 01/04/1956.

Y ahi está el problema, como hago para que tome las iniciales del nombre.

He hecho lo siguiente...

He agregado el campo fórmula y he puesto....

[code]
if {analisis.idanalisis} <> 55 and {analisis.idanalisis} <> 56 then
{pacientes.nombre}
else
mid({pacientes.nombre},1,1).
[/code]

Con ese mid tomo la primera inicial (que dificil no?) pero me falta tomar la otra inicial o las otras iniciales (en caso de tener varios nombres).

Bueno, ese es el problema, si alguien se le ocurre algo... por favor...

AVISE !!!

Gracias

Javier
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Iniciales en Cadena para HIV

Publicado por Francisco Rivas (371 intervenciones) el 10/11/2006 18:47:53
////Que versión CR tienes??? lo pregunto porque te lo podría mandar por link

////esta es una función personalizada en CR llamada "iniciales"
////OJO esta en "Basic Sintaxis"

Function iniciales(nombre as string) as string
dim fin as number
dim ini as number
dim aux as string
dim cadena as string

fin= len(nombre)
cadena=Mid (nombre,1,1) & "."

for ini=1 to fin step 1
aux=Mid (nombre,ini,1)

if AscW (aux)= 32 then
if ascw(Mid (nombre,ini+1,1))<>32 then
cadena= cadena & Mid (nombre,ini+1,1)& "."
end if
end if

next ini

iniciales= cadena

end function

/// en una formula la puedes llamar asi:
/// crystal sintaxis
iniciales({tabla1.camponombre})
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Javier E. Salvay (50 intervenciones) el 10/11/2006 20:06:33
Hola Francisco, gracias por la ayuda ! ;)

Estuve probando y como es sintaxis Basic, no se como utilizarlo, pero seleccioné de la barra de arriba (en la parte de fórmulas) y cambié a "Sintaxis Basic", el tema es que me dice "Aquí se espera un enunciado" (y me queda el cursor en la parte superior).
No se como hacerlo funcionar, no se si se puede mezclar las 2 sintaxis.
Desde ya gracias !

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Francisco Rivas (371 intervenciones) el 10/11/2006 20:15:50
Que version usas para enviarte el reporte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Francisco Rivas (371 intervenciones) el 10/11/2006 20:18:45
el codigo que corresponde a la funcion debe ir en funciones personalizadas o Report custom function, a esta funcion la puedes llamar desde las formulas,

Nota. las funciones personalizadas se pueden ver al lado izquierdo de la pantalla cuando abres una formula
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Javier E. Salvay (50 intervenciones) el 10/11/2006 20:40:17
Ahh, disculpame ! no te comenté la version que uso, es la nro 8, osea Crystal Report 8 ! ;)

Gracias de nuevo !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Francisco Rivas (371 intervenciones) el 10/11/2006 20:57:49
//No importa,
//Has esto en una formula, sustituye los campos de la tabla y listo:
//ya esta en sintaxis crystal, no tienes que cambiar nada

numbervar fin;
numbervar ini;
stringvar aux;
stringvar cadena;

fin:= len({Table1.Nombre});

if ascw( Mid ({Table1.Nombre},1,1))<> 32 then
cadena:=Mid ({Table1.Nombre},1,1) & ".";

for ini:=1 to fin step 1 do
(
aux:=Mid ({Table1.Nombre},ini,1);
if AscW (aux)= 32 then
if ascw(Mid ({Table1.Nombre},ini+1,1))<>32 then
cadena:= cadena & Mid ({Table1.Nombre},ini+1,1)& ".";
);
//aqui puedes agregarle a cadena otra cosa ejemplo:
//cadena:= cadena & {Table1.otrocampo}
cadena

Saludos
Francisco Rivas
Acarigua Venezuela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Javier E. Salvay (50 intervenciones) el 10/11/2006 22:43:45
GENIAL ! FRANCISCO !

Pero..... vos sabes que me dice "Aquí se espoera un número, monto monetario, booleano, fecha, hora, etc" y me marca a "ascw" en la línea..... "if ascw ( Mid ({pacientes.nombre},1,1))<> 32 then"

Bueno, gracias por toda tu ayuda !

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Iniciales en Cadena para HIV

Publicado por Francisco Javier Rivas (371 intervenciones) el 11/11/2006 16:07:52
//En Crystal 10 no me da problemas ascw, pero en el 8 si, entonces reemplaza ascw por asc OK. ya hice la prueba en el 8 Observa:
//reemplaza "Francisco Javier" por el campo que deseas
numbervar fin;
numbervar ini;
stringvar aux;
stringvar cadena;

fin:= len("Francisco Javier");

if asc( Mid ("Francisco Javier",1,1))<> 32 then
cadena:=Mid ("Francisco Javier",1,1) & ".";

for ini:=1 to fin step 1 do
(
aux:=Mid ("Francisco Javier",ini,1);
if Asc (aux)= 32 then
if asc(Mid ("Francisco Javier",ini+1,1))<>32 then
cadena:= cadena & Mid ("Francisco Javier",ini+1,1)& ".";
);
//aqui puedes agregarle a cadena otra cosa ejemplo:
//cadena:= cadena & {Table1.otrocampo}
cadena
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SUPER AGRADECIDO !!!!!!!!

Publicado por Javier E. Salvay (50 intervenciones) el 16/11/2006 15:11:13
Francisco !!!!!! SUPER GRACIAS !!!! quedo genial ! er la W, tal cual lo indicaste !!

MUCHAS GRACIAS !!!! quedo perfecto..... gracias ! bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SUPER AGRADECIDO !!!!!!!!

Publicado por Francisco Rivas (371 intervenciones) el 16/11/2006 18:09:58
ascw funciona bien para la sintaxis crystal pero para la version 10, para la version 8 es asc.

Me alegra, bueno demosle las Gracias a Dios, por Él logramos todas las metas...

Saludos,
Francisco Rivas
Acarigua, Venezuela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SUPER AGRADECIDO !!!!!!!!

Publicado por Javier E. Salvay (50 intervenciones) el 18/11/2006 16:28:42
Francisco..... o a quien sepa...... jejejeje yo de nuevo......

Vos sabes que el código anda genial.... pero tengo un problemita que acabo de detectarlo.....

Luego de agregar el código y hacer otras modificaciones a otra parte del reporte.... lo guardé y al querer abrirlo nuevamente me apareció un cartel de crystal antes de abrir el reporte que dice... "Memoria llena, presione aceptar." y otro seguido que decía "No se puede abrir el documento, presione aceptar".

Supuse que era un error de memoria y reinicié la pc, luego quise abrirlo y nada... entonces abri el backup y comencé a probar, para saber porque habia ocurrido esto... solamente agregue el code que me diste vos y al ver vista preliminar anda perfecto (gracias :D), pero cuando lo guardé y quise abrir de nuevo el reporte... me dio el mismo error.

Que podrá ser que llena la memoria ? podré resetear alguna var para que no salte este error... o algo por el estilo ?

Gracias

Nos vemos y gracias de nuevo !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SUPER AGRADECIDO !!!!!!!!

Publicado por Francisco Rivas (371 intervenciones) el 20/11/2006 16:09:51
En mi máquina no da problemas, estuve analizando el codigo y la verdad es que no creo que tenga que resetear alguna variable, claro, no estoy seguro, vale la hipótesis; otra cosa que se podría hacer es una funcion personalizada en crystal, ya que a estas funciones le mandas el valor, ella hace el proceso, devuelve el valor y se descarga, solo tendrías que llamar esa función, tampoco estoy seguro que ésto te solucione el problema, pero vale la pena intertarlo, otra cosa, en la version que usas se pueden hacer funciones personalizadas?.
Otras opcion mas allá es hacer una dll con ese codigo en VB y usarla como funcion de VB en CR, pero esto se puede hacer con version de 8.5 para arriba. Prueba con todas las posibilidades, si encuentras una solución por fa notificala.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar