No se como estés cargando el grid, pero yo tenia ese problema, necesitaba sacar los datos de un grid para acomodarlos a placer y todo sin pasar por el data report. Descgraciadamente esto implica un poco de código, Lo primero que hice fue hacer una rutina para que me cargara el drig y llevaba un contador de cual era el numro de row. Que lleva Ya que definía eso, use el objeto printer Y hacia un bucle para mandar los datos que quería a la impres, regularmetne un for, for i = q to contador y dentro pongo lo que dese que se imprima con el objeto printer Datagrid1.Row = i datagir1.col = 1 Printer. Print datagrid1.text Adonde me va a imprimir el contenido de la ubicación de l celda de la linea1, columna 1, y así sucesivamente recorría las columnas datagrid1.col = 2 printer. Print datagrid1.text hasta que se completaba el ciclo y recorría todas la lineas(rows) Y para el objeto printer solo una reconecdacion Así cambias el font Printer.font = "Arial" Asi negritas printer.fontbold = true tamaño Printer.Fontsize = 21 Y así sucesivamnte eso del objeto printer lo encuentras en el msdn para que sepas todas las propiedades y al final y fuera del next printer. Enddoc Y si quieres imprimir columnas lo tienes que hacer en base al numero de tabulación en la impresora Printer. Print, tab(1), nombre Printer. Print, tab(10), Apellido Etc. Espero te sea de ayuda esto, de todos modos para comentarios, dudas o reclamaciones no dudes en decírmelas
No me podes mandar el código de como imprimiste el datagrid Gracias.
Dim acarreador(1 To 10) As String Printer.FontName = "arial" Printer.FontSize = 8 Printer.Print , Tab(2); "CLAVE"; Tab(13); " DESCRIPCION"; Tab(55); "PREC/PZ"; Tab(65); "DESC 1"; Tab(75); "DESC 2"; Tab(85); "DESC 3"; Tab(95); "DEPTO"; Tab(105); "PZ/CAJA"; For i = 1 To Contador'de linea With MSFlexGrid1 .Row = i .Col = 0 acarreador(1) = .Text .Col = 1 acarreador(2) = .Text .Col = 2 acarreador(3) = .Text .Col = 3 acarreador(4) = .Text .Col = 4 acarreador(5) = .Text Printer.Print .Col = 5 acarreador(6) = .Text .Col = 6 acarreador(7) = .Text .Col = 7 acarreador(8) = .Text End With Printer.Print , Tab(2); acarreador(1); Tab(13); acarreador(2); Tab(55); acarreador(3); Tab(65); acarreador(4); Tab(75); acarreador(5); Tab(85); acarreador(6); Tab(95); acarreador(7); Tab(105); acarreador(8); Printer.Line (1, Printer.CurrentY)-(10000, Printer.CurrentY) Next Printer. EndDoc Todo el código de aariva solo márcalo, cópialo y pégalo para que veas las lineas como devén de ir y lo puedas analizar, todo va en referencia a lo que te escrvi anteriormente Espero te sea de ayuda esto, de todos modos para comentarios, dudas o reclamaciones no dudes en decírmelas