Пример #1
0
        public Canvas ISIBT( IncomeStatement ist )
        {
            var canvas = new Canvas( );
            int maxStr = "Interest Income(Expense), Net Non-Operating".Length * 6;
            // Revenue
            var lRevenue = new Label();
            lRevenue.Content = "Revenue";
            lRevenue.FontSize = 10;
            canvas.Children.Add( lRevenue );
            Canvas.SetLeft( lRevenue, 0 );
            Canvas.SetTop( lRevenue, 0 );
            var Revenue = new Label( );
            Revenue.Content = FormattedCurrencyString(ist.Revenue);
            Revenue.FontSize = 10;
            canvas.Children.Add( Revenue );
            Canvas.SetLeft( Revenue, 60 );
            Canvas.SetTop( Revenue, 0 );

            // Other Revenue, Total
            var lRevenueOther = new Label( );
            lRevenueOther.Content = "Other Revenue, Total";
            lRevenueOther.FontSize = 10;
            canvas.Children.Add( lRevenueOther );
            Canvas.SetLeft( lRevenueOther, 0 );
            Canvas.SetTop( lRevenueOther, 15 );
            var RevenueOther = new Label( );
            RevenueOther.Content = FormattedCurrencyString( ist.Other_Revenue_Total );
            RevenueOther.FontSize = 10;
            canvas.Children.Add( RevenueOther );
            Canvas.SetLeft( RevenueOther, 60 );
            Canvas.SetTop( RevenueOther, 15 );

            // Total Revenue
            var lRevenueTotal = new Label( );
            lRevenueTotal.Content = "Total Revenue";
            lRevenueTotal.FontSize = 10;
            canvas.Children.Add( lRevenueTotal );
            Canvas.SetLeft( lRevenueTotal, 0 );
            Canvas.SetTop( lRevenueTotal, 30 );
            var RevenueTotal = new Label( );
            RevenueTotal.Content = FormattedCurrencyString( ist.Total_Revenue );
            RevenueTotal.FontSize = 10;
            canvas.Children.Add( RevenueTotal );
            Canvas.SetLeft( RevenueTotal, maxStr );
            Canvas.SetTop( RevenueTotal, 30 );

            // Cost of Revenue, Total
            var lCostOfRevenue = new Label( );
            lCostOfRevenue.Content = "Cost of Revenue, Total";
            lCostOfRevenue.FontSize = 10;
            canvas.Children.Add( lCostOfRevenue );
            Canvas.SetLeft( lCostOfRevenue, 0 );
            Canvas.SetTop( lCostOfRevenue, 45 );
            var CostOfRevenue = new Label( );
            CostOfRevenue.Content = FormattedCurrencyString( ist.Cost_of_Revenue_Total );
            CostOfRevenue.FontSize = 10;
            canvas.Children.Add( CostOfRevenue );
            Canvas.SetLeft( CostOfRevenue, maxStr );
            Canvas.SetTop( CostOfRevenue, 45 );

            // Gross Profit
            var lGrossProfit = new Label( );
            lGrossProfit.Content = "Gross Profit";
            lGrossProfit.FontSize = 10;
            canvas.Children.Add( lGrossProfit );
            Canvas.SetLeft( lGrossProfit, 0 );
            Canvas.SetTop( lGrossProfit, 60 );
            var GrossProfit = new Label( );
            GrossProfit.Content = FormattedCurrencyString( ist.Gross_Profit );
            GrossProfit.FontSize = 10;
            canvas.Children.Add( GrossProfit );
            Canvas.SetLeft( GrossProfit, maxStr );
            Canvas.SetTop( GrossProfit, 60 );

            // Selling/General/Admin. Expenses, Total
            var lSGAET = new Label( );
            lSGAET.Content = "Selling/General/Admin. Expenses, Total";
            lSGAET.FontSize = 10;
            canvas.Children.Add( lSGAET );
            Canvas.SetLeft( lSGAET, 0 );
            Canvas.SetTop( lSGAET, 75 );
            var SGAET = new Label( );
            SGAET.Content = FormattedCurrencyString( ist.Selling_and_General_and_Admin_Expenses_Total );
            SGAET.FontSize = 10;
            canvas.Children.Add( SGAET );
            Canvas.SetLeft( SGAET, maxStr );
            Canvas.SetTop( SGAET, 75 );

            // Research & Development
            var lR_D = new Label( );
            lR_D.Content = "Research & Development";
            lR_D.FontSize = 10;
            canvas.Children.Add( lR_D );
            Canvas.SetLeft( lR_D, 0 );
            Canvas.SetTop( lR_D, 90 );
            var R_D = new Label( );
            R_D.Content = FormattedCurrencyString( ist.Research_and_Development );
            R_D.FontSize = 10;
            canvas.Children.Add( R_D );
            Canvas.SetLeft( R_D, maxStr );
            Canvas.SetTop( R_D, 90 );

            // Depreciation/Amortization
            var lD_A = new Label( );
            lD_A.Content = "Depreciation/Amortization";
            lD_A.FontSize = 10;
            canvas.Children.Add( lD_A );
            Canvas.SetLeft( lD_A, 0 );
            Canvas.SetTop( lD_A, 105 );
            var D_A = new Label( );
            D_A.Content = FormattedCurrencyString( ist.Depreciation_and_Amortization );
            D_A.FontSize = 10;
            canvas.Children.Add( D_A );
            Canvas.SetLeft( D_A, maxStr );
            Canvas.SetTop( D_A, 105 );

            // Interest Expense(Income) - Net Operating
            var lIEINO = new Label( );
            lIEINO.Content = "Interest Expense(Income) - Net Operating";
            lIEINO.FontSize = 10;
            canvas.Children.Add( lIEINO );
            Canvas.SetLeft( lIEINO, 0 );
            Canvas.SetTop( lIEINO, 120 );
            var IEINO = new Label( );
            IEINO.Content = FormattedCurrencyString( ist.Interest_Expense__Income___less_Net_Operating);
            IEINO.FontSize = 10;
            canvas.Children.Add( IEINO );
            Canvas.SetLeft( IEINO, maxStr );
            Canvas.SetTop( IEINO, 120 );

            // Unusual Expense (Income)
            var lUEI = new Label( );
            lUEI.Content = "Unusual Expense (Income)";
            lUEI.FontSize = 10;
            canvas.Children.Add( lUEI );
            Canvas.SetLeft( lUEI, 0 );
            Canvas.SetTop( lUEI, 135 );
            var UEI = new Label( );
            UEI.Content = FormattedCurrencyString( ist.Unusual_Expense___Income__ );
            UEI.FontSize = 10;
            canvas.Children.Add( UEI );
            Canvas.SetLeft( UEI, maxStr );
            Canvas.SetTop( UEI, 135 );

            // Other Operating Expenses, Total
            var lOOET = new Label( );
            lOOET.Content = "Other Operating Expenses, Total";
            lOOET.FontSize = 10;
            canvas.Children.Add( lOOET );
            Canvas.SetLeft( lOOET, 0 );
            Canvas.SetTop( lOOET, 150 );
            var OOET = new Label( );
            OOET.Content = FormattedCurrencyString( ist.Other_Operating_Expenses_Total );
            OOET.FontSize = 10;
            canvas.Children.Add( OOET );
            Canvas.SetLeft( OOET, maxStr );
            Canvas.SetTop( OOET, 150 );

            // Total Operating Expense
            var lTOE = new Label( );
            lTOE.Content = "Total Operating Expense";
            lTOE.FontSize = 10;
            canvas.Children.Add( lTOE );
            Canvas.SetLeft( lTOE, 0 );
            Canvas.SetTop( lTOE, 165 );
            var TOE = new Label( );
            TOE.Content = FormattedCurrencyString( ist.Total_Operating_Expense );
            TOE.FontSize = 10;
            canvas.Children.Add( TOE );
            Canvas.SetLeft( TOE, maxStr );
            Canvas.SetTop( TOE, 165 );

            // Operating Income
            var lOI = new Label( );
            lOI.Content = "Operating Income";
            lOI.FontSize = 10;
            canvas.Children.Add( lOI );
            Canvas.SetLeft( lOI, 0 );
            Canvas.SetTop( lOI, 180 );
            var OI = new Label( );
            OI.Content = FormattedCurrencyString( ist.Operating_Income );
            OI.FontSize = 10;
            canvas.Children.Add( OI );
            Canvas.SetLeft( OI, maxStr );
            Canvas.SetTop( OI, 180 );

            // Interest Income(Expense), Net Non-Operating
            var lIIENO = new Label( );
            lIIENO.Content = "Interest Income(Expense), Net Non-Operating";
            lIIENO.FontSize = 10;
            canvas.Children.Add( lIIENO );
            Canvas.SetLeft( lIIENO, 0 );
            Canvas.SetTop( lIIENO, 195 );
            var IIENO = new Label( );
            IIENO.Content = FormattedCurrencyString( ist.Interest_Income__Expense___Net_NonOperating );
            IIENO.FontSize = 10;
            canvas.Children.Add( IIENO );
            Canvas.SetLeft( IIENO, maxStr );
            Canvas.SetTop( IIENO, 195 );

            // Gain (Loss) on Sale of Assets
            var lGOSOA = new Label( );
            lGOSOA.Content = "Gain (Loss) on Sale of Assets";
            lGOSOA.FontSize = 10;
            canvas.Children.Add( lGOSOA );
            Canvas.SetLeft( lGOSOA, 0 );
            Canvas.SetTop( lGOSOA, 210 );
            var GOSOA = new Label( );
            GOSOA.Content = FormattedCurrencyString( ist.Gain___Loss___on_Sale_of_Assets );
            GOSOA.FontSize = 10;
            canvas.Children.Add( GOSOA );
            Canvas.SetLeft( GOSOA, maxStr );
            Canvas.SetTop( GOSOA, 210 );

            // Other, Net
            var lON = new Label( );
            lON.Content = "Other, Net";
            lON.FontSize = 10;
            canvas.Children.Add( lON );
            Canvas.SetLeft( lON, 0 );
            Canvas.SetTop( lON, 225 );
            var ON = new Label( );
            ON.Content = FormattedCurrencyString( ist.Other_Net );
            ON.FontSize = 10;
            canvas.Children.Add( ON );
            Canvas.SetLeft( ON, maxStr );
            Canvas.SetTop( ON, 225 );

            // Income Before Tax
            var lIBT = new Label( );
            lIBT.Content = "Income Before Tax";
            lIBT.FontSize = 10;
            canvas.Children.Add( lIBT );
            Canvas.SetLeft( lIBT, 0 );
            Canvas.SetTop( lIBT, 240 );
            var IBT = new Label( );
            IBT.Content = FormattedCurrencyString( ist.Income_Before_Tax );
            IBT.FontSize = 10;
            canvas.Children.Add( IBT );
            Canvas.SetLeft( IBT, maxStr );
            Canvas.SetTop( IBT, 240 );

            return canvas;
        }
Пример #2
0
        public Canvas ISDilutedNormalizedEPS( IncomeStatement ist )
        {
            var canvas = new Canvas( );
            int max = "Dividends per Share - Common Stock Primary Issue".Length * 6;
            // Diluted EPS Including Extraordinary Items
            var ldeiei = new Label( );
            ldeiei.FontSize = 10;
            ldeiei.Content = "Diluted EPS Including Extraordinary Items";
            canvas.Children.Add( ldeiei );
            Canvas.SetLeft( ldeiei, 0 );
            Canvas.SetTop( ldeiei, 0 );
            var deiei = new Label( );
            deiei.FontSize = 10;
            deiei.Content = FormattedCurrencyString( ist.Diluted_EPS_Including_Extraordinary_Items );
            canvas.Children.Add( deiei );
            Canvas.SetLeft( deiei, max );
            Canvas.SetTop( deiei, 0 );

            // Dividends per Share - Common Stock Primary Issue
            var ldpscspi = new Label( );
            ldpscspi.FontSize = 10;
            ldpscspi.Content = "Dividends per Share - Common Stock Primary Issue";
            canvas.Children.Add( ldpscspi );
            Canvas.SetLeft( ldpscspi, 0 );
            Canvas.SetTop( ldpscspi, 15 );
            var dpscspi = new Label( );
            dpscspi.FontSize = 10;
            dpscspi.Content = FormattedCurrencyString( ist.Dividends_per_Share__less__Common_Stock_Primary_Issue );
            canvas.Children.Add( dpscspi );
            Canvas.SetLeft( dpscspi, max );
            Canvas.SetTop( dpscspi, 15 );

            // Gross Dividends - Common Stock
            var lgdcs = new Label( );
            lgdcs.FontSize = 10;
            lgdcs.Content = "Gross Dividends - Common Stock";
            canvas.Children.Add( lgdcs );
            Canvas.SetLeft( lgdcs, 0 );
            Canvas.SetTop( lgdcs, 30 );
            var gdcs = new Label( );
            gdcs.FontSize = 10;
            gdcs.Content = FormattedCurrencyString( ist.Gross_Dividends__less__Common_Stock );
            canvas.Children.Add( gdcs );
            Canvas.SetLeft( gdcs, max );
            Canvas.SetTop( gdcs, 30 );

            // Net Income after Stock Based Comp. Expense
            var lniasbce = new Label( );
            lniasbce.FontSize = 10;
            lniasbce.Content = "Net Income after Stock Based Comp. Expense";
            canvas.Children.Add( lniasbce );
            Canvas.SetLeft( lniasbce, 0 );
            Canvas.SetTop( lniasbce, 45 );
            var niasbce = new Label( );
            niasbce.FontSize = 10;
            niasbce.Content = FormattedCurrencyString( ist.Net_Income_after_Stock_Based_Comp_Expense );
            canvas.Children.Add( niasbce );
            Canvas.SetLeft( niasbce, max );
            Canvas.SetTop( niasbce, 45 );

            // Basic EPS after Stock Based Comp. Expense
            var lbeasbce = new Label( );
            lbeasbce.FontSize = 10;
            lbeasbce.Content = "Basic EPS after Stock Based Comp. Expense";
            canvas.Children.Add( lbeasbce );
            Canvas.SetLeft( lbeasbce, 0 );
            Canvas.SetTop( lbeasbce, 60 );
            var beasbce = new Label( );
            beasbce.FontSize = 10;
            beasbce.Content = FormattedCurrencyString( ist.Basic_EPS_after_Stock_Based_Comp_Expense );
            canvas.Children.Add( beasbce );
            Canvas.SetLeft( beasbce, max );
            Canvas.SetTop( beasbce, 60 );

            // Diluted EPS after Stock Based Comp. Expense
            var ldeasbce = new Label( );
            ldeasbce.FontSize = 10;
            ldeasbce.Content = "Diluted EPS after Stock Based Comp. Expense";
            canvas.Children.Add( ldeasbce );
            Canvas.SetLeft( ldeasbce, 0 );
            Canvas.SetTop( ldeasbce, 75 );
            var deasbce = new Label( );
            deasbce.FontSize = 10;
            deasbce.Content = FormattedCurrencyString( ist.Diluted_EPS_after_Stock_Based_Comp_Expense );
            canvas.Children.Add( deasbce );
            Canvas.SetLeft( deasbce, max );
            Canvas.SetTop( deasbce, 75 );

            // Depreciation, Supplemental
            var lds = new Label( );
            lds.FontSize = 10;
            lds.Content = "Depreciation, Supplemental";
            canvas.Children.Add( lds );
            Canvas.SetLeft( lds, 0 );
            Canvas.SetTop( lds, 90 );
            var ds = new Label( );
            ds.FontSize = 10;
            ds.Content = FormattedCurrencyString( ist.Depreciation_Supplemental );
            canvas.Children.Add( ds );
            Canvas.SetLeft( ds, max );
            Canvas.SetTop( ds, 90 );

            // Total Special Items
            var ltsi = new Label( );
            ltsi.FontSize = 10;
            ltsi.Content = "Total Special Items";
            canvas.Children.Add( ltsi );
            Canvas.SetLeft( ltsi, 0 );
            Canvas.SetTop( ltsi, 105 );
            var tsi = new Label( );
            tsi.FontSize = 10;
            tsi.Content = FormattedCurrencyString( ist.Total_Special_Items );
            canvas.Children.Add( tsi );
            Canvas.SetLeft( tsi, max );
            Canvas.SetTop( tsi, 105 );

            // Normalized Income Before Taxes
            var lnibt = new Label( );
            lnibt.FontSize = 10;
            lnibt.Content = "Normalized Income Before Taxes";
            canvas.Children.Add( lnibt );
            Canvas.SetLeft( lnibt, 0 );
            Canvas.SetTop( lnibt, 120 );
            var nibt = new Label( );
            nibt.FontSize = 10;
            nibt.Content = FormattedCurrencyString( ist.Normalized_Income_Before_Taxes );
            canvas.Children.Add( nibt );
            Canvas.SetLeft( nibt, max );
            Canvas.SetTop( nibt, 120 );

            // Effect of Special Items on Income Taxes
            var leosioit = new Label( );
            leosioit.FontSize = 10;
            leosioit.Content = "Effect of Special Items on Income Taxes";
            canvas.Children.Add( leosioit );
            Canvas.SetLeft( leosioit, 0 );
            Canvas.SetTop( leosioit, 135 );
            var eosioit = new Label( );
            eosioit.FontSize = 10;
            eosioit.Content = FormattedCurrencyString( ist.Effect_of_Special_Items_on_Income_Taxes );
            canvas.Children.Add( eosioit );
            Canvas.SetLeft( eosioit, max );
            Canvas.SetTop( eosioit, 135 );

            // Income Taxes Ex. Impact of Special Items
            var liteiosi = new Label( );
            liteiosi.FontSize = 10;
            liteiosi.Content = "Income Taxes Ex. Impact of Special Items";
            canvas.Children.Add( liteiosi );
            Canvas.SetLeft( liteiosi, 0 );
            Canvas.SetTop( liteiosi, 150 );
            var iteiosi = new Label( );
            iteiosi.FontSize = 10;
            iteiosi.Content = FormattedCurrencyString( ist.Income_Taxes_Ex_Impact_of_Special_Items );
            canvas.Children.Add( iteiosi );
            Canvas.SetLeft( iteiosi, max );
            Canvas.SetTop( iteiosi, 150 );

            // Normalized Income After Taxes
            var lniat = new Label( );
            lniat.FontSize = 10;
            lniat.Content = "Normalized Income After Taxes";
            canvas.Children.Add( lniat );
            Canvas.SetLeft( lniat, 0 );
            Canvas.SetTop( lniat, 165 );
            var niat = new Label( );
            niat.FontSize = 10;
            niat.Content = FormattedCurrencyString( ist.Normalized_Income_After_Taxes );
            canvas.Children.Add( niat );
            Canvas.SetLeft( niat, max );
            Canvas.SetTop( niat, 165 );

            // Normalized Income Avail to Common
            var lniatc = new Label( );
            lniatc.FontSize = 10;
            lniatc.Content = "Normalized Income Avail to Common";
            canvas.Children.Add( lniatc );
            Canvas.SetLeft( lniatc, 0 );
            Canvas.SetTop( lniatc, 180 );
            var niatc = new Label( );
            niatc.FontSize = 10;
            niatc.Content = FormattedCurrencyString( ist.Normalized_Income_Avail_to_Common );
            canvas.Children.Add( niatc );
            Canvas.SetLeft( niatc, max );
            Canvas.SetTop( niatc, 180 );

            // Basic Normalized EPS
            var lbne = new Label( );
            lbne.FontSize = 10;
            lbne.Content = "Basic Normalized EPS";
            canvas.Children.Add( lbne );
            Canvas.SetLeft( lbne, 0 );
            Canvas.SetTop( lbne, 195 );
            var bne = new Label( );
            bne.FontSize = 10;
            bne.Content = FormattedCurrencyString( ist.Basic_Normalized_EPS );
            canvas.Children.Add( bne );
            Canvas.SetLeft( bne, max );
            Canvas.SetTop( bne, 195 );

            // Diluted Normalized EPS
            var ldne = new Label( );
            ldne.FontSize = 10;
            ldne.Content = "Diluted Normalized EPS";
            canvas.Children.Add( ldne );
            Canvas.SetLeft( ldne, 0 );
            Canvas.SetTop( ldne, 210 );
            var dne = new Label( );
            dne.FontSize = 10;
            dne.Content = FormattedCurrencyString( ist.Diluted_Normalized_EPS );
            canvas.Children.Add( dne );
            Canvas.SetLeft( dne, max );
            Canvas.SetTop( dne, 210 );

            return canvas;
        }
Пример #3
0
        public static Canvas IncomeStatementCanvas( IncomeStatement ist )
        {
            Grid grid = new Grid( );
            grid.Width = 700;
            grid.Height = 600;
            grid.ColumnDefinitions.Add( new ColumnDefinition( ) );
            grid.ColumnDefinitions.Add( new ColumnDefinition( ) );

            Grid subGridLeft = new Grid( );
            subGridLeft.Width = 350;
            Grid subGridRight = new Grid( );
            subGridRight.Width = 350;

            subGridLeft.RowDefinitions.Add( new RowDefinition( ) );

            subGridRight.RowDefinitions.Add( new RowDefinition( ) );
            subGridRight.RowDefinitions.Add( new RowDefinition( ) );

            var cISIBT = ISIBT( ist );
            var cISDilutedEPS = ISDilutedEPS( ist );
            var cISDilutedNomrmalizedEPS = ISDilutedNormalizedEPS( ist );

            subGridLeft.Children.Add( cISIBT );
            Grid.SetRow( cISIBT, 0 );

            subGridRight.Children.Add( cISDilutedEPS );
            subGridRight.Children.Add( cISDilutedNomrmalizedEPS );
            Grid.SetRow( cISDilutedEPS, 0 );
            Grid.SetRow( cISDilutedNomrmalizedEPS, 1 );

            grid.Children.Add( subGridLeft );
            grid.Children.Add( subGridRight );
            Grid.SetColumn( subGridLeft, 0 );
            Grid.SetColumn( subGridRight, 1 );
            var canvas = new Canvas( );

            canvas.Children.Add( grid );

            return canvas;
        }
Пример #4
0
        public Canvas ISDilutedEPS( IncomeStatement ist )
        {
            var canvas = new Canvas( );
            int max = "Income Available to Common Excl. Extra Items".Length * 6;

            // Income After Tax
            var lIncomeAfterTax = new Label( );
            lIncomeAfterTax.FontSize = 10;
            lIncomeAfterTax.Content = "Income After Tax";
            canvas.Children.Add( lIncomeAfterTax );
            Canvas.SetLeft( lIncomeAfterTax, 0 );
            Canvas.SetTop( lIncomeAfterTax, 0 );
            var IncomeAfterTax = new Label( );
            IncomeAfterTax.FontSize = 10;
            IncomeAfterTax.Content = FormattedCurrencyString( ist.Income_After_Tax );
            canvas.Children.Add( IncomeAfterTax );
            Canvas.SetLeft( IncomeAfterTax, max );
            Canvas.SetTop( IncomeAfterTax, 0 );

            // Minority Interest
            var lmi = new Label( );
            lmi.FontSize = 10;
            lmi.Content = "Income After Tax";
            canvas.Children.Add( lmi );
            Canvas.SetLeft( lmi, 0 );
            Canvas.SetTop( lmi, 15 );
            var mi = new Label( );
            mi.FontSize = 10;
            mi.Content = FormattedCurrencyString( ist.Minority_Interest );
            canvas.Children.Add( mi );
            Canvas.SetLeft( mi, max );
            Canvas.SetTop( mi, 15 );

            // Equity In Affiliates
            var leia = new Label( );
            leia.FontSize = 10;
            leia.Content = "Equity In Affiliates";
            canvas.Children.Add( leia );
            Canvas.SetLeft( leia, 0 );
            Canvas.SetTop( leia, 30 );
            var eia = new Label( );
            eia.FontSize = 10;
            eia.Content = FormattedCurrencyString( ist.Equity_In_Affiliates );
            canvas.Children.Add( eia );
            Canvas.SetLeft( eia, max );
            Canvas.SetTop( eia, 30 );

            // Net Income Before Extra. Items
            var lnibei = new Label( );
            lnibei.FontSize = 10;
            lnibei.Content = "Net Income Before Extra. Items";
            canvas.Children.Add( lnibei );
            Canvas.SetLeft( lnibei, 0 );
            Canvas.SetTop( lnibei, 45 );
            var nibei = new Label( );
            nibei.FontSize = 10;
            nibei.Content = FormattedCurrencyString( ist.Net_Income_Before_Extra_Items );
            canvas.Children.Add( nibei );
            Canvas.SetLeft( nibei, max );
            Canvas.SetTop( nibei, 46 );

            // Accounting Change
            var lac = new Label( );
            lac.FontSize = 10;
            lac.Content = "Accounting Change";
            canvas.Children.Add( lac );
            Canvas.SetLeft( lac, 0 );
            Canvas.SetTop( lac, 60 );
            var ac = new Label( );
            ac.FontSize = 10;
            ac.Content = FormattedCurrencyString( ist.Accounting_Change );
            canvas.Children.Add( ac );
            Canvas.SetLeft( ac, max );
            Canvas.SetTop( ac, 60 );

            // Discontinued Operations
            var ldo = new Label( );
            ldo.FontSize = 10;
            ldo.Content = "Discontinued Operations";
            canvas.Children.Add( ldo );
            Canvas.SetLeft( ldo, 0 );
            Canvas.SetTop( ldo, 75 );
            var dop = new Label( );
            dop.FontSize = 10;
            dop.Content = FormattedCurrencyString( ist.Discontinued_Operations );
            canvas.Children.Add( dop );
            Canvas.SetLeft( dop, max );
            Canvas.SetTop( dop, 75 );

            // Extraordinary Item
            var lei = new Label( );
            lei.FontSize = 10;
            lei.Content = "Extraordinary Item";
            canvas.Children.Add( lei );
            Canvas.SetLeft( lei, 0 );
            Canvas.SetTop( lei, 90 );
            var ei = new Label( );
            ei.FontSize = 10;
            ei.Content = FormattedCurrencyString( ist.Extraordinary_Item );
            canvas.Children.Add( ei );
            Canvas.SetLeft( ei, max );
            Canvas.SetTop( ei, 90 );

            // Net Income
            var lni = new Label( );
            lni.FontSize = 10;
            lni.Content = "Net Income";
            canvas.Children.Add( lni );
            Canvas.SetLeft( lni, 0 );
            Canvas.SetTop( lni, 105 );
            var ni = new Label( );
            ni.FontSize = 10;
            ni.Content = FormattedCurrencyString( ist.Net_Income );
            canvas.Children.Add( ni );
            Canvas.SetLeft( ni, max );
            Canvas.SetTop( ni, 105 );

            // Preferred Dividends
            var lpd = new Label( );
            lpd.FontSize = 10;
            lpd.Content = "Preferred Dividends";
            canvas.Children.Add( lpd );
            Canvas.SetLeft( lpd, 0 );
            Canvas.SetTop( lpd, 120 );
            var pd = new Label( );
            pd.FontSize = 10;
            pd.Content = FormattedCurrencyString( ist.Preferred_Dividends );
            canvas.Children.Add( pd );
            Canvas.SetLeft( pd, max );
            Canvas.SetTop( pd, 120 );

            // Income Available to Common Excl. Extra Items
            var liatceei = new Label( );
            liatceei.FontSize = 10;
            liatceei.Content = "Income Available to Common Excl. Extra Items";
            canvas.Children.Add( liatceei );
            Canvas.SetLeft( liatceei, 0 );
            Canvas.SetTop( liatceei, 135 );
            var iatceei = new Label( );
            iatceei.FontSize = 10;
            iatceei.Content = FormattedCurrencyString( ist.Income_Available_to_Common_Excl_Extra_Items );
            canvas.Children.Add( iatceei );
            Canvas.SetLeft( iatceei, max );
            Canvas.SetTop( iatceei, 135 );

            // Income Available to Common Incl. Extra Items
            var liatciei = new Label( );
            liatciei.FontSize = 10;
            liatciei.Content = "Income Available to Common Incl. Extra Items";
            canvas.Children.Add( liatciei );
            Canvas.SetLeft( liatciei, 0 );
            Canvas.SetTop( liatciei, 150 );
            var iatciei = new Label( );
            iatciei.FontSize = 10;
            iatciei.Content = FormattedCurrencyString( ist.Income_Available_to_Common_Incl_Extra_Items );
            canvas.Children.Add( iatciei );
            Canvas.SetLeft( iatciei, max );
            Canvas.SetTop( iatciei, 150 );

            // Basic Weighted Average Shares
            var lbwas = new Label( );
            lbwas.FontSize = 10;
            lbwas.Content = "Basic Weighted Average Shares";
            canvas.Children.Add( lbwas );
            Canvas.SetLeft( lbwas, 0 );
            Canvas.SetTop( lbwas, 175 );
            var bwas = new Label( );
            bwas.FontSize = 10;
            bwas.Content = FormattedCurrencyString( ist.Basic_Weighted_Average_Shares );
            canvas.Children.Add( bwas );
            Canvas.SetLeft( bwas, max );
            Canvas.SetTop( bwas, 175 );

            // Basic EPS Excluding Extraordinary Items
            var lbeeei = new Label( );
            lbeeei.FontSize = 10;
            lbeeei.Content = "Basic EPS Excluding Extraordinary Items";
            canvas.Children.Add( lbeeei );
            Canvas.SetLeft( lbeeei, 0 );
            Canvas.SetTop( lbeeei, 190 );
            var beeei = new Label( );
            beeei.FontSize = 10;
            beeei.Content = FormattedCurrencyString( ist.Basic_EPS_Excluding_Extraordinary_Items );
            canvas.Children.Add( beeei );
            Canvas.SetLeft( beeei, max );
            Canvas.SetTop( beeei, 190 );

            // Basic EPS Including Extraordinary Items
            var lbeiei = new Label( );
            lbeiei.FontSize = 10;
            lbeiei.Content = "Basic EPS Including Extraordinary Items";
            canvas.Children.Add( lbeiei );
            Canvas.SetLeft( lbeiei, 0 );
            Canvas.SetTop( lbeiei, 205 );
            var beiei = new Label( );
            beiei.FontSize = 10;
            beiei.Content = FormattedCurrencyString( ist.Basic_EPS_Including_Extraordinary_Items );
            canvas.Children.Add( beiei );
            Canvas.SetLeft( beiei, max );
            Canvas.SetTop( beiei, 205 );

            // Dilution Adjustment
            var lda = new Label( );
            lda.FontSize = 10;
            lda.Content = "Dilution Adjustment";
            canvas.Children.Add( lda );
            Canvas.SetLeft( lda, 0 );
            Canvas.SetTop( lda, 220 );
            var da = new Label( );
            da.FontSize = 10;
            da.Content = FormattedCurrencyString( ist.Dilution_Adjustment );
            canvas.Children.Add( da );
            Canvas.SetLeft( da, max );
            Canvas.SetTop( da, 220 );

            // Diluted Weighted Average Shares
            var ldwas = new Label( );
            ldwas.FontSize = 10;
            ldwas.Content = "Diluted Weighted Average Shares";
            canvas.Children.Add( ldwas );
            Canvas.SetLeft( ldwas, 0 );
            Canvas.SetTop( ldwas, 235 );
            var dwas = new Label( );
            dwas.FontSize = 10;
            dwas.Content = FormattedCurrencyString( ist.Diluted_Weighted_Average_Shares );
            canvas.Children.Add( dwas );
            Canvas.SetLeft( dwas, max );
            Canvas.SetTop( dwas, 235 );

            //Diluted EPS Excluding Extraordinary Items
            var ldeeeis = new Label( );
            ldeeeis.FontSize = 10;
            ldeeeis.Content = "Diluted EPS Excluding Extraordinary Items";
            canvas.Children.Add( ldeeeis );
            Canvas.SetLeft( ldeeeis, 0 );
            Canvas.SetTop( ldeeeis, 250 );
            var deeeis = new Label( );
            deeeis.FontSize = 10;
            deeeis.Content = FormattedCurrencyString( ist.Diluted_EPS_Excluding_Extraordinary_Items );
            canvas.Children.Add( deeeis );
            Canvas.SetLeft( deeeis, max );
            Canvas.SetTop( deeeis, 250 );

            return canvas;
        }
Пример #5
0
        static void CreateIndividualIncomeStatement( IncomeStatement IS )
        {
            string tabName = ( IS.Period == Period.Annual ? "A" : "Q" )
                            + "_" + IS.PeriodEnd.ToShortDateString( ).Replace( "/", "_" );

            var ws = pck.Workbook.Worksheets.Add( tabName );

            ws.Cells [ 1, 1 ].Value = "Income Statement for " + ( IS.Period == Period.Annual ? " Year" : " Quarter" ) + " Ending " + IS.PeriodEnd.ToShortDateString( );
            ws.Cells [ "A1:H1" ].Merge = true;

            ws.Cells [ 3, 1 ].Value = "Revenue";
            ws.Cells [ 3, 2 ].Value = IS.Revenue;
            ws.Cells [ 4, 1 ].Value = "Other Revenue, Total";
            ws.Cells [ 4, 2 ].Value = IS.Other_Revenue_Total;

            ws.Cells [ 5, 1 ].Value = "Total Revenue";
            ws.Cells [ 5, 2 ].Value = IS.Total_Revenue;

            ws.Cells [ "A5:B5" ].Style.Font.Bold = true;
            ws.Cells [ "A5:B5" ].Style.Border.Top.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A5:B5" ].Style.Border.Bottom.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A5:A5" ].Style.Border.Left.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "B5:B5" ].Style.Border.Right.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;

            ws.Cells [ 6, 1 ].Value = "Cost of Revenue, Total";
            ws.Cells [ 6, 2 ].Value = IS.Cost_of_Revenue_Total;

            ws.Cells [ 7, 1 ].Value = "Gross Profit";
            ws.Cells [ 7, 2 ].Value = IS.Gross_Profit;

            ws.Cells [ "A7:B7" ].Style.Font.Bold = true;
            ws.Cells [ "A7:B7" ].Style.Border.Top.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A7:B7" ].Style.Border.Bottom.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A7:A7" ].Style.Border.Left.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "B7:B7" ].Style.Border.Right.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;

            ws.Cells [ 8, 1 ].Value = "Selling/General/Admin. Expenses, Total";
            ws.Cells [ 8, 2 ].Value = IS.Selling_and_General_and_Admin_Expenses_Total;
            ws.Cells [ 9, 1 ].Value = "Research & Development";
            ws.Cells [ 9, 2 ].Value = IS.Research_and_Development;
            ws.Cells [ 10, 1 ].Value = "Depreciation/Amortization";
            ws.Cells [ 10, 2 ].Value = IS.Depreciation_and_Amortization;
            ws.Cells [ 11, 1 ].Value = "Interest Expense (Income) - Net Operating";
            ws.Cells [ 11, 2 ].Value = IS.Interest_Expense__Income___less_Net_Operating;
            ws.Cells [ 12, 1 ].Value = "Unusual Expense (Income)";
            ws.Cells [ 12, 2 ].Value = IS.Unusual_Expense___Income__;
            ws.Cells [ 13, 1 ].Value = "Other Operating Expenses, Total";
            ws.Cells [ 14, 2 ].Value = IS.Other_Operating_Expenses_Total;
            ws.Cells [ 15, 1 ].Value = "Total Operating Expense";
            ws.Cells [ 15, 2 ].Value = IS.Total_Operating_Expense;

            ws.Cells [ 16, 1 ].Value = "Operating Income";
            ws.Cells [ 16, 2 ].Value = IS.Operating_Income;

            ws.Cells [ "A16:B16" ].Style.Font.Bold = true;
            ws.Cells [ "A16:B16" ].Style.Border.Top.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A16:B16" ].Style.Border.Bottom.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A16:A16" ].Style.Border.Left.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "B16:B16" ].Style.Border.Right.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;

            ws.Cells [ 17, 1 ].Value = "Interest Income (Expense), Net Non-Operating";
            ws.Cells [ 17, 2 ].Value = IS.Interest_Income__Expense___Net_NonOperating;
            ws.Cells [ 18, 1 ].Value = "Gain (Loss) on Sale of Assets";
            ws.Cells [ 18, 2 ].Value = IS.Gain___Loss___on_Sale_of_Assets;
            ws.Cells [ 19, 1 ].Value = "Other, Net";
            ws.Cells [ 19, 2 ].Value = IS.Other_Net;
            ws.Cells [ 20, 1 ].Value = "Income Before Tax";
            ws.Cells [ 20, 2 ].Value = IS.Income_Before_Tax;
            ws.Cells [ 21, 1 ].Value = "Income After Tax";
            ws.Cells [ 21, 2 ].Value = IS.Income_After_Tax;
            ws.Cells [ 22, 1 ].Value = "Minority Interest";
            ws.Cells [ 22, 2 ].Value = IS.Minority_Interest;
            ws.Cells [ 23, 1 ].Value = "Equity In Affiliates";
            ws.Cells [ 23, 2 ].Value = IS.Equity_In_Affiliates;
            ws.Cells [ 24, 1 ].Value = "Net Income Before Extra. Items";
            ws.Cells [ 24, 2 ].Value = IS.Net_Income_Before_Extra_Items;
            ws.Cells [ 25, 1 ].Value = "Accounting Change";
            ws.Cells [ 25, 2 ].Value = IS.Accounting_Change;
            ws.Cells [ 26, 1 ].Value = "Discontinued Operations";
            ws.Cells [ 26, 2 ].Value = IS.Discontinued_Operations;
            ws.Cells [ 27, 1 ].Value = "Extraodinary Item";
            ws.Cells [ 27, 2 ].Value = IS.Extraordinary_Item;

            ws.Cells [ 28, 1 ].Value = "Net Income";
            ws.Cells [ 28, 2 ].Value = IS.Net_Income;

            ws.Cells["A28:B28"].Style.Font.Bold = true;
            ws.Cells [ "A28:B28" ].Style.Border.Top.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A28:B28" ].Style.Border.Bottom.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "A28:A28" ].Style.Border.Left.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;
            ws.Cells [ "B28:B28" ].Style.Border.Right.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thick;

            ws.Cells [ 29, 1 ].Value = "Preferred Dividends";
            ws.Cells [ 29, 2 ].Value = IS.Preferred_Dividends;
            ws.Cells [ 30, 1 ].Value = "Income Available to Common Excl. Items";
            ws.Cells [ 30, 2 ].Value = IS.Income_Available_to_Common_Excl_Extra_Items;
            ws.Cells [ 31, 1 ].Value = "Income Available to Common Incl. Items";
            ws.Cells [ 31, 2 ].Value = IS.Income_Available_to_Common_Incl_Extra_Items;
            ws.Cells [ 32, 1 ].Value = "Basic Weighted Average Shares";
            ws.Cells [ 32, 2 ].Value = IS.Basic_Weighted_Average_Shares;
            ws.Cells [ 33, 1 ].Value = "Basic EPS Excluding Extroadinary Items";
            ws.Cells [ 33, 2 ].Value = IS.Basic_EPS_Excluding_Extraordinary_Items;
            ws.Cells [ 34, 1 ].Value = "Basic EPS Including Extroadinary Items";
            ws.Cells [ 34, 2 ].Value = IS.Basic_EPS_Including_Extraordinary_Items;
            ws.Cells [ 35, 1 ].Value = "Dividends per Share - Common Stock Primary Issue";
            ws.Cells [ 35, 2 ].Value = IS.Dividends_per_Share__less__Common_Stock_Primary_Issue;
            ws.Cells [ 36, 1 ].Value = "Gross Dividends - Common Stock";
            ws.Cells [ 36, 2 ].Value = IS.Gross_Dividends__less__Common_Stock;
            ws.Cells [ 37, 1 ].Value = "Net Income after Stock Based Comp. Expense";
            ws.Cells [ 37, 2 ].Value = IS.Net_Income_after_Stock_Based_Comp_Expense;
            ws.Cells [ 38, 1 ].Value = "Basic EPS after Stock Based Comp. Expense";
            ws.Cells [ 38, 2 ].Value = IS.Basic_EPS_after_Stock_Based_Comp_Expense;
            ws.Cells [ 39, 1 ].Value = "Diluted EPS after Stock Based Comp. Expense";
            ws.Cells [ 39, 2 ].Value = IS.Diluted_EPS_after_Stock_Based_Comp_Expense;
            ws.Cells [ 40, 1 ].Value = "Depreciation, Supplemental";
            ws.Cells [ 40, 2 ].Value = IS.Depreciation_Supplemental;
            ws.Cells [ 41, 1 ].Value = "Total Special Items";
            ws.Cells [ 41, 2 ].Value = IS.Total_Special_Items;
            ws.Cells [ 42, 1 ].Value = "Normalized Income Before Taxes";
            ws.Cells [ 42, 2 ].Value = IS.Normalized_Income_Before_Taxes;
            ws.Cells [ 43, 1 ].Value = "Effect of Special Items on Income Taxes";
            ws.Cells [ 43, 2 ].Value = IS.Effect_of_Special_Items_on_Income_Taxes;
            ws.Cells [ 44, 1 ].Value = "Income Taxes Ex. Impact of Special Items";
            ws.Cells [ 44, 2 ].Value = IS.Income_Taxes_Ex_Impact_of_Special_Items;
            ws.Cells [ 45, 1 ].Value = "Normalized Income After Taxes";
            ws.Cells [ 45, 2 ].Value = IS.Normalized_Income_After_Taxes;
            ws.Cells [ 46, 1 ].Value = "Normalized Income Avail to Common";
            ws.Cells [ 46, 2 ].Value = IS.Normalized_Income_Avail_to_Common;
            ws.Cells [ 47, 1 ].Value = "Basic Normalized EPS";
            ws.Cells [ 47, 2 ].Value = IS.Basic_Normalized_EPS;
            ws.Cells [ 48, 1 ].Value = "Diluted Normalized EPS";
            ws.Cells [ 48, 2 ].Value = IS.Diluted_Normalized_EPS;

            ws.Cells [ "A3:B3" ].Style.Border.Top.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thin;
            ws.Cells [ "A3:A48" ].Style.Border.Left.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thin;
            ws.Cells [ "B3:B48" ].Style.Border.Right.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thin;
            ws.Cells [ "A48:B48" ].Style.Border.Bottom.Style = OfficeOpenXml.Style.ExcelBorderStyle.Thin;

            for ( int i = 3; i < 49; i++ )
                ws.Cells [ i, 2 ].Style.Numberformat.Format = "\"$\"#,##0;";
        }