QUANDO COLOCO O FMX NO SERVIDOR DE APLICAÇÃO E ACESSO VIA INTRANET OU INTERNET , NÃO DÁ ERRO MAS NÃO TRAS A INFROMAÇÃO QUE DEVERIA TRAZER , alguém SABE OQUE PODE SER?? JÁ TENTEI USAR O CLIENT_OLE2 MAS TAMBEM NÃO FUNCIONA DÁ UM ERRO 100501 NO-ORACLE EXCEPTION. AGUARDO UMA AJUDA OBRIGADO
DECLARE
-- DECLARAÇÃO DE OBJETOS
APPLICATION OLE2.OBJ_TYPE; --EXCEL
WORKBOOKS OLE2.OBJ_TYPE;
WORKBOOK OLE2.OBJ_TYPE; --ARQUIVO XLS
WORKSHEET OLE2.OBJ_TYPE;--PLANILHAS
CELL OLE2.OBJ_TYPE;
font OLE2.OBJ_TYPE;
-- DECLARA LISTA DE ARGUMENTOS
ARGS OLE2.LIST_TYPE;
ROWCOUNT NUMBER := 1;
BEGIN
--volta com o cursor para o 1º record
FIRST_RECORD;
---------------------------------------------------------------------------------------------------------------------
SET_APPLICATION_PROPERTY (CURSOR_STYLE, 'BUSY');
-- ABRE A APLICAÇÃO
APPLICATION := OLE2.CREATE_OBJ('EXCEL.APPLICATION');
-- CRIA UM ARQUIVO PARA TRABALHO
WORKBOOKS := OLE2.GET_OBJ_PROPERTY(APPLICATION, 'WORKBOOKS');
WORKBOOK := OLE2.GET_OBJ_PROPERTY(WORKBOOKS,'ADD');
-- ABRI UMA PLANILHA PLAN1
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS,'PLAN1');
WORKSHEET := OLE2.GET_OBJ_PROPERTY(WORKBOOK, 'WORKSHEETS',ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
-------------------------------------------------------------------------------------------------------------------
-- GERA CABEÇALHO
-- COLUNA 1 - CONTA
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, 1); -- ROW NUMBER
OLE2.ADD_ARG(ARGS, 1); -- COLUMN NUMBER
CELL := OLE2.GET_OBJ_PROPERTY(WORKSHEET, 'CELLS', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
OLE2.SET_PROPERTY(CELL, 'VALUE', 'Nro. Conta');
font := ole2.get_obj_property (cell, 'Font');
ole2.set_property (font, 'Name', 'Comics');
ole2.set_property (font, 'Size', '11');
ole2.set_property (font, 'Bold', TRUE);
OLE2.SET_PROPERTY(font, 'ColorIndex', 3); --Preto (3, Red)
OLE2.RELEASE_OBJ(font);
OLE2.RELEASE_OBJ(CELL);
-- COLUNA 2 - Dígito
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, 1); -- ROW NUMBER
OLE2.ADD_ARG(ARGS, 2); -- COLUMN NUMBER
CELL := OLE2.GET_OBJ_PROPERTY(WORKSHEET, 'CELLS', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
OLE2.SET_PROPERTY(CELL, 'VALUE', 'Dígito Conta');
font := ole2.get_obj_property (cell, 'Font');
ole2.set_property (font, 'Name', 'Arial');
ole2.set_property (font, 'Size', '12');
ole2.set_property (font, 'Italic', TRUE);
OLE2.SET_PROPERTY(font, 'ColorIndex', 3); --Preto (3, Red)
OLE2.RELEASE_OBJ(font);
OLE2.RELEASE_OBJ(CELL);
-- COLUNA 3 - COD NEGOCIO
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, 1); -- ROW NUMBER
OLE2.ADD_ARG(ARGS, 3); -- COLUMN NUMBER
CELL := OLE2.GET_OBJ_PROPERTY(WORKSHEET, 'CELLS', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
OLE2.SET_PROPERTY(CELL, 'VALUE', 'Descrição Conta');
--font := OLE2.GET_OBJ_PROPERTY(CELL, 'Font', args);
font := ole2.get_obj_property (cell, 'Font');
ole2.set_property (font, 'Name', 'Times New Roman');
ole2.set_property (font, 'Size', '12');
ole2.set_property (font, 'Bold', TRUE);
OLE2.SET_PROPERTY(font, 'ColorIndex', 3); --Preto (3, Red)
OLE2.RELEASE_OBJ(font);
OLE2.RELEASE_OBJ(CELL);
---------------------------------------------------------------------------------------------------------------
WHILE :CONTROLE.DADOS IS NOT NULL LOOP
ROWCOUNT := ROWCOUNT + 1;
-------------------------------------------------------------------------------------------------------------------
-- DADOS
-- POPULA COLUNA 1
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, ROWCOUNT); -- LINHA COLUNA
OLE2.ADD_ARG(ARGS, 1); -- COLUNA NUMERO
CELL := OLE2.GET_OBJ_PROPERTY(WORKSHEET, 'CELLS', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
OLE2.SET_PROPERTY(CELL, 'COLUMNWIDTH', 20);
OLE2.SET_PROPERTY(CELL, 'VALUE', TO_CHAR (:CONTROLE.DADOS));
OLE2.RELEASE_OBJ(CELL);
-- POPULA COLUNA 2
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, ROWCOUNT); -- LINHA NUMERO
OLE2.ADD_ARG(ARGS, 2); -- COLUNA NUMERO
CELL := OLE2.GET_OBJ_PROPERTY(WORKSHEET, 'CELLS', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
OLE2.SET_PROPERTY(CELL, 'COLUMNWIDTH', 20);
OLE2.SET_PROPERTY(CELL, 'VALUE', TO_CHAR (:CONTROLE.DADOS));
OLE2.RELEASE_OBJ(CELL);
-- POPULA COLUNA 3
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, ROWCOUNT); -- LINHA NUMERO
OLE2.ADD_ARG(ARGS, 3); -- COLUNA NUMERO
CELL := OLE2.GET_OBJ_PROPERTY(WORKSHEET, 'CELLS', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
OLE2.SET_PROPERTY(CELL, 'VALUE', :CONTROLE.DADOS);
OLE2.SET_PROPERTY(CELL, 'COLUMNWIDTH', 25);
OLE2.RELEASE_OBJ(CELL);
NEXT_RECORD;
---------------------------------------------------------------------------------------------------------------
END LOOP;
--RENOMEIA O NOME DA PLANILHA
ole2.set_property(WORKSHEET,'Name','Konda');
----------------------------------------------------------------------------------------------------------------
-- EXIBINDO A PLANILHA
OLE2.SET_PROPERTY(APPLICATION,'VISIBLE', TRUE);
----------------------------------------------------------------------------------------------------------------
-- SALVANDO O AQRUIVO
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, 'c:\TESTE.XLS');
OLE2.INVOKE(WORKSHEET, 'SaveAs', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
------------------------------------------------------------------------------------------------------------------
--FECHANDO O ARQUIVO E APLICAÇÃO
ARGS := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(ARGS, 0);
OLE2.INVOKE(WORKBOOK, 'Close', ARGS);
OLE2.DESTROY_ARGLIST(ARGS);
----------------------------------------------------------------------------------------------------------------
-- DELETANDO VARIAVEIS E OBJETOS
OLE2.RELEASE_OBJ(WORKSHEET);
OLE2.RELEASE_OBJ(WORKBOOK);
OLE2.RELEASE_OBJ(WORKBOOKS);
OLE2.RELEASE_OBJ(APPLICATION);
SET_APPLICATION_PROPERTY (CURSOR_STYLE, 'DEFAULT');
EXCEPTION
WHEN OTHERS THEN
SET_APPLICATION_PROPERTY (CURSOR_STYLE, 'DEFAULT');
CLEAR_MESSAGE;
OLE2.Release_Obj( application );
message('Error'||sqlerrm);
RAISE FORM_TRIGGER_FAILURE;
END;