Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Динамическое формирование отчета

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык
Предыдущая тема :: Следующая тема  
Автор Сообщение
Mila



Зарегистрирован: 28.05.2009
Сообщения: 44
Откуда: СПб

СообщениеДобавлено: Пт Июн 11, 2010 12:05    Заголовок сообщения: Динамическое формирование отчета Ответить с цитатой

Всем добрый день!
Делаю отчет, код к примеру.
Код:

--Let _firm_Name = '@@10';
select short_name into :_firm_Name from setup where id_firm = @@1;

------------- НАЧАЛО ДОКУМЕНТА
EXECUTE xOCX{
Word.Basic as Word;
Word.FileNew();
Word.FontSize(12);
Word.RightPara();
Word.Insert("Начальнику ...");
Word.InsertPara();
Word.Insert("...");
Word.InsertPara();
Word.Insert(:short_name);
Word.InsertPara();
Word.InsertPara();
Word.InsertPara();
Word.InsertPara();
Word.LeftPara();
Word.Insert('         текст ');
Word.InsertPara();
Word.InsertPara();
Word.LeftPara();
Word.Bold();
Word.Insert("Таблица 1. ");
Word.InsertPara();
Word.InsertPara();
};

------------- ТАБЛИЦА 1
EXECUTE xOCX{
Word.TableInsertTable(3,2);
Word.TableInsertColumn();
Word.StartOfLine();
Word.TableColumnWidth("1.25 см");
Word.NextCell();
Word.TableColumnWidth("10.5 см");
Word.NextCell();
Word.TableColumnWidth("5.0 см");
Word.NextCell();
Word.TableSelectTable();
Word.BorderInside(1);
Word.BorderOutside(1);
Word.StartOfLine();
-- 1 колонка
Word.Bold();
Word.CenterPara();
Word.Insert("№ п/п");
Word.InsertPara();
-- 2 колонка
Word.NextCell();
Word.Bold();
Word.CenterPara();
Word.Insert("Фамилия Имя Отчество");
Word.InsertPara();
-- 3 колонка
Word.NextCell();
Word.Bold();
Word.CenterPara();
Word.Insert("Дата рождения");
Word.InsertPara();
--
Word.NextCell();
};
------------- 1. ЦИКЛ
SCAN @CNDN Select   LTRIM(RTRIM(STR(ROW_NUMBER() OVER(ORDER BY Full_Name))+'.')) as num_pp,
               LTRIM(RTRIM(card.Full_Name)) as Full_Name,
               Convert(varchar(12),card.date_birth,104) as date_birth
         from pr_current left join
                people on (pr_current.pId = people.pId) left join
                   card on (pr_current.auto_card = card.auto_card)
         where pr_current.flag_last = '*' and people.id_firm = 1 and people.out_date = '2099-01-01 00:00:00.000'
            and people.end_test between cast(convert(char(6),DateAdd(Month,-1,GetDate()),112)+'01' as datetime)
            and GetDate() --dateadd(day,-1, convert(char(6), dateadd(month,0,DateAdd(Month,1,GetDate())),112)+'01')
         order by card.Full_Name
EXECUTE { Begin
         Let :_num_pp = @CNDN:num_pp;
         Let :_Full_Name = @CNDN:Full_Name;
         Let :_date_birth = @CNDN:date_birth;
         ------------- ВЫВОД записей в таблицу
         EXECUTE xOCX{
                  Word.FontSize(11);
                  Word.Insert(:_num_pp);
                  Word.NextCell();
                  Word.FontSize(11);
                  Word.Insert(:_Full_Name);
                  Word.NextCell();
                  Word.FontSize(11);
                  Word.Insert(:_date_birth);
                  Word.NextCell();
               };
      END      };
------------- 1. end

--Word.InsertBreak();      -- На след страницу
-- Руководитель организации
Word.InsertPara();
Word.Insert("Руководитель организации"); -- Руководитель организации
Word.Insert("                                         ");
Word.Insert("ФИО руководителя организации"); -- ФИО руководителя организации
Word.InsertPara();
Word.InsertPara();

-- Работник кадровой службы
Word.InsertPara();
Word.Insert("исп. ");
Word.Insert("ФИО работника кадровой службы"); -- ФИО работника кадровой службы
Word.InsertPara();
Word.InsertPara();


EXECUTE xOCX{
Word.StartOfLine();
Word.AppShow();
};

Free _num_pp, _Full_Name, _date_birth, _firm_Name;
ALIAS :_Result=-1;


После вывода данных в таблицу, курсор остается в таблице и я не знаю как из нее "выбраться" ))) чтобы писать текст ниже таблицы.
Жду ваших советов о мудрейшие из мудрейших Rolling Eyes
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vitaly
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 29.07.2008
Сообщения: 281
Откуда: Санкт-Петербург

СообщениеДобавлено: Пт Июн 11, 2010 12:17    Заголовок сообщения: Ответить с цитатой

Код:
wordApp.Selection.GoTo(-1,0,0, "T1");
SCAN @T1

Select Podr, Dolz, Fio, TabNo, KolD, IsNull(Convert(varchar(10),PlanD,104),''), IsNull(Convert(varchar(10),FactD,104),'') From #User_Tempo Where 1=1 Order By SortN, FactD, FIO
execute {
   wordApp.Selection.TypeText(:@T1:1['']);
   wordApp.WordBasic.nextcell();
   wordApp.Selection.TypeText(:@T1:2['']);
   wordApp.WordBasic.nextcell();
   wordApp.Selection.TypeText(:@T1:3['']);
   wordApp.WordBasic.nextcell();
   wordApp.Selection.TypeText(:@T1:4['']);
   wordApp.WordBasic.nextcell();
   wordApp.Selection.TypeText(@T1:5['']);
   wordApp.WordBasic.nextcell();
   wordApp.Selection.TypeText(:@T1:6['']);
   wordApp.WordBasic.nextcell();
   wordApp.Selection.TypeText(:@T1:7['']);
   wordApp.WordBasic.nextcell();
   wordApp.WordBasic.nextcell();
   wordApp.WordBasic.nextcell();
   wordApp.WordBasic.nextcell();
};-- end SCAN @T1


  wordApp.ActiveDocument.Variables.Add("ФИРМА",:DocVar_FIRMA['']);
  wordApp.ActiveDocument.Variables.Add("ОКПО",:DocVar_OKPO_['']);
  wordApp.ActiveDocument.Variables.Add("ДОЛЖНОСТЬ_РУКОВОДИТЕЛЯ",:DocVar_DIRECTOR_APPOINT['']);
  wordApp.ActiveDocument.Variables.Add("ФИО_РУКОВОДИТЕЛЯ",:DocVar_DIRECTOR_NAME['']);
  wordApp.ActiveDocument.Variables.Add("ДОЛЖНОСТЬ_РУКОВОДИТЕЛЯ_КС",:DocVar_DIRECTOR_APPOINT_PD['']);
  wordApp.ActiveDocument.Variables.Add("ФИО_РУКОВОДИТЕЛЯ_КС",:DocVar_DIRECTOR_NAME_PD['']);
  wordApp.ActiveDocument.Variables.Add("Дата_Док", 'Dat_[dd.mm.yyyy]');

  wordApp.Run("DocVarUpdate");


У меня нормально "выбирается"... Very Happy Т1 - это метка таблицы в шаблоне DOT
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mila



Зарегистрирован: 28.05.2009
Сообщения: 44
Откуда: СПб

СообщениеДобавлено: Пт Июн 11, 2010 12:26    Заголовок сообщения: Ответить с цитатой

а почему у меня нет? Crying or Very sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nemoxur



Зарегистрирован: 30.04.2010
Сообщения: 49

СообщениеДобавлено: Пт Июн 18, 2010 16:36    Заголовок сообщения: Ответить с цитатой

Сеорее всего у тебя в шаблоне не стоит закладка на которой должен появиться текст.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vitaly
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 29.07.2008
Сообщения: 281
Откуда: Санкт-Петербург

СообщениеДобавлено: Пт Июн 18, 2010 17:13    Заголовок сообщения: Ответить с цитатой

Лучше создать сразу шаблон с шапкой и дать имя таблице, как у меня Embarassed , в коде только заполнять таблицу... за основу брал БОССовский код
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык Часовой пояс: GMT + 4
Страница 1 из 1

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


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU