As ErikH stated it is always good practice to create a new extension or create a custom folder to override core files
So In order to add a supplement address in the report you need to add a new column to the report first
'civicrm_address' => array(
'dao' => 'CRM_Core_DAO_Address',
'fields' => array(
'supplemental_address_1' => array(
'title' => ts('supplemental address 1'),
'default' => TRUE,
),
),
The above code will add a column to the report and next you need to add address table to the from function
if ($this->_params['fields']['supplemental_address_1']){
$this->_from .= "
INNER JOIN civicrm_address {$this->_aliases['civicrm_address']}
ON (( {$this->_aliases['civicrm_address']}.contact_id =
{$this->_aliases['civicrm_contact']}.id OR
{$this->_aliases['civicrm_address']}.contact_id =
{$this->_aliases['civicrm_contact_b']}.id ) AND
{$this->_aliases['civicrm_address']}.is_primary = 1 ) ";
} else if (!empty($this->_params['country_id_value']) ||
!empty($this->_params['state_province_id_value'] )
) {
$this->_from .= "
INNER JOIN civicrm_address {$this->_aliases['civicrm_address']}
ON (( {$this->_aliases['civicrm_address']}.contact_id =
{$this->_aliases['civicrm_contact']}.id OR
{$this->_aliases['civicrm_address']}.contact_id =
{$this->_aliases['civicrm_contact_b']}.id ) AND
{$this->_aliases['civicrm_address']}.is_primary = 1 ) ";
}
By doing the above you can achieve what you wanted
But still you need to add condition to your address table based on the location type or select only primary flag
I guess this helps !!!