Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Натолкните на мысль. / 7 сообщений из 7, страница 1 из 1
23.03.2017, 11:47
    #39425583
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Натолкните на мысль.
Имеется процедура.

Код: plsql
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.
PROCEDURE qwerty IS

AppId OLE2.Obj_Type;
    q      INTEGER := 0;
    f_name VARCHAR2(200);
    
    TYPE col_2 IS TABLE OF sreda_pivot%ROWTYPE;
    v_th col_2 := col_2();
		e integer := 1;
		r integer := 1;
		v_t varchar2(100);
BEGIN
	
FOR cur_for_col_2 IN (select * from sreda_pivot order by cnter asc)
 LOOP
 		v_th.EXTEND;
 		v_th (v_th.LAST) := cur_for_col_2;
 		END LOOP;
	
	
	loop
	q := q + 1;
   f_name := ('C:\Users\operator\Desktop\itask\' || '00'|| q ||  '.xlsx'); 
    SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');   
		Создать_Сеанс_Excel(null, false, AppId); 
		Создать_лист(AppId, 'Лист 1'); 
    Установить_ширину_столбца(AppId,   1, 71);
 
    					
   		FOR w IN v_th.first..v_th.last
 			LOOP
 			e := e + 1;  
			Записать_В_Ячейку_Текст(AppId, e,  1, v_th(w).names, 1,2);
			Записать_В_Ячейку_Текст(AppId, e,  2, v_th(w).val1, 1,2);
 			END LOOP;
    			e := 1;
    
    
   Показать_Сеанс_Excel(AppId, true);  
   SAVE (AppId, f_name);
	 Завершить_Сеанс_Excel(AppId);  
	 SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');   
    exit when q >= 3;
	end loop;
		
END;



Необходимо
Код: plsql
1.
v_th(w).val1 

- увеличивать в каждом новом файле. Т.е.
Код: plsql
1.
v_th(w).val2, v_th(w).val3

...
Т.е. при создании каждый раз нового файла 001 -- v_th(w).val1, 002 -- v_th(w).val2 и т.д.
просьба натолкнуть на мысль(кому не лень), как реализовать? RTFM - очень даже приветствуется.
...
Рейтинг: 0 / 0
23.03.2017, 12:17
    #39425640
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Натолкните на мысль.
saxarock
Код: plsql
1.
OLE2.Obj_Type

Неподдерживаемая хрень.
...
Рейтинг: 0 / 0
23.03.2017, 12:33
    #39425672
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Натолкните на мысль.
Elic,

Да оно понятно, но к сожалению в том месте где это нужно, только так.
Хотя самому больше нравиться пилить через XML.
Ну а по теме есть, что сказать?
...
Рейтинг: 0 / 0
23.03.2017, 13:28
    #39425734
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Натолкните на мысль.
saxarockНу а по теме есть, что сказать?Хернёй маешься. Архитектурные просчёты бьют на каждом шагу и всё не архитектора.
...
Рейтинг: 0 / 0
23.03.2017, 14:04
    #39425775
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Натолкните на мысль.
ElicХернёй маешься.
Есть такое.

Понятно, что переделывать надо.
Но с чего-то тоже нужно начинать.
...
Рейтинг: 0 / 0
28.03.2017, 13:59
    #39428419
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Натолкните на мысль.
ElicХернёй маешься.

Перестал мается, задачу переосмыслил.


Код: plsql
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.
create or replace procedure costyl_po_razbivke_faila is

TYPE costyl_variable  IS   TABLE OF costyl_po_raxbivke_faila%rowtype;
  v_costyl costyl_variable := costyl_variable();

 v_file  UTL_FILE.FILE_TYPE;
 
 q integer := 0;
begin 
dbms_output.enable;

 FOR cur_for_costyl IN (SELECT * FROM costyl_po_raxbivke_faila)
 LOOP
 v_costyl.EXTEND;
 v_costyl (v_costyl.LAST) := cur_for_costyl;
 END LOOP;

for i in v_costyl.first..v_costyl.last
loop
q := q + 1;
v_file := UTL_FILE.FOPEN( location     => 'v_DIR', filename     =>  q || 'costyl.xml', open_mode    => 'w');

/*пилим башку хмэля*/
UTL_FILE.PUT_LINE(v_file, '<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Author>operator</Author>
  <LastAuthor>operator</LastAuthor>
  <Created>2017-03-06T08:27:43Z</Created>
  <LastSaved>2017-03-06T08:28:41Z</LastSaved>
  <Version>14.00</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>15390</WindowHeight>
  <WindowWidth>27795</WindowWidth>
  <WindowTopX>0</WindowTopX>
  <WindowTopY>45</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 .........

');
   
/*пилим тело хмэля*/   
  UTL_FILE.PUT_LINE(v_file, '<Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="String">VERSION</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="String">' || v_costyl(i).VERSION|| '</Data></Cell>
   </Row>');

UTL_FILE.PUT_LINE(v_file, '<Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="String">ACTION</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="String">' || v_costyl(i).ACTION|| '</Data></Cell>
   </Row>');

.....
/*полей овер 243*/
....

/*пилим жопу хмэля*/
UTL_FILE.PUT_LINE(v_file, ' </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
   </PageSetup>
   <Unsynced/>
   <Selected/>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
</Workbook>');
 
UTL_FILE.FCLOSE(v_file);
end loop;

Dbms_Output.Put_Line ('zaebok');


end;
...
Рейтинг: 0 / 0
28.03.2017, 14:11
    #39428436
Натолкните на мысль.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
...
/*пилим башку...*/
...
/*пилим тело...*/   
...
/*пилим жопу...*/
...



А вы с фантазией, батюшка..
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Натолкните на мысль. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]