Hola. Necesito conectarme a un Data Report y como no puedo meter un Ado en el Data Report no tengo idea de como decirle que campos pertenecen a cuales en una base de datos.
Alguien sabe algo???
| |||
Conexion a Data Report Hola. Necesito conectarme a un Data Report y como no puedo meter un Ado en el Data Report no tengo idea de como decirle que campos pertenecen a cuales en una base de datos. Alguien sabe algo??? |
| |||
Hola de nuevo. La verdad que me resulta un poco extraño este codigo (es que no soy muy bueno en esto). Segun tenia entendido al DataReport no se la puede asignar directamente un ADO por lo cual una persona me dijo que: En un formulario con un command Button conecte un ado con mi base de datos y luego en el evento click del boton pornga algo por el estilo: NombredelDataReport.DataSource = Formulario!Adodc1.RecordSource De esta manera supuestamente quedaria conectado y podria simplemente completar los DataFields del los Conroles de texto. Segun entiendo mas o menos es eso lo que haces en el ejemplo, Pero la verdad que no se si va en un formulario aparte o en el DataReport. (Por cierto, me hablaron del CrystalReport, sabes que es eso???? y, no pregunto de donde conseguirlo como pirata sio de donde se consigue en el sentido de si viene con el Visual o como??? No me malinterpreten por favor...) Gracias Pabli
__________________ http://blog.micayael.com |
| ||||
micayael, lo puedes hacer de las dos formas. Con un ADODC o con objetos ado a mano. Yo nunca utilizo ADODC. Dependiendo de con que quieras hacerlo yo te guío. Cita: Todo resulta extraño hasta que lo conocemos. No es dificil La verdad que me resulta un poco extraño este codigo (es que no soy muy bueno en esto) ![]() Con respecto a lo de crystal, tengo un ejemplo que he mandado a otro compañero del foro pero te aseguro que es algo más complicado que con datareport. La decisión es tuya... ![]() Saludos ![]() Pablo |
| |||
Gracia spor toda tu ayuda Pablo. La verdad que no se donde poner el codigo que me enviaste, y que significa el Gado_rec_tmp, es como una variable??? Lo pongo en el Datareport bajo que evento -------------------------------------------------------------------------------- 'Defino la consulta Gado_rec_tmp.Source = "SELECT campo1, campo2 FROM tabla" 'Abro el recordset Gado_rec_tmp.Open 'DATAREPORT 1 DataReport1.Sections("sec4").Controls("Etiqueta2") .Caption = "label1" DataReport1.Sections("sec4").Controls("Etiqueta3") .Caption = "label2" DataReport1.Sections("sec1").Controls("Texto0").Da taField = "campo1" DataReport1.Sections("sec1").Controls("Texto1").Da taField = "campo2" Set DataReport1.DataSource = Gado_rec_tmp DataReport1.Show -------------------------------------------------------------------------------- |
| ||||
micayael, este es código completo, revísalo y lo que no vayas entendiendo me escribes. Utilizamos este post para todas las dudas. ![]()
Código:
Option Explicit Dim cnn1 As ADODB.Connection Dim rstEmployees As ADODB.Recordset Private Sub Command1_Click() If rstEmployees.State = adStateOpen Then 'Cerramos antes de volver a abrir rstEmployees.Close End If 'Configuramos la query rstEmployees.Source = "SELECT campo1, campo2 FROM tabla" rstEmployees.Open '*********************************************************************** 'DATAREPORT 1 '*********************************************************************** 'Damos nombre a las columnas que en realidad son labels DataReport1.Sections("sec4").Controls("Etiqueta2").Caption = "nombre_columna1" DataReport1.Sections("sec4").Controls("Etiqueta3").Caption = "nombre_columna2" 'Le damos una referencia en los textbox de la sección detalle(que en este caso se llama sec1) 'a los campos de la SELECT definida anteriormente, en el momento que asignemos el recordset 'al datareport, éste(el datareport) sabrá de que campos coger la información DataReport1.Sections("sec1").Controls("Texto0").DataField = "campo1" DataReport1.Sections("sec1").Controls("Texto1").DataField = "campo2" Set DataReport1.DataSource = rstEmployees DataReport1.Show '*********************************************************************** 'No cerramos el recordset porque se irán los datos del report End Sub Private Sub Form_Load() Dim strCnn As String ' Abre una conexión. strCnn = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " Set cnn1 = New ADODB.Connection cnn1.Open strCnn ' Configura el recordset Set rstEmployees = New ADODB.Recordset rstEmployees.ActiveConnection = cnn1 rstEmployees.CursorType = adOpenKeyset rstEmployees.LockType = adLockOptimistic End Sub Private Sub Form_Unload(Cancel As Integer) 'Cierra y libera memoria rstEmployees.Close Set rstEmployees = Nothing cnn1.Close Set cnn1 = Nothing End Sub |
| |||
hola pabli. Gracias hombre ya funca. Eres un genio. un abrazo
__________________ http://blog.micayael.com |
| ||||
Hola, micayael acabo de ver este post y la verdad que quiero hacer algo parecido pero tp me sale (puse un post, aunke acabo de ver este :S). Alguien me podria decir que hacen estas lineas??
Código:
DataReport1.Sections("sec4").Controls("Etiqueta2").Caption = "label1" |
| ||||
claro sowhat, -DataReport1.Sections("sec4") hace mención a una sección del datareport, hay 5, que se pueden llamar como tú quieras, en este caso "sec4" -Controls("Etiqueta2") de la colección controls de una sección, voy a trabajar con con un control que se llama "Etiqueta2", si no existe, ERROR -.Caption = "label1" escribo un texto en el control, pues se trata de un label. Todo esto en tiempo de ejecución, lo puedes hacer en diseño, pero si necesitas cambiar el texto dependiendo de alguna condición, lo tendrás que hacer así... ![]() Saludos Pablo |
| ||||
Muchas gracias pabli, ya esta todo controlado. Si tienes un segundo, una preguntilla En el datareport tengo un encabezado de informe, encabezado de pagina y el detalle. Todo bien, pero si da la casualidad de que todos los detalles del registro (los registros) ocupan una hoja exacta, me sale en la siguiente hoja el encabezado de pagina(sin detalle) por lo que estropea una hoja de impresion (suponiendo ke se imprima todo)para nada. Sabes como puedo solucionarlo?? Saludos! |
| ||||
Pues mira, el Datareport no es muy potente, pero algunas veces aunque lo fuera no podremos hacer nada. -Si el detalle no es fijo, puede variar, tan pronto tiene 20 registros como 25 y mañana 33, nada podrás hacer. -Si es fijo, o sea que sabes que te va ocupar exactamente una hoja, ajusta todo lo que puedas el encabezado/pie de informe y página, el detalle, el alto de los label y textbox, etc, hasta que te quepa. Poco más te puedo decir. Saludos ![]() Pablo |
| ||||
Vaya, el detalle es fijo, da la casualidad de que al hacer una consulta d una tabla tendra x registros que es cuando pasa eso, cambiare un poco d tamaño el detalle a ver si con suerte sale menos. Gracias! |
| |||
![]() Buenos dias: Leyendo este post he visto cosas interesantes y que son tal cual las estoy programando en un proyecto que necesito hacer para el "curro". Pero tengo una duda y es la siguiente: La linea de codigo: DataReport1.Sections(1).Controls(i + 1).DataField = (List2.List(i)) me da un error de que el control no admite esa propiedad o metodo (datafield) y no consigo saber xq es. Ya he visto que ustedes han utilizado tb esa misma linea de codigo y les ha funcionado. A ver si me pueden hechar una mano para conseguir sacarlo. Muchas gracias ![]() |
| ||||
¿Que quieres hacer con esa linea? Yo tengo por ej: DataReport1.Sections("sec4").Controls("modelo").Ca ption = rst.Fields("modelo").Value La seccion4(encabezado), control modelo(un label).caption igual al valor del registro del campo modelo (en este caso me da igual ke registro sea pq son todos con el mismo valor). Has añadido la referencia de microsoft activex daba objects 2.6 y todo eso,no? |
| |||
Sigo sin resolver mi duda Pues lo que intento hacer es asignar la propiedad datafield de un rpttextbox del datareport llamado texto1 a un valor que tengo en una lista de mi formulario, al igual que tu asignas el caption en el ejemplo que me as puesto. Si estan agregadas todas las librerias y componentes necesarios. Bueno a ver si alguien mas sabe responder a mi duda xq me estoy comiendo la cabeza y necesito sacarlo. |
| |||
Ayuda con el datareport Hola necesito ayuda con el datareport, estoy haciendo un progrma de facturacion y tengo el siguiente problema, necesito que en la seccion donde van los articulos sea siempre del mismo tamaño aunque sean 1 o 10 articulos para que en la seccion donde va el total este siempre en el mismo lugar, si no me explico muy bien preguntenme por favor, me urge solucionar este problema, de antemano gracias. Tonov ![]() |