JS를 통해 특정 SQL 문을 호출하는 방법 이 요구 사항은 보고서 및 데이터 플랫폼 개발에서 매우 일반적입니다. 보고 플랫폼 FineReport의 개발을 예로 들면, 특정 버튼을 클릭한 후 데이터베이스 항목 수를 판단하고 다음 단계를 결정할 수 있습니다. 그러면 뒤에서 어떻게 이런 일이 일어나는 걸까요?
해결 방법
이 기능을 구현하려면 먼저 Finereport에 내장된 수식과 SQL 함수에 대한 이해가 필요합니다.
FineRepor의 내장 수식인 FR.remoteEvaluate("특정 수식")을 호출하면 반환 값은 이 특정 수식의 결과입니다.
예:
var a = FR.remoteEvaluate("sum(1+2)");
이때 변수 a의 값은 3입니다.
SQL 함수에서는 큰따옴표(")를 여러 번 사용해야 하므로 모든 사람이 백슬래시()를 사용하여 이스케이프하는 것에 주의해야 합니다.
var sql = " SQL("FRDemo","Select count(*) fromsales_basic",1,1)"
또는 이스케이핑으로 인한 복잡성을 줄이기 위해 다음 형식으로 작성할 수 있습니다. var sql=" select count(*) from sales_basic"; varres=FR.remoteEvaluate('sql("FRDemo","'+sql+'",1,1)');
매개변수 패널에 버튼을 추가하고, 버튼에 클릭 이벤트에 다음 SQL을 작성합니다.
var sql ="SQL(\"FRDemo\",\"Select count(*) fromsales_basic\",1,1)" alert(sql); var Count = FR.remoteEvaluate(sql); alert(Count);
페이징 미리보기 템플릿에서 버튼을 클릭하면 효과는 다음과 같습니다.