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 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| PROCEDURE H_LISTE_SANS_MEF(FORMAT IN VARCHAR) IS
-- ************************************************************************/
-- ** PROCEDURE - H_LISTE_SANS_MEF */
-- ** Liste des fiches brut sans mise en forme */
-- ************************************************************************/
FichierDefaut VARCHAR2(256) := 'Liste_Sans_Mef';
NomFichier VARCHAR2(256);
FichierCSV TEXT_IO.FILE_TYPE;
/*Application OLE2.OBJ_TYPE;
Workbooks OLE2.OBJ_TYPE;
Workbook OLE2.OBJ_TYPE;
Worksheets OLE2.OBJ_TYPE;
Worksheet OLE2.OBJ_TYPE;
Modules OLE2.OBJ_TYPE;
Module OLE2.OBJ_TYPE;
ArgList OLE2.LIST_TYPE;*/
Application CLIENT_OLE2.OBJ_TYPE;
Workbooks CLIENT_OLE2.OBJ_TYPE;
Workbook CLIENT_OLE2.OBJ_TYPE;
Worksheets CLIENT_OLE2.OBJ_TYPE;
Worksheet CLIENT_OLE2.OBJ_TYPE;
Modules CLIENT_OLE2.OBJ_TYPE;
Module CLIENT_OLE2.OBJ_TYPE;
ArgList CLIENT_OLE2.LIST_TYPE;
BEGIN
-- Si CSV enregistrement du fichier
IF FORMAT IN ('RADIO_CSV','RADIO_EMAIL') THEN
NomFichier := GET_FILE_NAME(directory_name=>'',
file_name=>FichierDefaut,
dialog_type=> SAVE_FILE,
File_Filter=> 'Fichiers (c)omma (s)eparated (v)alue (*.csv)|*.csv|',
select_file => TRUE);
IF NomFichier IS NULL THEN
RETURN;
END IF;
FichierCSV := TEXT_IO.FOPEN(NomFichier,'W');
-- Si Excel création d'un classeur
ELSIF FORMAT = 'RADIO_EXCEL' THEN
Application := CLIENT_OLE2.create_obj('Excel.Application');
OLE2.set_property(Application, 'Visible', True);
Workbooks := CLIENT_OLE2.GET_OBJ_PROPERTY(Application, 'Workbooks');
Workbook := CLIENT_OLE2.invoke_obj(WorkBooks, 'Add');
Worksheets := CLIENT_OLE2.GET_OBJ_PROPERTY(Workbook, 'Worksheets');
Worksheet := CLIENT_OLE2.GET_OBJ_PROPERTY(Application,'activesheet');
END IF;
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
H_LISTE_SANS_MEF_ENTETE(FORMAT, FichierCSV,Worksheet);
H_LISTE_SANS_MEF_LIGNES(FORMAT, FichierCSV,Worksheet);
IF FORMAT IN ('RADIO_CSV','RADIO_EMAIL') THEN
TEXT_IO.FCLOSE(FichierCSV);
Application := CLIENT_OLE2.create_obj('Excel.Application');
OLE2.set_property(Application, 'Visible', True);
Workbooks := CLIENT_OLE2.GET_OBJ_PROPERTY(Application, 'Workbooks');
ArgList := CLIENT_OLE2.CREATE_ARGLIST;
CLIENT_OLE2.ADD_ARG(ArgList, NomFichier);
Workbook := CLIENT_OLE2.INVOKE_OBJ(Workbooks, 'Open', ArgList);
CLIENT_OLE2.DESTROY_ARGLIST(ArgList);
END IF;
-- exécution des macros
Modules := CLIENT_OLE2.GET_OBJ_PROPERTY(WorkBook, 'Modules');
Module := CLIENT_OLE2.invoke_obj(Modules, 'Add');
MACRO_EXCEL(Application, Module,:MAIN.TXT_EMPLACEMENT,'Decodage_Classification');
-- ecriture du fichier au format XLS
IF NOT NomFichier IS NULL THEN
MACRO_EXCEL(Application, Module,:MAIN.TXT_EMPLACEMENT,'SauvegardeXLS');
END IF;
IF FORMAT = 'RADIO_EMAIL' THEN
CLIENT_OLE2.invoke(Workbook, 'Close');
CLIENT_OLE2.invoke(Application, 'Quit');
ENVOI_NOTES_MAIL(:MAIN.TXT_SERVEUR,
:MAIN.TXT_POUR,
:MAIN.TXT_SUJET,
:MAIN.TXT_TEXTE,
NOMSANSEXTENSION(NomFichier)||'.xls');
END IF;
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
IF NOT Application IS NULL THEN
CLIENT_OLE2.release_obj(Application);
END IF;
IF NOT Workbooks IS NULL THEN
CLIENT_OLE2.release_obj(Workbooks);
END IF;
IF NOT Workbook IS NULL THEN
CLIENT_OLE2.release_obj(Workbook);
END IF;
IF NOT Worksheets IS NULL THEN
CLIENT_OLE2.release_obj(Worksheets);
END IF;
IF NOT Worksheet IS NULL THEN
CLIENT_OLE2.release_obj(Worksheet);
END IF;
IF NOT Modules IS NULL THEN
CLIENT_OLE2.release_obj(Modules);
END IF;
IF NOT Module IS NULL THEN
CLIENT_OLE2.release_obj(Module);
END IF;
exception when NO_DATA_FOUND
THEN message('test error H_global (no data found) '||sqlerrm);
when OTHERS
THEN message('test error H_global (others) '||sqlerrm);
END H_LISTE_SANS_MEF; |
Partager