Ayuda con el Crystal

Hola Marcos, soy nueva con esto del crystal y espero que me puedas ayudar.
Estoy utilizando crystal reports 8.5 con visual basic 6 y una base de datos en Access. Necesito hacer un informe en el que me saque los datos de un traductor, esos datos se reparten en varias tablas:
- Traductor (PK codigo_traductor)
- Traductor_Lenguaje
- Traductor_Especialidad
- Especialidad
El informe lo realizo a través de una consulta SQL, enlazando las tablas por codigo_traductor, el problema es que me repite los lenguajes por el número de especialidades que tenga, es decir:
Informática
Inglés-Español
Tecnología
Inglés-Español
No se si me he explicado bien, y espero que me puedas ayudar.
Un saludo.
Respuesta
1
Con mucho gusto te ayudo. No me quedó muy claro que es lo que quieres pero creo entender cual es el problema.
Existe una propiedad llamada "Suprimir si se duplica" que se encuentra en la pestaña llamada "Común" de cada campo y hay que habilitarla para cada campo que desees con este efecto.
Si no es lo que te ocurre por favor dime como te muestra los datos el reporte, por ejemplo:
Traductor Lenguaje Especialidad
--------- -------- ------------
ABC Inglés-Español AAA
XYZ Inglés-Español BBB
Hola Marcos, muchas gracias por tu tiempo.
Lo que me comentas ya lo probé, precisamente lo leí en este foro, me funciona para las especialidades, el problema es para los lenguajes, ya que un traductor puede hablar a la vez, por ejemplo:
Inglés - Español
Francés - Español
Y por lo tanto deben repetirse.
Este es el código que utilizo para llamar al informe. Primero hago la consulta y luego se la paso, quizá lo que esté mal planteado es la consulta, porque sino otra cosa no se me ocurre.
consulta = "select nombre, descripcion, lenguaje_origen, lenguaje_destino "
consulta = consulta & "from Traductor T, Traductor_Lenguaje TL, "
consulta = consulta & "Traductor_Especialidad TE, Especialidad E "
consulta = consulta & "Where T.codigo_traductor = TE.codigo_traductor "
consulta = consulta & "and T.codigo_traductor = TL.codigo_traductor "
consulta = consulta & "and TE.codigo_especialidad = E.codigo_especialidad "
dim sql as Recordset
dim base as Database
(Aquí pondría la ruta de la base de datos)
Set sql = base.OpenRecordset(consulta)
Report.Database.SetDataSource sql
CRViewer1.ReportSource = Report
CRViewer1.Zoom (100)
CRViewer1.ViewReport
Las tablas de Access son + o - así (excluyendo los campos que ahora no nos interesan)
Traductor
codigo_traductor Autonumérico (Clave Primaria)
Nombre texto
...
Traductor_Lenguaje
codigo_linea Autonumérico (Clave primaria)
codigo_traductor numérico
lenguaje_origen texto
lenguaje_destino texto
...
Traductor_Especialidad
codigo_linea Autonumérico(clave_primaria)
codigo_traductor numerico
codigo_especialidad numerico
Especialidad
codigo_especialidad autonumérico(clave_primaria)
Descripción texto
He agrupado por nombre de traductor ya que quiero que me aparezcan los datos de cada traductor.
Los datos se me muestran de la siguiente manera:
Pepito el de los palotes (nombre)
----------------------------------
Economía y finanzas Español Italiano
Ruso Italiano
Inglés Italiano
Nuevas tecnologías Español Italiano
Ruso Italiano
Inglés Italiano
He intentado agrupar por especialidad o por idiomas, o por los dos, pero tampoco funciona (ya que una especialidad no contiene los idiomas, ni viceversa), quizá hago mal lo grupos o hay que utilizar alguna fórmula, pero yo de fórmulas no tengo ni idea, ya te dije que en esto del crystal soy una novata.
Espero que esto te sirva de ayuda para que puedas echarme una mano, la verdad es que me harías un gran favor, porque estoy bastante pez y lo necesito solucionar urgentemente.
Muchas gracias por prestarme tu tiempo.
Un saludo.
Primero una disculpa por la tardanza.
Puedes hacer una fórmula con la combinación de los campos del traductor y a esa fórmula establecerle la propiedad "Suprimir si se duplica"
Para hacer esto creas una nueva fórmula en el menú "Insertar > Campo de fórmula"
Luego concatenas los dos campos, por ejemplo
Que la fórmula se llame @Traductor
Y en su código tendría
{Traductor_Lenguaje.lenguaje_origen} + "-" + {Traductor_Destino.lenguaje_destino}
De esta manera se toma como una sola unidad y se duplican solo los que son diferentes.
Espero que te sirva, sino es así, dímelo y trataré de responderte lo antes posible

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas