Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.03;
Скачать: CL | DM;

Вниз

Хотят заставить сделать интерпритатор, я упираюсь &#133 :)   Найти похожие ветки 

 
Kolan ©   (2007-12-24 08:18) [0]

Руководство родило идею:

Есть некая БД. Часто возникает потребность сделать отчет.

Что хочет руководство:
Когда возникает необходимость в новом отчете человек пишет запрос, а потом этот запрс(с минимальным количеством дополнений) должна взять моя программа, распарсить. получить данные из БД и вывдать отчет, ну скажем в Excel.

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

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

Вопросы:
1. Стоит ли браться?
 1.1 Если да, то может что посоветуете&#133
 1.2 Если нет, то почему у что предложить руководству взамен?


 
TUser ©   (2007-12-24 08:23) [1]

> 1. Стоит ли браться?

зависит от того, насколько часто пользователи хотят совершенно новые отчеты (как собственно любая программа - ее стоит писать, если ресурсы, требуемые для написания, меньше тех ресурсов, которые она съэкономит, например, 2+2 проще считать в уме)

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

>  1.1 Если да, то может что посоветуете…

yacc, lexx, GOLD, etc


 
Kolan ©   (2007-12-24 08:30) [2]

> ведь не все пользователи — программисты

Все программисты.

То есть пользователи говорят: «Хотим отчет», программисты пишут этот запрос и отдают пользователям, пользователи запускают его&#133


> yacc, lexx, GOLD, etc

Пошел смотреть&#133


 
Kolan ©   (2007-12-24 08:38) [3]


> yacc, lexx


Что-то не понял как это связнао с сабжем&#133

Вот как я себе представляю сабж:

Есть запрос
SELECT Name FROM Users
WHERE UserID = <число>


Такой запрос запуститься в Query Analyzer"e

Далее программист дополняет его, ну например так:

[Params]
:UserID = Integer

[SQL]
SELECT Name FROM Users
WHERE UserID = :UserID


Моя программа прочтет это, поймет что тип параметра :UserID Integer, создаст форму с 1 полем ввода, спросит параметр у пользователя, подставит полученное число в параметр, выполнит запрос и выдаст результат:

Name
Вася


ЗЫ
 Весь сабж относится к SQL  Server"у.


 
Kolan ©   (2007-12-24 08:41) [4]

> GOLD

А можно точнее &#151; не самое редкое слово в мире&#133


 
TUser ©   (2007-12-24 08:47) [5]

Из той же компании

http://www.devincook.com/goldparser/


 
AndreyV ©   (2007-12-24 08:50) [6]

А почему для этих целей нельзя использовать генератор отчётов, FastReport например, если всё-равно программисты будут что-то там писать?


 
Kolan ©   (2007-12-24 08:59) [7]

> А почему для этих целей нельзя использовать генератор отчётов,
> FastReport например, если всё-равно программисты будут
> что-то там писать?

Варианта два:
1. Так как руководство(и я тоже) выше 3(или даже 2ой) версии не видела FR, то возможно просто не занют о такой возможности&#133
2. FR не может делать сабж. Я что-то сомневаюсь что FR на основе только текста запроса (SELECT * FROM Table) сможет построить отчет&#133


 
Kolan ©   (2007-12-24 09:06) [8]

> Из той же компании

Имхо &#151; это не то, что мне надо. Это интерпритаторы кода, а мне надо выбирать из БД. Самое сложное тут спросить у пользователя данные и создать сам отчет. Точнее сложно не сделать это, а сложно придумать как должен выглядеть скрипт для правильной генерации отчетов.

Как например программер должен задать, что параметр выбирается из справочника?
Надо указать имя таблицы, что выбирать итд&#133


 
Рамиль ©   (2007-12-24 09:06) [9]

А что мешает пользователю строить запрос из Excel?


 
AndreyV ©   (2007-12-24 09:08) [10]

> [7] Kolan ©   (24.12.07 08:59)

1. Можно посмотреть, триал версия доступна на сайте разработчиков.
2. ФР управляем, как из самого отчета с помощью скрипта, так и из программы.
Имхо это лучше, чем изобретать свой велосипед.


 
Kolan ©   (2007-12-24 09:12) [11]

> Имхо это лучше, чем изобретать свой велосипед.

Смотрю, мне этот велосипед тоже не нравится&#133


> А что мешает пользователю строить запрос из Excel?

Как это яделать для MS SQL Server если не секрет?


 
Sergey13 ©   (2007-12-24 09:12) [12]

> [2] Kolan ©   (24.12.07 08:30)
> То есть пользователи говорят: «Хотим отчет», программисты
> пишут этот запрос и отдают пользователям, пользователи запускают
> его…

Почему твои программисты не могут вместе с запросом нарисовать и сам отчет в том же ФР-е?


 
Kolan ©   (2007-12-24 09:14) [13]


> Почему твои программисты не могут вместе с запросом нарисовать
> и сам отчет в том же ФР-е?

Хех, так вот лень так делать, хочется ограничется написанием нужного запроса(без изменения исходников, без рисования форм, без рисования отчета). Не идея ничего, но реализовать её, имхо, невыгодно&#133


 
Kolan ©   (2007-12-24 09:19) [14]

> [10] AndreyV ©   (24.12.07 09:08)

У них там вот есть какой то &laquo;куб&raquo; &#151; видел его на презентаци. Может это то тчо надо?


 
AndreyV ©   (2007-12-24 09:22) [15]

> [11] Kolan ©   (24.12.07 09:12)

Если уже смотришь ФР, скачай и почитай документацию, чтобы иметь представление о возможностях.


 
Sergey13 ©   (2007-12-24 09:23) [16]

> [13] Kolan ©   (24.12.07 09:14)

Лень конечно двигатель прогресса, но как бы такие программисты и запросы не заленились писать. 8-)


 
Kolan ©   (2007-12-24 09:27) [17]

> Если уже смотришь ФР, скачай и почитай документацию, чтобы
> иметь представление о возможностях.

Скачал. Так и не понял можно ли сделать сабж на его основе. Там о печати отчетов ни слова нет&#133


 
Kolan ©   (2007-12-24 09:28) [18]

А примеры начинаются с &laquo;кинте компонент на форму&raquo;&#133 То есть уже не подходит&#133


 
_Le_   (2007-12-24 09:29) [19]

взамен: Business Objects


 
AndreyV ©   (2007-12-24 09:29) [20]

> [14] Kolan ©   (24.12.07 09:19)

FastCube - отдельный продукт и для несколько иных целей чем отчёт по SELECT * FROM table1.


 
DiamondShark ©   (2007-12-24 09:32) [21]

Ты, вроде, MSSQL пользуешься?
Имеет смысл посмотреть в сторону Reporting Services, дабы минимизировать количество велосипедов.


 
Kolan ©   (2007-12-24 09:39) [22]

> FastCube &#151; отдельный продукт и для несколько иных целей
> чем отчёт по SELECT * FROM table1.


Ну
SELECT * FROM TABLE
WHERE <Условие>


где условие запрашивается у пользователя, он сможет сделать?


 
Kolan ©   (2007-12-24 09:39) [23]


> Имеет смысл посмотреть в сторону Reporting Services, дабы
> минимизировать количество велосипедов.

Угу, шас посмотрю&#133


 
AndreyV ©   (2007-12-24 09:40) [24]

> [18] Kolan ©   (24.12.07 09:28)

Как-то быстро ты всё прочитал (и видимо что-то не то).
Используя ФР можно не менять ни строчки кода в программе.


 
AndreyV ©   (2007-12-24 09:45) [25]

> [22] Kolan ©   (24.12.07 09:39)

Конечно.
Параметризованный запрос + диалог в отчёте + несколько мемок, 5 минут на твой пример.


 
Kolan ©   (2007-12-24 09:49) [26]


> Имеет смысл посмотреть в сторону Reporting Services, дабы
> минимизировать количество велосипедов.

А где бы пример работы с ним надыбать?
А то на сайте
http://www.microsoft.com/Rus/Sql_2005/2000/ReportingServices/Overview.mspx

По ссылкам ответ: We’re sorry, but we were unable to service your request&#133


> Как-то быстро ты всё прочитал (и видимо что-то не то).

Ессно проглядел.


> Используя ФР можно не менять ни строчки кода в программе.

Все равно придется программировать, только в самом отчете, так? А как он будет подключаться к таблицам, о которых ниче незнает? Я работал с версией 2.<не помню>, там для создания отчетанужно было указать, например, запрос&#133


 
Kolan ©   (2007-12-24 09:50) [27]


> Параметризованный запрос + диалог в отчёте + несколько мемок,
> 5 минут на твой пример.

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


 
AndreyV ©   (2007-12-24 10:05) [28]

> [27] Kolan ©   (24.12.07 09:50)

Из справочников он сумеет выбрать?

Да
Скачай, посмотри. Там основные приёмы. Можешь сам менять, пробовать.
http://fast-report.com/pbc_download/fr4demo.exe


 
Kolan ©   (2007-12-24 10:08) [29]

> Скачай, посмотри.

Угу, уже пробую&#133

Благодарю за обсуждение, вопрос решен.


 
Kolan ©   (2007-12-24 11:04) [30]

Класная штука &#151; то что надо. С выбором из справочника еще не разобрался, но с параметрами отлично все.

Благодарю AndreyV и всех за обсуждение&#133


 
Kolan ©   (2007-12-24 11:15) [31]

И еще вопрос, а к нему свои компоненты можно дописать?


 
AndreyV ©   (2007-12-24 11:50) [32]

> [30] Kolan ©   (24.12.07 11:04)

С выбором из справочника еще не разобрался
DBLookupComboBox
в главной процедуре скрипта
MyQuery.Open

> [31] Kolan ©   (24.12.07 11:15)

> а к нему свои компоненты можно дописать?

См. "Руководство разработчика"
Форум
http://ns.fast-report.com/ru/forum

Кстати, если не знаешь, автор ФР Александр Цыганенко - твой земляк.


 
Kolan ©   (2007-12-24 11:55) [33]

> Кстати, если не знаешь, автор ФР Александр Цыганенко &#151; твой
> земляк.

Знаю, на конференции борланд видел одного из их Developer"ов.


> DBLookupComboBox
> в главной процедуре скрипта

Нашел, малавато для работы одного комбо&#133 А мож есть готовые где? (ListBox, Edit хотябы)


 
Kolan ©   (2007-12-24 11:59) [34]

Вот этого видел:
http://fast-report.com/ru/forum/index.php?showuser=1128

Он сделал жуткую презентацию прам как тут описано:
http://www.artlebedev.ru/kovodstvo/paragraphs/145/

А на фоне борладовца вообще пипец.


 
AndreyV ©   (2007-12-24 12:16) [35]

> [33] Kolan ©   (24.12.07 11:55)

Дык, в демо "Dialogs and scripts->Choose records to print" нажми Design->DialogPage1 применён CheckedListBox.
Остальные слева на палитре, для большинства отчётов вполне достаточно.
Где читать, как написать свои (если вдруг понадобится), - я ответил.


 
Kolan ©   (2007-12-24 12:25) [36]

> Где читать, как написать свои (если вдруг понадобится),
> &#151; я ответил.

Уже проглядел. На вид сложного ничего нет.


> Дык, в демо &laquo;Dialogs and scripts->Choose records to print&raquo;
> нажми Design->DialogPage1 применён CheckedListBox.

Не понял где это&#133


> Остальные слева на палитре, для большинства отчётов вполне
> достаточно.

Ну так из них только DBLookupCombo так сказать DataAwere, остальные то нет&#133


 
AndreyV ©   (2007-12-24 12:40) [37]

> [36] Kolan ©   (24.12.07 12:25)

> Ну так из них только DBLookupCombo так сказать DataAwere, остальные то нет…

Не понял зачем.
Вроде из отчёта редактировать БД и не требуется.


 
Kolan ©   (2007-12-24 12:47) [38]

> Не понял зачем.

Ну допустим мне надо выбрать значение из справочника. Как это сделать?

Для примера сделал с DBLookupCombo &#151; получилось, но из DBLookupCombo выбирать не всегда удобно я хочу выбирать из ListBox.
Но DBListBox нет, есть обычный, а как в обычый загрузить данные из справочника &#151; непонятно.


 
AndreyV ©   (2007-12-24 13:59) [39]

> [38] Kolan ©   (24.12.07 12:47)

из демо о котором я говорил с CheckListBox

procedure DialogPage1OnShow(Sender: TfrxComponent);
begin
 BDETable1.Open;
 while not BDETable1.EOF do
 begin
   CheckListBox1.Items.Add(BDETable1.FieldByName("Company").AsString);
   BDETable1.Next;
 end;
end;


 
Kolan ©   (2007-12-24 14:05) [40]

> из демо о котором я говорил с CheckListBox

А, ну понял, это же не DataAware получается. Благодарю за разъяснения. Буду теперь дальше разбираться&#133



Страницы: 1 2 вся ветка

Текущий архив: 2008.02.03;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.024 c
2-1199996509
bagos
2008-01-10 23:21
2008.02.03
comobj excel


2-1199519421
Kley
2008-01-05 10:50
2008.02.03
Вывод данных таблицы в QRmemo


15-1198592374
Андрей Пл
2007-12-25 17:19
2008.02.03
Доработка базы как правильно поступить???


2-1200213332
Василий
2008-01-13 11:35
2008.02.03
If


15-1198690340
Cyrax
2007-12-26 20:32
2008.02.03
JRE/JDK 6 и JRE/JDK 1.6 - одно и то же ?