$ls_apebene = $io_report->DS->data["apebene"][$li_i];
 $ls_nacben = $io_report->DS->data["nacben"][$li_i];
 $ls_cedbene = $io_report->DS->data["ced_bene"][$li_i];
 $ls_numpasben = $io_report->DS->data["numpasben"][$li_i];
 $ls_dirbene = $io_report->DS->data["dirbene"][$li_i];
 $ls_telbene = $io_report->DS->data["telbene"][$li_i];
 if ($ls_tipproben == "P") {
     $ls_codigo = $io_report->DS->data["cod_pro"][$li_i];
 } else {
     $ls_codigo = $io_report->DS->data["ced_bene"][$li_i];
 }
 $io_cabecera = $io_pdf->openObject();
 // Creamos el objeto cabecera
 uf_print_cabecera($ls_tipproben, $ls_nompro, $ls_nacpro, $ls_rifpro, $ls_nitpro, $ls_dirpro, $ls_telpro, $ls_nombene, $ls_apebene, $ls_nacben, $ls_cedbene, $ls_numpasben, $ls_dirbene, $ls_telbene, &$io_cabecera, &$io_pdf);
 // Imprimimos la cabecera del registro
 $lb_valido = $io_report->uf_arc_detalle($ls_codigo, $ls_tipproben);
 // Obtenemos el detalle del reporte
 if ($lb_valido) {
     $li_totrow_det = $io_report->ds_detalle->getRowCount("cod_pro");
     $li_totalacumulado = 0;
     $li_retencionacumulada = 0;
     for ($li_s = 1; $li_s <= $li_totrow_det; $li_s++) {
         $ls_fecha = substr($io_report->ds_detalle->data["fecemidoc"][$li_s], 8, 2);
         $ls_fecha = $ls_fecha . "    " . substr($io_report->ds_detalle->data["fecemidoc"][$li_s], 5, 2);
         $ls_fecha = $ls_fecha . "    " . substr($io_report->ds_detalle->data["fecemidoc"][$li_s], 0, 4);
         $li_montotdoc = number_format($io_report->ds_detalle->data["montotdoc"][$li_s], 2, ",", ".");
         $li_monobjret = number_format($io_report->ds_detalle->data["monobjret"][$li_s], 2, ",", ".");
         $li_porded = number_format($io_report->ds_detalle->data["porded"][$li_s], 2, ",", ".");
         $li_monret = number_format($io_report->ds_detalle->data["monret"][$li_s], 2, ",", ".");
         $li_total_pagado = $li_total_pagado + $io_report->ds_detalle->data["montotdoc"][$li_s];
         $li_total_retencion = $li_total_retencion + $io_report->ds_detalle->data["monobjret"][$li_s];