Como que poderia usar o comando 'Random' e dividir igualmente as partes. Estou precisando gerar um arquivo de sorteio de equipe dos funcionarios da empresa, onde pega pela matricula e gera um arquivo onde estes serão dividos em 4 equipes aleatóriamente, descobri o random que joga os numeros aleatórios pra mim, só que estou precisando que 20 funcionarios, fique 5 para cada equipe. Isso ele não consegue fazer. alguem poderia dar uma dica?
muertebr, Tem uma idéia aqui simples, mas parece que funciona. Coloca os nomes em uma tabela temporária, faz um FOR EACH com BY random e agrupa de 4 em 4 na mão. Aqui um exemplo simples com o banco sports2000: Código: for each customer by random(1, 10000): disp custnum name. A cada execução a ordem dos dados é diferente.
Caro colega, Segue um exemplo, pode não ser o melhor, mas foi o que consegui imaginar neste momento para você: Código: DEF VAR cFuncionario AS CHARACTER NO-UNDO INIT "Adão,Bruno,Eduardo,Carlos,João,César,Paulo,Edson,Jair,Otávio,Lucas,Albert,Kely,Leandro,Juliana,Felipe,Thiago,Rodrigo,Daniel,Ana". DEF VAR iRandon AS INTEGER EXTENT 5. DEF TEMP-TABLE tt-nomes FIELD tt-codigo AS INTEGER FIELD tt-nome AS CHARACTER FIELD tt-equipe AS INTEGER. DEF VAR iEquip AS INTEGER. DO iEquip = 1 TO NUM-ENTRIES(cFuncionario): CREATE tt-nomes. ASSIGN tt-nomes.tt-codigo = 10000 + iEquip tt-nomes.tt-nome = ENTRY(iEquip,cFuncionario). END. REPEAT WHILE AVAIL tt-nomes: FIND FIRST tt-nomes WHERE tt-nomes.tt-equipe = 0 NO-ERROR. ASSIGN iEquip = RANDOM(1,4). IF iRandon[iEquip] < 5 AND AVAIL tt-nomes THEN ASSIGN tt-nomes.tt-equipe = iEquip iRandon[iEquip] = iRandon[iEquip] + 1. END. FOR EACH tt-nomes BY tt-nomes.tt-equipe: DISP tt-nomes. END.