Boa tarde Amigos, estou com um caso que nao consegui resolver, estou criando um recibo, para um programa customizado de Venda Balcao, ja fiz quase todas rotinas , porem no recibo preciso preencher no nome do usuario do sistema, faco em excel e converto em pdf para usuario, imprimir, porem quando utilizo a formula =pri.maiuscula() do excel conforme abaixo, o progress manda para excel com um @ entre =@pri.maiuscula() ocorrendo erro. Alguem sabe como solucionar este problema segue abaixo codigo que desenvolvi. {div/excel.i} {cep/esce002.i} {div/esGlob.i} DEFINE VARIABLE pCodigo LIKE BalcaoFechamento.Codigo INITIAL 7. DEF VAR excelappl AS COM-HANDLE NO-UNDO. DEF VAR ChWorkSheet AS COM-HANDLE NO-UNDO. DEF VAR i-linha AS INTE NO-UNDO. DEF VAR c-modelo AS CHAR NO-UNDO. DEF VAR l-imprime AS LOGICAL INIT NO NO-UNDO. DEF VAR cFileName AS CHARACTER EXTENT 2 INITIAL "" NO-UNDO. run utp/ut-acomp.p persistent set h-acomp. {utp/ut-liter.i Gerando_Recibo *} /* processando Movimentos */ run pi-inicializar in h-acomp (input RETURN-VALUE). run pi-acompanhar in h-acomp (input "Inicializando" ). run pi-acompanhar in h-acomp (input "Gerando Recibo " + STRING(pCodigo) + " , Aguarde...." ). FIND FIRST estabelec NO-LOCK WHERE estabelec.cod-estabel = "101" NO-ERROR. assign c-modelo = "\\192.168.0.8\Erp-12\Desenvolvimento\modelos\F-021.xlsm" cFileName[1] = SESSION:TEMP-DIRECTORY + "Recibo_" + string(pcodigo) + ".xlsx" cFileName[2] = SESSION:TEMP-DIRECTORY + "Recibo_" + string(pcodigo) + ".PDF" . IF SEARCH(cFileNAme[1]) <> ? THEN DOS SILENT DEL VALUE(cFileNAme[1]). IF SEARCH(cFileNAme[2]) <> ? THEN DOS SILENT DEL VALUE(cFileNAme[2]). CREATE "excel.application" excelappl. excelappl:workbooks:ADD(c-modelo). excelappl:VISIBLE = FALSE. /* Pode ser true, o excel será aberto durante a montagem. Cuidado para nao clicar em nenhuma célula ate o final do processamento, pois o ponteiro se perde */ /**Inicio Comandos*/ ExcelAppl:worksheets:ITEM(1):SELECT. ExcelAppl:worksheets:ITEM(1):NAME = "Cupom" . ExcelAppl:sheets:item("Cupom"):activate. ASSIGN i-linha = 12 . FOR EACH BalcaoFechamento NO-LOCK WHERE BalcaoFechamento.codigo = pCodigo : RUN pi-acompanhar in h-acomp (input "Recibo Retirada Nr : " + string(BalcaoFechamento.codigo)). FIND FIRST usuar_mestre NO-LOCK WHERE usuar_mestre.cod_usuario = balcaofechamento.cod-usuario NO-ERROR. excelappl:range("E02"):VALUE = BalcaoFechamento.codigo. excelappl:range("I02"):VALUE = BalcaoFechamento.vl-total. excelappl:range("D04"):VALUE = "Trailer 001". excelappl:range("G19"):VALUE = IF AVAIL usuar_mestre THEN "Emitido por " ELSE "". /* excelappl:range("I19"):FORM = IF AVAIL usuar_mestre THEN "=pri.maiúsculo(" + usuar_mestre.nom_usuario + ")" ELSE "". */ excelappl:range("I19"):VALUE = trim("=pri.maiúsculo(" + usuar_mestre.nom_usuario + ")"). excelappl:range("B08"):VALUE = "Correspondente ao Fechamento de Caixa de " + string(BalcaoFechamento.dt-trans,"99/99/9999") + " ref " + BalcaoFechamento.observ . excelappl:range("B11"):VALUE = "( Dinheiro: " + string(balcaoFechamento.vl-dinheiro,">>>,>>9.99") + " | Debito: " + string(balcaoFechamento.vl-debito,">>>,>>9.99") + " | Credito: " + string(balcaoFechamento.vl-credito,">>>,>>9.99") + " | Pix: " + string(balcaoFechamento.vl-pix,">>>,>>9.99") + " )". END. excelappl:worksheets:ITEM(1):SELECT. excelappl:range("A4"):SELECT. IF l-imprime = YES THEN DO: excelappl:VISIBLE = FALSE. excelappl:ActiveWindow:SelectedSheetsrintout. excelappl:APPLICATIONISPLAYALERTS = FALSE. END. ELSE DO: excelappl:Workbooks:Item(1):SaveAs(cFileName[1],,,,,,). /* IF v_cod_usuar_corren <> "super" AND v_cod_usuar_corren <> "a.martins" THEN excelappl:ActiveWindow:SelectedSheetsrintout. */ excelappl:ActiveWorkBook:ExportAsFixedFormat(0,replace(cFileName[1],'xlsx','pdf'),0,,,,,,) no-error. excelappl:VISIBLE = NO. IF SEARCH(cFileNAme[2]) <> ? THEN OS-COMMAND NO-WAIT VALUE(cFileNAme[2]). END. excelappl:QUIT(). RELEASE OBJECT excelappl NO-ERROR. RELEASE OBJECT chWorksheet NO-ERROR. /* IF SEARCH(cFileNAme[1]) <> ? THEN DOS SILENT DEL VALUE(cFileNAme[1]). */ run pi-finalizar in h-acomp .