Monday 27 January 2020

Advances Plsql Concepts :

                                                 
1. Execute Immediate:

Example 1:
create or replace procedure xxhrs_local_sql
as
l_select varchar2(200);
begin
--for c1 in 1..10
--loop
l_select :=
'DECLARE '||
'L_NAME VARCHAR2(50); '||
'BEGIN '||
'select ENAME INTO L_NAME'||
           ' from'||' emp '|| 'where ename '||'like '||'''KING%'''||'; '
           ||'DBMS_OUTPUT.PUT_LINE(L_NAME); '||
           'END;' ;
--DBMS_OUTPUT.PUT_LINE(l_select);   
   EXECUTE IMMEDIATE l_select;
--end loop;
   end;   


Example 2:
CREATE OR REPLACE PROCEDURE xxhrrs IS
   CURSOR c1 IS
     SELECT table_name
     FROM   user_tables
     WHERE  table_name in ('DEPT');
     --
     c1rec c1%ROWTYPE;
     --
     l_sql VARCHAR2(1000);
  BEGIN
     FOR r1 IN c1 LOOP
        l_sql := 'DECLARE '||
                 '   CURSOR c1 IS '||
                 '   SELECT DEPTNO '||
                 '   FROM   '||r1.table_name||'; '||
                 '   c1rec c1%ROWTYPE; '||
                 'BEGIN '||
                 '   FOR r1 IN c1 LOOP '||
                 '      dbms_output.put_line(''code here...DEPTNO''||r1.deptno); '||
                 '   END LOOP; '||
                 'END; ';
        --
       -- DBMS_OUTPUT.PUT_LINE(L_SQL);
        EXECUTE IMMEDIATE l_sql;
        END LOOP;
        END;

Compile the above mentioned Procedures.

Execute Process :
 Example 1:  exec xxhrrs; 
 Example 2:  exec xxhrs_local_sql;

Developing Excel Report Using Package :



CREATE OR REPLACE PACKAGE APPS.XXhrs_Excel_Out_Proc_AR
AS
   PROCEDURE main (
      errbuff           OUT   VARCHAR2,
      retcode           OUT   NUMBER,
     P_ORG_ID           IN       NUMBER,
      P_CUSTOMER_TRX_ID              IN       NUMBER
 
   );
 
    g_legal_entity      VARCHAR2(250);
    g_organization_id   VARCHAR2(250);
    g_year              NUMBER;
    g_start_period_name VARCHAR2(250);
    g_end_period_name   VARCHAR2(250);
    g_vendor_id         NUMBER;
    g_start_date      Date;
    g_end_date          Date;
    g_legal_entity_name VARCHAR2(250);
    g_supplier_name     VARCHAR2(250);
         
END XXhrs_Excel_Out_Proc_AR;
/

XXHRS Develop Customer Excel Using Procedure

-------------------------------------------------------------------------------------


CREATE OR REPLACE PACKAGE BODY XXhrs_Excel_Out_Proc_AR
AS
   PROCEDURE write_log (p_msg VARCHAR2)
   IS
   BEGIN
      fnd_file.put_line (fnd_file.LOG, p_msg);
   EXCEPTION
      WHEN OTHERS
      THEN
         fnd_file.put_line (fnd_file.LOG, 'Exception @write_log ' || SQLERRM);
   END;

   PROCEDURE write_output (p_msg VARCHAR2)
   IS
   BEGIN
      fnd_file.put_line (fnd_file.output, p_msg);
   EXCEPTION
      WHEN OTHERS
      THEN
         write_log ('Exception @ write_output ' || SQLERRM);
   END;

  PROCEDURE main (
      errbuff            OUT      VARCHAR2,
      retcode            OUT      NUMBER,
      P_ORG_ID           IN       NUMBER,
      P_CUSTOMER_TRX_ID              IN       NUMBER
   )
   AS
Cursor cur_hdr_data
Is
  SELECT HP.PARTY_NAME CUSTOMER_NAME,HP.ADDRESS1 ADDRESS1,HP.ADDRESS2 ADDRESS2,RCTA.CUSTOMER_TRX_ID CUST_TRX_ID,RCTA.TRX_NUMBER INVOICE_NUM
 FROM
 HZ_CUST_ACCOUNTS HCA,HZ_PARTIES HP,ra_customer_trx_all RCTA
WHERE HCA.PARTY_ID=HP.PARTY_ID AND
 RCTA.BILL_TO_CUSTOMER_ID=HCA.CUST_ACCOUNT_ID
 AND RCTA.ORG_ID=P_ORG_ID
AND RCTA.CUSTOMER_TRX_ID <COALESCE(P_CUSTOMER_TRX_ID,3000);
l_first_row        VARCHAR2(1) := 'N';
    l_dist_row         VARCHAR2(1) := 'N';
BEGIN
/** POPULATE THE DUMP **/
      fnd_file.put_line (fnd_file.output, '<?xml version="1.0" ?>');
      fnd_file.put_line (fnd_file.output,
                         '<?mso-application progid="Excel.Sheet"?>'
                        );
      fnd_file.put_line
         (fnd_file.output,
          '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office"

    xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">'
         );
      fnd_file.put_line (fnd_file.output, '</DocumentProperties>');
      fnd_file.put_line
             (fnd_file.output,
              '<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">'
             );
      fnd_file.put_line (fnd_file.output, '<WindowHeight>7935</WindowHeight>');
      fnd_file.put_line (fnd_file.output, '<WindowWidth>19035</WindowWidth>');
      fnd_file.put_line (fnd_file.output, '<WindowTopX>240</WindowTopX>');
      fnd_file.put_line (fnd_file.output, '<WindowTopY>105</WindowTopY>');
      fnd_file.put_line (fnd_file.output,
                         '<ProtectStructure>False</ProtectStructure>'
                        );
      fnd_file.put_line (fnd_file.output,
                         '<ProtectWindows>False</ProtectWindows>'
                        );
      fnd_file.put_line (fnd_file.output, '</ExcelWorkbook>');
      fnd_file.put_line (fnd_file.output, '<Styles>');
      fnd_file.put_line (fnd_file.output,
                         '<Style ss:ID="Default" ss:Name="Normal">'
                        );
      fnd_file.put_line (fnd_file.output, '<Alignment ss:Vertical="Bottom"/>');
      fnd_file.put_line (fnd_file.output, '<Borders/>');
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#FFFF00"/>'
         );
      fnd_file.put_line (fnd_file.output, '<Interior/>');
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="m111854504">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Top" ss:WrapText="1"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
      ss:Color="#FFFF00"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
        ss:Color="#FFFF00"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
      ss:Color="#FFFF00"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
      ss:Color="#FFFF00"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      fnd_file.put_line
         (fnd_file.output,
          'fnd_file.put_line(fnd_file.output, <Font ss:FontName="Arial" x:Family="Swiss" ss:Color="#00FF00" ss:Bold="1"/>'
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#0000FF" ss:Pattern="Solid" />'
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s81">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Top" ss:WrapText="1"/>'
                        );
                        ------------------------------------------start--------------
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
     ss:Color="#000000" />'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
    ss:Color="#000000" />'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000" />'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
    ss:Color="#0000FF" />'----------------------------------------used in legal entity above line changed to blue
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      ----------------------------end------------------
      ------------------------start-----------------------------
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Color="#FFFFFF"  ss:Bold="1" />'
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#808080"  ss:Pattern="Solid"/>'  ---it will change the background colour of legal entity grey
         );
                      ---  );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s82">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Top" ss:WrapText="1"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color= "#00FFFF" />'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#00FFFF" />');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#00FFFF" />'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#00FFFF" />'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      -----------------end --------------------------------
      ------------------------------------------start----------------------------------
      fnd_file.put_line
          (fnd_file.output,
           '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Color="#000000"/>'
          );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#008080" ss:Pattern="Solid"/>'
                        );
--      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output,
                         '<NumberFormat ss:Format="#,##0.00;\-#,##0.00" />'
                        );
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s83">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Top" ss:WrapText="1"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#800000"/>' --marrorn (all middle lines effected where data present horizontally
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#800080"/>'---purple(all middle lines effected where data present vertically
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#FFFF00" />'--yellow(right side of invoice below line boared
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#008080"/>'--green
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      -----------------------------------end-----------------------------
   
      -----------------------------------start---------------------------
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Color="#FF0000"/>'---red  (it will change data appearedfont type and color
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>'--sliver(  it will data appeared background color
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s90">');
      fnd_file.put_line
         (fnd_file.output,
          '<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>'
         );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
     ss:Color="#FF00FF"/>'--Fuchish
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
    ss:Color="#00FF00" />' --lime
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#808000" />'--olive parameter information vertical effeted in  boarders
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
    ss:Color="#FF0000"/>'---red (parameter information top line boarders
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      --------end-------------------------
     ------------------start-------------------------   dont know
      fnd_file.put_line
          (fnd_file.output,
           '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Color="#00FF00"/>' -- it will change background letter colour  to lime
          );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#808080" ss:Pattern="Solid"/>' --it will change 204 and 3000 background colour to grey
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s91">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Top" ss:WrapText="1"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
    ss:Color="#00FF00" />' --lime
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#008000" />'--green
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#808080"/>' --grey
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#FFFFFF"/>'--white
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
                     ------------------------------end-------------
                   
         ------------------------start------------------------- i don't know
fnd_file.put_line
            (fnd_file.output,
             '<Font ss:FontName="Arial" x:Family="Swiss" ss:Color="#0000FF"/>'--blue
            );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>'  --grey
                        );
      fnd_file.put_line (fnd_file.output,
                         '<NumberFormat ss:Format="mmm\-yy"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s92">');
      fnd_file.put_line
         (fnd_file.output,
          '<Alignment ss:Horizontal="Center" ss:Vertical="Top" ss:WrapText="1"/>'
         );

      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#0000FF"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#0000FF"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#0000FF"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#0000FF"/>'
         ); 
      fnd_file.put_line (fnd_file.output, '</Borders>');
           ------------------------------end------------------------
           ----------------------------start------------------------------------
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Color="#008080" ss:Bold="1"/>'---teal(it will change title like customer name,address1,address2 text
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#A7C8E2" ss:Pattern="Solid"/>'---teal(it will change title like customer name,address1,address2 background
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s93">');
      fnd_file.put_line
         (fnd_file.output,
          '<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>'
         );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      ------------------- end-----------------------------------------
      ----------------------start--------------------------------------
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Color="#FF0000" ss:Bold="1"/>'---red it will effect in parameter(text) field change text colour
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>' ------sliver it will effect in parameter(text) field  background colour
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s94">');
      fnd_file.put_line
                   (fnd_file.output,
                    '<Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>'
                   );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      ---------------------------end-------------------------------------
                                                                            --------start---------
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="13" ss:Color="#000000"  ss:Bold="1"/>'  ---balck it will effect Customer Transaction Report text
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#2172B3" ss:Pattern="Solid"/>'---balck it will effect Customer Transaction Report background clr
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s96">');
      fnd_file.put_line
                   (fnd_file.output,
                    '<Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>'
                   );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="13" ss:Color="#000000" ss:Bold="1"/>'
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#A7C8E2" ss:Pattern="Solid"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s114">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      -----------------end------------------------------------
                                                                                ----------------start------------- i dont know
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#FF00FF"/>'--purple
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#000000" ss:Pattern="Solid"/>'--black
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s128">');
      fnd_file.put_line
         (fnd_file.output,
          '<Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1"/>'
         );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      -------------------end------------------
                                                                              ------------------start---------------- i dont know
      fnd_file.put_line
         (fnd_file.output,
          ' <Font ss:FontName="Arial" x:Family="Swiss" ss:Size="15" ss:Color="#008080"
ss:Bold="1"/>'
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#000000" ss:Pattern="Solid"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '<Style ss:ID="s130">');
      fnd_file.put_line (fnd_file.output,
                         '<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<Borders>');
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"
ss:Color="#000000"/>'
         );
      fnd_file.put_line (fnd_file.output, '</Borders>');
      -------------end--------------
                                                                                -------------------start----- i dont know
      fnd_file.put_line
         (fnd_file.output,
          '<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#FF0000"/>'
         );
      fnd_file.put_line (fnd_file.output,
                         '<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>'
                        );
      fnd_file.put_line (fnd_file.output, '<NumberFormat/>');
      fnd_file.put_line (fnd_file.output, '<Protection/>');
      fnd_file.put_line (fnd_file.output, '</Style>');
      fnd_file.put_line (fnd_file.output, '</Styles>');
      fnd_file.put_line (fnd_file.output,
                         '<Worksheet ss:Name="Supplier Payments">'
                        );
      fnd_file.put_line
          (fnd_file.output,
           '<Table x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15">'
          );
      fnd_file.put_line (fnd_file.output,
                         '<Column ss:AutoFitWidth="0" ss:Width="127.5"/>'
                        );
      fnd_file.put_line
                (fnd_file.output,
                 '<Column ss:AutoFitWidth="0" ss:Width="66.75" ss:Span="11"/>'
                );
      fnd_file.put_line (fnd_file.output, '<Row ss:Height="19.5">');  --row start
--       ln_mergeacross := g_period_number + 4;                                                ------display title -------
      fnd_file.put_line
           (fnd_file.output,
               '<Cell ss:MergeAcross="15"'
            || ' ss:StyleID="s94"><Data ss:Type="String"> Customer Transaction Report </Data></Cell>'
           );                                                                                     -----end of title---
       fnd_file.put_line (fnd_file.output, '</Row>');  --row end
                                                                                                  -----display parameter title -------
      fnd_file.put_line (fnd_file.output, '<Row ss:Index="3">');  --row start
      fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s93"><Data ss:Type="String">Parameters</Data></Cell>'
         ); 
      fnd_file.put_line (fnd_file.output, '</Row>');  --row end
                                                                                                    -------end of parameter title----
             --------------------------------------------------------------------------------------------------------
           fnd_file.put_line (fnd_file.output,  '<Row ss:Index="4">');  --row start  --Cell[ss:Index="1"]  '<Cell ss:Index="3">''
      fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s81"><Data ss:Type="String">Parameters23</Data></Cell>'
         );
              fnd_file.put_line (fnd_file.output, '</Row>');  --row end
         ------------------------------------------------------------------------------------------------                                                                                               
      fnd_file.put_line (fnd_file.output, '<Row>');  --row start
      fnd_file.put_line (fnd_file.output, '</Row>'); --row end
   
      /******************  Parameters *************/
   
      fnd_file.put_line (fnd_file.output, '<Row ss:AutoFitHeight="0">');
      fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s81"><Data ss:Type="String">Legal Entity </Data></Cell>'
         );
      fnd_file.put_line (fnd_file.output,
                            '<Cell ss:StyleID="s90"><Data ss:Type="String">'
                         || p_org_id
                         || '</Data></Cell>'
                        );
   --   fnd_file.put_line (fnd_file.output, '</Row>');
      fnd_file.put_line (fnd_file.output,
                            '<Cell ss:StyleID="s90"><Data ss:Type="String">'
                         || P_CUSTOMER_TRX_ID
                         || '</Data></Cell>'
                        );
      fnd_file.put_line (fnd_file.output, '</Row>');
   
   
   
      /****************** end of Parameters *************/

                /**************** Result Table Starts from here ****************/

      fnd_file.put_line (fnd_file.output,
                         '<Row ss:AutoFitHeight="0" ss:Height="15">'
                        );

      fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s92"><Data ss:Type="String">CUSTOMER NAME</Data></Cell>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s92"><Data ss:Type="String">ADDRESS1</Data></Cell>'
         );
      fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s92"><Data ss:Type="String"> ADDRESS2</Data></Cell>'
         );
         fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s92"><Data ss:Type="String"> CUST TRX ID</Data></Cell>'
         );
         fnd_file.put_line
         (fnd_file.output,
          '<Cell ss:StyleID="s92"><Data ss:Type="String">INVOICE NUMBER</Data></Cell>'
         );
         fnd_file.put_line (fnd_file.output, '</Row>');
     FOR rec IN cur_hdr_data
      LOOP
fnd_file.put_line (fnd_file.output,
                 '<Row ss:AutoFitHeight="0" ss:Height="15">'
                );

         fnd_file.put_line
                  (fnd_file.output,
                      '<Cell ss:StyleID="s83"><Data ss:Type="String">'
                   || rec.CUSTOMER_NAME
                   || '</Data></Cell>'
                  );

         fnd_file.put_line
                  (fnd_file.output,
                      '<Cell ss:StyleID="s83"><Data ss:Type="String">'
                   || rec.ADDRESS1
                   || '</Data></Cell>'
                  );

         fnd_file.put_line
                  (fnd_file.output,
                      '<Cell ss:StyleID="s83"><Data ss:Type="String">'
                   || rec.ADDRESS2
                   || '</Data></Cell>'
                  );
                      fnd_file.put_line
                  (fnd_file.output,
                      '<Cell ss:StyleID="s83"><Data ss:Type="String">'
                   || rec.CUST_TRX_ID
                   || '</Data></Cell>'
                  );
                      fnd_file.put_line
                  (fnd_file.output,
                      '<Cell ss:StyleID="s83"><Data ss:Type="String">'
                   || rec.INVOICE_NUM
                   || '</Data></Cell>'
                  );
         fnd_file.put_line (fnd_file.output, '</Row>');
     End Loop;
   fnd_file.put_line (fnd_file.output, '</Table>');
      fnd_file.put_line (fnd_file.output, '</Worksheet>');
      fnd_file.put_line (fnd_file.output, '</Workbook>');
   END;

END XXhrs_Excel_Out_Proc_AR;

Calling Different Language Layout Based On Conditions :

API For Calling Layout : 1.fnd_request.add_layout CREATE OR REPLACE procedure APPSLSPO_Calling_Templates1(ERRBUFF OUT VARCHAR,RETCODE O...