ASBCONNECTIONS OBJECT


Конструкторы

Create Создать коллекцию описателей ASB-подключений

Свойства

Count Число элементов в коллекции подключений к проекту

Методы

Item (умолч.) Возвратить ссылку на ASBCONNECTION по порядковому номеру

Описание

Коллекция ASB-подключений к тому же проекту, что и собственное подключение клиента ASB. Созданная конструктором Create коллекция представляет собой слепок с реального списка подключений на момент создания.

Пример

Приведенный ниже пример реализует диалог "Активные пользователи".

VAR
 oConn: ASBCONNECTION;
 oConns: ASBCONNECTIONS;
 sConnNo: STRING[];
 sUserName: STRING[];
 sList: STRING[];
 sForAdmin: STRING[];
 i: NUMERIC[0];
 R: NUMERIC[0];
BEGIN
 LOOP
  (*Сбор формата списка sList*)
  sList := "";
  oConns := ASBCONNECTIONS.Create();
  i := 0;
  WHILE i < oConns.Count DO
   oConn := oConns.Item(i);
   sConnNo := FLDTOSTR(oConn.ConnectionNo, "0", 0);
   IF (sConnNo[0] # CHR(0)) & (sConnNo[1] = CHR(0)) THEN
    sConnNo := "0"+sConnNo;
   END;
   IF oConn.My THEN
    sConnNo := "*"+sConnNo;
   END;
   IF ~!oConn.UserDomain THEN
    sUserName := oConn.UserDomain+"\"+oConn.LoginName;
   ELSE
    sUserName := oConn.LoginName;
   END;
   INC(sList,
       "|"+
       FLDTOSTR(sConnNo, "", 6, "R")+
       "     "+
       FLDTOSTR(sUserName, "", 18, "L")+
       " "+
       FLDTOSTR(oConn.FullName, "", 19, "L")+
       " "+
       FLDTOSTR(oConn.IPAddress, "", 15, "L"));
   INC(i);
  END(*WHILE*);
  sForAdmin := "";
  IF ISADMIN() | ISPROGRAMMER() THEN
   (* Если пользователь, под именем которого выполнено наше подключение, *)
   (* не является администратором или программистом проекта, вызывать    *)
   (* метод Watch нельзя, иначе будет выброшено исключение.              *)
   sForAdmin := "   "+"%< консоль `Пользователя >B";
  END;
  i := 0;
  R := STDFORM("|"+
               "  Connection User Name          Full Name           IP-Address      |"+
               " %,11AI "+
               "||||||||||||"+
               "%< `Закрыть окно >X"+
               "   "+
               "%< `Обновить информацию >B"+
               sForAdmin,
               " Активные пользователи ",
               ,
               ,
               sList, i);
  IF R = 0 THEN
   EXIT;
  ELSIF R = 2 THEN
   oConn := oConns.Item(i);
   oConn.Watch();
  END;
 END(*LOOP*);
END.