procedure RenderServerLicenseUsers(aComponent: TnxComponent; aControlID: integer; aValue: variant);
var
  i         : integer;
  valuelist : TStringlist;
  v2        : boolean;
begin
  output.writeln('<table id="_DynamicTable">');
  output.writeln('<tr class="header"><td class="header" width="70%">Logged&nbsp;In&nbsp;User</td><td class="header" width="30%">Login&nbsp;Time</td><td class="header" width="30%">Connected&nbsp;From</td></tr>');
  valuelist:=TStringlist.Create;
  try
    valuelist.text := NXServer.GetServerLicenseUsers;
    v2 := valuelist.Count > 0;
    if v2 then
      v2 := Pos('=', Valuelist[0]) < 1;
    if v2 then begin
      //server license plugin v2
      i := 0;
      if valuelist.Count > 0 then
      repeat
        output.writeln('<tr id="DynamicRow_'+inttostr(i)+'">');
        output.writeln('<td id="DynamicRowIdentifier_'+inttostr(i)+'">'+valuelist[i]+'</td>');
        i := i + 1;
        output.writeln('<td id="DynamicRowTimeValue_'+inttostr(i)+'">'+valuelist[i]+'</td>');
        i := i + 1;
        output.writeln('<td id="DynamicRowMachineValue_'+inttostr(i)+'">'+valuelist[i]+'</td>');
        i := i + 1;
      until i >= valuelist.Count;
      output.writeln('</table>');
    end
    else begin
            valuelist.text:=stringreplace(NXServer.GetServerLicenseUsers,';',#13,[rfReplaceAll]);
        for i:=0 to valuelist.Count-1 do
        begin
          output.writeln('<tr id="DynamicRow_'+inttostr(i)+'">');
                      output.writeln('<td id="DynamicRowIdentifier_'+inttostr(i)+'">'+valuelist.names[i]+'</td>');
                      output.writeln('<td id="DynamicRowValue_'+inttostr(i)+'">'+valuelist.values[valuelist.names[i]]+'</td>');
        end;
        output.writeln('</table>');
    end;

  finally
    valuelist.free;
  end;
end;

