I have a function that gets called in two different scenarios. Scenario 1 gets triggered by a dropbown selection, and I set the variable "sheetName" based on the selected value. Scenario 2 doesn't have a trigger event, so I want to set the variable further down in my code when I gathered the other information I need in order to set the value.
Now here's my problem: When Scenario 1 occurs, sheetName gets defined and the function proceeds. But with the code below, sheetName appears to be undefined as soon as it reaches the if condition for the second code. So the value gets overwritten here because the program thinks, sheetName is undefined.
Whenever I remove the if condition for the second scenario everything works fine and sheetName has the correct value I defined earlier in the code.
I can't define the two values within an if/else statement because for the first scenario I need the oEvent and for the second scenario I need the wb data.. Why does the if condition remove the value of my variable? Am I checking incorrectly?
Please let me know if you need anything else!
onSheetSelected : function(oEvent) {
var file = sap.ui.getCore()._file;
var oTable = this.getView().byId('uploadData');
// Sheet name gets defined for Scenario 1
if(oEvent !== undefined) {
var sheetName = oEvent.getSource().getSelectedItem().getText();
}
if(file && window.FileReader){
var reader = new FileReader();
var result = {}, data;
reader.readAsBinaryString(file);
reader.onload = function(e) {
var rawLog = reader.result;
data = e.target.result;
var wb = XLSX.read(data, {type: 'binary', cellDates: true, cellText: false, cellNF: true});
// Sheetname gets defined for Scenario 2
if(sheetName === undefined) {
var sheetName = wb.SheetNames[0];
}
var worksheet = wb.Sheets[sheetName];
... some other stuff going on...
}.bind(this);
};
},
var