Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редактируемый отчет [D6, IB6.x]


Страницы:   1 2

MsGuns ©   (2003-09-18 17:07:00) 

Кратко проблема следующая.

Есть форма отчета с N колонками. M из них заполняются информацией из БД, а (N-M) надо дать заполнять узеру как ему надо (этой инфы нет и не может быть в БД).
Вывод в Excel не подходит, т.к. отчет такой замудренный (итоги по группам то печатаются, то нет, например). Я хочу заполнить некую таблицу - грид выбранными данными, а затем дать узеру ее колбасить как заблагорассудится. Была мысль через TStringGrid, но минусы,- гемор с сохранением-восстановлением и морока с QReport`ом. Похоже, клиентский НД самое то.
Но вот беда: никогда с ним не работал. Прорабатываю сейчас хэлп, но надо срочно (до завтра) дать заказчику "редактить отчет" (по его словам)
Если не затруднит, дайте кратко, схематично, сам принцип и алгоритм связок. На таком примере: Есть TQuery, возвращающая поля F1,F2,F3. Требуется заиметь редактируемыйНД, в котором к этим 3 полям прога добавить еще 2, которые сама вычислит, и еще 2, которые может редактить узер. Из этого НД (7 полей) я уже буду просто выводить QReport`ом требуемый капризнице отчет. После печати НД надо убивать.

Заранее благодарен за внимание и помощь.


kaif   (2003-09-19 19:00:00) [1]

Насколько мне известно, Midas не входит в Delphi Professional. Так как стоимость Delphi Professional менее $1000, многие разработчики ее покупают и работают вообще легитимно. А вот Enterprise таким разработчикам пока не по карману. Я думаю, речь шла об этом.


Виталий Панасенко   (2003-09-19 17:47:00) [2]

Есть генератор отчетов на основе RTF, использует Word - можно чт охочешь редактировать ! Могу подогнать, если нету..


Leran2002   (2003-09-19 16:56:00) [3]

Ок... Понял... Спасибо за разъяснение... :)


Vlad   (2003-09-19 16:51:00) [4]

Шутит он так, в ответ на твое "Никаких ДДЛ-ок" :)
Create table - DDL (Data Definition Language)


Sandman25   (2003-09-19 16:51:00) [5]

DDL - Data Definition Language, часть SQL, для описания данных.


Leran2002   (2003-09-19 16:47:00) [6]


> Sandman25 © (19.09.03 16:43) [27]


> Долой "create table" :)

???


Sandman25   (2003-09-19 16:43:00) [7]

"И никаких ДДЛ-ок" было круче :)
Долой "create table" :)


Leran2002   (2003-09-19 16:42:00) [8]

Сори ДЛЛ-ок... :))


Leran2002   (2003-09-19 16:39:00) [9]


> Danilka © (19.09.03 08:37) [19]


В 6-х и 7-ых Дельфях можна включить модули:

uses Crtl, MidasLib;

И никаких ДДЛ-ок не надо... :))


MsGuns   (2003-09-19 14:32:00) [10]

>Deniz © (19.09.03 14:07) [23]
>Так все таки TQuery или TIBQuery?

Все IB, ессно. Хотя в принципе по сабжу - один хрен ;))
В данном случае у меня не стоит трабла обрыва, т.к. прога будет работать с "домашней" БД да к тому же без конкурентов ;)


Deniz   (2003-09-19 14:07:00) [11]

Так все таки TQuery или TIBQuery?
Дело в том, что ни та(BDE) ни другая(IBX) технология грамотно обрыв связи не обрабатывает, а вот TClientDataSet по барабану коннект, + добавление индексов "на лету" + фильтрация + сохранение готового набора в файл + ... короче, ИМХО, плюсов больше, а гемороя меньше. А пару DLL (если память не изменяет midas.dll+dbclient.dll) - это не проблема.


MsGuns   (2003-09-19 12:58:00) [12]

>Johnmen © (19.09.03 11:34) [20]
>По поводу применения TClientDataSet.
Все реализуется быстро (15-30 мин.), легко и просто. Никаких подводных камней. Полностью удовлетворяет твоим требованиям. Плюс возможность не только изменять, но и добавлять/удалять.

Жень, да кто ж спорит. Нет сложных вещей - все очень просто. Когда знаешь. Так, как мне посоветовал Zacho (TQuery+TUpdateSQL) мне показалось проще и, главное, быстрее. В данном конкретном случае я выбрал то, что быстрее, хотя клиентский НД, ИМХО, вещь действительно стОящая и никуда от меня не уйдет. В сабже я пытался дать понять, что у меня нет вопросов по TClientDataSet по одной простой причине - я им еще не пользовался и, следовательно, не изучал. Лезть же в форум с вопросом на тему, по которой у меня куча инфы, до которой банально не дошли глаза и руки, считаю делом недостойным.


Danilka   (2003-09-19 12:31:00) [13]

Johnmen © (19.09.03 11:34)
В вопросе он написал, что похоже ему подойдет TClientDataSet и спрашивал как с ним работать, но его отговорили:

>...Похоже, клиентский НД самое то.
>Но вот беда: никогда с ним не работал...

Для TClientDataSet, как я понимаю, нужен midas.dll, а никаких денег дополнительных платить не нужно, это я с чем-то его спутал?


Johnmen   (2003-09-19 11:34:00) [14]

>MsGuns © (18.09.03 18:10) [3]
>>Johnmen © (18.09.03 17:23) [2]
>>Или же TClientDataSet.
>Жень, ну дочитай же сабж до конца блин ;(

Серега, я не понял, что ты имел в виду... Твой вопрос мной был прочитан. До конца.

По поводу применения TClientDataSet.
Все реализуется быстро (15-30 мин.), легко и просто. Никаких подводных камней. Полностью удовлетворяет твоим требованиям. Плюс возможность не только изменять, но и добавлять/удалять.
Всё...:)


Danilka   (2003-09-19 08:37:00) [15]

Deniz © (19.09.03 07:27)
дык, лишняя длл-ка, и еще кажется (не уверен) денег стоит.


Deniz   (2003-09-19 07:27:00) [16]

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


MsGuns   (2003-09-18 20:53:00) [17]

Так ведь на кой его фильтровать, отчет-то ? Он и так ведь типа уже "фильтрован" дОнельзя ? Не буду я ставить Filtered в true чесслово !!!


Zacho   (2003-09-18 20:45:00) [18]


> MsGuns © (18.09.03 20:24) [15]

Хочу предупредить. В IBX 6.0 я в таком же случае напоролся на весьма неприятный баг - если включено CachedUpdates, а ApplyUpdates не делается, сначало - Filtered:=false; и заполняются/изменяются значения "фиктивных" полей, то после Filtered:=true; при обращении к датасету в "фиктивных" полях довольно хаотично появляются прежние значения. А без фильтра - все нормально.
Впрочем, возможно, в более свежих версиях IBX этот баг исправлен.


MsGuns   (2003-09-18 20:24:00) [19]

>kaif © (18.09.03 19:52) [13]
Спасибо Ашот за подробное объяснение, но эт я сам сообразил ;))

Все в репорт выводится - все Ok! Сейчас быстренько встрамлю новые идеи в рабочий проект и... возможно, успею еще и пивка пивануть. Всем большое спасибо ! Zacho © еще и пончик (виртуальный)


MsGuns   (2003-09-18 19:56:00) [20]

>kaif © (18.09.03 19:41) [11]

Спасибо за участие, но не надо предлагать эскаватор с грейдером для того, чтобы посадить дерево ;))

>Zacho © (18.09.03 19:42) [12]
Сделал так:
Во всех TIBUpdateSQL.xxxSQL прописал "SELECT 0 FROM RDB$DATABASE"
В обработчиках TIBQuery.BeforeInsert/Delete поставил "Abort"

Все заработало ! Сейчас проверю, выводит ли все эту байду в отчет...

Спасибо большое,- не надо возиться с клиентским датасетом ;)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо