vladman
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору MagistrAnatol Цитата: если ты будеш подкидать под свой сервак то надо твои юзер/пас | Ну конечно же под свой, к вашему же точно не достучусь. Цитата: Вскрытие показало - причина - неверная реализация master-detail для такого представления как вы выбрали. Ваш подход верен при классическом представлении, когда в один момент времени отображаются записи дитэйл только одного мастера. В данном же случае вам необходимо в дитэйл датасете выбирать все записи для всех мастеров попавших в выборку, а реализацию соответствий записей из дитэйл к определенному мастеру берет на себя Грид. т.е. в tblDvig: TpFIBDataSet в SelectSQL вместо WHERE a.CTAN_AMORT_MASTER_ID=:CTAN_AMORT_MASTER_ID ORDER BY a.DATA указать всего лишь ORDER BY a.CTAN_AMORT_MASTER_ID, a.DATA .т.е. убрать where и добавить в сортировку поле a.CTAN_AMORT_MASTER_ID, причем первым. Сортировка по a.CTAN_AMORT_MASTER_ID важна, не забудьте это указать. На первый взгляд это все, но проверить не могу, поскольку билдером не пользуюсь. Так что поправляйте и проверяйте. Вот еще покопался, и заметил, что у вас V_Dvig.DataController.DataModeController.DetailInSQLMode = True в таком случае можно попробовать другой подход По 1. пункту (*стал - пропали записи детала с предыдущего мастера*) попробуйте tblDvig.DataSource отвязать от мастера т.е. tblDvig.DataSource = nil. По 2. пункту (*я вижу токо новую запись, а те что уже были пропадают*) попробуйте в существующий запрос добавить перед сортировкой по дате еще и сортировку по a.CTAN_AMORT_MASTER_ID, должно помочь. А в общем, мне больше нравится master-detail при DetailInSQLMode = false, проверено много раз - работает отлично. Так что в случае изменения SelectSQL не забудьте V_Dvig.DataController.DataModeController.DetailInSQLMode = false. |