Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
sam_max Участник
Вступление в Клуб: 20.08.2012
|
Чт Дек 26, 2013 13:50  таблица в WORD |
|
Полезность: Нет оценки
|
добрый день. Может кто сталкивался..
Заполняю таблицу в WORDe данными, и проблема в том что если больше 99 записей, то файл ВОРДовский не выводится на экран. Если меньше или ровно 99 то файл ВОРДА выводится. В чем проблема?
Вот кусок кода:
for y in pacc.[ARC_MOVE] ALL
where y.[DATE]>= dat1 and y.[DATE]<=dat2
loop
nn:=nn+1;
--if nn>99 then -- Больше 100 записей почему-то не выводит, ВОПРОС ??????
--flag:=1;
--idxTbl:=2; -- 2-я таблица
--exit;
--end if;
debug_pipe(nn,0);
[RUNTIME].[WORD].Add_TabRow (idxTbl);
[RUNTIME].[WORD].Set_CellValue (idxTbl, 1, to_char(nn));
[RUNTIME].[WORD].Set_CellValue (idxTbl, 2, to_char(y.[DATE],'dd.mm.yyyy'));
if y.[DT] then
[RUNTIME].[WORD].Set_CellValue (idxTbl, 4, trim(to_char(y.[SUMMA_NAT],'999999999999990.00')));
all_db:=all_db+y.[SUMMA_NAT];
else
[RUNTIME].[WORD].Set_CellValue (idxTbl, 5, trim(to_char(y.[SUMMA_NAT],'999999999999990.00')));
all_kt:=all_kt+y.[SUMMA_NAT];
end if;
end loop; |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 26, 2013 14:27   |
|
Полезность: Нет оценки
|
А зачем такие вещи в Word пихать? Почему не EXCEL ? |
|
 |
sam_max Участник
Вступление в Клуб: 20.08.2012
|
Чт Дек 26, 2013 14:28   |
|
Полезность: Нет оценки
|
Шаблон специфичный в ВОРДе. А по теме есть ответ? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Дек 27, 2013 06:32   |
|
Полезность: Нет оценки
|
sam_max пишет: | Шаблон специфичный в ВОРДе. А по теме есть ответ? |
Скорее всего переменная куда вы выводите клиент скрипт переполняется.
Покажите что у вас в закладке "проверка" и клиент-скрипте написано |
|
 |
sam_max Участник
Вступление в Клуб: 20.08.2012
|
Пт Дек 27, 2013 06:54   |
|
Полезность: Нет оценки
|
Переменная V_DEST не переполняется, выводил MsgBox (len(V_DEST.Text)).
Клиент-Скрипт:
Public Function Main(LastControl)
If LastControl is OK Then
While V_DEST.Text <> ""
Execute V_DEST.Text
V_DEST.Text = ""
Call Form1.ScriptServerValidate(OK, "OK")
WEND
End If
Main = True
End Function
Проверка:
p_file varchar2(250);
begin
if P_MESSAGE = 'DEFAULT' Then
P_DATE1:=to_date('01.01.2013','dd.mm.yyyy');
P_DATE2:=to_date('31.10.2013','dd.mm.yyyy');
p_file := ::[SYSTEM_PARAMS].Get('PATH_PRINT_DOC')||'opn_act_vrf.dot'; -- устанавливаем путь к шаблону
F_Click := true;
elsif P_MESSAGE = 'VALIDATE' Then
if P_INFO = 'OK' Then
if P_ACC is NULL then
Pragma Error('Счет 60312 должен быть заполнен на форме!');
end if;
-- Инициализация переменных пакета для вывода в Word
[RUNTIME].[WORD].Init_Wrd;
-- Инициализация глобальных переменных
V_DEST := null;
if F_Click then
begin
F_Click := false;
-- Открываем шаблон DOT для чтения
[RUNTIME].[WORD].Open_file(p_file, false);
[RUNTIME].[WORD].Prepare_Doc_to_Put;
draw_rep (P_DATE1, P_DATE2, P_ACC);
[RUNTIME].[WORD].Update_Fields;
[RUNTIME].[WORD].Visible;
[RUNTIME].[WORD].Release;
end;
end if;
-- Исполнение сформированного сценария
[RUNTIME].[WORD].Exec_Script(V_DEST);
end if;
end if;
end; |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Пт Дек 27, 2013 08:21   |
|
Полезность: 1
|
клиент скрипт постоянно вызывает кусок кода if P_INFO = 'OK' ...
а [RUNTIME].[WORD].Exec_Script(V_DEST); возвращает все время свежую порцию кода клиент скрипта
А вы вот этой строкой
[RUNTIME].[WORD].Init_Wrd;
очищаете переменные пакета [WORD] и [RUNTIME].[WORD].Exec_Script(V_DEST) не возвращает ничего.
Код: | p_file varchar2(250);
begin
if P_MESSAGE = 'DEFAULT' Then
P_DATE1:=to_date('01.01.2013','dd.mm.yyyy');
P_DATE2:=to_date('31.10.2013','dd.mm.yyyy');
p_file := ::[SYSTEM_PARAMS].Get('PATH_PRINT_DOC')||'opn_act_vrf.dot'; -- устанавливаем путь к шаблону
-- Инициализация переменных пакета для вывода в Word
[RUNTIME].[WORD].Init_Wrd;
-- Инициализация глобальных переменных
V_DEST := null;
elsif P_MESSAGE = 'VALIDATE' Then
if P_INFO = 'OK' Then
if [RUNTIME].[WORD].F_Click then
if P_ACC is NULL then
Pragma Error('Счет 60312 должен быть заполнен на форме!');
end if;
[RUNTIME].[WORD].F_Click := false;
-- Открываем шаблон DOT для чтения
[RUNTIME].[WORD].Open_file(p_file, false);
[RUNTIME].[WORD].Prepare_Doc_to_Put;
draw_rep (P_DATE1, P_DATE2, P_ACC);
[RUNTIME].[WORD].Update_Fields;
[RUNTIME].[WORD].Visible;
[RUNTIME].[WORD].Release;
end if;
-- Исполнение сформированного сценария
[RUNTIME].[WORD].Exec_Script(V_DEST);
end if;
end if;
end; |
|
|
 |
sam_max Участник
Вступление в Клуб: 20.08.2012
|
Пт Дек 27, 2013 09:32   |
|
Полезность: Нет оценки
|
prog Спасибо большое! Действительно все так как вы написали. |
|
 |
ganikk Участник
Вступление в Клуб: 11.03.2015
|
Ср Мар 11, 2015 12:09  draw_rep |
|
Полезность: Нет оценки
|
Можете пжл. выложить процедуру: draw_rep (P_DATE1, P_DATE2, P_ACC);
Не могу заполнить алиасы в шаблоне. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|