CftClub.ru
Клуб специалистов ЦФТ-Банк

таблица в WORD

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
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);
Не могу заполнить алиасы в шаблоне.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru