Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.11.2014, 15:37   #11
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,998
Репутация: 6348
По умолчанию

В Filtered True кто ставить будет?
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 02.11.2014, 15:46   #12
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 374
Репутация: 46
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В Filtered True кто ставить будет?
Поставил на событии onFilterRecord у detail dataset:
Код:

procedure TFmSale.QCHEQTFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  QCHEQT.Filtered := False;
  QCHEQT.ParamByName('VIS').AsString := '0';
  QCHEQT.Filtered := True;
end;

Пробовал прямо у самого компонента сразу поставить Filtered := True;
и так
Код:

procedure TFmSale.QCHEQTFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  QCHEQT.ParamByName('VIS').AsString := '0';
end;

Изменений никаких
сам Sql-запрос такой
Код:

SELECT
  T.NAIM AS TNAIM,
  CHEQT.ID,
  CHEQT.CHEQID,
  CHEQT.TID,
  CHEQT.K,
  CHEQT.PRICE,
  CHEQT.S,
  CHEQT.VIS,
  CHEQT.OSTATOK,
  CHEQT.SALEID
FROM
  CHEQT
  LEFT OUTER JOIN T ON (CHEQT.TID = T.ID)
WHERE
  CHEQT.CHEQID = :ID AND
  CHEQT.VIS LIKE :VIS

tarakan1983 вне форума   Ответить с цитированием
Старый 02.11.2014, 16:00   #13
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,998
Репутация: 6348
По умолчанию

Причем здесь Filtered и ParamByName? Filtered True для активизации этого события вне его. Нужно Accept-ту значение присваивать. True если запись удовлетворяет условиям фильтра. Обращение к OnFilterRecord идет для каждой записи
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.11.2014 в 16:02.
Аватар вне форума   Ответить с цитированием
Старый 02.11.2014, 16:03   #14
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 374
Репутация: 46
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Причем здесь Filtered и ParamByName? Filtered True для активизации этого события вне его. Нужно Accept-ту значение присваивать. True если запись удовлетворяет условиям фильтра. Обращение к OnFilterRecord идет для каждой записи
Не понял, можно на примере?
tarakan1983 вне форума   Ответить с цитированием
Старый 02.11.2014, 16:32   #15
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,998
Репутация: 6348
По умолчанию

В инспекторе объектов выделить OnFilterRecord dataset-а и нажать F1. Или вбить в гугл OnFilterRecord пример или example примеров море
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 02.11.2014, 17:10   #16
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 374
Репутация: 46
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В инспекторе объектов выделить OnFilterRecord dataset-а и нажать F1. Или вбить в гугл OnFilterRecord пример или example примеров море
Спасибо всем разобрался!
Это что касается видимости записи или нет, а если такая ситуация
Есть 3 таблицы
1. Группа товаров (G)
2. Товары (T)
3. Движение товара (SALE)

1. ID(INTEGER),
NAIM(STRING)
2. ID(INTEGER),
NAIM(STRING),
GID (INTEGER) {ID группы в таблице G}
3. ID(INTEGER),
TID (INTEGER) {ID товара в таблице T},
DOCID (INTEGER) {ID документа (продажа, возврат, приход. накладная и т.п.)},
D (TIMESTAMP) {Дата операции},
KE (DECIMAL 12,5) {количество товара в данной операции может быть или положительным, что означает приход или отрицательным, что означает расход}
в Dataset master пишу :
Код:

SELECT
    ID AS GID,
    NAIM,
    VIS
FROM
    G
ORDER BY
    G.NAIM

в Dataset detail пишу :
Код:

SELECT 
  T.ID,
  T.NAIM,
  s1.BEGIN_SUM,
  s2.PRIXOD_SUM
FROM
  T
  LEFT OUTER JOIN (SELECT 
  						SALE.TID,
  						SUM(SALE.KE) AS BEGIN_SUM
					FROM
						SALE
					WHERE
						CAST(SALE.D AS DATE) <  :D1  					                        
                    GROUP BY
 						 SALE.TID    
  					) s1 ON s1.TID = T.ID
  LEFT OUTER JOIN (SELECT 
                    	SALE.TID,
  						SUM(SALE.KE) AS PRIXOD_SUM
					FROM
						SALE
					WHERE
						CAST(SALE.D AS DATE) BETWEEN :D1 AND :D2 AND 
  						SALE.KE > 0                    
                    GROUP BY
 						 SALE.TID        
					) s2 ON s2.TID = T.ID  
WHERE
  T.G_ID = :GID
ORDER BY
  T.NAIM

где мне правильно указывать параметры для Detail Dataset, чтобы получить правильные данные.
Спасибо.

Последний раз редактировалось tarakan1983; 02.11.2014 в 18:20.
tarakan1983 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Combobox и Master-Detail Максим1818 БД в Delphi 4 13.02.2014 10:10
Master Detail. добавление редактирование t.baychorov БД в Delphi 1 10.12.2011 14:23
Master-detail DELPHI+FIREBIRD Liones БД в Delphi 1 30.11.2010 14:27
Сценарий Master-Detail в WPF Antonio_M Общие вопросы .NET 0 28.08.2009 10:33
Не работает master-detail для adostoredprocedure VAbramyak БД в Delphi 2 24.04.2007 16:48


15:58.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru