private void WriteTabularSummaryFlowOutputData(int iteration, int timestep)
        {
            foreach (OutputFlow r in this.m_SummaryOutputFlowRecords)
            {
                DataRow dr = this.m_OutputFlowTable.NewRow();

                dr[Constants.ITERATION_COLUMN_NAME]                 = iteration;
                dr[Constants.TIMESTEP_COLUMN_NAME]                  = timestep;
                dr[Constants.FROM_STRATUM_ID_COLUMN_NAME]           = r.FromStratumId;
                dr[Constants.FROM_SECONDARY_STRATUM_ID_COLUMN_NAME] = DataTableUtilities.GetNullableDatabaseValue(r.FromSecondaryStratumId);
                dr[Constants.FROM_TERTIARY_STRATUM_ID_COLUMN_NAME]  = DataTableUtilities.GetNullableDatabaseValue(r.FromTertiaryStratumId);
                dr[Constants.FROM_STATECLASS_ID_COLUMN_NAME]        = r.FromStateClassId;
                dr[Constants.FROM_STOCK_TYPE_ID_COLUMN_NAME]        = DataTableUtilities.GetNullableDatabaseValue(r.FromStockTypeId);
                dr[Constants.TRANSITION_TYPE_ID_COLUMN_NAME]        = DataTableUtilities.GetNullableDatabaseValue(r.TransitionTypeId);
                dr[Constants.TO_STRATUM_ID_COLUMN_NAME]             = r.ToStratumId;
                dr[Constants.TO_STATECLASS_ID_COLUMN_NAME]          = r.ToStateClassId;
                dr[Constants.TO_STOCK_TYPE_ID_COLUMN_NAME]          = DataTableUtilities.GetNullableDatabaseValue(r.ToStockTypeId);
                dr[Constants.FLOW_GROUP_ID_COLUMN_NAME]             = r.FlowGroupId;
                dr[Constants.END_STRATUM_ID_COLUMN_NAME]            = DataTableUtilities.GetNullableDatabaseValue(r.TransferToStratumId);
                dr[Constants.END_SECONDARY_STRATUM_ID_COLUMN_NAME]  = DataTableUtilities.GetNullableDatabaseValue(r.TransferToSecondaryStratumId);
                dr[Constants.END_TERTIARY_STRATUM_ID_COLUMN_NAME]   = DataTableUtilities.GetNullableDatabaseValue(r.TransferToTertiaryStratumId);
                dr[Constants.END_STATECLASS_ID_COLUMN_NAME]         = DataTableUtilities.GetNullableDatabaseValue(r.TransferToStateClassId);
                dr[Constants.END_MIN_AGE_COLUMN_NAME]               = DataTableUtilities.GetNullableDatabaseValue(r.TransferToMinimumAge);

                dr[Constants.AMOUNT_COLUMN_NAME] = r.Amount;

                this.m_OutputFlowTable.Rows.Add(dr);
            }

            this.m_SummaryOutputFlowRecords.Clear();
        }
        private void WriteTabularSummaryStockOutput(int iteration, int timestep)
        {
            foreach (OutputStock r in this.m_SummaryOutputStockRecords)
            {
                DataRow dr = this.m_OutputStockTable.NewRow();

                dr[Constants.ITERATION_COLUMN_NAME]            = iteration;
                dr[Constants.TIMESTEP_COLUMN_NAME]             = timestep;
                dr[Constants.STRATUM_ID_COLUMN_NAME]           = r.StratumId;
                dr[Constants.SECONDARY_STRATUM_ID_COLUMN_NAME] = DataTableUtilities.GetNullableDatabaseValue(r.SecondaryStratumId);
                dr[Constants.TERTIARY_STRATUM_ID_COLUMN_NAME]  = DataTableUtilities.GetNullableDatabaseValue(r.TertiaryStratumId);
                dr[Constants.STATECLASS_ID_COLUMN_NAME]        = r.StateClassId;
                dr[Constants.STOCK_GROUP_ID_COLUMN_NAME]       = r.StockGroupId;
                dr[Constants.AMOUNT_COLUMN_NAME] = r.Amount;

                this.m_OutputStockTable.Rows.Add(dr);
            }

            this.m_SummaryOutputStockRecords.Clear();
        }