Fala!!!! Gostaria de saber como realizar uma pesquisa em uma tabela e saber o total de registros que atendam a uma determinada regra de pesquisa e jogar para uma variável esse total.
Não sei bem o vc quer, mas acho que o jeito mais viável seria colocar uma variável dentro da sua lógica que receba 1 a cada registro, agora se vc só quer saber quantos tem: Código: def var cont as int no-undo. for each tabela no-lock where lógica do: assign cont = cont + 1. End. Message cont view-as alert-box. espero ter ajudado.
Segue informações do meu Manual Progress : "Relatórios com Valores Agregados" A agregação default são: TOTAL, COUNT, MAXIMUM, MINIMUM e AVERAGE. Estes valores são mostrados à direita do frame e na seguinte ordem: TOTAL,COUNT,MAX,MIN,AVERAGE. SE VOCÊ NÃO QUER OS VALORES À DIREITA DO FRAME É RECOMENDADO UTILIZAR O COMANDO ACCUMULATE. Exemplo 1: Código: for-cust: FOR EACH customer NO-LOCK: DISPLAY cust-num name contact credit-limite(TOTAL). END. Exemplo 2: Código: for-cust: FOR EACH customer BY sales-rep NO-LOCK: DISPLAY salesrep cust-num (COUNT) name credit-limit (MAX MIN AVERAGE TOTAL). END. Exemplo com ACCUMULATE E AVERAGE Código: do-frame: DO WITH DOWN FRAME credit-limit-sum: for-cust: FOR EACH customer WITH FRAME credit-limit-sum NO-LOCK: ACCUMULATE credit-limit (TOTAL AVERAGE). DISPLAY cust-num name contact credit-limit FORMAT "$>>>,>>>,>>9". DOWN. END. UNDERLINE customer.cust-num customer.name contact credit-limit. DISPLAY "Average" @ contact ACCUM AVERAGE credit-limit @ credit-limit. DOWN. DISPLAY "Total" @ contact ACCUM TOTAL credit-limit @ credit-limit. END. /* do frame */ Espero poder ter te ajudado...
buenas, Eis mais uma maneira simples para atender o que você precisa. Código: DEF VAR i-total AS INTEGER. SELECT COUNT(*) INTO i-total FROM customer WHERE customer.cust-num > 7 AND customer.cust-num < 30. DISP i-total.