[]
        
(Showing Draft Content)

REFRESH

이 함수는 수식 참조를 다시 계산합니다.

구문

REFRESH(formula, evaluateMode, interval)

인수

이 함수는 다음 인수를 가집니다:

인수

설명

formula

평가할 수식에 대한 참조입니다. 이 인수는 필수입니다.

evaluateMode

GC.Spread.CalcEngine.Functions.AsyncFunctionEvaluateMode 타입입니다. 이 인수는 필수입니다.

interval

밀리초 단위의 간격입니다. evaluateMode 옵션이 interval로 설정되어 있어야 이 인수를 사용할 수 있습니다.

참고

REFRESH는 수식의 재계산 방식을 제어하려는 경우에 사용합니다.

예시

sheet.setFormula(2, 2, "=Refresh(now(), 2, 1000)");

sheet.setFormula(3, 2, "=REFRESH(GETTIMEFROMSERVER(),1)");

코드 사용 예시

다음 예제는 REFRESH 수식을 사용하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
<head>
    <title>SpreadJS</title>
<link href="./css/gc.spread.sheets.x.x.x.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./scripts/gc.spread.sheets.all.x.x.x.min.js"></script>
<!--jQuery References-->
<script src="http://code.jquery.com/jquery-2.0.2.js" type="text/javascript"></script>
  <script type="text/javascript">
         window.onload = function () {
     var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 3});
     var sheet = spread.getActiveSheet();
     var GetNumberFromServer = function () {
     }
     GetNumberFromServer.prototype = new GC.Spread.CalcEngine.Functions.AsyncFunction("GETNUMBERFROMSERVER", 2, 2);
     GetNumberFromServer.prototype.evaluate = function () {
         var context = arguments[0], arg1 = arguments[1];
         $.get('http://domain_name/api/dir/ ' + (arg1 || 1), function (value) {
             context.setAsyncResult(value);
         });
     }
 
     var GetTimeFromServer = function () {
     }
     GetTimeFromServer.prototype = new GC.Spread.CalcEngine.Functions.AsyncFunction("GETTIMEFROMSERVER", 2, 2);
     GetTimeFromServer.prototype.evaluate = function (context) {
         $.get('http://domain_name/api/time/ ', function (value) {
             context.setAsyncResult(value);
         });
     }
     GetTimeFromServer.prototype.evaluateMode = function () {
         return 2;
     };
     GetTimeFromServer.prototype.interval = function () {
         return 1000;
     };
 
     GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("GETNUMBERFROMSERVER", new GetNumberFromServer());
     GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("GETTIMEFROMSERVER", new GetTimeFromServer());
 
     sheet.setValue(0, 0, 'ChangeValue');
     sheet.setValue(0, 1, 'Formula');
     sheet.setValue(0, 2, 'Result');
     sheet.setValue(0, 3, 'Comments');
     sheet.setValue(1, 3, 'On A2 changed');
     sheet.setValue(2, 3, 'On A2 changed');
     sheet.setValue(3, 3, 'Evaluate once');
     sheet.setValue(4, 3, 'Every 2 seconds');
     sheet.setValue(1, 0, 1);
     sheet.setValue(1, 1, '=GetNumberFromServer(A2)');
     sheet.setValue(2, 1, '=Refresh(GetNumberFromServer(A2), 0)');
     sheet.setValue(3, 1, '=Refresh(GetNumberFromServer(A2), 1)');
     sheet.setValue(4, 1, '=Refresh(GetNumberFromServer(A2), 2, 2000)');
     sheet.setFormula(1, 2, '=GetNumberFromServer(A2)');
     sheet.setFormula(2, 2, '=Refresh(GetNumberFromServer(A2), 0)');
     sheet.setFormula(3, 2, '=Refresh(GetNumberFromServer(A2), 1)');
     sheet.setFormula(4, 2, '=Refresh(GetNumberFromServer(A2), 2, 2000)');
     sheet.setColumnWidth(0, 100);
     sheet.setColumnWidth(1, 300);
     sheet.setColumnWidth(2, 200);
     sheet.setColumnWidth(3, 200);
 
     sheet.setValue(7, 1, "=Refresh(now(), 2, 1000)");
     sheet.setValue(7, 3, "Every 1 seconds");
     sheet.setFormula(7, 2, "=Refresh(now(), 2, 1000)");
 
     sheet.setValue(10, 1, "=GetTimeFromServer()");
     sheet.setValue(10, 3, "Every 1 seconds");
     sheet.setFormula(10, 2, "=GetTimeFromServer()");
     sheet.getCell(10, 2).hAlign(GC.Spread.Sheets.HorizontalAlign.right);
 }                                      
</script>

</head>
<body>
    <div id="ss" style="width:100%;height:500px;border:1px solid gray"></div>
</body>
</html>