Переполнение строки валидации.Списочная печать в word 
	   
	     | 
   
 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		Oleg001 Участник
 
  Вступление в Клуб: 06.10.2014
  | 
		
			
				 Пн Окт 06, 2014 15:24   Переполнение строки валидации.Списочная печать в word | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Товарищи,доброго времени суток! Столкнулся с проблемой при печати документов в ворд.  В строку валидации длиной 32000 входит мало данных, поэтому печатается не все
 
 
Проверка
 
if P_MESSAGE = 'DEFAULT' then
 
                               Init_WRD;                          
 
                               V_DEST := '';
 
                               p_info:= 'OK';
 
                end if;
 
                
 
                if P_MESSAGE = 'VALIDATE' then
 
                    
 
                   
 
                               if P_INFO = 'OK' Then
 
                                               P_info := 'Печать в ворд';
 
                               end if;
 
                                               if P_INFO = 'Печать в ворд' then
 
                                               if f_click then
 
                                                               dol_ruk := RUK_PODP.[CASTA].[VALUE];
 
                                                              fio_ruk := RUK_PODP.[NAME];
 
                                                              fio_isp := stdlib.userid.[NAME];
 
                                                              tel_isp := P_TEL_ISP;
 
                                                              depart := dep_ref.[NAME];
 
                                                               oper_day := to_char(P_DATE_OP, 'DD.MM.YYYY');
 
 
                                                               Draw(this);
 
                                                               
 
                                                               f_click := false;
 
                                                               if Exec_Script(V_DEST) = 'DONE' then
 
                                                                              &debug('Вывод данных завершен',0);
 
                                                               end if;
 
                                               end if;
 
                                               --WORD.row_out:=1;
 
                                               end if;
 
                end if;
 
 
Локальные описания
 
procedure Draw(Tab TTable) is
 
                CachAtm ref [BILL_DOCUM];
 
                cnt_all number:=0;
 
begin
 
open_file ('c:\Локальные документы\templateDV.dot'            ,false);
 
 
                for I in Tab.first .. Tab.last loop
 
                               CachAtm:=Tab(I);
 
                               cnt_all:=cnt_all+1;
 
                               Add_TabRow(2);
 
                               Set_CellValue(2,1,to_char(I));
 
                               Set_CellValue(2,2, CachAtm.[sum_dt]);
 
                               Set_CellValue(2,3,to_char(CachAtm.[ORIG_DOC].[DATA_OP], 'DD.MM.YYYY'));
 
                               Set_CellValue(2,4,CachAtm.[FILE_IN].[FILE_REQ].[NUM]);
 
                               Set_CellValue(2,5,to_char(CachAtm.[ORIG_DOC].[DATA_OP], 'DD.MM.YYYY'));
 
                               Set_CellValue(2,6,to_char(CachAtm.[NAZN]));
 
                               
 
 
                end loop;
 
                               Saveas('c:\Локальные документы\1.doc');
 
                               visible;
 
                               release;
 
                stdio.put_line_buf('Выполнено '||cnt_all||' из '||Tab.count);
 
 
                --WORD.End_Work_With_Table;
 
end;
 
 
клиент-скрипт
 
 
Public Sub Exe
 
                Do
 
                               execute V_DEST.Text
 
                               V_DEST.Text =""
 
                               Call Runtime.ServerValidate(PrintWord, "Печать в ворд")
 
                loop While V_DEST.Text <> ""
 
                end sub
 
 
Public Function Main(LastControl)
 
'               if LastControl is nothing then
 
                               
 
                if LastControl is OK then
 
                Do
 
                               MsgBox(V_DEST)
 
                                               Execute V_DEST.text
 
                V_DEST.Text = ""
 
 
                               loop While V_DEST.Text <> ""
 
                end If
 
                Main = True 'Результат валидатора (True, False, NULL)
 
End Function
 
 
Подскажите, пожалуйста, как справиться! заранее спасибо
  Последний раз редактировалось: Oleg001 (Вт Окт 07, 2014 07:36), всего редактировалось 1 раз | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Окт 07, 2014 06:14   Re: Переполнение строки валидации.Списочная печать в word | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Oleg001 пишет: | 	 		  Товарищи,доброго времени суток! Столкнулся с проблемой при печати документов в ворд.  В строку валидации длиной 32000 входит мало данных, поэтому печатается не все
 
...
 
Подскажите, пожалуйста, как справиться! заранее спасибо | 	  
 
 
Справиться можно, выполняя (формируя) скрипт частями.
 
У Вас в коде зачем-то тут цикл, не так ли? Но чего-то в нём не хватает:
 
Do 
 
MsgBox(V_DEST) 
 
Execute V_DEST.text 
 
V_DEST.Text = "" 
 
 
loop While V_DEST.Text <> "" | 
			 
		  | 
	 
	
		  | 
	 
	
		Oleg001 Участник
 
  Вступление в Клуб: 06.10.2014
  | 
		
			
				 Вт Окт 07, 2014 06:29   Re: Переполнение строки валидации.Списочная печать в word | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Random пишет: | 	 		  
 
Справиться можно, выполняя (формируя) скрипт частями.
 
У Вас в коде зачем-то тут цикл, не так ли? Но чего-то в нём не хватает:
 
Do 
 
MsgBox(V_DEST) 
 
Execute V_DEST.text 
 
V_DEST.Text = "" 
 
 
loop While V_DEST.Text <> "" | 	  
 
 
То есть нужно в VALIDATE отправлять данные в V_DEST частями? Как это сделать? Помогите, пожалуйста, а то я с этим впервые имею дело | 
			 
		  | 
	 
	
		  | 
	 
	
		Random Эксперт
 
  Вступление в Клуб: 27.06.2011
  | 
		
			
				 Вт Окт 07, 2014 09:54   Re: Переполнение строки валидации.Списочная печать в word | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Oleg001 пишет: | 	 		  | То есть нужно в VALIDATE отправлять данные в V_DEST частями? Как это сделать? Помогите, пожалуйста, а то я с этим впервые имею дело | 	  
 
Вообще говоря, всё уже давно написано за вас. Есть операции для вывода данных в word, excel - ::[RUNTIME].[WORD_RUN] и 
 
::[RUNTIME].[EXCEL_RUN].
 
 
Может быть, проще операцией WORD_RUN и воспользоваться?
 
 
Тогда для примера можно посмотреть INTEGR_FORMS.F_901, только там EXCEL_RUN используется, но принцип один. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |