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; }
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; }
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; }
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; }
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;"; }