2017-01-04 49 views
6

Skonstruowałem raport za pomocą BIRT i Data tables. Wszystko działa zgodnie z oczekiwaniami. Jednak height i width z BIRT viewer nie są dynamiczne. Są statyczne, a więc przewijanie jest stosowane. Napisałem więc kod, aby uzyskać dynamiczny stan height i width z BIRT viewer.Ustawianie wysokości i szerokości przeglądarki BIRT dynamicznie w oparciu o zawartość

function resizeFrame(e,f){ 
     var x = document.getElementsByTagName("iframe"); 

     var winW = 1112, winH = 486; 
     if (document.body && document.body.offsetWidth) { 
      winW = document.body.offsetWidth; 
      winH = document.body.offsetHeight; 
     } 
     if (document.compatMode=='CSS1Compat' && document.documentElement && document.documentElement.offsetWidth) { 
      winW = document.documentElement.offsetWidth; 
      winH = document.documentElement.offsetHeight; 
     } 
     if (window.innerWidth && window.innerHeight) { 
      winW = window.innerWidth; 
      winH = window.innerHeight; 
     } 

     x[0].style.width = winW + "px"; 
     x[0].style.height = winH + "px"; 

     console.log(f,e); 
    } 

BIRT code is:

<birt:viewer id="birtViewer" reportDesign="/sampleReport.rptdesign" 
      pattern="run" height="700" width="1136" scrolling="none" 
      showParameterPage="false" isHostPage="false"> 

     </birt:viewer> 

Należy pamiętać, że wysokość i szerokość BIRT widza są 700px i 1136px odpowiednio. Powyższy kod nie powoduje dynamicznego przekształcania height ani width.
Jak mogę zmienić wysokość i szerokość BIRT? Dodałem zdjęcie, by uzyskać wyraźne zrozumienie. BIRT
Jak widać na zdjęciu, dodaje się przewijanie w pionie. Jak temu zapobiec i zwiększyć wysokość BIRT w zależności od wysokości stołu?

Odpowiedz

1

Czy byłeś w stanie wywołać funkcję, którą napisałeś z raportu? Nie sądzę. Chciałbym rzucić okiem na kod, który "buduje" przeglądarkę i uruchamia raport.

Po utworzeniu i załadowaniu raportu można wywołać funkcję javascript w celu zmiany rozmiaru okna w celu dopasowania do zawartości. Więcej informacji tutaj: http://www.eclipse.org/birt/documentation/integrating/viewer-usage.php

Nie wiesz, dlaczego tego potrzebujesz? Czy nie jest tak łatwo otworzyć okno na pełnym ekranie?

0

Proponuję użyć wysokości i szerokości w procentach (%).

Obliczyć wysokość i szerokość okna i użyć go dla zewnętrznego elementu div.

dla wewnętrznych div użyj wysokości i szerokości 100%, więc wewnętrzny div zostanie ustalony w zewnętrznym dziale, a przewijanie nie pojawi się na ekranie.

Mam nadzieję, że to ci pomoże. Dzięki