Zugriff auf Layouts

 

Je nach Art der Speicherung der Reportdateien (Report-Layouts) müssen für den Zugriff auf die Layouts unterschiedliche Befehle verwendet werden.

 

 

Unterschiede der Befehle

 

Parameter

 

Sind die Layouts im Dateisystem gespeichert, so reicht meist die Angabe des Reportnamens, während bei einer Speicherung in der Datenbank zusätzlich der Server- und der Datenbankname angegeben werden müssen.

 

Name

 

Beide "Befehlsgruppen" beginnen mit den gleichen Befehlsnamen. Bei den Befehlen, die für den Zugriff auf Reportlayouts in der Datenbank gedacht sind, wurde an den Namen noch die Erweitertung "FromDatabase" (z. B. NTPInitFromDatabase) angehängt. Dadurch ist eine leichte Unterscheidung der Befehle möglich.

 

 

Arbeitsweise der Befehle

 

Die Befehle, die auf Layouts die in dem Dateisystem gespeichert sind zugreifen, erstellen von den vorhandenen Report-Dateien eine Kopie in dem entsprechenden gesetzten temp. Arbeitsverzeichnis.

Die Befehle, die in Datenbanken gespeicherte Layouts benutzen, lösen die dort vorhandenen Dateien unter einem temp. Dateinamen in das gesetzte temp. Verzeichnis des Rechners.

Die so erstellten Dateien werden für den Zugriff auf das Report-Layout und die Erstellung des Reports benutzt. Nach Beendigung der Reportausführung werden diese Dateien wieder entfernt.

 

 

Der nachfolgende Auszug (nicht komplett lauffähig) eines Scriptes zeigt die Verwendung von Report-Layouts die in Datenbanken gespeichert sind:

REM Read the environment

Set session =New NotesSession

Set db = session.CurrentDatabase

Set collection = db.UnprocessedDocuments

   

REM Read the settings of the current database

DatabaseName = db.FilePath

ServerName = db.Server

   

REM Initialize the buffer for the report name

StrBuffer = Space(254)

         

REM Display the report list ( the report name is returned in "StrBuffer" )

If NTPReportListFromDatabase ( StrBuffer, ServerName, DatabaseName ) >= 0 Then

         

 StrBuffer = Trim ( StrBuffer )

 REM Determine the number of fields in the report

 FieldCount = NTPGetFieldCountFromDatabase ( StrBuffer, ServerName, DatabaseName )

         

 If ( FieldCount >= 0 ) Then

REM Read all field names from the report and store them in a list

For Counter = 1 To FieldCount

FieldBuffer = Space(254)

Status = NTPGetFieldNameFromDatabase ( StrBuffer, ServerName, DatabaseName, Counter, FieldBuffer )

FieldBuffer = Trim ( FieldBuffer )

FieldList( Counter ) = FieldBuffer

Next Counter

             

REM Initialize a new report

ReportID = 0

ReportID = NTPInitFromDatabase ( StrBuffer, ServerName, DatabaseName, 0)

             

If ReportID >= 0 Then              

.........