Переключение на Главную Страницу Страницы: 1 2 [3] 4 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) MasterXL - параллельное формирование отчетов (число прочтений - 32196 )
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #30 - 20. Июня 2006 :: 15:56
Печать  
Исправлено, см. первое сообщение
  
Наверх
www  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #31 - 22. Июня 2006 :: 09:34
Печать  
kms писал(а) 18. Июня 2006 :: 13:46:
А данные брать из ТЗ или ИТЗ не планировал?
В монопольном режиме проблем бы не было, да и куча данных есть, которые сперва обрабатываются клиентом.


Может быть  сделать так, чтобы в методах Table() и PivotTable()  первый параметр мог быть не только текстом SQL-запроса, но и путем к файлу DBF? Тогда программа сама будет "понимать", что источником данных является файл DBF.  А для выгрузки ТЗ в DBF легко написать универсальную процедурку на 1С.      Кстати, такой метод экспорта ТЗ->Excel (через промежуточный dbf-файл), почти самый оптимальный по скорости.

  
Наверх
www  
IP записан
 
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #32 - 01. Июля 2006 :: 19:31
Печать  
Про dbf- было б хорошо.
И еще заявка на доработку: синонимы для заголовков колонок.
Спасибо за разработку
  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #33 - 01. Июля 2006 :: 19:44
Печать  
alest писал(а) 01. Июля 2006 :: 19:31:
Про dbf- было б хорошо.
И еще заявка на доработку: синонимы для заголовков колонок.
Спасибо за разработку


Во! А я ждал, пока кто-нибудь скажет - а то вроде никому и не надо Улыбка
А как ты думаешь это логичней сделать: просто указывать первым параметром путь к файлу DBF, а сам файл формировать какой-нибудь процедурой?  Была у меня наработка, когда Внешняя Компонента разбирает ТЗ и формирует DBF, но реализовав это все как ВК, мы потеряем возможность "очереди отчетов", так как все будет выполняться внутри процесса 1С, наглухо подвешивая его.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: MasterXL - параллельное формирование отчетов
Ответ #34 - 01. Июля 2006 :: 20:34
Печать  
Snif писал(а) 01. Июля 2006 :: 19:44:
Во! А я ждал, пока кто-нибудь скажет - а то вроде никому и не надо Улыбка

Надо, даже не сомневайся Улыбка

Цитата:
но реализовав это все как ВК, мы потеряем возможность "очереди отчетов", так как все будет выполняться внутри процесса 1С, наглухо подвешивая его.

Можно попробовать сделать основную часть функционала отдельным потоком.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #35 - 01. Июля 2006 :: 20:46
Печать  
Цитата:
Можно попробовать сделать основную часть функционала отдельным потоком.

Многопоточности здесь нет.
Вся сила библиотеки MasterXL в том, что она "бездельничает", иначе 1С будет занят. Немного об её устройстве: при запуске она создает объект Excel и передает ему ссылку на коллекцию объетов "Job". Больше она ничего не делает. Excel по таймеру как только освобождается, то смотрит, нет ли в этой коллекции еще объектов "Job". Если нет, то он закрывает соединение с базой.
PS вру чуть-чуть: когда Excel видит, что очередь пуста, то передает сигнал об этом MasterXL, и тогда библиотека активизирует окно Excel, чтобы оно вылезло на передний план

« Последняя редакция: 02. Июля 2006 :: 05:52 - Snif »  
Наверх
www  
IP записан
 
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #36 - 03. Июля 2006 :: 12:56
Печать  
Указать путь файла достаточно. Где-то должна быть функция для выгрузки тз в дбф.
  
Наверх
ICQ  
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #37 - 03. Июля 2006 :: 13:32
Печать  
alest писал(а) 03. Июля 2006 :: 12:56:
Указать путь файла достаточно. Где-то должна быть функция для выгрузки тз в дбф.

Думаю (так и получается) надо создать класс. "СЕРВИСОТЧЕТА.prm"
Решает следующие проблемы:
1."А еще нам очень было бы неплохо иметь под рукой таблицу с перечислениями, которой, как вы знаете, в базе просто нет. Ну а раз нет, то никто нам не мешает такую таблицу создать." http://klerk.ru/soft/1c/?15292
2.Метод ТЗ->DBF
  
Наверх
www  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #38 - 07. Июля 2006 :: 06:02
Печать  
(Snif) Проверил все работает на Excel 2000.

Маленькая опечатка в отчете по оборотам интервал дат надо
:ВыбДата,:ВыбДата2 ~   ( в оригинале тильды нет ).

Насчет ТЗ а что если ТЗ помещать во временные таблицы sql
причем первый отчет в #sql_MasterXL_1
второй отчет в #sql_MasterXL_2 и.т.д.  Т.е. просто ведем счетчик таблиц сами
а далее sql запрос по этой временной таблице.
  
Наверх
 
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #39 - 10. Июля 2006 :: 04:42
Печать  
Z1 писал(а) 07. Июля 2006 :: 06:02:
(Snif) Проверил все работает на Excel 2000.

Маленькая опечатка в отчете по оборотам интервал дат надо
:ВыбДата,:ВыбДата2 ~   ( в оригинале тильды нет ).

Насчет ТЗ а что если ТЗ помещать во временные таблицы sql
причем первый отчет в #sql_MasterXL_1
второй отчет в #sql_MasterXL_2 и.т.д.  Т.е. просто ведем счетчик таблиц сами
а далее sql запрос по этой временной таблице.


1. Опечатку исправил
2. Интересная мысль, а как ты предполагаешь помешать ТЗ во временные таблицы?
P.S. таблицы, пожалуй. придется создавать не локальные, а глобальные (т.е. имя будет начинаться  на ##)
  
Наверх
www  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #40 - 10. Июля 2006 :: 04:58
Печать  
1.Добавлять обычным insert
2. Может и глобальные временные таблицы, если MasterXL работает
в другой sql сессии.
  
Наверх
 
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #41 - 11. Июля 2006 :: 07:45
Печать  
Z1 писал(а) 10. Июля 2006 :: 04:58:
1.Добавлять обычным insert

Не понял. Вот у тебя ТЗ. И как её Insert-ом отправить на сервер?
  
Наверх
www  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #42 - 11. Июля 2006 :: 07:47
Печать  
Snif писал(а) 11. Июля 2006 :: 07:45:
Z1 писал(а) 10. Июля 2006 :: 04:58:
1.Добавлять обычным insert

Не понял. Вот у тебя ТЗ. И как её Insert-ом отправить на сервер?

RecordSet.ВыполнитьSQLизТЗ()
  
Наверх
 
IP записан
 
Snif
Junior Member
**
Отсутствует



Сообщений: 44
Зарегистрирован: 30. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #43 - 11. Июля 2006 :: 13:34
Печать  
Вообще так чудно получается: мы собираем данные на клиенте и создаем таблицу значений. Потом перегоняем её обратно на сервер, чтобы другим клиентом (Excel)  её оттуда забрать. Такого многотрудного пути для данных не смогли придумать даже отцы-основатели 1С Улыбка

PS а можно, пожалуйста, привести пример, когда в качестве источника данных для отчета не может выступать SQL-запрос, а нужно именно как-то "переколбасить" данные в таблице значений?  Просто мне подобный пример в голову не приходит.
  
Наверх
www  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: MasterXL - параллельное формирование отчетов
Ответ #44 - 11. Июля 2006 :: 14:20
Печать  
Snif писал(а) 11. Июля 2006 :: 13:34:
Вообще так чудно получается: мы собираем данные на клиенте и создаем таблицу значений. Потом перегоняем её обратно на сервер, чтобы другим клиентом (Excel)  её оттуда забрать. Такого многотрудного пути для данных не смогли придумать даже отцы-основатели 1С Улыбка

PS а можно, пожалуйста, привести пример, когда в качестве источника данных для отчета не может выступать SQL-запрос, а нужно именно как-то "переколбасить" данные в таблице значений?  Просто мне подобный пример в голову не приходит.


Поверь такие примеры есть но из-за моей специфики слишком долго излагать.
Опять же ТЗ можно собрать из нескольких sql запросов ( иногда это легче и целесообразней чем один суперсложный запрос хотя бы из-за попадания в индекс ).
Основная моя мысль если ТЗ перегнать во временную таблицу то весь твой функционал будет работать ( расширить твой функционал можешь только ты ) и на эту временную таблицу можно накладывать еще дополнительный sql запрос это
может оказаться гораздо легче чем накладывать ограничения на ТЗ или создавать новую ТЗ.

Кстати возникла идея  ( может это и бред )а что если в 1с++ создать дополнительный метод
RS.ВыполнитьИнструкцию_в_sql(ТекстЗапроса, Имя временнойГлобТаблицы);
может надо завести отдельную ветку
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 5 
ОтправитьПечать