/**
  * Export selected user tracking data
  * @global ilDB $ilDB
  * @global ilObjUser $ilUser
  * @param bool $a_all
  * @param array $a_users
  */
 public function exportSelected($a_all, $a_users = array())
 {
     global $ilDB, $ilUser, $ilSetting;
     $inst_id = $ilSetting->get('inst_id', 0);
     // Get all scos
     $scos = array();
     //get all SCO's of this object
     $query = 'SELECT scorm_object.obj_id, scorm_object.title, ' . 'scorm_object.c_type, scorm_object.slm_id, scorm_object.obj_id scoid  ' . 'FROM scorm_object, sc_item, sc_resource ' . 'WHERE (scorm_object.slm_id = %s ' . 'AND scorm_object.obj_id = sc_item.obj_id ' . 'AND sc_item.identifierref = sc_resource.import_id ' . 'AND sc_resource.scormtype = %s) ' . 'GROUP BY scorm_object.obj_id, scorm_object.title, scorm_object.c_type,  ' . 'scorm_object.slm_id, scorm_object.obj_id ';
     $res = $ilDB->queryF($query, array('integer', 'text'), array($this->getId(), 'sco'));
     while ($row = $ilDB->fetchAssoc($res)) {
         $scos[] = $row['scoid'];
     }
     $users = array();
     if ($a_all) {
         $query = 'SELECT user_id FROM scorm_tracking ' . 'WHERE obj_id = ' . $ilDB->quote($this->getId(), 'integer') . ' ' . 'GROUP BY user_id';
         $res = $ilDB->query($query);
         while ($row = $ilDB->fetchAssoc($res)) {
             $users[] = $row['user_id'];
         }
     } else {
         $users = $a_users;
     }
     // get all completed
     include_once './Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php';
     $completed = ilObjSCORMTracking::_getCompleted($scos, $this->getId());
     $last = ilObjSCORMTracking::lookupLastAccessTimes($this->getId());
     include_once './Services/Utilities/classes/class.ilCSVWriter.php';
     $csv = new ilCSVWriter();
     $csv->setSeparator(';');
     foreach (array('Department', 'Login', 'Lastname', 'Firstname', 'Email', 'Date', 'Status') as $col) {
         $csv->addColumn($col);
     }
     // Read user data
     $query = 'SELECT usr_id,login,firstname,lastname,department,email ' . 'FROM usr_data ' . 'WHERE ' . $ilDB->in('usr_id', $users, false, 'integer');
     $res = $ilDB->query($query);
     while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) {
         $csv->addRow();
         $csv->addColumn((string) $row->department);
         $csv->addColumn((string) $row->login);
         $csv->addColumn((string) $row->lastname);
         $csv->addColumn((string) $row->firstname);
         $csv->addColumn((string) $row->email);
         if (isset($last[$row->usr_id])) {
             $dt = new ilDateTime($last[$row->usr_id], IL_CAL_DATETIME);
             $csv->addColumn((string) $dt->get(IL_CAL_FKT_DATE, 'd.m.Y'));
         } else {
             $csv->addColumn('');
         }
         $csv->addColumn(in_array($row->usr_id, $completed) ? 1 : 0);
     }
     ilUtil::deliverData($csv->getCSVString(), 'scorm_tracking_' . $this->getRefId() . '_' . time() . '.csv');
 }