-- Exportar a Excel DECLARE SQL_cmd VARCHAR2(7000); BEGIN -- Son 3 SQL los que se ejecutan. IF :GUIA_TX.fib1 = 'C' THEN -- Todos los materiales, CON o SIN soporte asignados SQL_cmd := 'select MIN(SEN.sen_descripcion) as Señal,' || ' MIN(TO_CHAR(pdd_hora, ''yyyy-mm-dd hh24:mi:ss'')) as ONAIR,' || ' PDD.MAT_CODIGO as Material, ' || ' PDD.mde_codigo as Capitulo, ' || ' MAX(TO_CHAR(RMA.emp_codigo, ''99'') ||''-''|| RMA.sop_codigo ||''-''|| RMA.tro_codigo ||''-''|| LTRIM(TO_CHAR(RMA.rol_codigo))) as SOPORTE, ' || ' MAX(MAT.mat_titulo_origen_principal) as MAT_TIT_ORIGEN, ' || ' MAX(DET.MDE_TITULO_ORIGEN) as CAP_Tit_Origen, ' || ' MAX(RMA.rol_codigo_juego) AS Juego_Rollos, ' || ' MAX(RMA.rma_house_dal) AS HouseDAL, ' || ' MAX(DECODE(HDAL.lho_marca, ''S'', ''Si'', ''No'')) AS Ingestado, ' || ' MAX(RMA.rma_timecode_inicio) AS TimeCode_Inicio, ' || ' MAX(RMA.rma_duracion) AS Duracion, ' || ' MAX(TO_CHAR(RMA.rma_numero_parte, ''99'') ||'' de''|| TO_CHAR(RMA.rma_cantidad_partes, ''99'')) as Partes, ' || ' MAX(RMA.etc_codigo) as E_Tecnico, ' || ' MAX(ETC.etc_descripcion) as ET_Descripcion,' || ' MAX(RMA.nor_codigo) as Norma, ' || ' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''D'')) as Canales_Audio, ' || ' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''S'')) as Subtitulos, ' || ' MAX(DECODE((SELECT NVL(SUM(1), 0) ' || ' from pro_rollo_mat_subtit rms ' || ' where rms.emp_codigo = PDD.emp_codigo_rma ' || ' and rms.sop_codigo = PDD.sop_codigo ' || ' and rms.tro_codigo = PDD.tro_codigo ' || ' and rms.rol_codigo = PDD.rol_codigo ' || ' and rms.mat_codigo = PDD.mat_codigo_rma ' || ' and rms.mde_codigo = PDD.mde_codigo_rma ' || ' and rms.tsu_codigo = ''I''), ' || ' 0, ''Normal'', ''Alta'') ' || ' ) AS Prioridad_Subtit, ' || ' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''C'')) as Cortes, ' || ' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''G'')) as Grafica, ' || ' MAX(PRO_ULTIMO_MOV_SOPORTE(PDD.emp_codigo, ''BDIG'', RMA.tro_codigo, RMA.rol_codigo, ''TE'')) as Ultimo_Movimiento ' ||' from pro_programacion_dia_detalles PDD, ' ||' pro_materiales MAT, ' ||' pro_mat_detalles DET, ' ||' pro_tipo_materiales TIP, ' ||' pro_señales SEN, ' ||' pro_rollo_materiales RMA, ' ||' pro_estado_tecnicos ETC, ' ||' pro_log_house_dal HDAL ' ||' where PDD.emp_codigo = ' || TO_CHAR(:PARAMETER.emp_cod) ||' and PDD.sen_codigo = ''' || :GUIA_TX.sen_codigo ||'''' ||' and TO_CHAR(PDD.pro_fecha, ''yyyymmdd'') >= ''' || TO_CHAR(:GUIA_TX.pro_fecha_desde, 'yyyymmdd') || '''' ||' and TO_CHAR(PDD.pro_fecha, ''yyyymmdd'') <= ''' || TO_CHAR(:GUIA_TX.pro_fecha_hasta, 'yyyymmdd') || '''' ||' and MAT.mat_codigo = PDD.mat_codigo ' ||' and TIP.tma_codigo = MAT.tma_codigo ' ||' and DET.mat_codigo = PDD.mat_codigo ' -- PRO_MAT_DETALLES (capitulos) ||' and DET.mde_codigo = PDD.mde_codigo ' ||' and SEN.emp_codigo = PDD.emp_codigo ' -- PRO_SEÑALES (señales) ||' and SEN.sen_codigo = PDD.sen_codigo ' ||' and RMA.emp_codigo(+) = PDD.emp_codigo_rma ' -- PRO_ROLLO_MATERIALES (obtengo los soportes del material) ||' and RMA.sop_codigo(+) = PDD.sop_codigo ' ||' and RMA.tro_codigo(+) = PDD.tro_codigo ' ||' and RMA.rol_codigo(+) = PDD.rol_codigo ' ||' and RMA.mat_codigo(+) = PDD.mat_codigo_rma ' ||' and RMA.mde_codigo(+) = PDD.mde_codigo_rma ' ||' and RMA.rma_estado(+) = ''V'' ' ||' and ETC.etc_codigo(+) = RMA.etc_codigo ' -- PRO_ESTADO_TECNICO ||' and HDAL.rma_house_dal(+) = RMA.rma_house_dal ' -- PRO_LOG_HOUSE_DAL ||' and HDAL.lho_profile(+) = ''XP34'' ' -- ID del sistema de tx iTX. ||' group by RMA.emp_codigo, ' ||' RMA.sop_codigo, ' ||' RMA.tro_codigo, ' ||' RMA.rol_codigo, ' ||' PDD.mat_codigo, ' ||' PDD.mde_codigo'; ELSE -- Solo materiales SIN soporte asignados -- Aqui hay 2 SQL, uno para Playboy y otro para el resto. IF :GUIA_TX.sen_codigo = '49' THEN -- PLAYBOY SQL_cmd := 'select MIN(SEN.sen_descripcion) as Señal, ' ||' MIN(TO_CHAR(pdd_hora, ''yyyy-mm-dd hh24:mi:ss'')) as ONAIR, ' ||' PDD.MAT_CODIGO as Material, ' ||' PDD.mde_codigo as Capitulo, ' ||' MAX(MAT.mat_titulo_origen_principal) as MAT_TIT_ORIGEN, ' ||' MAX(DET.MDE_TITULO_ORIGEN) as CAP_Tit_Origen, ' ||' MAX(TO_CHAR(RMA.emp_codigo, ''99'') ||''-''|| RMA.sop_codigo ||''-''|| RMA.tro_codigo ||''-''|| LTRIM(TO_CHAR(RMA.rol_codigo))) as SOPORTE, ' ||' MAX(RMA.rol_codigo_juego) AS Juego_Rollos, ' ||' MAX(RMA.rma_house_dal) AS HouseDAL, ' ||' MAX(DECODE(HDAL.lho_marca, ''S'', ''Si'', ''No'')) AS Ingestado, ' ||' MAX(RMA.rma_timecode_inicio) AS TimeCode_Inicio, ' ||' MAX(RMA.rma_duracion) AS Duracion, ' ||' MAX(TO_CHAR(RMA.rma_numero_parte, ''99'') ||'' de''|| TO_CHAR(RMA.rma_cantidad_partes, ''99'')) as Partes, ' ||' MAX(RMA.etc_codigo) as E_Tecnico, ' ||' MAX(ETC.etc_descripcion) as ET_Descripcion, ' ||' MAX(RMA.nor_codigo) as Norma, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''D'')) as Canales_Audio, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''S'')) as Subtitulos, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''C'')) as Cortes, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''G'')) as Grafica, ' ||' MAX(PRO_ULTIMO_MOV_SOPORTE(PDD.emp_codigo, ''BDIG'', RMA.tro_codigo, RMA.rol_codigo, ''TE'')) as Ultimo_Movimiento ' ||' from pro_programacion_dia_detalles PDD, ' ||' pro_materiales MAT, ' ||' pro_mat_detalles DET, ' ||' pro_tipo_materiales TIP, ' ||' pro_señales SEN, ' ||' pro_rollo_materiales RMA, ' ||' pro_estado_tecnicos ETC, ' ||' pro_log_house_dal HDAL ' ||' where PDD.emp_codigo = ' || TO_CHAR(:PARAMETER.emp_cod) ||' and PDD.sen_codigo = 49 ' ||' and TO_CHAR(PDD.pro_fecha, ''yyyymmdd'') >= ''' || TO_CHAR(:GUIA_TX.pro_fecha_desde, 'yyyymmdd') || '''' ||' and TO_CHAR(PDD.pro_fecha, ''yyyymmdd'') <= ''' || TO_CHAR(:GUIA_TX.pro_fecha_hasta, 'yyyymmdd') || '''' ||' and PDD.sop_codigo IS NULL ' ||' and MAT.mat_codigo = PDD.mat_codigo ' -- PRO_MATERIALES (material) ||' and TIP.tma_codigo = MAT.tma_codigo ' -- PRO_TIPO8_MATERIALES (tipo de material) ||' and DET.mat_codigo = PDD.mat_codigo ' -- PRO_MAT_DETALLES (capitulos) ||' and DET.mde_codigo = PDD.mde_codigo ' ||' and SEN.emp_codigo = PDD.emp_codigo ' -- PRO_SEÑALES (señales) ||' and SEN.sen_codigo = PDD.sen_codigo ' ||' and RMA.emp_codigo(+) = PDD.emp_codigo ' -- PRO_ROLLO_MATERIALES (obtengo los soportes del material) ||' and RMA.tro_codigo(+) = ''TX'' ' ||' and RMA.mat_codigo(+) = PDD.mat_codigo ' ||' and RMA.mde_codigo(+) = PDD.mde_codigo ' ||' and RMA.rma_estado(+) = ''V'' ' ||' and ETC.etc_codigo(+) = RMA.etc_codigo ' -- PRO_ESTADO_TECNICO ||' and HDAL.rma_house_dal(+) = RMA.rma_house_dal ' -- PRO_LOG_HOUSE_DAL ||' and HDAL.lho_profile(+) = ''XP34'' ' -- ID del sistema de tx iTX. ||' group by PDD.mat_codigo, ' ||' PDD.mde_codigo, ' ||' RMA.emp_codigo, ' ||' RMA.sop_codigo, ' ||' RMA.tro_codigo, ' ||' RMA.rol_codigo '; ELSE -- Todas las demás señales SQL_cmd := 'select MIN(SEN.sen_descripcion) as Señal, ' ||' MIN(TO_CHAR(pdd_hora, ''yyyy-mm-dd hh24:mi:ss'')) as ONAIR, ' ||' PDD.MAT_CODIGO as Material, ' ||' PDD.mde_codigo as Capitulo, ' ||' MAX(MAT.mat_titulo_origen_principal) as MAT_TIT_ORIGEN, ' ||' MAX(DET.MDE_TITULO_ORIGEN) as CAP_Tit_Origen, ' ||' MAX(TO_CHAR(RMA.emp_codigo, ''99'') ||''-''|| RMA.sop_codigo ||''-''|| RMA.tro_codigo ||''-''|| LTRIM(TO_CHAR(RMA.rol_codigo))) as SOPORTE, ' ||' MAX(RMA.rol_codigo_juego) AS Juego_Rollos, ' ||' MAX(RMA.rma_house_dal) AS HouseDAL, ' ||' MAX(DECODE(HDAL.lho_marca, ''S'', ''Si'', ''No'')) AS Ingestado, ' ||' MAX(RMA.rma_timecode_inicio) AS TimeCode_Inicio, ' ||' MAX(RMA.rma_duracion) AS Duracion, ' ||' MAX(TO_CHAR(RMA.rma_numero_parte, ''99'') ||'' de''|| TO_CHAR(RMA.rma_cantidad_partes, ''99'')) as Partes, ' ||' MAX(RMA.etc_codigo) as E_Tecnico, ' ||' MAX(ETC.etc_descripcion) as ET_Descripcion, ' ||' MAX(RMA.nor_codigo) as Norma, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''D'')) as Canales_Audio, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''S'')) as Subtitulos, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''C'')) as Cortes, ' ||' MAX(PRO_DOB_SUB_IDIOMAS(PDD.emp_codigo, RMA.sop_codigo, RMA.tro_codigo, RMA.rol_codigo, MAT.mat_codigo, DET.mde_codigo, ''G'')) as Grafica, ' ||' MAX(PRO_ULTIMO_MOV_SOPORTE(PDD.emp_codigo, ''BDIG'', RMA.tro_codigo, RMA.rol_codigo, ''TE'')) as Ultimo_Movimiento ' ||' from pro_programacion_dia_detalles PDD, ' ||' pro_materiales MAT, ' ||' pro_mat_detalles DET, ' ||' pro_tipo_materiales TIP, ' ||' pro_señales SEN, ' ||' pro_rollo_materiales RMA, ' ||' pro_estado_tecnicos ETC, ' ||' pro_log_house_dal HDAL ' ||' where PDD.emp_codigo = ' || TO_CHAR(:PARAMETER.emp_cod) ||' and PDD.sen_codigo = ''' || :GUIA_TX.sen_codigo || '''' ||' and TO_CHAR(PDD.pro_fecha, ''yyyymmdd'') >= ''' || TO_CHAR(:GUIA_TX.pro_fecha_desde, 'yyyymmdd') || '''' ||' and TO_CHAR(PDD.pro_fecha, ''yyyymmdd'') <= ''' || TO_CHAR(:GUIA_TX.pro_fecha_hasta, 'yyyymmdd') || '''' ||' and PDD.sop_codigo IS NULL ' ||' and MAT.mat_codigo = PDD.mat_codigo ' -- PRO_MATERIALES (material) ||' and TIP.tma_codigo = MAT.tma_codigo ' -- PRO_TIPO8_MATERIALES (tipo de material) ||' and DET.mat_codigo = PDD.mat_codigo ' -- PRO_MAT_DETALLES (capitulos) ||' and DET.mde_codigo = PDD.mde_codigo ' ||' and SEN.emp_codigo = PDD.emp_codigo ' -- PRO_SEÑALES (señales) ||' and SEN.sen_codigo = PDD.sen_codigo ' ||' and RMA.emp_codigo = PDD.emp_codigo '-- PRO_ROLLO_MATERIALES (obtengo los soportes del material) ||' and RMA.mat_codigo = PDD.mat_codigo ' ||' and RMA.mde_codigo = PDD.mde_codigo ' ||' and RMA.rma_estado = ''V'' ' ||' and ETC.etc_codigo(+) = RMA.etc_codigo ' -- PRO_ESTADO_TECNICO ||' and HDAL.rma_house_dal(+) = RMA.rma_house_dal ' -- PRO_LOG_HOUSE_DAL ||' and HDAL.lho_profile(+) = ''XP34'' ' -- ID del sistema de tx iTX. ||' group by PDD.mat_codigo, ' ||' PDD.mde_codigo, ' ||' RMA.emp_codigo, ' ||' RMA.sop_codigo, ' ||' RMA.tro_codigo, ' ||' RMA.rol_codigo '; END IF; END IF; Export_Excel_bySQL(SQL_cmd, 'GuiaTX(' ||RTRIM(:GUIA_TX.sen_alias) ||')' || TO_CHAR(:GUIA_TX.pro_fecha_desde, 'yyyy') ||'-' || TO_CHAR(:GUIA_TX.pro_fecha_desde, 'mm') ); Go_Block(:GLOBAL.cur_block); EXCEPTION WHEN OTHERS THEN Msg_alert('ERROR GRL-0001 (E): error al llamar al MS-Excel (PRUTIL01.Export_Excel_bySQL). ' || SQLERRM, 'E', TRUE ); END;