Commit 1f58068e authored by Dmitry.Shahtanov's avatar Dmitry.Shahtanov Committed by Alexander.Trofimov

fix: Bug 21924 - Ошибка #NAME? при удалении данных после некорректного ввода формулы

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51379 954022d7-b5bf-4e40-9824-e11837661b57
parent f04e97cd
...@@ -4252,6 +4252,12 @@ Cell.prototype.setValue=function(val,callback){ ...@@ -4252,6 +4252,12 @@ Cell.prototype.setValue=function(val,callback){
Если значение является формулой, то проверяем содержиться ли в ячейке формула или нет, если "да" - то очищаем в графе зависимостей список, от которых зависит формула(masterNodes), позже будет построен новый. Затем выставляем флаг о необходимости дальнейшего пересчета, и заносим ячейку в список пересчитываемых ячеек. Если значение является формулой, то проверяем содержиться ли в ячейке формула или нет, если "да" - то очищаем в графе зависимостей список, от которых зависит формула(masterNodes), позже будет построен новый. Затем выставляем флаг о необходимости дальнейшего пересчета, и заносим ячейку в список пересчитываемых ячеек.
*/ */
if( null != val && val[0] == "=" && val.length > 1){ if( null != val && val[0] == "=" && val.length > 1){
var oldFP = undefined;
if( this.formulaParsed )
oldFP = this.formulaParsed;
this.formulaParsed = new parserFormula(val.substring(1),this.oId.getID(),this.ws); this.formulaParsed = new parserFormula(val.substring(1),this.oId.getID(),this.ws);
if( !this.formulaParsed.parse() ){ if( !this.formulaParsed.parse() ){
switch( this.formulaParsed.error[this.formulaParsed.error.length-1] ){ switch( this.formulaParsed.error[this.formulaParsed.error.length-1] ){
...@@ -4261,10 +4267,12 @@ Cell.prototype.setValue=function(val,callback){ ...@@ -4261,10 +4267,12 @@ Cell.prototype.setValue=function(val,callback){
wb.handlers.trigger("asc_onError",this.formulaParsed.error[this.formulaParsed.error.length-1], c_oAscError.Level.NoCritical); wb.handlers.trigger("asc_onError",this.formulaParsed.error[this.formulaParsed.error.length-1], c_oAscError.Level.NoCritical);
if( callback ) if( callback )
callback(false); callback(false);
if( oldFP !== undefined ){
this.formulaParsed = oldFP;
}
return; return;
} }
} }
} }
else{ else{
val = "="+this.formulaParsed.assemble(); val = "="+this.formulaParsed.assemble();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment