Это Readme файл для NyVb библиотеки

q       Самое первое

q       Варианты поставки  и установка  

q       Где находится Инфа

q       Введение и Основные идеи , реализованные в библиотеке

q       Среда установки

q       Условия использования и распространения программы (библиотеки) NyVb

 

Самое первое

Что это :

Это моя библиотека из нескольких сотен функций, написанная на VB6 . Может использоваться везде, где можно использовать VB’ские  DLL и OCX(для пары компонентов этой библиотеки).  В основном, как программист СУБД, я использовал ее функции для создания Excel’ских отчетов из всевозможных источников данных.

Принцип документирования (то бишь, этого описалова и других из этого комплекта) :

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

 

Варианты поставки  и установка 

 

Вариант1 (nyvb1.exe (~700Kb)- Минимально необходимый для использования, для понимающих) :

 

§         NyVbDLL.dll – собстно библиотека.

§         NyVbOcx.ocx – пара  контролов – визуальный TextLim.ctl (поле ввода с ограничением по диапазону и кнопками прокрутки) и невизульный xTimer.ctl (с расширенными возможностями по периоду тиков, их Capacity  и пр.). Для NyVbDLL нужен только в Repeater, который так и не стал востребованным, поэтому NyVbOcx можно и не использовать, если не хочется.

§         OCXxTimer.ocx - невизульный xTimer в отдельной библиотеке , можно не брать при желании.

§         Doc.rar – спецификации вызовов функций библиотеки. Основное описалово.

 

Вариант1 можно использовать полностью, если у вас есть MSVBVM60 на компе, (т.е. уже когда-то инсталлировались дистрибутивы приложений, созданных в VB6) , впрочем, для подавляющего большинства применений работает и просто на Win2Kpro и Office2K со всеми современными SP (см среда установки).

 

 

Вариант2 ( nyvb2.exe (~2Mb) - с VB инсталлятором )

 

§         включает инсталлируемые компоненты Варианта1

§         плюс MSVBVM60.dll ;

§         плюс некоторые дополнения COMDLG32.OCX –поддержка win диалогов и MSCOMCT2.OCX - календарь ;

§         плюс MsSQL.rar и ResAddr.rar для поддержки nyMutex() (см Doc.rar!nyDB.bas!nyMutex() ) и работы с источниками данных через базу адресных имен ресурсов ;

 

После установки в целевом каталоге обнаружатся Doc.rar,MsSQL.rar и ResAddr.rar , остальное все уйдет в System32 .

 

Примеры  (можно закачать дополнительные примеры, иллюстрирующие использование NyVbDll с Excel ) :

 

§         example1.rar   приводит всевозможные варианты коннекта к источникам данных и заливки данных в именованные диапазоны в книге Excel

 

Где находится Инфа

 

Всю инфу , во-первых , см файлы info.txt в каталогах , во – вторых, в описании функций Doc.rar

Отдельно по поводу получения Excel’ ских отчетов :

  В основном вся инфа сосредоточена в описании функций :

   Nydb.FillFromDb() – описание задания (находящегося на рабочем листе Excel ) на создание отчета .

   Nydb.CreateLinkDB() – описание спецификации задания соединений с источниками данных.

   Плюс (не обязательно) описания некоторых функций , вызываемых их этих двух (например nyDB.CmdExec() и nyDB.ProcExec() )
Но, вообще говоря, с помощью поставляемых примеров быстрее понять и освоить создание отчетов под NyVb .

 

Введение и Основные идеи , реализованные в библиотеке

 

( Все ключевые для понимания слова я попытался выделить )

 

§         Сама по себе NyVbDll представляет из себя большое количество функций, нужных и не очень : это обработка строк, массивов, работа с диалогами, файлами, с датой – временем, разный запуск внешних программ, работа с Access,Word,Excel и т.д. Но основное мое использование было – это работа с базами данных и применение ее для создания Excelcких отчетов. Поэтому дальше об этом.

§         Первое , что стало доставать при программировании  в VBA (как ,врочем и в любом другом универсальном языке) при знакомстве с ADO моделью доступа к данным , это необходимость задания целой кучи установок , чтобы выполнить один запрос с параметрами .Чтобы упростить эти операции, сделать их похожими на специализированый язык доступа к даным (типа SQL), избавиться от лишних строк в программе была написана  nyDB.ProcExec() , а , несколько позже и nyDB.CmdExec(), примеры их применения можно увидеть в Examples2.rar.
После чего построение запроса, например, из Access.mdb стало проще :
ProcExec strSQL:=”PARAMETERS  Dt1 DateTime, Dt2 DateTime ; Select * into T2  from T1 where DateFld between Dt1 and Dt2 ”,  _
ParName1:="Dt1", Par1:=Dt1, ParName2:="Dt2", Par2:=Dt2
Но это по мелочи (просто вспомнилось ;).

§         Далее. Пусть мы имеем на предприятии гетерогенную среду, состоящую из различных наследуемых систем, всевозможных источников данных. Пусть наследуемые СУБД (типа Foxpro)  сегментировали однородные структуры даных по различным каталогам , с одной стороны с целью их разбиения по структурным единицам предприятия, с другой , - с целью повышения производительности системы , когда в каждом каталоге хранились данные , например за месяц. Т. е. в результате мы имеем  , например , систему учета , скажем, производства какого-то продукта по цехам, по годам, по месяцам – с каталогами Цех1\2002\01 Цех1\2002\02 ,  …. Цех2\2002\01 Цех2\2002\02 ,  …..  Как упростить добычу таких данных и представить их в одном анализируемом человеком отчете?

1.      Во-первых, чтобы не работать с различными СУБД (не использовать различные диалекты SQL) можно использовать один – единственный SQLMsJet и mdb базу Access с привязанными к ней различными источниками.

2.      Во-вторых , чтобы привязать различные источники  к mdb базе в условиях сегментирования данных по каталогам  нужна специальная программная поддержка , которая позволила бы объединять эти данные так, чтобы программа OLAP отчета желающего видеть данные за все времена и народы (ну или за период включающий несколько каталогов или разные каталоги) об этом уже не беспокоилась, незачем ей эти накладные хлопоты.

Вот эти – то две задачи и решает CreateLinkDB() ( см ее описалово и, в первую очередь, пример с GetData.xls и прочие примеры ) . Она по спец. Заданию привязок, переданному ей с листа Excel dbProgram функцией FillFromDB(), строит временную MDB , привязывает к ней в сответсвии с заданием нужные источники и строит для них объединяющие (по UNION) запросы так, что прикладная програма отчета может использовать эти запросы как View , уже не заботясь об объединении или переключении между каталогами (или разными СУБД ) .

§         Почему для отчетов берем Excel :

Excel является наиболее удобной и мощной (ну если забыть про его глюки и некоторые емкостные ограничения среды) из всех известных мне сред для пользователя при анализе имеющихся  данных  ,  не зря , первое , за что хватаются пользователя, желабщие как-организовать свои данные и не имеющие в своем распоряжении СУБД , это Excel. Впрочем, далее доказывать не буду.

§         Но , хотя имеются некоторые средства типа Ms Query , для доступа к внешним данным Excel все же плохо приспособлен. Поэтому возникла идея,  что , впрочем естественно, нагрузить его поддержкой доступа к данным и построением отчетов из различных источников данных.

§         Для реализации этой идеи на специально выделенном листе dbProgram (который обычно скрывается) начиная с ячейки A1 (или любой спец указаной) создается область ячеек, содержащая Часть задания по привязке источников данных и Часть задания , содержащая SQL программу (простую линейную программу). См. примеры.

§         Вкратце, - часть привязок , используя спец мета язык, лаконично задает выполнение циклов по привязке данных из различных каталогов или серверных СУБД, ну и вообще , как выше было сказано, -  из любых источнков. При этом используются строки связи из спецификации OLEDB и пути (адреса) источников данных. Можно работать через ResAddr. Впрочем можно коннектиться и прямо к СУБД без промежуточной MDB ( фраза “DC:” ), тогда уже, конечно, потребуется использовать ее SQL в SQL программе ниже.  См. описалово части привязок в FillFromDB() + CreateLinkFromDB().

§         Вкратце, - SQL программа содержит в основном Select операторы доставки данных и одновременного выплескивания их в указаные в этом  же Select c помощью into <Имя> именованный диапазон <Имя> в рабочей книге, если имя не будет найдено среди именованных диапазонов книги , то произойдет создание таблицы <Имя> во временной MDB , которая может далее использоваться SQL программой. Эти именованные диапазоны могут иметь или не иметь заголовки полей, если имеют , то те определяют своим форматом формат всего столбца под ними (заголовки могут быть скрыты) . Могут гибко раздвигать заполняемые области или просто накладываться , что нужно в жестких бланках и т.д. и т.п. Также SQL программа может содержать функции вызова макросов из книг Excel и даже вызова другого такого задания с привязками и SQL программой  из другого диапазона листа dbProgram с неограниченной , если я не ошибаюсь насчет рекурсии VB , глубиной вложения (см пример Examples2 ЗалогБилет.xls ячейку dbProgram с Call(:”Prog2”)  вызывающую программу с ячейки с именем “Prog2“ )  . Короче, длиннее  см . FillFromDB() .

§         Касательно ResAddr – Resaddr.dbf - это деревянная база адресных имен всех ресурсов, которую удобно иметь в сети предприятия на общедоступном сервере в readоnly каталоге (см приводимый пример ее организации ). Через нее удобно организовать работу всех приложений на предприятии , использующих доступ к данным , тогда приложения будут зависимы только от пути к ResAddr и имени ресурса из этой таблицы , что упрощает администриование источников данных в сети предприятия. Можно безболезнено менять расположение любых зарегестрированных в ней ресурсов или переключать приложения с одного на другой с такой же структурой данных  (что нужно для файловых СУБД , или менять имена серверных СУБД или даже имена серверов сети и т.п.) без перепрограмирования приложений. Получить в приложении конкретный путь к даному ресурсу с помощью ResAddr.dbf  можно используя ее интерфейс по чтению  nyDB.GetAddr() . Пока пользовательского интерфейса на заполнение этой деревянной таблицы нет, приходится вручную заполнять , но желающим доделать это просто.

 

На этом этот анонс  пока  можно закончить .

 

Среда установки

 

 

Условия использования и распространения программы (библиотеки) NyVb

 

1. Распространение

 

Программа распространяется бесплатно и без каких-либо ограничений, в том числе и без ограничений на извлекаемую от этого прибыль. За исключением получения прибыли от распространения.  Единственное требование - распространять программу только в оригинальном архиве. Оригинальный архив может распространяться через компьютерные сети, может быть включен в другие архивы, дистрибутивы программ, сборники программ на CD-ROM и прочее. Никаких специальных разрешений на это не требуется.

 

Вы можете распространять программу только в оригинальном ее виде

2. Ответственность

 

Вы не можете изменять, декомпилировать, дизассемблировать и изучать код программы другими способами.

3. Гарантии

 

Программа распространяется по принципу "как есть". При этом не предусматривается никаких гарантий, явных или подразумеваемых. Автор не несет никакой ответственности за моральный и материальный ущерб, связанный с использованием или невозможностью использования данной программы. Вы используете программу с собственным пониманием ее применимости и ожидаемых результатов на свой собственный риск.

 

Автор оставляет за собой право отменить действие данных условий для любой из следующих версий программы.

 

По всем вопросам, связанным с распространением, установкой и использованием программы, если таковые у Вас возникнут, Вы можете обратиться к автору по yuniki@rambler.ru .

 

--------------------------------------------------------------------------------

Хостинг от uCoz