Menü

Dialog: MultiSelect (iScript)

Zurück | Ebene zurück

Diese Dialogobjekt stellt eine Auswahlbox mit mehreren Wahlmöglichkeiten zur Verfügung. Desweiteren kann die Reihenfolge der Elemente über Drag und Drop verändert werden.

Methoden

  • function Add: MultiSelectItem - fügt einen neuen Listen Eintrag hinzu und gibt
  • procedure Execute: Boolean - Zeigt das Dialogfenster an als Datei (PDF)
  • procedure AddItemsFromRecordset: Zufügen mehrerer Einträge aus einem SQL-Recordset
  • procedure AddItemsFromSql: Zufügen mehrerer Einträge die über einen SQL-Befehl erzeugt werde. Ansonsten die gleichen Optionen, wie AddItmensFromRecordset

Eigenschaften

  • property Count: Integer Anzahl der Einträge
  • property Items[Index: Integer] MultiSelectIitem - Zugriff auf einzelne Einträge
  • property AllowDragDrop: Boolean - gibt an, ob das Verschieben der Einträge erlaubt ist
  • property FontName: string - Schriftart
  • property FontSize: Integer - Schriftgröße
  • property  FontColor: Standardfarbe für alle Einträge
  • property HtmlHelpHeight: Die Höhe des HTML-Hilfebereichs im unteren Bereich des Fensters
  • property SingleSelect: Standard FALSE -Es kann nur ein Element gewählt werden. Dies geht auch per Doppelklick
  • property ActiveItem: Zugriff auf den gerade ausgewählten Eintrag
  • property AddStringList: Zufügen von Einträgen aus einer Stringliste (Objekt EULANDA.StringList)

Eigenschaften von MultiSelectItem

  • property Caption: string - angezeigter Name
  • property Data: Variant - Ein beliebiger Wert, der frei verwendet werden kann
  • property State: Integer - Zustand des Eintrags 0=nicht ausgewählt, 1=ausgewählt
  • property FontColor: Farbe des Eintrags, wenn diese von der Standardfarbe abweichen soll
  • property FontBold: Boolean - gibt an, dass der Eintrag in Fettschrift dargestellt werden soll
  • property HtlmHelp: eine kleine HTML-Hilfe für den einzelnen Eintrag
  • property IconURL: Besonderes Icon für diesen Eintrag
  • property Level: Zum Kennzeichenen von Unterelementen

A. Einfaches Beispiel für den MultiSelect-Dialog


In diesem Beispiel wird ein Multi - Select - Dialog erzeugt, welcher drei Einträge hat.

VBScript


option explicit 

dim dialog, s, t, i
set dialog = Client.CreateDialog("Eulanda.MultiSelect","")
  with dialog
    .Add("Hallo")
    .Add("Punkt 2")
    .Add("Punkt 3")
      if .Execute Then
        s = ""
          for i=0 to .Count-1
            with .Items(i)
              if .State = 1 Then
                t = "ausgewählt"
                else t = ""
	     end if
              s = S & .Caption & " - " & t & vbCrLf
            end With
          Next
        MsgBox s
      end if
  end With
set dialog = Nothing

B. Beispiel für ein MultiSelect-Dialog


In diesem Beispiel wird ein Multi-Select - Dialog erzeugt, welcher die Auswahlmöglichkeiten aller Tabellenfelder hat und übergibt die Daten an eine Exceltabelle. Die Schriftart der angezeigten Elemente wird hierbei über BBS-Markup ausgezeihner.

VBScript
option explicit

dim dialog, s, t, i, rs, sql, cap, fn
set dialog = Client.CreateDialog("Eulanda.MultiSelect","")

sql = "SELECT name, vartyp=dbo.cnf_SqlVarDeclare('',xtype,prec,scale) " &_
" FROM syscolumns WHERE id = OBJECT_ID('Adresse') ORDER BY colId"

Set rs = Client.ExecuteSql(sql)
With dialog
  .IconUrl = "excel"
  .Title = "Excel-Export Adressen"
  .SubTitle = "Bitte wählen Sie die gewünschten Felder"
  do while not rs.Eof
    fn = rs.Fields("name").Value
    cap = "[b]" & fn & "[/b] - [blue]" &_
    rs.Fields("vartyp").Value & " [/blue]"
    with .Add(Cap)
      .Data = fn
    end with
    rs.MoveNext
  loop
	
  set rs = Nothing
  if .Execute Then
    s = ""
    for i=0 to .Count-1
      with .Items(i)
        if .State = 1 Then
          If s <> "" Then
            s = s & ", "
           end if
           s = s & .data
         end if
      end With
    Next
  end if
end With

set dialog = Nothing


sql = "SELECT TOP 100 " & s & " FROM Adresse ORDER BY Match"
Set rs = Client.ExecuteSql(sql)
impex.excelNewWsCopyFromRecordset rs



C. Excel-Ausgabe der Adressen mit Abfrage der Spalten


In diesem Beispiel wird ein Multi - Select - Dialog erzeugt, welcher die Auswahlmöglichkeiten aller Tabellenfelder hat. Nach dieser Auswahl wird man gefragt wie hoch die Ergebnismenge sein soll. Diese Eingaben werden ausgewertet und an Exceltabelle übergeben.

VBScript

option explicit

dim dialog, s, t, i, rs, sql, msg, inputResults
set dialog = Client.CreateDialog("BETA.EUlanda.MultiSelect","")

sql = "SELECT name FROM syscolumns WHERE id = OBJECT_ID('Adresse') ORDER BY colId"
Set rs = Client.ExecuteSql(sql)
With dialog
  do while not rs.Eof
    .Add(rs.Fields("name").Value)
    rs.MoveNext
  loop
  set rs = Nothing
  if .Execute Then
    s = ""
    for i=0 to .Count-1
      with .Items(i)
        if .State = 1 Then
          If s <> "" Then
            s = s & ", "
          end if
          s = s & .Caption
        end if
      end With
    Next
  end if
end With
set dialog = Nothing

'*********************************Programm-Start***********************************

inputSqlResults

'*********************************Result-Abfrage***********************************

Sub inputSqlResults
  inputResults = InputBox("Geben sie die Maximalen Results ein :" )
  sql = "SELECT TOP "& inputResults & s & " FROM Adresse ORDER BY Match"
  Set rs = Client.ExecuteSql(sql)
    impex.excelNewWsCopyFromRecordset rs
End Sub