[RESOLVIDO] Contador de "Estouro" de Usuários

Discussão em 'EMS , HCM e Totvs 11' iniciado por rodrigodds, Abril 7, 2011.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. rodrigodds

    rodrigodds Membro Participativo

    Pessoal,

    Estou precisando de um programinha pra contar quantos usuários tentaram acessar o EMS durante o dia e NÃO conseguiram.

    Pois assim posso ter certeza de quantos usuários comprar.

    Alguém já precisou de algo do gênero?
  2. lucimara.silva

    lucimara.silva Sem Pontuação

    Bom dia Rodrigo, tudo bem?

    Acredito que você tenha que colocar uma UPC no programa BT0910za.

    Segue abaixo um código que talvez que ajude...

    Código:
    def input param p-ind-event        as char          no-undo.
    def input param p-ind-object       as char          no-undo.
    def input param p-wgh-object       as handle        no-undo.
    def input param p-wgh-frame        as widget-handle no-undo.
    def input param p-cod-table        as char          no-undo.
    def input param p-row-table        as rowid         no-undo.
    def var c-objeto as char no-undo.
    
    assign c-objeto = entry(num-entries(p-wgh-object:private-data, "~/"), p-wgh-object:private-data, "~/").
    
    DEFINE NEW GLOBAL SHARED VARIABLE h-program                      AS handle           NO-UNDO.
    
    DEF NEW GLOBAL SHARED VAR h_Frame           AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-v_cod_usuario  AS WIDGET-HANDLE NO-UNDO.
    DEF NEW GLOBAL SHARED VAR wh-dialog         AS WIDGET-HANDLE NO-UNDO.
    
    DEF NEW GLOBAL SHARED VAR num_licencas AS INTEGER NO-UNDO INITIAL 150.
    DEFINE VARIABLE i_tot-connect AS INTEGER NO-UNDO INIT 0.
    
    
    FUNCTION get_num_user RETURN INTEGER:
        DEFINE VARIABLE i-cont AS INTEGER     NO-UNDO.
        
        FOR EACH mgadm._connect NO-LOCK 
            WHERE mgadm._Connect._Connect-Type = "SELF":U 
            OR    mgadm._Connect._Connect-Type = "REMC":U 
            OR    mgadm._Connect._Connect-Type = "BTCH":U:
    
            IF  mgadm._Connect._Connect-Name <> "DTSLGT" THEN
              ASSIGN i-cont = i-cont + 1.
        END.
    
        RETURN i-cont.
    END FUNCTION.
    
    IF p-ind-event  = "before-assign" AND 
       p-cod-table  = "usuar_mestre" THEN
    DO:
      ASSIGN i_tot-connect = get_num_user().
    
      OUTPUT TO 'c:\log-usuar.txt' APPEND.
    
      /* se for menor conseguiu logar */
      IF i_tot-connect <= num_licencas THEN
      DO:
         PUT wh-v_cod_usuario:SCREEN-VALUE FORMAT "X(20)" SPACE(2)
            TODAY SPACE(2)
            STRING(TIME, "HH:MM") 
            "Logou" SPACE(2)
            i_tot-connect
            SKIP.
      END.
      ELSE DO:
         PUT wh-v_cod_usuario:SCREEN-VALUE FORMAT "X(20)" SPACE(2)
            TODAY SPACE(2)
            STRING(TIME, "HH:MM") 
            "NÆo Logou" SPACE(2)
            i_tot-connect
            SKIP.
      END.
    
      OUTPUT CLOSE.
    END.
    
    IF p-ind-event = "Initialize" AND
       p-ind-object = "container"   THEN
    DO:
        ASSIGN wh-dialog = p-wgh-frame.
        Assign h_frame = p-wgh-frame:FIRST-CHILD.
        Do While Valid-handle(h_frame):
            
            If h_frame:Type <> "field-group" Then 
            Do:
                IF h_frame:NAME = 'v_cod_usuario' THEN 
                DO:
                    ASSIGN wh-v_cod_usuario = h_frame.
                END.
    
                Assign h_frame = h_frame:Next-sibling.
            End.
            Else
                Assign h_frame = h_frame:First-child.
        END.
    END.
    
    Caso você tenha EMS2 e EMS5 você terá que fazer dois programas, pois o input dos parâmetros na upc são diferentes.

    Atenciosamente,

    Lucimara.
  3. rodrigodds

    rodrigodds Membro Participativo

    Lucimara,

    Amanhã vou montar uma base do 206 e testar essa UPC.

    Obrigado pela ajuda!
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página