Das vorliegende InputScript zeigt auf, wie man Variablen verändern kann, so dass man eine Blätterfunktion erhält.

InputScript zum Blättern in einer durch GuiXT dargestellten Liste. Da die Anzahl der auf einem Screen darstellbaren Elemente limitiert ist (sonst erhält man Memory Fehler) muss zwischen den einzelnen Elementen geblättert werden können, damit die max. Anzahl der Elemente nicht überschritten wird.

// 26.03.2010 / Gérald Koehn / Koehn Consulting / www.guixt.ch

Parameter Blaettern

// abhängig, wie geblättert wird werden die steuernden Variablen verändert
// dazu gehören: V[Anz_Zeilen], V[Anz_Zeilen_pro_Blatt], V[Start_Zeile] , V[Ende_Zeile]

// wobei die Variablen in vorliegenden Scripten gesetzt werden (GuiXT Script mit Anzeige der Zeilen oder im InputScript
// welche die Daten liest z.B. mit Call und RFC Zugriff)

// Genauere Beschreibung der Variablen

// V[Anz_Zeilen]  		// Beinhaltet das Total der Zeilen (z.B. 2323)
// V[Anz_Zeilen_pro_Blatt]	// Wieviele Zeilen jeweils pro Blättern angezeigt werden soll (z.B. 40)
// V[Start_Zeile]			// Zeilennummer der ersten anzuzeigenden Zeile (kann zwischen 1 und  V[Anz_Zeilen] minus V[Anz_Zeilen_pro_Blatt] liegen)
// V[Ende_Zeile]              // Zeilenummer der letzten anzuzeigenden Zeile 


// Blättern auf erste Seite
if U[Blaettern=Erste_Seite]
  set V[Start_Zeile] 1
  if V[Anz_Zeilen_pro_Blatt>&[Anz_Zeilen]]
    set V[Ende_Zeile] &[Anz_Zeilen]
  else
    set V[Ende_Zeile] &[Anz_Zeilen_pro_Blatt]
  endif
endif

// Blättern auf letzte Seite
if U[Blaettern=Letzte_Seite]
  set V[Ende_Zeile] &[Anz_Zeilen] 
  set V[Start_Zeile] &[Ende_Zeile] - &[Anz_Zeilen_pro_Blatt]
  set V[Start_Zeile] &[Start_Zeile] + 1
  if V[Start_Zeile<1]  // wenn erste Zeile kleiner als 1 würde, dann setzen wir die erste Zeile auf 1
    set V[Start_Zeile] 1
  endif
endif

// Blättern auf vorige Seite
if U[Blaettern=Vorige_Seite]
  set V[Start_Zeile] &[Start_Zeile] - &[Anz_Zeilen_pro_Blatt]
  if V[Start_Zeile<1]  // wenn erste Zeile kleiner als 1 würde, dann setzen wir die erste Zeile auf 1
    set V[Start_Zeile] 1
  endif
  set V[Ende_Zeile] &[Ende_Zeile] - &[Anz_Zeilen_pro_Blatt]
  if V[Ende_Zeile<&[Anz_Zeilen_pro_Blatt]]   // wenn die Letzte anzuzeigende Zeile kleiner wäre als der Defaultwert der anzuzeigenden
    // dann setzten wir die letzte Zeile auf den Defaultwert
    if V[Anz_Zeilen_pro_Blatt<&[Anz_Zeilen]]
      set V[Ende_Zeile] &[Anz_Zeilen_pro_Blatt]
    else
      set V[Ende_Zeile] &[Anz_Zeilen]
    endif
  endif
endif

// Blättern auf nächste Seite
if U[Blaettern=Naechste_Seite]
  set V[Ende_Zeile] &[Ende_Zeile] + &[Anz_Zeilen_pro_Blatt]
  if V[Ende_Zeile>&[Anz_Zeilen]]  // Ende wäre grösser als die max. Materialien
    set V[Ende_Zeile] &[Anz_Zeilen]
    set V[Start_Zeile] &[Ende_Zeile] - &[Anz_Zeilen_pro_Blatt]
    set V[Start_Zeile] &[Start_Zeile] + 1
    if V[Start_Zeile<1]
      set V[Start_Zeile] 1
    endif
  else
    set V[Start_Zeile] &[Start_Zeile] + &[Anz_Zeilen_pro_Blatt]
  endif
endif

Return

siehe auch Beispiel Anzeigen von Kunden incl. Blätterfunktion
http://www.koehn.ch/anzeigekundenberbapi.html

Empfehlen