FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Relacionar datos.
Hola os cuento lo k me ocurre, tengo un formPrincipal con varios DBText y cada uno relacionado a un campo de una bd, y en otro FormFicha algunos TEdit buneo el problema viene cuando intento relacionar los datos al Imprimir, me imprimeel formficha pero solo los label que tiene y los edit pero los edit sin nada de datos, la forma en k lo hago es la siguiente en el Unit1 correspondiente al boton k le he agregado para imprimir puse lo siguiente.
procedure TForm1.ToolButton4Click(Sender: TObject); begin FormImpresion.Edit1.Text:=Form1.DBText1.DataField; FormImpresion.Edit2.Text:=Form1.DBText2.DataField; FormImpresion.Edit3.Text:=Form1.DBText3.DataField; FormImpresion.Edit4.Text:=Form1.DBText4.DataField; FormImpresion.Print; end; se que se me escapa algun dato pero no se cual es, o por el contrario se hace de otra forma?? Bueno lo iba a postear en el subforo de impresion pero el problema es mas de relacionar datos ya que si k me imprime. Saludos. |
#2
|
|||
|
|||
Prueba esto:
FormImpresion.Edit1.Text := TEdit(Form1.DBText1).Text; (casteamos un TDBEdit a un TEdit puesto que tiene igualmente una propiedad Text, que es el texto que ve el usuario, aunque no lo tenga como propiedad pública). o bien: FormImpresion.Edit1.Text := Form1.DBText1.Field.AsString; (accedemos a la propiedad Field propia de cualuier control DBAware, aunque este código que te pongo es peligroso, pues Field podría ser nil - se puede hacer la comprobación previa). Lo de usar la propiedad DataField no te servía porque esa propiedad indica el nombre del campo al que accedes, no su valor.
__________________
Guía de Estilo |
#3
|
|||
|
|||
Hola Andres he probado las dos formas que me has posteado pero sigo igual, sigue imprimiendo pero sin los datos en los TEdit.
Gracias dtf. saludos |
#4
|
|||
|
|||
Pues ahora mismo no se me ocurre lo que pueda ser. En realidad imaginé que el problema iba por ahí, pero en cualquier caso te tendría que haber imprimido los TEdits aunque mostrando el nombre del campo (DataField), así que el error debe ir por otro sitio.
A propósito, buena manera de hacer un informe de forma rápida, estoy seguro de que esa idea la tuvo el creador de QuickReports antes de desarrollar su producto, que se basa precisamente en poner controles sobre un formulario Delphi.
__________________
Guía de Estilo |
#5
|
|||
|
|||
y digo yo, en lugar de utilizar el metodo print de la clase TForm, porque no utilizas el QuickReport? Quizas te seria mas facil
Por otro lado, has comprobado (en debug) que tengas valores? Otra forma de acceder a los valores del Dataset sabiendo el TDBEdit seria Código:
DBEdit1.DataSource.Dataset.FieldByName('MyField').Value; |
|
|
|