Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Есть интерсная идея с быстрой генерацией отчетов

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Технический форум БЭСТ-4
View previous topic :: View next topic  
Author Message
GaMaK



Joined: 21 Oct 2002
Posts: 15



PostPosted: 25 Oct 2002 13:28    Post subject: Есть интерсная идея с быстрой генерацией отчетов Reply with quote

Правда отчёты прийдётся делать самостоятельно

У MS SQL и у Oracle 9i существует такое понятие как external table (для MS SQL читать здесь http://www.accent6.com.ua/kbase6/SQL/sql_dbf.htm ). То есть если прицепить к СУБД файлы БЭСТ, то можно с ними работать на серверной стороне при помощи обычных SQL запросов. В качестве плюшек получаем прекращение гоняния по сети сырых данных, уменьшение сетевого трафика и соответсвенно ускорение генерации отчетов (очень значительное ускорение). Из минусов - отчеты прийдётся рисовать самостоятельно.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
CreaZ



Joined: 04 Oct 2002
Posts: 9



PostPosted: 28 Oct 2002 11:57    Post subject: Reply with quote

В общем без правильного индексирования под MSSQL и Oracle толку не даст, а смогут ли они проиндексировать внешенюю таблицу?!
И сразу накладываеться проблема, если есть удаленные точки, которые работают в своей системе - неудобно объединять данные

Имхо самый простой и правильный вариант - писать все отчеты на fox'e все работает очень быстро и рисовать отчеты просто.
У нас это используеться уже несколько лет, при этом долго считаються только глобальные отчеты.... типа оборота за 2 года в закупочных ценах и ценах реализации в долларах при номенклатуре порядка ~40000 и учете цен только рублевых, то есть закупка и курс просталяються в процессе формирования отчета.
Back to top
View user's profile Send private message
GaMaK



Joined: 21 Oct 2002
Posts: 15



PostPosted: 28 Oct 2002 14:31    Post subject: Reply with quote

Собственно идея в том, что-бы выборки делались на сервере, что-бы не вытягивать сырые данные на клиента. Уж больно тяжко БЭСТ у нас с этим справляется.

Если в Фокс-е можно сделать разделение на клиент и сервер, то хорошо, это решение, если нельзя, то в чём принципиальная разница с формированием отчётов в самом БЭСТ-е ?

А будут использоваться индексы или нет, честно говоря не знаю, смотря насколько по уму промежуточный слой в MS SQL и Oracle прописан... Ручками ещё не трогал. Собствено ведь и про Ораклу тут я говорю только в плане того, что там уже всё сделано, надо только описать данные и пользоваться. Ясно что красившее самим простенький сервер написать. На той-же Delphi TServerDataSet TClientDataSet - всё уже в принципе готово...
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Magistr



Joined: 19 Aug 2002
Posts: 1264
Location: Петрунин Д.Н.
Occupation: Инженер-программист
Interests: Н.Новгород

PostPosted: 28 Oct 2002 18:56    Post subject: Reply with quote

Дайте мне алгоритмы обработки БД БЕСТ для получения отчетов - буду пистать на Delphi 3-х звенку.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
GaMaK



Joined: 21 Oct 2002
Posts: 15



PostPosted: 29 Oct 2002 07:44    Post subject: Reply with quote

Magistr wrote:
Дайте мне алгоритмы обработки БД БЕСТ для получения отчетов - буду пистать на Delphi 3-х звенку.


Батенька, да вы халявщик У нас хлопцы методом научного тыка вроде как всё что сильно потребно уже разворошили...
Back to top
View user's profile Send private message Send e-mail Visit poster's website
CreaZ



Joined: 04 Oct 2002
Posts: 9



PostPosted: 29 Oct 2002 11:57    Post subject: Reply with quote

Ну насчет обработки на сервере - вопрос спорный, у нас сервак для БЭСТа - Novell, зато есть не слишком сейчас занятый сервак под w2000, который с Novell'ом связан по 1Gb ethernet, так что фоксовые отчеты запускать на нем через терминал сервис - милое дело, все просто летает.
Разница как уже наверно не раз говорилось просто не сравнимая, в разы и десятки раз так как клипер не умеет использовать запросы.
И в разы в с фоксовыми отчетами, написанными самими интелектовцами.
А насчет алгоритмов отчетов - все зависит от того какой отчет нужен, у нас очень мало стандартных - вопрос обычно такой, приходит кто нибудь и говорит - мне надо вот это, вот в таком виде, вот в таком разрезе ну и начинаешь енто быстро делать.... обычно на создания с нуля такого отчета уходит не более часа, и то если надо рисовать формы.
Delphi - не умеет быстро работать с DBF, так что смысла на нем что то писать для работы с БЭСТом никакого, из всего проверенного для DBF тока фокс рулит, причем VFP хуже, как и все к чему прикоснулся Microsoft.
Back to top
View user's profile Send private message
Magistr



Joined: 19 Aug 2002
Posts: 1264
Location: Петрунин Д.Н.
Occupation: Инженер-программист
Interests: Н.Новгород

PostPosted: 29 Oct 2002 14:00    Post subject: Reply with quote

Quote:
Батенька, да вы халявщик У нас хлопцы методом научного тыка вроде как всё что сильно потребно уже разворошили...


Какой халявщик! Да я как пользователесь должен знать, КАК программа обрабатывает данные, чтоб я мог сам проверить правильность этой обработки. Мне не нужны исходники, мне нужны алгоритмы.

Quote:
Delphi - не умеет быстро работать с DBF


Это стандартный BDE, может быть, не так шустро работает с DBF, а есть немало библиотек (компонент) для работы с DBF базами.

А если БД хранить под Win2K и работать на этой же машине в TS, то будет еще быстрее, чем с Novell-ом.[/list]
Back to top
View user's profile Send private message Send e-mail Visit poster's website
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 29 Oct 2002 16:55    Post subject: Reply with quote

Magistr wrote:


Какой халявщик! Да я как пользователесь должен знать, КАК программа обрабатывает данные, чтоб я мог сам проверить правильность этой обработки. Мне не нужны исходники, мне нужны алгоритмы.

А что там знать-то, тем более для отчетов? есть описание, ты можешь даже по тому, что есть собрать общую картину хранения данных.

Мы используем VFP 7.0, и дальше все зависит от задачи.
Back to top
View user's profile Send private message Send e-mail
Magistr



Joined: 19 Aug 2002
Posts: 1264
Location: Петрунин Д.Н.
Occupation: Инженер-программист
Interests: Н.Новгород

PostPosted: 29 Oct 2002 17:21    Post subject: Reply with quote

Quote:
А что там знать-то, тем более для отчетов? есть описание, ты можешь даже по тому, что есть собрать общую картину хранения данных.


Какое описание?
Я в бухгалтерии ничего не понимаю, занимаюсь поддержкой работоспособности сети, сервера - для меня не тривиально самому разобраться во всех тонкостях, которые нужны для разарботки алгоритмов построения отчето
Back to top
View user's profile Send private message Send e-mail Visit poster's website
yermak



Joined: 01 Aug 2002
Posts: 45
Location: Ермак Е.Ю.
Occupation: ООО "Автоматизированные системы управления"
Interests: Владивосток

PostPosted: 29 Oct 2002 17:41    Post subject: Reply with quote

2 Magistr
Вся мощь фокса в rashmor'е и хорошей буфферизацией для работы с дисками (правда VFP работает чуть медленнее т.к. ему надо на лету еще перекодировать кодовые страницы).
А насчет Delphi - можно достичь примерно такой скорости используя ADO DB FoxPro Provider. Он там использует тоже ядро что и сам фокс.
Ни и могу сказать еще вот что - фокс не очень сильно грузит сетку, т.е. если условие Rashmor-оптимизируемое или частично оптимизируемое, то данные не удовлетворяющие этому условию и части условия по сети не гоняются, гоняются только индексы, а это на много меньший объем.
Ну об инструментах создания отчетов: раньше я делал их на FPD26 потом перешел на VFP c 5 по 7-ой. Сейчас пользуюс обчным MS Excel'ем - удобнее пользоваться клиентам, а так же можно прямо у них что-то донастраивать и изменять в программе, хотя писать сложнее чем на фоксе. Мой пример есть в банке решений.
При больших объемах данных 1Gb и более (на таблицу, а не на базу) все таки лучше юсать fox (FPD или VFP без разницы), но тут не в коем случае нельзя использовать SQL Select, так как таблицы большие рашмор может не включиться. Там след. технология, например нужны все документы отгрузки за данную дату с заданого склада заданому контрагенту:
ставим главным нужный тег в таблице MDOC
set order tag MDOC_D
ищем первую запись
seek upper(m.SCLAD_CODE+"2"+"4"+DTOS(m.My_Data))
Далее в цикле перебираем записи

scan rest while upper(m.SCLAD_CODE+"2"+"4"+DTOS(m.My_Data))==upper(mdoc.sclad+mdoc.vid+mdoc.type+dtos(mdoc.date)) for mdoc.agentcode=m.MyAgentCode

Внутри цикла буду только нужные записи их копируем в курсор ч/з
append blank, scatter и gather


endscan

_________________
С уважением, Ермак Евгений
г.Владивосток
Back to top
View user's profile Send private message Send e-mail
CreaZ



Joined: 04 Oct 2002
Posts: 9



PostPosted: 29 Oct 2002 18:27    Post subject: Reply with quote

Не согласен, фокс замечательно справляеться и с файлами больше 1 Гб. Например если нужно получить текущие остатки? Перебирать все записи по индексу <=> пересчет остатков в картотеке в БЭСТе - ~1.5-2 часа при номенклатуре ~40000, если сделать на фоксе - 15-20 мин максимум используя исключительно fox sql по 100мб сети. А если попробовать воспользовать файлом mkart для получения остатков, когда с документами работают одновременно человек 10, енто равносильно тому что остатки по random() посчитать, максиму на что он годиться - для получение остатков на начало периода, так как они не меняються постоянно.
Back to top
View user's profile Send private message
yermak



Joined: 01 Aug 2002
Posts: 45
Location: Ермак Е.Ю.
Occupation: ООО "Автоматизированные системы управления"
Interests: Владивосток

PostPosted: 30 Oct 2002 03:11    Post subject: Reply with quote

2 Creaz
Все правильно, только мой подход быстрее работает когда не надо перебирать всю таблицу, а нужно выдернуть лишь небольшую часть.
У меня был случай когда SQL-запрос выполнялся 40 минут, и после того как я его переписал по изложенному выше принципу, отчет стал появлятся на экране меньше чем ч/з 1 сек. после нажатия на Enter.
_________________
С уважением, Ермак Евгений
г.Владивосток
Back to top
View user's profile Send private message Send e-mail
itman



Joined: 05 Apr 2002
Posts: 1247
Location: Ильин Е.Ю.
Occupation: Cio
Interests: Кинель

PostPosted: 30 Oct 2002 07:47    Post subject: Reply with quote

Magistr wrote:
Quote:
А что там знать-то, тем более для отчетов? есть описание, ты можешь даже по тому, что есть собрать общую картину хранения данных.


Какое описание?
Я в бухгалтерии ничего не понимаю, занимаюсь поддержкой работоспособности сети, сервера - для меня не тривиально самому разобраться во всех тонкостях, которые нужны для разарботки алгоритмов построения отчетов.


Ну , батенька, ты можешь быть изумительным ювелиром, но без знания определенных правил и специифики, ты не сможешь изготовить качественные зубы
Back to top
View user's profile Send private message Send e-mail
Magistr



Joined: 19 Aug 2002
Posts: 1264
Location: Петрунин Д.Н.
Occupation: Инженер-программист
Interests: Н.Новгород

PostPosted: 30 Oct 2002 11:33    Post subject: Reply with quote

itman wrote:

Ну , батенька, ты можешь быть изумительным ювелиром, но без знания определенных правил и специифики, ты не сможешь изготовить качественные зубы


Если есть математическая формализация алгоритма формирования отчета, то знания бухгалтерии не нужны.

yermak wrote:

Вся мощь фокса в rashmor'е и хорошей буфферизацией для работы с дисками (правда VFP работает чуть медленнее т.к. ему надо на лету еще перекодировать кодовые страницы).


А что, кеш сервера W2K не устраивает? Я скоро вообще RAM диск собираюсь под БД сделать на сервере W2K. И "долгие" отчеты формировать на серваке либо в TS стандартными средствами БЕСТ, либо свою прогу написа
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Технический форум БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru