Текущий архив: 2008.02.03;
Скачать: CL | DM;
ВнизХотят заставить сделать интерпритатор, я упираюсь &#133 :) Найти похожие ветки
← →
Kolan © (2007-12-24 08:18) [0]Руководство родило идею:
Есть некая БД. Часто возникает потребность сделать отчет.
Что хочет руководство:
Когда возникает необходимость в новом отчете человек пишет запрос, а потом этот запрс(с минимальным количеством дополнений) должна взять моя программа, распарсить. получить данные из БД и вывдать отчет, ну скажем в Excel.
Причем в запросе могут быть парамеры, причем как простые, так и те, которые надо давать выбирать из справочника. То есть программа должна сама, распарсив запрос, спросить у пользователя(создать формы ит.д.) нужные параметры.
В той постановке, которая сейчас я не сомневаюсь, что смогу сделать саюж, но боюсь что это будет настолько узко направленая программа, что она будет бессмысленой.
Вопросы:
1. Стоит ли браться?
1.1 Если да, то может что посоветуете…
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]> ведь не все пользователи — программисты
Все программисты.
То есть пользователи говорят: «Хотим отчет», программисты пишут этот запрос и отдают пользователям, пользователи запускают его…
> yacc, lexx, GOLD, etc
Пошел смотреть…
← →
Kolan © (2007-12-24 08:38) [3]
> yacc, lexx
Что-то не понял как это связнао с сабжем…
Вот как я себе представляю сабж:
Есть запрос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
А можно точнее — не самое редкое слово в мире…
← →
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, то возможно просто не занют о такой возможности…
2. FR не может делать сабж. Я что-то сомневаюсь что FR на основе только текста запроса (SELECT * FROM Table) сможет построить отчет…
← →
Kolan © (2007-12-24 09:06) [8]> Из той же компании
Имхо — это не то, что мне надо. Это интерпритаторы кода, а мне надо выбирать из БД. Самое сложное тут спросить у пользователя данные и создать сам отчет. Точнее сложно не сделать это, а сложно придумать как должен выглядеть скрипт для правильной генерации отчетов.
Как например программер должен задать, что параметр выбирается из справочника?
Надо указать имя таблицы, что выбирать итд…
← →
Рамиль © (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]> Имхо это лучше, чем изобретать свой велосипед.
Смотрю, мне этот велосипед тоже не нравится…
> А что мешает пользователю строить запрос из 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]
> Почему твои программисты не могут вместе с запросом нарисовать
> и сам отчет в том же ФР-е?
Хех, так вот лень так делать, хочется ограничется написанием нужного запроса(без изменения исходников, без рисования форм, без рисования отчета). Не идея ничего, но реализовать её, имхо, невыгодно…
← →
Kolan © (2007-12-24 09:19) [14]> [10] AndreyV © (24.12.07 09:08)
У них там вот есть какой то «куб» — видел его на презентаци. Может это то тчо надо?
← →
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]> Если уже смотришь ФР, скачай и почитай документацию, чтобы
> иметь представление о возможностях.
Скачал. Так и не понял можно ли сделать сабж на его основе. Там о печати отчетов ни слова нет…
← →
Kolan © (2007-12-24 09:28) [18]А примеры начинаются с «кинте компонент на форму»… То есть уже не подходит…
← →
_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 — отдельный продукт и для несколько иных целей
> чем отчёт по SELECT * FROM table1.
НуSELECT * FROM TABLE
WHERE <Условие>
где условие запрашивается у пользователя, он сможет сделать?
← →
Kolan © (2007-12-24 09:39) [23]
> Имеет смысл посмотреть в сторону Reporting Services, дабы
> минимизировать количество велосипедов.
Угу, шас посмотрю…
← →
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…
> Как-то быстро ты всё прочитал (и видимо что-то не то).
Ессно проглядел.
> Используя ФР можно не менять ни строчки кода в программе.
Все равно придется программировать, только в самом отчете, так? А как он будет подключаться к таблицам, о которых ниче незнает? Я работал с версией 2.<не помню>, там для создания отчетанужно было указать, например, запрос…
← →
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]> Скачай, посмотри.
Угу, уже пробую…
Благодарю за обсуждение, вопрос решен.
← →
Kolan © (2007-12-24 11:04) [30]Класная штука — то что надо. С выбором из справочника еще не разобрался, но с параметрами отлично все.
Благодарю AndreyV и всех за обсуждение…
← →
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]> Кстати, если не знаешь, автор ФР Александр Цыганенко — твой
> земляк.
Знаю, на конференции борланд видел одного из их Developer"ов.
> DBLookupComboBox
> в главной процедуре скрипта
Нашел, малавато для работы одного комбо… А мож есть готовые где? (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]> Где читать, как написать свои (если вдруг понадобится),
> — я ответил.
Уже проглядел. На вид сложного ничего нет.
> Дык, в демо «Dialogs and scripts->Choose records to print»
> нажми Design->DialogPage1 применён CheckedListBox.
Не понял где это…
> Остальные слева на палитре, для большинства отчётов вполне
> достаточно.
Ну так из них только DBLookupCombo так сказать DataAwere, остальные то нет…
← →
AndreyV © (2007-12-24 12:40) [37]> [36] Kolan © (24.12.07 12:25)
> Ну так из них только DBLookupCombo так сказать DataAwere, остальные то нет…
Не понял зачем.
Вроде из отчёта редактировать БД и не требуется.
← →
Kolan © (2007-12-24 12:47) [38]> Не понял зачем.
Ну допустим мне надо выбрать значение из справочника. Как это сделать?
Для примера сделал с DBLookupCombo — получилось, но из DBLookupCombo выбирать не всегда удобно я хочу выбирать из ListBox.
Но DBListBox нет, есть обычный, а как в обычый загрузить данные из справочника — непонятно.
← →
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 получается. Благодарю за разъяснения. Буду теперь дальше разбираться…
Страницы: 1 2 вся ветка
Текущий архив: 2008.02.03;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.048 c