Форум » [x]Harbour » ANN: Вышел релиз FastReport for [x]Harbour (продолжение) » Ответить

ANN: Вышел релиз FastReport for [x]Harbour (продолжение)

Sergey Spirin: Здравствуйте. Рад сообщить, что вышел релиз FastReport for [x]Harbour. Как всегда, информацию можно посмотреть: http://www.paritetsoft.ru/frh.htm Возможным русскоязычных покупателей лучше контактировать со мной напрямую по email. Цена для оплаты в рублях банковским переводом по выставленному счету- 9999 рублей. -- Спирин Сергей. Компания "Паритет Софт". FRH sales: http://www.paritetsoft.ru/frh.htm FRAX sales: http://www.hotsoft.ru/ALASKA/frax_eng.htm

Ответов - 268, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 All

PSP: Sergey Spirin пишет: если вы хотите работать только по алиасу, то всегда обнуляйте WorkArea, ставьте 0 Да. Так все нормально. Большое спасибо. При отдавании приоритета алиасу надо не забыть обнулить WorkArea. Теперь буду помнить...

Andrey: Сделал я "мастер-детальную связь" ! Работает нормально ! Можно посмотреть "пример 1". Начал дальше развивать эту тему, но столкнулся с проблемой: Пример 2 - не работает "мастер-детальная связь" Делаю также как и в Примере 1, а он все равно не работает.... По NN=2048 (это первый адрес - красный цветом, База Мастер) выскакивают все записи базы-деталь (синяя NN - первая строчка) ! Итак по всей Мастер-базе... Разъясните мне пожалуйста в чем тут дело ? Ссылка для скачки демо-примера: http://files.mail.ru/G9W6H8

Sergey Spirin: Andrey пишет: По NN=2048 (это первый адрес - красный цветом, База Мастер) выскакивают все записи базы-деталь (синяя NN - первая строчка) ! Итак по всей Мастер-базе... Компилить ваш пример я не буду. Поэтому пойдем последовательно. Во-первых, для начала, уберем все лишнее. // Установить СВЯЗЬ БД-Мастер с БД-Деталь по полю SELECT BASE_TITLE SET RELATION TO NN INTO BASE_ROOMS Это что? Зачем? Думаю, что RELATION вполне может конфликтовать с Мастер-Детэйл. Убрать! Далее: M->FrPrn:SetMasterDetail( aMasterDetail[nI,1], aMasterDetail[nI,2], aMasterDetail[nI,3] ) //? nI, aMasterDetail[nI,1], aMasterDetail[nI,2], Valtype(aMasterDetail[nI,3]), M->FrPrn:SetResyncPair( aMasterDetail[nI,1], aMasterDetail[nI,2] ) Это что за SetResyncPair()? Ну я же в прошлых постах говорил, что SetResyncPair НЕ НУЖЕН при MasterDetail. Убираем, смотрим. ----- Ну и главное, поймите, что такое MasterDetail, не вообще, а как реализовано. MasterDetail - это отношение, при котором любое изменение текущей записи Master-таблицы приводит к вызову такого кода для Detail-таблицы: DbSetScope(soScope_Both, Результат переданного блока кода) То есть, идет вызов чисто Харбурной функции. Ваша задача понять, почему, собственно, Scope не устанавливается.


Andrey: Sergey Spirin пишет: Это что за SetResyncPair()? Ну я же в прошлых постах говорил, что SetResyncPair НЕ НУЖЕН при MasterDetail. Это случайно осталось.... Убрал раньше. Учел ваши замечания ! Все равно не работает ! Что-то хХарбор "барохлит" ... Как мне подсказал знакомый Дельфист: У тебя, всё-таки, внутри харбора не установлена мастер-детальная связь я добавил событие отсеивающее ненужные записи: procedure DetailData1OnBeforePrint(Sender: TfrxComponent); begin DetailData1.Visible := <BASE_ROOMS."NN"> = <BASE_TITLE."NN">; end; оно заработало. но нужно что-то подобное делать снаружи отчета, внутри харбора. только не так как у меня, конечно, а при переходе с записи на запись в таблице MasterHouse, ставить фильтр на таблицу Rooms вроде NN = 2048, где "2048" - текущее значение NN из HouseMaster Действительно заработало. Во вкладке CODE пишем этот код и Sergey Spirin пишет: Ваша задача понять, почему, собственно, Scope не устанавливается. Я так и не понял, почему этот Scope не устанавливается ....

Sergey Spirin: Andrey пишет:  цитата: Это что за SetResyncPair()? Ну я же в прошлых постах говорил, что SetResyncPair НЕ НУЖЕН при MasterDetail. Это случайно осталось.... Убрал раньше. А relation убрали? Andrey пишет: Учел ваши замечания ! Все равно не работает ! Что-то хХарбор "барохлит" ... Как мне подсказал знакомый Дельфист: У тебя, всё-таки, внутри харбора не установлена мастер-детальная связь я добавил событие отсеивающее ненужные записи: procedure DetailData1OnBeforePrint(Sender: TfrxComponent); Не надо ничего выдумывать со знакомым дельфистом!!! Master-Detail для фаста устанавливается методом :SetMasterDetail(). Все, точка. Если не работает, то надо разбираться почему, а не выдумывать. Придуманная же фильтрация может быть накладна на больших объемах. Andrey пишет: Я так и не понял, почему этот Scope не устанавливается .... Так, добавьте в пример bat-ник, чтобы я мог его компилировать и я разберусь, в чем там у вас дело. Жду.

Andrey: Sergey Spirin пишет: А relation убрали? Убрал конечно ! Все ваши рекомендации выполнил. Не работает. Sergey Spirin пишет: Так, добавьте в пример bat-ник, чтобы я мог его компилировать и я разберусь, в чем там у вас дело. Жду. Bat-ник уже есть в проекте. Запуск С:\xHarbour\bin\hbmake Frx-Dbase.bc , т.е. Харборовская утилита hbmake.exe сама проверяет и компилирует этот проект.

Sergey Spirin: Andrey пишет: Bat-ник уже есть в проекте. Запуск С:\xHarbour\bin\hbmake Frx-Dbase.bc , Угу. Кроме того что path надо прописывать, еще терминалы какие-то Я в этих терминалах как ... C:\Borland\BCC55\BIN\ilink32 @makefile.lnk Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Fatal: Unable to open file 'WVTGUI.LIB'

Andrey: Sergey Spirin пишет: Угу. Кроме того что path надо прописывать, еще терминалы какие-то Извиняюсь, не учел этого. Это по терминологии Аляски - гибридный терминал. Собирается дополнительно из CONTRIB'ов... Удалил и переделал на стандартный... Ссылка для скачивания: http://files.mail.ru/N4KZC3

Sergey Spirin: Гм... Пересобрал, ничего не менял, все работает без единого изменения Что делать будем?

Sergey Spirin: Ан нет, это у вас фильтр не удален в отчете..... Счас буду смотреть.

Sergey Spirin: Фу, Андрей, ну надо же быть внимательным, елы-палы!!!!!! USE HOUSES\Rooms ALIAS BASE_ROOMS NEW AADD( aAlias , ALIAS() ) ; AADD( aSelect , SELECT() ) // Добавить в массив для иниц. в FastReport И // Мастер-детальная связь для FastReport AADD( aMasterDetail, { "BASE_TITLE", "BASE_ROOM", {||BASE_TITLE->NN} } ) Сиди тут, опечатки ищи под дебаггером Ясно, что фаст просто не нашел детальную таблицу, надо: AADD( aMasterDetail, { "BASE_TITLE", "BASE_ROOMS", {||BASE_TITLE->NN} } ) Давайте, внимательней! А то, из-за банальных опечаток рождаются фантазии с другом дельфистом

Sergey Spirin: Кстати, если бы вы заглянули в FastRepH.prg, то увидели бы, что метод :SetMasterDetail() возвращает True-False успешности действия. В вашем случае он честно возвращал False "в никуда" Поэтому может имеет смысл вам написать так: [pre]IF M->FrPrn:SetMasterDetail( aMasterDetail[nI,1], aMasterDetail[nI,2], aMasterDetail[nI,3] ) == .f. Alert("Проверь правильность написания мастера и детали, то что они не равны друг другу, и то что они были уже добавлены методом SetWorkArea") ENDIF[/pre] Ну, а другу дельфисту поясните, что между, собственно, Фастом и Харбур-приложением написано достаточно много моего кода. Иначе бы они друг друга никак не поняли бы. В этот код входит и дельфийский харбур-датасет, эти датасеты фаст и принимает, и ему абсолютно все равно откуда эти датасеты "притащили" данные, из Харбур-приложения ли, или с сервера Oracle, например. Это несколько отличается от клипперного RDD-понимания, но суть та же, только универсальней и шире. В сторону Харбор-приложения датасет работает только харборными методами и реализует все необходимое для работы с данными, в том числе стандартную для Дельфи связь Master-Detail.

Andrey: Sergey Spirin пишет: Фу, Андрей, ну надо же быть внимательным, елы-палы!!!!!! Каюсь... Ну что поделаешь, такие вещи встречается иногда... Причем как не заработал код в моей большой системе, так этот код перетащил в отдельный пример. Так эту же ошибку перетащил тоже... В следующий раз буду внимательней ! Sergey Spirin пишет: SetMasterDetail() возвращает True-False успешности действия. А за это спасибо тоже, учту и применю у себя.

Andrey: Спасибо большое ! С меня коньяк ! Где пересечемся ?

Dr. Oldwarez: Наконец-то, после серьёзного разговора с шефом, дошли-таки до необходимости покупки FastReport. Пока гоняю тестовую версию. На MINIGUI Extended она залинковалась, а вот на OOHG почему-то ведёт себя очень странно: [pre2] fastreph.prg: In function HB_FUN_CALL_FUNC_CICCCCCCCC_I fastreph.prg:173: warning: passing arg1 of pointer to fucntion discards qualifiers from pointer target type [/pre2] Подскажите, пожалуйста, в чём может быть проблема?

Sergey Spirin: Andrey пишет: Спасибо большое ! С меня коньяк ! Где пересечемся ? Ну, может, когда и пересечемся. Я в Москве живу

Sergey Spirin: Dr. Oldwarez пишет: fastreph.prg: In function HB_FUN_CALL_FUNC_CICCCCCCCC_I fastreph.prg:173: warning: passing arg1 of pointer to fucntion discards qualifiers from pointer target type Подскажите, пожалуйста, в чём может быть проблема? Разные компиляторы, наверное. Только Варнинги? Ошибок нет? Собирается, работает?

Andrey: Sergey Spirin пишет: Я в Москве живу Да я тоже рядом, в ближнем Подмосковье ! В спальном районе Москвы. Несколько раз за месяц езжу в Москву. Так что можно пересечься ....

Dr. Oldwarez: Sergey Spirin пишет: Разные компиляторы, наверное. Только Варнинги? Ошибок нет? Собирается, работает? Собираться-то оно собирается, даже дизайнер вылазит. Но почему-то ни одной строчки в отчётах.

Sergey Spirin: Dr. Oldwarez пишет: Собираться-то оно собирается, даже дизайнер вылазит. Но почему-то ни одной строчки в отчётах. Ok. Так, какой там Харбур/хХарбур используется, какой С компилятор? Ну, и где эту штуку можно скачать, дайте ссылку.



полная версия страницы