// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Reporte:     Clientes que Atiende el Agente       
//
// Sistema:     ADMINPAQ  Versión v1.0 Windows
//
// Descripcion: 
// 
// 
// Consideraciones :
// Revisiones : Fernando Gonzalez      23/septiembre/2002 
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// INCLUSION DE ARCHIVOS
      Incluye LibAdminPaq.rpt


// INICIO PARAMETROS
    Parametro pAgenteInicial = ' '
    Parametro pAgenteFinal = ' '
    Parametro pInformacion = '1,2,3,4,5,6' //1Datos Generales 2Condiciones de Crédito 3Datos de Envío 4Impuestos Retenciones y Agentes
                                           //5Direccion Fiscal 6Direccion de Envio
    Parametro pTipoAgente = 0    //Todos.- 0, Venta .- 1, Venta/Cobro .- 2, Cobro .- 3
    Parametro pEstadoAgente = 0  // Todos.- 0, Activos .- 1, Inactivos .-2
    Parametro pIdClase1   = ''
    Parametro pIdClase2   = 0
    Parametro pIdClase3   = 0
    Parametro pIdClase4   = 0 
    Parametro pIdClase5   = 0   
    Parametro pIdClase6   = 0

// INICIO APERTURA TABLAS

  UsaEmpresa tEmpresa;'AdminpaqW'

   // Parametros de la empresa
  UsaTabla tParametros = tEmpresa['mgw10000']                    

  //Clientes
  UsaTabla tClientes = tEmpresa['mgw10002']
  tClientes.Usaindice['']

  //Agentes
  UsaTabla tAgentes = tEmpresa['mgw10001']
  tAgentes.Usaindice['iCodigoTipo']

  //Almacenes
  UsaTabla tAlmacenes = tEmpresa['mgw10003']
  tAlmacenes.Usaindice['']

  //Direcciones
  UsaTabla tDirecciones = tEmpresa['mgw10011']
  tDirecciones.Usaindice['iCatTipoCatTipoDir']

  //Clasificaciones
  UsaTabla tClasificaciones = tEmpresa['mgw10020']
  tClasificaciones.Usaindice['']

  //Monedas
  UsaTabla tMonedas = tEmpresa['mgw10034']          
  tMonedas.Usaindice['']                     // Usa el índice primario, por cIdMoneda

  tParametros.Busca Primero   



//DEFINICION DE COLUMNAS 

  Columnas 20;2.7,0.15,5.55,0.15,1.5,0.15,0.9,0.15, 0,0 ,1.65,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0

  UsaLetra 'Arial'
  Altura 9 
//  [C0..C7].Decimales 0
//  [C0..C7].Blanco ' '
  gDecimales = 2
//  [C8..C14].Coma
//  [C8..C14].Decimales gDecimales
//  [C8..C14].Blanco '0.00'
//  [c9,c11,c13,c15..c19].Blanco ' '

//VARIABLES GLOBALES 
  
  gDelaFecha = ''
  gAlaFecha  = ''
  gRenglon = '' 
  gMoneda = ''
  vTipoAcumulado = 0
  vImporteModelo  =  0
  vIdEjercicio = 0
  gNombreMoneda = tMonedas(cNombreMoneda)
 
  kMeses = 'Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic'[C0]


  gDelaFecha = @str(pMes;0) 
  Mientras @len(gDelaFecha)<2
     gDelaFecha   = '0' & gDelaFecha 
  FinMientras
  gDelaFecha = @str(pEjercicio;0) &   gDelaFecha & '02'
//FUNCIONES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//***********************************************************************************************
//	EditaFec
// Descripcion: Esta función recibe una fecha con formato ddmmaaaa y la convierte a formato
//	dd/mmm/aaaa
// Entradas :  Fecha : contiene la fecha AAAAMMDD
// Salida :    regresa una cadena con la fecha en formato DD/MMM/AAAA
// Autor :     FBCS junio 2001
//***********************************************************************************************
DefFunc fEditaFecha(aFecha)
   Local lMes
   Local lRegreso

	lMes = @INT(@SubStr(aFecha;4;2))
	lRegreso[0] = @SubStr(aFecha;6;2) & '/' & @Escoge(kMeses;lMes-1) & '/' & @SubStr(aFecha;0;4)
   Retorna lRegreso
FinFunc

//***********************************************************************************************
// fMascaraDias()
//    Esta función recibe un campo numérico, que en una representación binaria de siete digitos
//    indica ciertos días de la semana, según el digito que esté prendido, estos pueden ser
//    1111111 - Dom Sab Vie Jue Mie Mar Lun
//***********************************************************************************************
Deffunc fMascaraDias(aValor)
  Local lDias,lGuion

  // solo nos interesan los 7 bits mas a la derecha
  
  lGuion = ''    
  lDias = ''
  Si aValor%2 = 1       // Un numero non = bit menos significativo encendido
    lDias = lGuion&'L'
    lGuion = '-'
  Finsi
  Si aValor%4 >= 2      // Valor Entre 1y4 = Segundo bit menos significativo encendido
    lDias = lDias & lGuion & 'M'
    lGuion = '-'
  Finsi
  Si aValor%8 >= 4      // Valor Entre 8y4 = Tercer bit menos significativo encendido
    lDias = lDias & lGuion & 'Mi'
    lGuion = '-'
  Finsi
  Si aValor%16 >= 8     // Valor Entre 16y8 = Cuarto bit menos significativo encendido
    lDias = lDias & lGuion & 'J'
    lGuion = '-'
  Finsi
  Si aValor%32 >= 16
    lDias = lDias & lGuion & 'V'
    lGuion = '-'
  Finsi  
  Si aValor%64 >= 32
    lDias = lDias & lGuion & 'S'
    lGuion = '-'
  Finsi  
  Si aValor%128>= 64
    lDias = lDias & lGuion & 'D'
    lGuion = '-'
  Finsi  

  Retorna lDias
FinFunc





//////////////////////////////////////////////////////////////////////////////////
//ENCABEZADO 
  Encab



    Texto '@TC{255,0,0}@S{8}AdminPAQ' 
 	 Hoja '"@TC{0,0,0}@S{8}Página: '
    Imprime

    Texto '^@TC{0,0,0}@S{22}' & tEmpresa->Nombre
    Texto '"@TC{0,0,0}@S{8}Fecha: ' & fEditaFecha(@Hoy())
    Imprime

    Texto '^@TC{0,0,0}@S{16}' & 'CLIENTES QUE ATIENDE'
    Imprime

    Texto '^@TC{0,0,0}@S{16}' & 'ORDENADO POR CODIGO'

    Texto '"@TC{0,0,0}@S{8}Hora: ' & @Hora()
    Imprime

    // ===== Se Revisan las clasificaciones, para recuperarlas e imprimirlas en el encabezado
    fRevisaClases(tClasificaciones)
    // ===== Fin de la revision de clasificaciones



    NEGRITAS TRUE
    Altura 10
    Texto '@TC{0,0,0}@L{-1}'
    Imprime 

  
    //Código         Nombre(Cliente)                       RFC             Descuento  Lista Precios  Moneda                
    Columnas 20;2.25,0.15,6,0.15,2.55,0.15,1.8,0.15,2.4,0.15,2.85,0.15,0
    Texto ''
    Texto C0;'Código'
    Texto C2;'Nombre (Cliente)'
    Texto c4;'RFC' 
    Texto c6;'Descuento' 
    Texto c8;'Lista Precios'
    Texto c10;'Moneda'
    Imprime   

    Texto '@TC{0,0,0}@L{-1}'
	 Imprime 
   Si @pos(@col(pInformacion;0);'1') != -1     
    //               Representante Legal                   CURP                       Denominación Comercial           
    Columnas 20;2.4,0.15,5.85,0.15,4.5,0.15,5.4,0.15,0
    Texto ''
    Texto C2;'Representante Legal'
    Texto c4;'CURP' 
    Texto c6;'Denominación Comercial' 
    Imprime   

    Texto '@TC{0,0,0}@L{-1}'
	 Imprime 
   Finsi
   Si @pos(@col(pInformacion;0);'2') != -1     
    //                 C R E D I T O         PRONTO PAGO         
    Columnas 20;2.7,0.15,3,0.15,3.45,0.15,0
    Texto ''
    Texto C2;'C R E D I T O'
    Texto c4;'PRONTO PAGO' 
    Imprime   

    //               Límite        Días     Descuento Días Días Pago                  Días Revisión  Interes Moratorio 
    Columnas 20;2.4,0.15,1.5,0.15,1.65,0.15,1.5,0.15,0.75,0.15,4.5,0.15,2.4,0.15,2.85,0.15,0
    Texto ''
    Texto C2;'Límite'
    Texto c4;'Días' 
    Texto c6;'Descuento' 
    Texto c8;'Días' 
    Texto c10;'Días Pago'
    Texto c12;'Días Revisión'
    Texto c14;'Interes Moratorio'
    Imprime   

    Texto '@TC{0,0,0}@L{-1}'
	 Imprime 

   Finsi
   Si @pos(@col(pInformacion;0);'3') != -1     

    //               Mensajería      Número de Cuenta      Días de Embarque           Almacén de Consignación          
    Columnas 20;2.4,0.15,2.55,0.15,3.15,0.15,4.5,0.15,5.4,0.15,0
    Texto ''
    Texto C2;'Mensajería'
    Texto c4;'Número de Cuenta'      
    Texto c6;'Días de Embarque' 
    Texto c8;'Almacén de Consignación'
    Imprime   

    Texto '@TC{0,0,0}@L{-1}'
	 Imprime 
   Finsi
   Si @pos(@col(pInformacion;0);'4') != -1     
 
//               Impuesto 1  Impuesto 2  Impuesto 3    Retención 1  Retención 2   Agente de Venta  Agente de Cobro
    Columnas 20;2.4,0.15,1.8,0.15,1.8,0.15,1.95 ,0.15,2.1,0.15,2.25,0.15,2.7,0.3,2.4,0.15,0
    Texto ''
    Texto C2;'Impuesto 1'
    Texto c4;'Impuesto 2'      
    Texto c6;'Impuesto 3' 
    Texto c8;'Retención 1'
    Texto c10;'Retención 2'
    Texto c12;'Agente de Venta'
    Texto c14;'Agente de Cobro'
    Imprime   

    Texto '@TC{0,0,0}@L{-1}'
	 Imprime 
   Finsi


  Si @pos(@col(pInformacion;0);'5') != -1  

    //Código         Nombre (Cliente)                      Teléfono 1   Teléfono 2  Correo Electrónico   
    Columnas 20;2.25,0.15,6,0.15,2.1,0.15,2.1,0.15,3.3,0.15,2.85,0
    Texto ''
    Texto C2;'DOMICLIO FISCAL'
    Imprime
    Texto ''
    //Texto C0;'Código'
    //Texto C2;'Nombre (Cliente)'
    Texto c4;'Teléfono 1'      
    Texto c6;'Teléfono 2' 
    Texto c8;'Correo Electrónico'
    Imprime       
    //                                                     Teléfono 2   Teléfono 3  WEB
    Columnas 20;8.4,0.15,2.1,0.15,2.1,0.15,6.15,0.15,0
    Texto ''
    Texto c2;'Teléfono 3'      
    Texto c4;'Teléfono 4' 
    Texto c6;'WEB'
    Imprime   
    //               Calle                    Núm.Ext Núm.Int Colonia                   C.P.  Ciudad     Estado     País					  
    Columnas 20;2.4,0.15,3.9,0.15,1.35,0.15,1.35,0.15,3,0.15,0.75,0.15,1.8,0.15,1.8,0.15,1.65,0.15,0               
    Texto ''
    Texto C2;'Calle'
    Texto c4;'Núm.Ext'      
    Texto c6;'Núm.Int' 
    Texto c8;'Colonia'
    Texto c10;'C.P.'
    Texto c12;'Ciudad'
    Texto c14;'Estado'
    Texto c16;'País'
    Imprime   
  Finsi


  Si @pos(@col(pInformacion;0);'6') != -1  

    //Código         Nombre (Cliente)                      Teléfono 1   Teléfono 2  Correo Electrónico   
    Columnas 20;2.25,0.15,6,0.15,2.1,0.15,2.1,0.15,3.3,0.15,2.85,0
    Texto ''
    Texto C2;'DIRECCION DE ENVIO'
    Imprime
    Texto ''
    //Texto C0;'Código'
    //Texto C2;'Nombre (Cliente)'
    Texto c4;'Teléfono 1'      
    Texto c6;'Teléfono 2' 
    Texto c8;'Retención'
    Imprime       
    //                                                     Teléfono 2   Teléfono 3  WEB
    Columnas 20;8.4,0.15,2.1,0.15,2.1,0.15,6.15,0.15,0
    Texto ''
    Texto c2;'Teléfono 3'      
    Texto c4;'Teléfono 4' 
    Texto c6;'WEB'
    Imprime   
    //               Calle                    Núm.Ext Núm.Int Colonia                   C.P.  Ciudad     Estado     País					  
    Columnas 20;2.4,0.15,3.9,0.15,1.35,0.15,1.35,0.15,3,0.15,0.75,0.15,1.8,0.15,1.8,0.15,1.65,0.15,0               
    Texto ''
    Texto C2;'Calle'
    Texto c4;'Núm.Ext'      
    Texto c6;'Núm.Int' 
    Texto c8;'Colonia'
    Texto c10;'C.P.'
    Texto c12;'Ciudad'
    Texto c14;'Estado'
    Texto c16;'País'
    Imprime
  Finsi

  Texto '@TC{0,0,0}@L{-1}'
  Imprime




    NEGRITAS FALSE
    Altura 10
  FinEncab

//PRINCIPAL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  gRenglon = ''
  gEstatus = 0

  Si pAgenteInicial = ' '
    tAgentes.Busca Primero
    pAgenteInicial = tAgentes(cCodigoAgente)
  Finsi

  Si pAgenteFinal = ' '
    tAgentes.Busca Ultimo
    pAgenteFinal =  tAgentes(cCodigoAgente)
  Finsi

  Mientras [tAgentes.Busca[pAgenteInicial & '..'  & pAgenteFinal ]; tAgentes->Encontro ; tAgentes.Busca Siguiente[1]]

    Si tAgentes(cIdAgente)= 0
     Continua
    Finsi
	
    Si pEstadoAgente = 1  //	0 = Todos     1 = Agentes Activos     2 = Agentes Inactivos
     gEstatus = tAgentes(cComisionVentaAgente) + tAgentes(cComisionCobroAgente)
     Si gEstatus <= 0
       Continua
     Finsi
    Finsi
    Si pEstadoAgente = 2  //	0 = Todos     1 = Agentes Activos     2 = Agentes Inactivos
     gEstatus = tAgentes(cComisionVentaAgente) + tAgentes(cComisionCobroAgente)
     Si gEstatus > 0
       Continua
     Finsi
    Finsi

    Si  pTipoAgente !=0 Y tAgentes(cTipoAgente) != pTipoAgente //Todos.- 0, Venta .- 1, Venta/Cobro .- 2, Cobro .- 3
      Continua
    FinSi


    // Se Revisan las CLASIFICACIONES, solo en el caso de haber seleccionado al menos una
    Si gNumDeClases > 0
      lQueTipo = 3
      Si !fMiembroDeUnaClase( tAgentes   ;gNumDeClases;gListIdDeClases;lQueTipo)
         // Se salta el agente actual, por no pertenecer a alguna de las clasificaciones
         Continua
      Finsi
    Finsi

    lCiclo = 1
    
    NEGRITAS TRUE
    ///Imprimir datos del agente
    Columnas 5;2.25,0.15,6,0.15,6
    Texto C0;'Código'
    Texto C2;'Nombre (Agente)'
    Texto c4;'Tipo' 
    Imprime   
    Texto C0;tAgentes(cCodigoAgente)
    Texto C2;tAgentes(cNombreAgente)
    Si tAgentes(cTipoAgente) = 1
      Texto C4;'Venta'
      Imprime
    FinSi
    Si tAgentes(cTipoAgente) = 2
      Texto C4;'Venta/Cobro'
      Imprime
    FinSi
    Si tAgentes(cTipoAgente) = 3
      Texto C4;'Cobro'
      Imprime
    FinSi
    Texto '@TC{0,0,0}@L{-1}'
    Imprime 
    NEGRITAS FALSE

    Mientras lCiclo <= 2
      Texto ''
      Imprime 
      Si lCiclo = 1
        tClientes.UsaIndice['cIdAgenteVenta']
        tClientes.Busca[@str(tAgentes(cIdAgente);0)]
        Si tClientes->Encontro
          //Poner Titulo Clientes para los que es agente de venta
          Texto 'Clientes en donde el Agente es de Venta'
          Imprime 
          Texto '@TC{0,0,0}@L{-1}'
          Imprime
        FinSi 
      Sino
        tClientes.UsaIndice['cIdAgenteCobro']
        tClientes.Busca[@str(tAgentes(cIdAgente);0)]
        Si tClientes->Encontro
          //Poner Titulo Clientes para los que es agente de venta
          Texto 'Clientes en donde el Agente es de Cobro'
          Imprime 
          Texto '@TC{0,0,0}@L{-1}'
          Imprime
        FinSi 
      FinSi

      Mientras [tClientes.Busca[@str(tAgentes(cIdAgente);0)];tClientes->Encontro ; tClientes.Busca Siguiente[1]]
        hayregistro= 0


        //codigo
        Columnas 20;2.25,0.15,6,0.15,2.55,0.15,1.8,0.15,2.4,0.15,2.85,0.15,0
        gRenglon = fMascarilla(tClientes(cCodigoCliente);tParametros(cMascarillaClientes))[c0]
        gRenglon = tClientes(cRazonSocial)[c2]
        gRenglon = fMascarilla(tClientes(cRFC);tParametros(cMascarillaRFC))[c4]
        gRenglon = '^'& @str(tClientes(cDescuentoMovto);2) & ' %'[c6]

        //* Lista de Precios 
        gRenglon = tClientes(cListaPrecioCliente)[c8]

        tMonedas.Busca[@Str(tClientes(cIdMoneda);0)]
        Si tMonedas->encontro
          gRenglon = tMonedas(cNombreMoneda)[c10]
        Finsi
        imprime  gRenglon
        gRenglon = ''


         Si @pos(@col(pInformacion;0);'1') != -1

          //               Representante Legal                   CURP                       Denominación Comercial
          Columnas 20;2.4,0.15,5.85,0.15,4.5,0.15,5.4,0.15,0
          gRenglon = tClientes(cRepLegal)[c2]
          gRenglon = fMascarilla(tClientes(cCURP);tParametros(cMascarillaCURP))[c4]
          gRenglon = tClientes(cDenComercial)[c6]
          imprime  gRenglon
          gRenglon = ''
          hayregistro =1
         Finsi

         Si @pos(@col(pInformacion;0);'2') != -1

          //               Límite        Días     Descuento Días Días Pago                  Días Revisión  Interes Moratorio
          Columnas 20;2.4,0.15,1.5,0.15,1.65,0.15,1.5,0.15,0.75,0.15,4.5,0.15,2.4,0.15,2.85,0.15,0
          gRenglon = tClientes(cLimiteCreditoCliente)[c2]
          gRenglon = tClientes(cDiasCreditoCliente)[c4]
          gRenglon = tClientes(cDescuentoProntoPago)[c6]
          gRenglon = tClientes(cDiasProntoPago)[c8]
          gRenglon = fMascaraDias(tClientes(cDiaPago))[c10]
          gRenglon = fMascaraDias(tClientes(cDiasRevision))[c12]
          gRenglon = '^'& @str(tClientes(cInteresMoratorio);2) & ' %'[c14]
          imprime  gRenglon
          gRenglon = ''
          hayregistro =1
         Finsi

         Si @pos(@col(pInformacion;0);'3') != -1

          //               Mensajería      Número de Cuenta      Días de Embarque           Almacén de Consignación
          Columnas 20;2.4,0.15,2.55,0.15,3.15,0.15,4.5,0.15,5.4,0.15,0

          gRenglon = tClientes(cMensajeria)[c2]
          gRenglon = tClientes(cCuentaMensajeria)[c4]
          gRenglon = fMascaraDias(tClientes(cDiasEmbarqueCliente))[c6]
          tAlmacenes.Busca[@Str(tClientes(cIdAlmacen);0)]
          Si tAlmacenes->encontro
            gRenglon = tAlmacenes(cNombreAlmacen)[c8]
          Finsi
          imprime  gRenglon
          gRenglon = ''
          hayregistro =1
         Finsi

         Si @pos(@col(pInformacion;0);'4') != -1

          //               Impuesto 1  Impuesto 2  Impuesto 3    Retención 1  Retención 2   Agente de Venta  Agente de Cobro
          Columnas 20;2.4,0.15,1.8,0.15,1.8,0.15,1.95 ,0.15,2.1,0.15,2.25,0.15,2.7,0.3,2.4,0.15,0

          gRenglon = '^'& @str(tClientes(cImpuesto1);2) & ' %'[c2]
          gRenglon = '^'& @str(tClientes(cImpuesto2);2) & ' %'[c4]
          gRenglon = '^'& @str(tClientes(cImpuesto3);2) & ' %'[c6]
          gRenglon = '^'& @str(tClientes(cRetencionCliente1);2) & ' %'[c8]
          gRenglon = '^'& @str(tClientes(cRetencionCliente2);2) & ' %'[c10]
          imprime  gRenglon
          gRenglon = ''
          hayregistro =1
         Finsi

         si hayregistro = 1
           texto ' '
           imprime
         finsi

         Si @pos(@col(pInformacion;0);'5') != -1

           //Código         Nombre (Cliente)                      Teléfono 1   Teléfono 2  Correo Electrónico
           Columnas 20;2.25,0.15,6,0.15,2.1,0.15,2.1,0.15,3.3,0.15,2.85,0

           //gRenglon = fMascarilla(tClientes(cCodigoCliente);tParametros(cMascarillaClientes))[c0]
           //gRenglon = tClientes(cRazonSocial)[c2]

           tDirecciones.busca[@str(tClientes(cidClienteProveedor);0)&':1:0']
           Si tDirecciones->encontro
             gRenglon = @str(tDirecciones(cTelefono1);0)[c4]
             gRenglon = @str(tDirecciones(cTelefono2);0)[c6]


             vcont = 0[c0]
             vtemporal = @str(tDirecciones(cEmail);0)[c0]
             vtemporal2 = ''
             Mientras @col(vcont;0) < @len(@str(@col(vtemporal;0);0))
               Si  @substr(@col(vtemporal;0);@col(vcont;0);1) = '@'
                 vtemporal2 = @col(vtemporal2;0) & ''
               Sino
                 vtemporal2 = @col(vtemporal2;0) & @substr(@col(vtemporal;0);@col(vcont;0);1)
               Finsi
               vcont=@col(vcont;0) +1[c0]
             Finmientras
             gRenglon =  @col(vtemporal2;0)[c8]
             Imprime

             imprime  gRenglon
             gRenglon = ''
             //!                                                     Teléfono 2   Teléfono 3  WEB
             Columnas 20;8.4,0.15,2.1,0.15,2.1,0.15,6.15,0.15,0
             gRenglon = @str(tDirecciones(cTelefono3);0)[c2]
             gRenglon = @str(tDirecciones(cTelefono4);0)[c4]
             gRenglon = 'WEB:'& tDirecciones(cDireccionWeb)[c6]
             imprime  gRenglon
             gRenglon = ''
             hayregistro =1
             //               Calle                    Núm.Ext Núm.Int Colonia                   C.P.  Ciudad     Estado     País
             Columnas 20;2.4,0.15,3.9,0.15,1.35,0.15,1.35,0.15,3,0.15,0.75,0.15,1.8,0.15,1.8,0.15,1.65,0.15,0

             gRenglon = tDirecciones(cNombreCalle)[c2]
             gRenglon = tDirecciones(cNumeroExterior)[c4]
             gRenglon = tDirecciones(cNumeroInterior)[c6]
             gRenglon = tDirecciones(cColonia)[c8]
             gRenglon = tDirecciones(cCodigoPostal)[c10]
             gRenglon = tDirecciones(cCiudad)[c12]
             gRenglon = tDirecciones(cEstado)[c14]
             gRenglon = tDirecciones(cPais)[c16]
             imprime  gRenglon
             gRenglon = ''
             hayregistro =1
           Finsi  //Si encontro
         FinSi
         si hayregistro = 1
           texto ' '
           imprime
         finsi

         Si @pos(@col(pInformacion;0);'6') != -1

           //Código         Nombre (Cliente)                      Teléfono 1   Teléfono 2  Correo Electrónico
           Columnas 20;2.25,0.15,6,0.15,2.1,0.15,2.1,0.15,3.3,0.15,2.85,0

           //gRenglon = fMascarilla(tClientes(cCodigoCliente);tParametros(cMascarillaClientes))[c0]
           //gRenglon = tClientes(cRazonSocial)[c2]

           tDirecciones.busca[@str(tClientes(cidClienteProveedor);0)&':1:1']
           Si tDirecciones->encontro
             gRenglon = @str(tDirecciones(cTelefono1);0)[c4]
             gRenglon = @str(tDirecciones(cTelefono2);0)[c6]


             vcont = 0[c0]
             vtemporal = @str(tDirecciones(cEmail);0)[c0]
             vtemporal2 = ''
             Mientras @col(vcont;0) < @len(@str(@col(vtemporal;0);0))
               Si  @substr(@col(vtemporal;0);@col(vcont;0);1) = '@'
                 vtemporal2 = @col(vtemporal2;0) & ''
               Sino
                 vtemporal2 = @col(vtemporal2;0) & @substr(@col(vtemporal;0);@col(vcont;0);1)
               Finsi
               vcont=@col(vcont;0) +1[c0]
             Finmientras
             gRenglon =  @col(vtemporal2;0)[c8]
             Imprime

             imprime  gRenglon
             gRenglon = ''
             //!                                                     Teléfono 2   Teléfono 3  WEB
             Columnas 20;8.4,0.15,2.1,0.15,2.1,0.15,6.15,0.15,0
             gRenglon = @str(tDirecciones(cTelefono3);0)[c2]
             gRenglon = @str(tDirecciones(cTelefono4);0)[c4]
             gRenglon = 'WEB:'& tDirecciones(cDireccionWeb)[c6]
             imprime  gRenglon
             gRenglon = ''
             hayregistro =1
             //               Calle                    Núm.Ext Núm.Int Colonia                   C.P.  Ciudad     Estado     País
             Columnas 20;2.4,0.15,3.9,0.15,1.35,0.15,1.35,0.15,3,0.15,0.75,0.15,1.8,0.15,1.8,0.15,1.65,0.15,0

             gRenglon = tDirecciones(cNombreCalle)[c2]
             gRenglon = tDirecciones(cNumeroExterior)[c4]
             gRenglon = tDirecciones(cNumeroInterior)[c6]
             gRenglon = tDirecciones(cColonia)[c8]
             gRenglon = tDirecciones(cCodigoPostal)[c10]
             gRenglon = tDirecciones(cCiudad)[c12]
             gRenglon = tDirecciones(cEstado)[c14]
             gRenglon = tDirecciones(cPais)[c16]
             imprime  gRenglon
             gRenglon = ''
             hayregistro =1
           Finsi  //Si encontro
         FinSi
      FinMientras // Clientes Busca

      lCiclo = lCiclo +1
    FinMientras

    Texto ' '
    Imprime

 FinMientras
