Escolar Documentos
Profissional Documentos
Cultura Documentos
Excel X Progress
Excel X Progress
Copiar pastas
excelappl:sheets:item("Plan 1"):activate. excelappl:Sheets("Plan 1"):Copy(excelappl:Sheets(1)). "Plan 1" o nome da pasta a ser copiada. (geralmente o excel sugere "Plan 1"). Se for diferente, basta substituir. Sheets(1) o lugar onde a pasta ser copiada. 1 a primeira pasta, caso queira inserir no final, criar uma varivel de controle. Renomear pastas excelappl:worksheets:ITEM(i-item):SELECT. excelappl:worksheets:ITEM(i-item):NAME = "XYZ". excelappl:worksheets:ITEM(i-item):NAME = TRIM(item.it-codigo). No esquecer de selecionar a pasta primeiro. A varivel i-item a pasta a ser renomeada, que pode receber uma constante ou o valor de uma varivel lembrando que no podem ser utilizados caracteres especiais como /, *, [, ]. Sugiro criar uma varivel e substituir esses caracteres: ASSIGN c-sheet = REPLACE(c-sheet,"/","_"). ASSIGN c-sheet = REPLACE(c-sheet,"\","_"). ASSIGN c-sheet = REPLACE(c-sheet,"[","("). ASSIGN c-sheet = REPLACE(c-sheet,"]",")"). ASSIGN c-sheet = REPLACE(c-sheet,"*","x"). ASSIGN c-sheet = REPLACE(c-sheet,":","."). ASSIGN c-sheet = REPLACE(c-sheet,"?","|"). excelappl:worksheets:ITEM(i-item):SELECT. excelappl:worksheets:ITEM(i-item):NAME = c-sheet. Visualizar arquivo Excel excelappl:VISIBLE = FALSE. excelappl:VISIBLE = TRUE. Se True, o Excel aberto e montado para visualizao do usurio. Recomendvel deixar false durante a execuo do programa e no final repetir o comando, porm com TRUE. Isso deixa o programa mais rpido e evita um problema que pode acontecer caso o usurio selecione uma clula enquanto o progress monta o arquivo. Ocultar/mostrar linhas de grade excelappl:ActiveWindow:DisplayGridlines = False. (ou true) obs.: no confundir linhas do arquivo com impresso de linhas de grade. Para Impresso, vide configurao de pginas. Zoom do arquivo (visualizao) excelappl:ActiveWindow:Zoom = 65. /* 65 o percentual desejado */
Obs.: alterar as configuraes somente quando necessrio, se no informado, o arquivo utiliza as configuraes padro do Excel.
Orientao da pgina chWorkSheet:PageSetup:Orientation = 1. /* Portrait (retrato) */ chWorkSheet:PageSetup:Orientation = 2. /* Landscape (paisagem) */ Zoom da pgina (Impresso) chWorkSheet:PageSetup:Zoom = 75. /* 75 o percentual desejado */ No confundir com o zoom do arquivo, esse zoom o ajuste para X % do tamanho normal na configurao da pgina Ajustar pgina por X de Altura e Y de Largura (Impresso) chWorkSheet:PageSetup:Zoom = FALSE. /* a zoom tem que ser desativado para funcionar */ chWorkSheet:PageSetup:FitToPagesWide = 1. chWorkSheet:PageSetup:FitToPagesTall = 1000. Tipo/tamanho do Papel chWorkSheet: PageSetup:PaperSize = tipo do papel desejado. Qualidade de impresso chWorkSheet: PageSetup:PrintQuality = 600. Nmero da primeira pgina chWorkSheet: PageSetup:FirstPageNumber = 3. Margens Obs.: a medida em inches, necessrio converter para centmetros. Exemplo : 15 = 0.5 cm chWorkSheet:PageSetup:LeftMargin chWorkSheet:PageSetup:RightMargin chWorkSheet:PageSetup:TopMargin chWorkSheet:PageSetup:BottomMargin chWorkSheet:PageSetup:HeaderMargin chWorkSheet:PageSetup:FooterMargin Centralizar pgina chWorkSheet:PageSetup:CenterHorizontally = True. (ou False) chWorkSheet:PageSetup:CenterVertically = True. (ou False) Cabealho e rodap chWorkSheet:PageSetup:CenterHeader = Titulo do Relatorio. /* cabealho */ /* rodap */ chWorkSheet:PageSetup:LeftFooter = "OBS.: " + FILL("_",60) + CHR(10) + FILL("_",66) + CHR(10) + CHR(10) + "____________________" + CHR(10) + " ASS. GESTOR". chWorkSheet:PageSetup:CenterFooter = CHR(10) + CHR(10) + "_____ / _____ / ________" + CHR(10) + Data do Visto". chWorkSheet:PageSetup:RightFooter = CHR(10) + CHR(10) + "PAGINA: " + "&P/&N". rea de Impresso = = = = = = 15. 15. 15. 15. 0. 0. /* /* /* /* /* /* Margem Margem Margem Margem Margem Margem esquerda */ direita */ superior */ inferior */ cabealho */ rodap */
chWorkSheet:PageSetup:PrintArea = "$A$1:$J$45". /* marca a rea de impresso da clula A1 at a J45 Imprimir ttulos chWorkSheet:PageSetup:printTitleRows = "$1:$7". /* repete o range de linhas de 1 a 7 na impresso de todas as pginas */ chWorkSheet:PageSetup:printTitleColumns = " $A:$B". /* repete o range de colunas de A a B na impresso de todas as pginas */ Imprimir Linhas de Grade chWorkSheet:PageSetup:PrintGridlines = False. Ou True Obs.: esse comando funciona apenas para impresso. Para visualizar linhas de grade no arquivo, vide Ocultar/mostrar linhas de grade Imprimir Preto e Branco chWorkSheet:PageSetup:BlackAndWhite = False. Ou True Imprimir Qualidade Rascunho chWorkSheet:PageSetup:Draft = False. Ou True
"DV","DW","DX","DY","DZ","EA","EB","EC","ED","EE","EF","EG","EH","EI","EJ", "EK","EL","EM","EN","EO","EP","EQ","ER","ES","ET","EU","EV","EW","EX","EY", "EZ","FA","FB","FC","FD","FE","FF","FG","FH","FI","FJ","FK","FL","FM","FN", "FO","FP","FQ","FR","FS","FT","FU","FV","FW","FX","FY","FZ","GA","GB","GC", "GD","GE","GF","GG","GH","GI","GJ","GK","GL","GM","GN","GO","GP","GQ","GR", "GS","GT","GU","GV","GW","GX","GY","GZ","HA","HB","HC","HD","HE","HF","HG", "HH","HI","HJ","HK","HL","HM","HN","HO","HP","HQ","HR","HS","HT","HU","HV", "HW","HX","HY","HZ","IA","IB","IC","ID","IE","IF","IG","IH","II","IJ","IK", "IL","IM","IN","IO","IP","IQ","IR","IS","IT","IU","IV"]. O nmero mximo de colunas 256. Assign i-coluna = 5. /* corresponde a coluna E */
excelappl:range(STRING(c-coluna[i-coluna]) + STRING(i-linha, "99999999")):VALUE = item.descitem. Com isso tambm possvel controlar as colunas por nmeros. Inserir Clculo / Frmula excelappl:range("B20"):VALUE = "=SUM(B2:B19)". excelappl:range("B" + STRING(i-linha, "999999")):VALUE = "=SUM(B" + STRING(i-linha-aux, "999999") + ":B" + STRING(i-linha - 2, "999999") + ")". excelappl:range("B" + STRING(i-linha, "999999"):FormulaR1C1 = "=SUM(R[-" + string(i-conta) + "]C:R[-1]C)". Obs.: comando SUM o somatrio, se precisar de outras frmulas, vide nome no excel O clculo tambm pode ser manual: excelappl:range("B" + STRING(i-linha, "999999")):VALUE = "=B12+C12+E12". Manipulao de nmeros (Configurar Separador Decimal e Separador de milhar) excelappl:DecimalSeparator = ",". excelappl:ThousandsSeparator = ".". excelappl:UseSystemSeparators = FALSE. Muito til quando o relatrio pode ser gerado em Excel instalado em Portugus e Ingls (dependendo do usurio). Essa opo funciona apenas no Office 2003 ou posterior, os outros no possuem essa opo que fica em Ferramentas / Opes / Internacional. Dependendo da linguagem, os nmeros saem distorcidos. Segue abaixo dica para correo: DEF VAR c-DecimalSeparator UNDO. DEF VAR c-ThousandsSeparator UNDO. DEF VAR l-UseSystemSeparators UNDO. No comeo do programa. ASSIGN c-DecimalSeparator c-ThousandsSeparator l-UseSystemSeparators AS CHAR AS CHAR AS LOGICAL NONONO-
/* imprimir valores desejados aqui */ No final do programa. excelappl:DecimalSeparator = c-DecimalSeparator. excelappl:ThousandsSeparator = c-ThousandsSeparator. excelappl:UseSystemSeparators = l-UseSystemSeparators. Trocando formato da clula excelappl:range("B1"):numberformat = "#.##0". excelappl:range("B1"):numberformat = "#.##0,00". excelappl:range("B1"):numberformat = "@". /* texto */ IMPORTANTE: Colocar os formatos antes dos valores nas clulas, principalmente campos texto "@" Verificar outros formatos do excel como data, hora, etc (exatamente como aparece na macro). Alterando tamanho da coluna excelappl:COLUMNS("A:A"):ColumnWidth = 15.00. /* 1 coluna */ excelappl:COLUMNS("B:J"):ColumnWidth = 12.00. /* N colunas */ ou excelappl:COLUMNS("B:J"):SELECT. excelappl:SELECTION:ColumnWidth = 12.00. Alterando tamanho da linha excelappl:Rows("1:1"):RowHeight = 20.5. /* 1 linha */ excelappl:Rows("1:15"):RowHeight = 20.5. /* N linhas Inserindo Linhas excelappl:range("15:15"):INSERT() ou excelappl:range(string(i-linha, "9999") + ":" + string(i-linha, "9999")):INSERT(). Mesclar clulas excelappl:range("A1:J10):SELECT. excelappl:SELECTION:merge. OBS.: Selecionar o range primeiro e fazer o merge depois Ou fazer direto. excelappl:range("A" + STRING(i-linha) + ":D" + STRING(i-linha)):Merge. excelappl:range("A" + STRING(i-linha) + ":D" + STRING(i-linha + 10)):Merge. Desmesclar clulas excelappl:range("B" + STRING(i-linha, "999999")):SELECT. excelappl:SELECTION:UNMERGE. Reduzir tamanho da letra automaticamente para caber na clula excelappl:range("A" + STRING(i-linha, "99999999")):ShrinkToFit = TRUE. Quebrar texto automaticamente para caber na clula excelappl:range("A" + STRING(i-linha, "99999999")): WrapText = TRUE.
Orientao do Texto dentro da clula excelappl:range("A" + STRING(i-linha, "99999999")): Orientation = 0. /* horizontal */ excelappl:range("A" + STRING(i-linha, "99999999")): Orientation = 90. /* vertical */ O valor varia de -90 a 90 (graus) Alinhamento do valor dentro da clula excelappl:range("A1"):HorizontalAlignment = 3. 3 o cdigo do alinhamento (centralizado, por exemplo). Caso queira outro, trocar o nmero para alinhar a direita, esquerda, etc. Para horizontal, os cdigos so: HorizontalAlignment = 1. /* Geral */ HorizontalAlignment = 2. /* Esquerda (recuo) */ HorizontalAlignment = 3. /* Centralizado */ HorizontalAlignment = 4. /* Direita (recuo) */ HorizontalAlignment = 5. /* Preencher */ HorizontalAlignment = 6. /* Justificar */ HorizontalAlignment = 7. /* Centralizar Seleo */ Para vertical, os cdigos so: VerticalAlignment = 1 /* Superior */ VerticalAlignment = 2 /* Centralizado */ VerticalAlignment = 3 /* Inferior */ VerticalAlignment = 4 /* Justificado */ VerticalAlignment = 5 /* Distribudo */ Alinhamento de um range de clulas excelappl:COLUMNS("F:O"):SELECT. excelappl:SELECTION:HorizontalAlignment = 3. Ou excelappl:range("A" + STRING(i-linha) + ":D" + STRING(i-linha)):HorizontalAlignment = 3. Selecionar clulas 1 clula excelappl:range("A1"):SELECT. N clulas excelappl:COLUMNS("F:O"):SELECT. ou excelappl:ROWS("2:15"):SELECT. ou excelappl:range("A" + STRING(i-linha) + ":D" + STRING(i-linha)): SELECT. Trocar Fonte excelappl:range("A1"):FONT:NAME = "nome-da-fonte". excelappl:range("A1"):FONT:BOLD = TRUE. /* negrito */ excelappl:range("A1"):FONT:ITALIC = TRUE. excelappl:range("A1"):FONT:UNDERLINE = TRUE. /* Sublinhado */ excelappl:range("A1"):FONT:SIZE = 12. excelappl:range("A1"):Style = "comma" /* style = aplica um tipo de fonte na clula. excelappl:range("A1"):font:colorindex = 2. /* vide tabela de cores abaixo */
obs.: O range pode ser substitudo por controle de variveis como exemplo abaixo: excelappl:range(STRING(c-coluna[1]) + STRING(i-linha, "99999999") + ":" + STRING(c-coluna[4]) + STRING((i-linha + 5), "99999999")):FONT:size = 12. Trocar cor da clula excelappl:range("A1"):interior:colorindex = 10. /* 10 o cdigo da cor. */ Tabela de cores Vide tabela de cores mais usadas (precisando de outra cor, tem que testar):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
O valor mximo 56.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
Padres (Sombreamento de clula) excelappl:range("P" + STRING(i-linha)):interior:Pattern = 9. 9 um dos padres, verificar os outros no Excel. Congelar painis
excelappl:range("A" + STRING(i-linha, "99999999")):SELECT. /* precisa selecionar as clulas primeiro */ excelappl:ActiveWindow:FreezePanes = True. Autofiltro excelappl:range("A" + STRING(i-linha, "99999999")):SELECT. /* precisa selecionar as clulas primeiro */ excelappl:range("A" + STRING(i-linha, "99999999")):autofilter(,,,).
Autoajuste de clulas excelappl:Cells:SELECT. /* precisa selecionar todas primeiro */ excelappl:Cells:EntireColumn:AutoFit. Esse comando simula a ao de clicar no quadrado superior esquerdo entre as linhas e colunas (SELECT) e dar um duplo clique em uma das divises de clulas para autoajuste (AUTOFIT) Inserir Bordas - Borda ao redor de uma seleo excelappl:range("A6:A8"):borderaround(1,,48). excelappl:range("A14:B18"):borderaround(1,3,1). Onde (1,3,1) segue a seguinte regra: 1 Estilo da Linha (LineStyle) 3 Grossura da linha (Weight) 1 Cor da linha (ColorIndex) - Bordas individuais excelappl:Range("b10:d10"):Borders(8):LineStyle excelappl:Range("d10:d20"):Borders(2):LineStyle excelappl:Range("b20:d20"):Borders(4):LineStyle excelappl:Range("b10:b20"):Borders(1):LineStyle = = = = 12. 10. 12. 12. = = = = 3. 2. 2. 3.
excelappl:Range("A" + string(i-linha)):Borders(8):Weight excelappl:Range("A" + string(i-linha)):Borders(2):Weight excelappl:Range("A" + string(i-linha)):Borders(4):Weight excelappl:Range("A" + string(i-linha)):Borders(1):Weight Obs.: varia de 1 a 4 excelappl:Range("b10:d10"):Borders(8):ColorIndex excelappl:Range("d10:d20"):Borders(2):ColorIndex excelappl:Range("b20:d20"):Borders(4):ColorIndex excelappl:Range("b10:b20"):Borders(1):ColorIndex Cdigo para Borders 01 coluna esquerda 02 coluna direita 03 linha inferior 04 linha inferior 05 descendo direita 06 subindo direita 07 nada 08 linha superior = = = = 1. 1. 2. 2.
10
Quebra de Pgina Para inserir uma quebrar pagina no Excel. 1a forma: chWorksheet:HPageBreaks:Add(chWorksheet:Range("A45")). chWorksheet:VPageBreaks:Add(chWorksheet:Range("L1")). /* Horizontal */ /* Vertical */
obs.: no necessrio utilizar os dois, pode-se usar apenas um de acordo com a necessidade. Lembrando que a quebra pode ser em uma clula varivel, nesse caso fica assim: chWorkSheet:HPageBreaks:Add(chWorksheet:Range("A" + STRING(i-linha))). /* onde i-linha a varivel de controle */ 2a forma: chBreakLine = chWorkSheet:Rows(STRING(i-linha)). /* Horizontal */ chBreakLine = chWorkSheet:COLUMNS("20"). /* Vertical */ chWorkSheet:HPageBreaks:Add(chBreakLine). IMPORTANTE: A quebra de pgina no funciona se os tamanhos de altura e largura da pgina forem especificados como modelo abaixo: chWorkSheet:PageSetup:Zoom = FALSE. chWorkSheet:PageSetup:FitToPagesWide = 1. chWorkSheet:PageSetup:FitToPagesTall = 10. PARA FUNCIONAR, O ZOOM NO PODE ESTAR DESABILITADO. chWorkSheet:PageSetup:Zoom */ = 100. /* PODE SER OUTRO VALOR, 70 POR EXEMPLO
Manipulao do arquivo
Mostrar mensagens de Alerta (confirmao para salvar ou imprimir arquivos) excelappl:APPLICATION:DisplayAlerts = FALSE. (ou TRUE)
Esse comando importante para controlar as mensagens do Excel. Por exemplo, para imprimir ou salvar um arquivo onde voc no queira que aparece as mensagens de confirmao, basta deixar o parmetro como FALSE. Sugiro colocar sempre. Salvar arquivos excelappl:Workbooks:Item(1):SaveAs("c:\temp\teste.xls",,,,,,).
11
Cada vrgula representa um parmetro: Os parmetros do SaveAs so: 1 Nome do arquivo 2 Formato do arquivo (opcional) 3 Senha (opcional) 4 Senha para Escrita (opcional) 5 Somente leitura (True or false) (opcional) 6 Criar Backup (True or false) (opcional) Obs.: comum usar apenas o Nome do arquivo conforme exemplo acima. Visualizar a impresso excelappl:VISIBLE = TRUE. /* para funcionar a planilha tem que estar visvel */ excelappl:ActiveWindow:SelectedSheets:PrintPreview. Imprimir arquivos excelappl:ActiveWindow:SelectedSheets:Printout. Ou passando parmetros: Excelappl:ActiveWindow:SelectedSheets:PrintOut(1,true) Onde: Copies:=1, Collate:=True Verificar outros parmetros do Excel caso necessrio. Obs.: para a impresso, sugiro deixar a planilha com visible = false e DisplayAlerts = False conforme modelo abaixo e sempre selecionar as planilhas a serem impressas antes de executar o comando. excelappl:worksheets:ITEM(1):SELECT. /* selecionar a(s) planilha(s) a ser(em) impressa(s) */ excelappl:VISIBLE = FALSE. excelappl:ActiveWindow:SelectedSheets:Printout. excelappl:APPLICATION:DISPLAYALERTS = FALSE. Obs2.: Imprime a planilha na impressora padro do Windows.
Nota Importante: Verificar se a verso do Excel utilizada possui o comando desejado. Por exemplo, a configurao de campo para Separador Decimal no existe no Excel 2000, portanto o comando no vai funcionar.
12
Para isso, basta abrir o Excel, escolher a opo FERRAMENTAS / MACRO / GRAVAR NOVA MACRO. (Anote o nome da Macro) e no fechar a macro (parar gravao - quadrado / stop) na janelinha de parmetro da Macro, at executar as tarefas necessrias. Com essa janela da macro aberta, realizar todas as alteraes desejadas, como configurao de clula, configurao de pgina, utilizao dos botes do Excel, etc. Depois de terminado, parar a macro (quadradinho da janela da macro). Escolher a opo FERRAMENTAS / MACRO / MACRO (alt + F8), selecionar a macro criada e clicar no boto Editar. Verificar o cdigo gerado e adaptar com os comandos progress. Caso o comando no seja exatamente igual, possvel ver a sintaxe do comando no progress atravs do Pro Tool (componente Progress COM Object Viewer Lupa com setinhas vermelhas) Abrir o componente do Excel conforme modelo abaixo:
13
Note a sintaxe do comando RANGE do Progress: <com-handle> a varivel definida no seu programa Value o comando desejado = <anytype>-var o valor que deseja colocar na clula Exemplo prtico: excelappl:range("A1"):VALUE = d-valor. Nesse manual esto apenas os comandos mais utilizados. Caso tenha alguma dvida ou problema, enviar e-mail para Marcio Sacramoni (marcio@kconsulting.com.br) Segue abaixo modelo simples de utilizao do Progress x Excel. / *************************************************************************** ***\ ** Exemplo de programa de impresso Progress x Excel ** ** Marcio Sacramoni ** ** marcio@kconsulting.com.br ** \ *************************************************************************** ***/ /* Obs.: os comandos de formatao de clula so opcionais, se no informados, vo respeitar os padres do Excel. Valido para toda a formatao: bordas, cores, tamanhos (de letra, linhas, colunas), tipo de valor (texto, numrico), zoom de pagina, alinhamento, etc */ DEF VAR excelappl UNDO. AS COM-HANDLE NO-
14
DEF VAR UNDO. DEF VAR UNDO. DEF VAR UNDO. DEF VAR UNDO.
NONONONO-
DEF VAR i-coluna AS INTEGER NOUNDO. DEF VAR c-coluna AS CHAR EXTENT 256 NOUNDO INITIAL ["A","B","C","D","E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "AA","AB","AC","AD","AE","AF","AG","AH","AI","AJ","AK","AL","A M", "AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","A Z", "BA","BB","BC","BD","BE","BF","BG","BH","BI","BJ","BK","BL","B M", "BN","BO","BP","BQ","BR","BS","BT","BU","BV","BW","BX","BY","B Z", "CA","CB","CC","CD","CE","CF","CG","CH","CI","CJ","CK","CL","C M", "CN","CO","CP","CQ","CR","CS","CT","CU","CV","CW","CX","CY","C Z", "DA","DB","DC","DD","DE","DF","DG","DH","DI","DJ","DK","DL","D M", "DN","DO","DP","DQ","DR","DS","DT","DU","DV","DW","DX","DY","D Z", "EA","EB","EC","ED","EE","EF","EG","EH","EI","EJ","EK","EL","E M", "EN","EO","EP","EQ","ER","ES","ET","EU","EV","EW","EX","EY","E Z", "FA","FB","FC","FD","FE","FF","FG","FH","FI","FJ","FK","FL","F M", "FN","FO","FP","FQ","FR","FS","FT","FU","FV","FW","FX","FY","F Z", "GA","GB","GC","GD","GE","GF","GG","GH","GI","GJ","GK","GL","G M", "GN","GO","GP","GQ","GR","GS","GT","GU","GV","GW","GX","GY","G Z", "HA","HB","HC","HD","HE","HF","HG","HH","HI","HJ","HK","HL","H M", "HN","HO","HP","HQ","HR","HS","HT","HU","HV","HW","HX","HY","H Z", "IA","IB","IC","ID","IE","IF","IG","IH","II","IJ","IK","IL","I M", "IN","IO","IP","IQ","IR","IS","IT","IU","IV"]. CREATE "excel.application" excelappl. excelappl:workbooks:ADD(). /* Caso queira abrir um modelo, descomentar o trecho abaixo e comentar o ADD() acima assign c-modelo = "c:\temp\modelo.xlt". excelappl:workbooks:ADD(c-modelo). */
15
/* o numero 1 dentro do comando ITEM a pasta a ser selecionada, caso queira a segunda planilha, informar ITEM(2), ou ainda ITEM(i-pasta) onde i-pasta uma varivel inteira utilizada para controle. */ excelappl:worksheets:ITEM(1):SELECT. chWorkSheet = excelappl:Sheets:Item(1). excelappl:VISIBLE = FALSE. /* Pode ser true, o excel ser aberto durante a montagem. Cuidado para nao clicar em nenhuma clula ate o final do processamento, pois o ponteiro se perde */ excelappl:worksheets:ITEM(1):NAME = 'RD' NO-ERROR. excelappl:ActiveWindow:DisplayGridlines = False. excelappl:ActiveWindow:Zoom = 75. /* zoom do arquivo, no confundir com % de zoom da impresso */ chWorkSheet:PageSetup:RightFooter = "PAGINA: " + "&P/&N".
/* chWorkSheet:PageSetup:Zoom = 60. */ /* ajusta a impresso para 60 do tamanho */ /* chWorkSheet:PageSetup:FitToPagesWide = 1. */ /* chWorkSheet:PageSetup:FitToPagesTall = i-pagina. */ excelappl:range("A1"):SELECT. ASSIGN i-linha = 1.
excelappl:Rows(STRING(i-linha, "99999999") + ":" + STRING(i-linha, "99999999")):RowHeight = 20. excelappl:range("A" + STRING(i-linha) + ":C" + STRING(i-linha)):Merge. excelappl:range("A" + STRING(i-linha)):HorizontalAlignment = 3. /* Centralizado */ excelappl:range("A" + STRING(i-linha)):FONT:size = 16. excelappl:range("A" + STRING(i-linha, "99999999")):Font:Bold = TRUE. excelappl:range("A" + STRING(i-linha) + ":C" + STRING(ilinha)):borderaround(1,2,1). excelappl:range("A" + STRING(i-linha)):VALUE = "Teste de Impressao". ASSIGN i-linha = i-linha + 1. excelappl:range("A" + STRING(i-linha) + ":C" + STRING(ilinha)):interior:colorindex = 15. excelappl:COLUMNS("A:A"):ColumnWidth = 17.00. excelappl:COLUMNS("B:B"):ColumnWidth = 40.00. excelappl:range("A" + STRING(i-linha)):VALUE = "Item". excelappl:range("B" + STRING(i-linha)):VALUE = "Descricao". /* a coluna tambm pode ser controlada por variveis */ excelappl:range(STRING(c-coluna[3]) + STRING(i-linha)):VALUE = "Peso". ASSIGN i-linha = i-linha + 1. FOR EACH ITEM NO-LOCK: excelappl:range("A" + STRING(i-linha)):numberformat = "@". /* transforma em texto */ excelappl:range("A" + STRING(i-linha)):VALUE = ITEM.it-codigo. excelappl:range("B" + STRING(i-linha)):numberformat = "@". /* transforma em texto */
16
excelappl:range("B" + STRING(i-linha)):VALUE = ITEM.desc-item. excelappl:range("B" + STRING(i-linha, "99999999")):ShrinkToFit = TRUE. /* ajusta o conteudo para caber na clula. Tem que vir depois da insero do valor. */ excelappl:range("C" + STRING(i-linha)):numberformat = "#.##0,00". excelappl:range("C" + STRING(i-linha)):HorizontalAlignment = 4. /* Direita */ excelappl:range("C" + STRING(i-linha)):VALUE = ITEM.peso-liquido. excelappl:range("A" + STRING(i-linha) + ":A" + STRING(ilinha)):borderaround(1,2,1). excelappl:range("B" + STRING(i-linha) + ":B" + STRING(ilinha)):borderaround(1,2,1). excelappl:range("C" + STRING(i-linha) + ":C" + STRING(ilinha)):borderaround(1,2,1). ASSIGN i-linha = i-linha + 1. IF i-linha > 20 THEN LEAVE. /* s para no ficar muito grande */ END. ASSIGN i-linha = i-linha + 1. excelappl:range("B" + STRING(i-linha)):VALUE = "Peso Total". excelappl:range("C" + excelappl:range("B" + */ excelappl:range("C" + */ excelappl:range("C" + excelappl:range("C" + - 1, "999999") + ")". STRING(i-linha)):numberformat = "#.##0,00". STRING(i-linha)):HorizontalAlignment = 4. /* Direita STRING(i-linha)):HorizontalAlignment = 4. /* Direita STRING(i-linha)):Font:Bold = TRUE. STRING(i-linha)):VALUE = "=SUM(C3:C" + STRING(i-linha
excelappl:range("A" + STRING(i-linha) + ":C" + STRING(ilinha)):borderaround(1,2,1). excelappl:worksheets:ITEM(1):SELECT. excelappl:range("A1"):SELECT. /* chWorkSheet:PageSetup:Zoom = FALSE. */ /* chWorkSheet:PageSetup:FitToPagesWide = 1. */ /* chWorkSheet:PageSetup:FitToPagesTall = 10. */ IF l-imprime = YES THEN DO: excelappl:VISIBLE = FALSE. excelappl:ActiveWindow:SelectedSheets:Printout. excelappl:APPLICATION:DISPLAYALERTS = FALSE. excelappl:QUIT(). /* somente utilizar o commando quit caso no queira visualizar o arquivo na tela */ END. ELSE excelappl:VISIBLE = TRUE. RELEASE OBJECT excelappl NO-ERROR.
17