Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Вниз

Хотят заставить сделать интерпритатор, я упираюсь &#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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.049 c
6-1179844049
Tor
2007-05-22 18:27
2008.02.03
Ошибка EIdClosedSocket (Indy) при завершении соединения


15-1199161184
VEG
2008-01-01 07:19
2008.02.03
Анкета не найдена


2-1199304844
aha
2008-01-02 23:14
2008.02.03
зашился в вычислениях CRC , полистал кучу литературы, пообращался


5-1166076046
DimaBr
2006-12-14 09:00
2008.02.03
Создание компонентов !!!


2-1199550291
Gal'cev
2008-01-05 19:24
2008.02.03
Как создать отчёт в клеточку?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский