Zum Inhalt

ExecuteDialog (Opus Funktion)

Beschreibung

Diese Funktion führt einen Dialog gemäss den angegebenen Definitionen aus..

Argumente

Name Typ Beschreibung
object Definition des Dialogs. Das Objekt sollte als Referenz (mit &) übergeben werden, damit im Anschluss auf die veränderten Inhalte zugegriffen werden kann.

Rückgabewert integer

xxx

Beispiel

function ExecuteDialog_Statistics
{
  Lo_GroupList = GetSSB_RoomGroupList();
  Lo_RoomGroups = {"Array":[]};
  for (Li_i = 0;Li_i < Lo_GroupList.GetSize();Li_i++)
  {
    Lo_RoomGroups.Array.<{Li_i} := {"Type":"CheckBox", "ID":2000+Li_i, "Caption":GetSSB_RoomGroup_s_NameEntry(Lo_GroupList[Li_i]), "Checked":1};
  } /* for */

  Lo_Date = GetDateTimeObject(GetCurrentDateTime());
  Lt_Start = GetDateValue(Lo_Date.Year, Lo_Date.Month, 1);
  if (Lo_Date.Month == 12)
  {
    Lo_Date.Year++;
    Lo_Date.Month = 0;
  } /* if */
  Lt_End = GetDateValue(Lo_Date.Year, Lo_Date.Month+1, 1) -1.0;

  Lo_Dialog = {"Caption":"Auslastungsstatistik",
    "Control" : {"Type":"VDist", "Controls":
      [
        {"Type":"GroupBox", "Caption":"Datums- und Zeitbereich", "Control":
          {"Type":"HDist", "Controls":
            [
              {"Type":"VDist", "Controls":
                [
                  {"Type":"Text", "ID":1000, "Caption":"Datum von"},
                  {"Type":"DateTimeControl", "ID":1001, "DateTime":Lt_Start},
                  {"Type":"Text", "ID":1000, "Caption":"Zeit von"},
                  {"Type":"EditBox", "ID":1003, "Text":"07:00"}
                ]
              },
              {"Type":"VDist", "Controls":
                [
                  {"Type":"Text", "ID":1000, "Caption":"Datum bis"},
                  {"Type":"DateTimeControl", "ID":1002, "DateTime":Lt_End},
                  {"Type":"Text", "ID":1000, "Caption":"Zeit bis"},
                  {"Type":"EditBox", "ID":1004, "Text":"22:00"}
                ]
              }
            ]
          }
        },
        {"Type":"HDist", "Controls":
          [
            {"Type":"GroupBox", "Caption":"Raumgruppen", "Control":
              {"Type":"VDist", "Controls": Lo_RoomGroups.Array
              }
            },
            {"Type":"VDist", "Controls":
              [
                {"Type":"GroupBox", "Caption":"Status", "Control":
                  {"Type":"VDist", "Controls":
                    [
                      {"Type":"CheckBox", "ID":1005, "Caption":"Reserviert", "Checked":1},
                      {"Type":"CheckBox", "ID":1006, "Caption":"Gebucht", "Checked":1}
                    ]
                  }
                },
                {"Type":"GroupBox", "Caption":"Details", "Control":
                  {"Type":"VDist", "Controls":
                    [
                      {"Type":"RadioButton", "ID":1007, "Caption":"Mit Details", "Checked":1},
                      {"Type":"RadioButton", "ID":1008, "Caption":"Ohne Details", "Checked":0}
                    ]
                  }
                }
              ]
            }
          ]
        },
        {"Type":"HDist", "Controls":
          [
            {"Type":"Button", "ID":10, "Caption":"OK", "DialogResult":1},
            {"Type":"Button", "ID":20, "Caption":"Abbrechen", "DialogResult":2}
          ]
        }
      ]
    }
  };

  Li_Return = ExecuteDialog(&Lo_Dialog);

  if (Li_Return == 2)
  {
    main.Suppress = 1;
  } /* if */

  Lo_GroupSelectionList = IntArray(0);

  for (Li_i = 0;Li_i < Lo_GroupList.GetSize();Li_i++)
  {
    Control = GetControlObject(&Lo_Dialog, 2000+Li_i);
    if (Control.Control.Checked == 1)
    {
      Lo_GroupSelectionList.Add(Lo_GroupList[Li_i]);
    } /* if */
  } /* for */
  Control = GetControlObject(&Lo_Dialog, 1001);
  DateFrom = Control.Control.DateTime;
  Control = GetControlObject(&Lo_Dialog, 1002);
  DateTo = Control.Control.DateTime;
  Control = GetControlObject(&Lo_Dialog, 1003);
  TimeFrom = Control.Control.Text;
  Control = GetControlObject(&Lo_Dialog, 1004);
  TimeTo = Control.Control.Text;
  Control = GetControlObject(&Lo_Dialog, 1005);
  Reserved = Control.Control.Checked;
  Control = GetControlObject(&Lo_Dialog, 1006);
  Booked = Control.Control.Checked;
  Control = GetControlObject(&Lo_Dialog, 1007);
  Details = Control.Control.Checked;

  return ({"DateFrom":DateFrom,"DateTo":DateTo,"TimeFrom":TimeFrom,"TimeTo":TimeTo,
           "Details":Details,"Reserved":Reserved,"Booked":Booked,
           "Groups":Lo_GroupSelectionList,
           "Return":Li_Return});
};

Beispiel einer Dialogfunktion:

function ExecuteDialog_Statistics
{
  Lo_GroupList = GetSSB_RoomGroupList();
  Lo_RoomGroups = {"Array":[]};
  for (Li_i = 0;Li_i < Lo_GroupList.GetSize();Li_i++)
  {
    Lo_RoomGroups.Array.<{Li_i} := {"Type":"CheckBox", "ID":2000+Li_i, "Caption":GetSSB_RoomGroup_s_NameEntry(Lo_GroupList[Li_i]), "Checked":1};
  } /* for */

  Lo_Date = GetDateTimeObject(GetCurrentDateTime());
  Lt_Start = GetDateValue(Lo_Date.Year, Lo_Date.Month, 1);
  if (Lo_Date.Month == 12)
  {
    Lo_Date.Year++;
    Lo_Date.Month = 0;
  } /* if */
  Lt_End = GetDateValue(Lo_Date.Year, Lo_Date.Month+1, 1) -1.0;

  Lo_Dialog = {"Caption":"Auslastungsstatistik",
    "Control" : {"Type":"VDist", "Controls":
      [
        {"Type":"GroupBox", "Caption":"Datums- und Zeitbereich", "Control":
          {"Type":"HDist", "Controls":
            [
              {"Type":"VDist", "Controls":
                [
                  {"Type":"Text", "ID":1000, "Caption":"Datum von"},
                  {"Type":"DateTimeControl", "ID":1001, "DateTime":Lt_Start},
                  {"Type":"Text", "ID":1000, "Caption":"Zeit von"},
                  {"Type":"EditBox", "ID":1003, "Text":"07:00"}
                ]
              },
              {"Type":"VDist", "Controls":
                [
                  {"Type":"Text", "ID":1000, "Caption":"Datum bis"},
                  {"Type":"DateTimeControl", "ID":1002, "DateTime":Lt_End},
                  {"Type":"Text", "ID":1000, "Caption":"Zeit bis"},
                  {"Type":"EditBox", "ID":1004, "Text":"22:00"}
                ]
              }
            ]
          }
        },
        {"Type":"HDist", "Controls":
          [
            {"Type":"GroupBox", "Caption":"Raumgruppen", "Control":
              {"Type":"VDist", "Controls": Lo_RoomGroups.Array
              }
            },
            {"Type":"VDist", "Controls":
              [
                {"Type":"GroupBox", "Caption":"Status", "Control":
                  {"Type":"VDist", "Controls":
                    [
                      {"Type":"CheckBox", "ID":1005, "Caption":"Reserviert", "Checked":1},
                      {"Type":"CheckBox", "ID":1006, "Caption":"Gebucht", "Checked":1}
                    ]
                  }
                },
                {"Type":"GroupBox", "Caption":"Details", "Control":
                  {"Type":"VDist", "Controls":
                    [
                      {"Type":"RadioButton", "ID":1007, "Caption":"Mit Details", "Checked":1},
                      {"Type":"RadioButton", "ID":1008, "Caption":"Ohne Details", "Checked":0}
                    ]
                  }
                }
              ]
            }
          ]
        },
        {"Type":"HDist", "Controls":
          [
            {"Type":"Button", "ID":10, "Caption":"OK", "DialogResult":1},
            {"Type":"Button", "ID":20, "Caption":"Abbrechen", "DialogResult":2}
          ]
        }
      ]
    }
  };

  Li_Return = ExecuteDialog(&Lo_Dialog);

  if (Li_Return == 2)
  {
    main.Suppress = 1;
  } /* if */

  Lo_GroupSelectionList = IntArray(0);

  for (Li_i = 0;Li_i < Lo_GroupList.GetSize();Li_i++)
  {
    Control = GetControlObject(&Lo_Dialog, 2000+Li_i);
    if (Control.Control.Checked == 1)
    {
      Lo_GroupSelectionList.Add(Lo_GroupList[Li_i]);
    } /* if */
  } /* for */
  Control = GetControlObject(&Lo_Dialog, 1001);
  DateFrom = Control.Control.DateTime;
  Control = GetControlObject(&Lo_Dialog, 1002);
  DateTo = Control.Control.DateTime;
  Control = GetControlObject(&Lo_Dialog, 1003);
  TimeFrom = Control.Control.Text;
  Control = GetControlObject(&Lo_Dialog, 1004);
  TimeTo = Control.Control.Text;
  Control = GetControlObject(&Lo_Dialog, 1005);
  Reserved = Control.Control.Checked;
  Control = GetControlObject(&Lo_Dialog, 1006);
  Booked = Control.Control.Checked;
  Control = GetControlObject(&Lo_Dialog, 1007);
  Details = Control.Control.Checked;

  return ({"DateFrom":DateFrom,"DateTo":DateTo,"TimeFrom":TimeFrom,"TimeTo":TimeTo,
           "Details":Details,"Reserved":Reserved,"Booked":Booked,
           "Groups":Lo_GroupSelectionList,
           "Return":Li_Return});
};

Siehe auch