![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактируемый отчет [D6, IB6.x]
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"
Все заработало ! Сейчас проверю, выводит ли все эту байду в отчет...
Спасибо большое,- не надо возиться с клиентским датасетом ;)