crystal reports - tablas - Agregar una columna a un DataSet(xsd) para un Crystal Report
llenar reporte con dataset c# (2)
Después de varios días de excavar, y de encontrar mucha información que no fue útil, finalmente logré encontrar la respuesta a mi problema en una publicación de 2006 aquí:
http://sstjean.blogspot.com/2006/12/xsdexe-and-msdatasetgenerator-operate.html
Lo que hice para solucionar mi problema:
- Edite manualmente el archivo XSD en un editor de texto y agregue las columnas que necesitaba. Esto los hizo aparecer en mi XSD cuando se ven en Visual Studio.
- Ejecute la herramienta personalizada especificada para el XSD para regenerar el DataSet. En mi caso, era el MSDataSetGenerator. Esto apareció en la pestaña Propiedades en VS, y pude hacer clic con el botón derecho en XSD en el Explorador de soluciones y seleccionar Ejecutar herramienta personalizada.
- Abra mi archivo RPT y ejecute Verificar Databse. Esto finalmente indicó que la base de datos había cambiado y que estaba actualizando el informe, y ahora vi mi nuevo campo en el Diseñador de informes.
Estoy trabajando en un informe y necesito agregar una columna a uno de mis conjuntos de datos y al archivo RPT, pero cuando intento modificar el conjunto de datos, aparece el error de que la tabla especificada no existe. Cuando miro el código, parece que originalmente había una tabla utilizada para este propósito, pero este enfoque se ha abandonado, y ahora esto se está haciendo con un DataSet en el código que se adjunta al informe.
Mi problema es que necesito agregar esta nueva columna en el informe y parece que no puedo manejar los datos de manera que pueda arrastrar mi nuevo campo al informe porque no puedo encontrar la pieza necesaria. del DataSet porque no existe como lo hacía anteriormente, y en el código DataSet ahora toma su lugar.
¿Alguien por ahí capaz de señalarme en la dirección correcta para saber cómo hacer para que esto funcione?
ACTUALIZACIÓN: Esto es más o menos cómo mi conjunto de datos llega al Informe de Crystal
private Sub ShowReport()
Dim dsStatsForPlanned As DataSet = Nothing
dsStatsForPlanned = DirectCast(Session(CreateSessionKey()), DataSet)
plannedProductRpt.SetDataSource(dsStatsForPlanned)
End Sub
He agregado el campo adicional que necesito en el DataSet que viene de Session, pero estoy tratando de usar Designer para obtener este campo adicional en el informe, y cuando intento volver a generar o cambiar el origen de datos, Designer me dice que el la tabla no existe, presumiblemente porque esta tabla solo existe en la memoria y no vincula directamente a una tabla SQL.
Mi enfoque sería modificar los datos fuera de Crystal. Entonces, si eso significa cambiar su consulta o actualizar el .xsd, agregaría su columna allí. Luego, en Crystal Reports, debe ir a "Base de datos" en la barra de menú y seleccionar "Verificar base de datos" si su fuente de datos / ubicación no ha cambiado, o "Establecer ubicación de origen de datos" si lo ha hecho. Una vez que vuelva a verificar la fuente de datos, su nueva columna debería aparecer en los campos de la base de datos, y podrá arrastrarla a su informe.