Progress x Excel

Discussão em 'Progress 4GL' iniciado por andreluisbrandao, Outubro 28, 2010.

  1. andreluisbrandao

    andreluisbrandao Membro Participativo

    Boa tarde senhores,

    Fiz um relatorio que gera os dados em Excel e gostaria de saber de voces se alguem pode me ajudar na seguintes questão....

    Quais os comandos no progress para ordenar o relatorio no Excel em uma determinada coluna....estou querendo ordenar essa coluna pelo campo de valores.

    Grato pela ajuda.

    André
  2. jonas

    jonas Membro Participativo

    Se você fizer no excel:

    Selection.AutoFilter
    Range("D6").Select
    ActiveWorkbook.Worksheets("sua_pasta").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("sua_pasta").AutoFilter.Sort.SortFields.Add Key _
    :=Range("B1:B12"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
    :=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("sua_pasta").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With


    outra forma seria inserir na sua cláusula do for each o comando by tabela.campo.
  3. andreluisbrandao

    andreluisbrandao Membro Participativo

    Opa,

    Com relação a tabela, em colocar o by, ja tinha pensado nisso...o que acontece é que faço isso em linha de comando no progress... ex:
    hExcel:Range("G" + String(c-Linha)):VALUE = "=Sum(G1:G" + String(c-linha - 1) + ")"
    hExcel:Range("H" + String(c-Linha)):VALUE = "=Sum(H1:H" + String(c-linha - 1) + ")"
    hExcel:Range("I" + String(c-Linha)):VALUE = "=Sum(I1:I" + String(c-linha - 1) + ")".

    isso funciona blz... o que eu gostaria de saber é como faço isso mesmo q vc escreveu ai :

    Selection.AutoFilter
    Range("D6").Select
    ActiveWorkbook.Worksheets("sua_pasta").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("sua_pasta").AutoFilter.Sort.SortFields.Add Key _
    :=Range("B1:B12"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
    :=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("sua_pasta").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With

    em linha de comando no PROGRESS.. pq ja tentei e sempre da um erro. mesmo porque monto a planilha em tempo de execução.

    No Aguardo.
  4. jonas

    jonas Membro Participativo

    Veja se desta forma te ajuda:

    Código:
        chexcelApplication:range("A1:L" + string(iColumn)):select.
        chexcelApplication:selection:AutoFilter(,,,).
    
  5. CarlosNobrega

    CarlosNobrega Membro Participativo

    Sempre que não consigo fazer algo no progress com excel crio uma macro no excel fazendo o trabalho no excel mesmo...

    depois vejo como ficou o código e "traduzo" para o 4gl...

    fica aí uma dica...

    abraço

Compartilhe esta Página