bueno pues he solucionado yo sola mi gran incognita

, lo unico que tube que hacer es tomar todos los datos del dataset, luego imprimo el codigo.
Aqui pongo el codigo y el resultado en pantalla, por si algun dia lo llegaran a necesitar.
case 14:
int a = 0; ;
Row = dsFormatosCaptura1.dtFormatosCaptura_Imprimir.NewR ow();
DIMCO.Comun.BusinessLayer.Util.controlInformes.car garFiltro(tDinamica, Convert.ToString(Program.IIdGanadera), (int)dsFormatosCaptura1.dtFormatosCaptura_Campos.R ows[i]["IdTipoCampo"], (int)dsFormatosCaptura1.dtFormatosCaptura_Campos.R ows[i]["IdFiltro"]);
for (int q = 0; q < tDinamica.Rows.Count; q++) //Columna
{
//Row["Respuesta"] = (q % 5 != 0) ? Row["Respuesta"] + " " + Convert.ToChar(850) + tDinamica.Rows[q]["Nombre"].ToString() : Row["Respuesta"] +""+ Convert.ToChar(10) + Convert.ToChar(13) + " " + Convert.ToChar(850) + tDinamica.Rows[q]["Nombre"].ToString();
Row["Respuesta"] = (q == 0) ? Row["Respuesta"] + " " + tDinamica.Rows[q]["Nombre"].ToString() : Row["Respuesta"] + " " + tDinamica.Rows[q]["Nombre"].ToString();
a++;
if (a % 10 == 0)
{
Row["Respuesta"] = Row["Respuesta"] + "" + Convert.ToChar(10) + Convert.ToChar(13) + " ";
for (a = 0; a < 10; a++)
{
Row["Respuesta"] = Row["Respuesta"] + " " + Convert.ToChar(850) + " ";
}
Row["Respuesta"] = Row["Respuesta"] + "" + Convert.ToChar(10) + Convert.ToChar(13);
}
}
Row["Orden"] = dsFormatosCaptura1.dtFormatosCaptura_Campos.Rows[i]["Orden"];
Row["Descripcion"] = dsFormatosCaptura1.dtFormatosCaptura_Campos.Rows[i]["Descripcion"];
Row["Renglon"] = p;
dsFormatosCaptura1.dtFormatosCaptura_Imprimir.Rows .Add(Row);
break;
en este caso estoy utilizando un for y dentro un switch
for (int i = 0; i < dsFormatosCaptura1.dtFormatosCaptura_Campos.Rows.C ount; i++)
{
switch (Convert.ToInt16(dsFormatosCaptura1.dtFormatosCapt ura_Campos.Rows[i]["IdTipoCampo"]))
{
dependiendo el tipo de dato que le de el usuario es lo que aparecera en el reporte.
bueno eso es todo.