powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Прошу поправить код где накосячил?!
12 сообщений из 12, страница 1 из 1
Прошу поправить код где накосячил?!
    #39335270
Код: 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.
PROCEDURE TEXT_IOS(
    v_date  VARCHAR2,
    v_date2 VARCHAR2,
    v_inum  NUMBER)
AS
  CURSOR t_data
  IS
    SELECT
      /*distinct*/
      g_a.name,
      g_a.s4et,
      g_a.dt,
      g_a.kt,
      g_a.purpose
    FROM
      (SELECT s_a.name,
        s_a.s4et,
        t.ccd dt,
        t.ccc kt,
        t.PURP purpose
      FROM t,
        (SELECT a.name,
          a.cac s4et
        FROM a,
          o
        WHERE a.OTD = o.NUM
        AND o.NUM = v_inum
        AND a.daopen BETWEEN v_date AND v_date2
        )
      ) s_a
    WHERE t.ccd = s_a.s4et
    UNION ALL
      (SELECT s_a.name,
        s_a.s4et,
        t.ccd dt,
        t.ccc kt,
        t.PURP purpose
      FROM t,
        (SELECT a.name,
          a.cac s4et
        FROM a,
          o
        WHERE a.OTD = o.NUM
        AND o.NUM = v_inum
        AND a.daopen BETWEEN v_date AND v_date2
        )
      ) s_a
    WHERE t.ccс = s_a.s4et ) g_a
    --in_t_data t_data%ROWTYPE;
    out_file Text_IO.File_Type;
    f_name VARCHAR2(20000);
  BEGIN
    f_name := GET_FILE_NAME('C:\', 'file_name.xls', 'XLS Files(*.xls)|*.xls|', NULL, SAVE_FILE, TRUE); 
out_file:=Text_IO.Fopen(f_name, 'w'); 
Text_IO.Put(out_file, 
'name'             || CHR(9) ||  
's4et'                 || CHR(9) || 
'dt'                   || CHR(9) ||
'kt'                   || CHR(9) ||
'purpose');

FOR cur_rec IN t_data 
loop
Text_IO.New_Line(out_file);
Text_IO.Put(out_file,     
cur_rec.name              || CHR(9) ||    
cur_rec.s4et                  || CHR(9) ||    
cur_rec.dt                    || CHR(9) ||    
cur_rec.kt                    || CHR(9) ||    
cur_rec.purpose);

exit 
WHEN t_data%NOTFOUND;  
END LOOP;
Text_IO.Fclose (out_file);
EXCEPTION
WHEN OTHERS THEN  
Text_IO.Fclose (out_file);  
--Exit_Form(Do_Commit);  
RAISE;
END;



Проблема в том что при формировании отчета (сия процедура в oracle forms обитает) почему-то едут поля в колонке purpose (она длинная более 100 символов).
Как едут поля: значение поля purpose перескакивает на следующую строку.
Выглядит в ёкселе как то так:
"Возврат средств по депозитному договору № 2143123213н от 22.05.15.
НДС не облагается"

Модератор: Тема перенесена из форума "Oracle".
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39335275
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выводить в Excel, то почему не пользовать специально заточенную под это библиотеку OleExcel ?
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39335364
Проблема решена :
Код: plsql
1.
replace(replace( g_a.purpose, chr(9)), chr(10)) purpose

. В поле были лишние enter и знаки табуляции.

Новая проблема!! некорректно возвращается
Код: sql
1.
g_a.s4et

в файле.
в ёкселе он вида 4,07028E+19
а должен быть вида 42206810868160004861
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39335569
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джонни_Инглишв ёкселе он вида 4,07028E+19
а должен быть вида 42206810868160004861
Это уже вопрос не по Forms, а по Excel, в коем масса глюков. Например, если ты туда выводишь число с десятичным разделителем точка, а в Win на клиенте прописана запятая, то Excel выводит совершенно другие цифры.
В данном случае он так представляет большие числа. Если есть возможность формат ячейки не как число, а как Общий, то все будет в порядке.
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39335864
tru55,

В общем думается пойти путем через ole2.
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39336097
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джонни_Инглишtru55,

В общем думается пойти путем через ole2.
ох.... не стоит. IMHO

Современные Excel'и умеют XML понимать как родной формат, вот в эту сторону лучше и смотреть. AFAIK
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39337682
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так же надо учесть что ole2 через webutil лезет на апп сервер, как следствие для больших отчётов и плохой связи время генерации отчёта может быть неприемлемо (тогда надо либо отказываться от него, либо писать бин который напрямую использует jacob.jar и генерирует отчёт на клиенте).
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39337893
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OldBoyOdeSuole2 через webutil лезет на апп сервер
А если нет никакого апп сервера?
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39338487
Leonid KudryavtsevДжонни_Инглишtru55,

В общем думается пойти путем через ole2.
ох.... не стоит. IMHO

Современные Excel'и умеют XML понимать как родной формат, вот в эту сторону лучше и смотреть. AFAIK

В качестве обучения нужно)
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39338833
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55OldBoyOdeSuole2 через webutil лезет на апп сервер
А если нет никакого апп сервера?
Client-Server официально уже очень давно умер (на мой взгляд зря), т.ч. не катит )))

OldBoyOdeSuТак же надо учесть что ole2 через webutil лезет на апп сервер, как следствие для больших отчётов и плохой связи время генерации отчёта может быть неприемлемо (тогда надо либо отказываться от него, либо писать бин который напрямую использует jacob.jar и генерирует отчёт на клиенте).

OLE2 и так достаточно тормознуто работал, если еще медленнее стало - тогда совсем жесть. Не для генерации это документов, максимум для интеграции. А лучше вообще избежать использования IMHO

Джонни_ИнглишLeonid Kudryavtsevпропущено...

ох.... не стоит. IMHO

Современные Excel'и умеют XML понимать как родной формат, вот в эту сторону лучше и смотреть. AFAIK

В качестве обучения нужно)
Нафига учится не нужным вещам? Лучше Excel'евский формат XML изучить, что ни будь из XML-XSL освоить.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39338953
Leonid Kudryavtsevtru55пропущено...

А если нет никакого апп сервера?
Client-Server официально уже очень давно умер (на мой взгляд зря), т.ч. не катит )))

OldBoyOdeSuТак же надо учесть что ole2 через webutil лезет на апп сервер, как следствие для больших отчётов и плохой связи время генерации отчёта может быть неприемлемо (тогда надо либо отказываться от него, либо писать бин который напрямую использует jacob.jar и генерирует отчёт на клиенте).

OLE2 и так достаточно тормознуто работал, если еще медленнее стало - тогда совсем жесть. Не для генерации это документов, максимум для интеграции. А лучше вообще избежать использования IMHO

Джонни_Инглишпропущено...


В качестве обучения нужно)
Нафига учится не нужным вещам? Лучше Excel'евский формат XML изучить, что ни будь из XML-XSL освоить.

IMHO & AFAIK

Я готов, скиньте где про это почитать...
...
Рейтинг: 0 / 0
Прошу поправить код где накосячил?!
    #39338994
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про XML ? Книг полно в любом магазине, но я их не читал ))), т.ч. порекомендовать не могу
Формат XML для Excell'а: сохранить какой нибудь документ и открыть в тектовом редакторе
Описание формата: msdn.microsoft.com
Вывод из Forms, для начала тот же TEXT_IO. Для OeBS мы использовали Report для генерации XML с данными, Bi-publisher для XSLT преобразования для генерации окончательного документа

https://www.google.ru/?gws_rd=ssl#newwindow=1&q=Excel XML format msdn

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


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