FR и Visual FoxPro

отредактировано 11:37 Раздел: FastReport Studio
Беру ваш пример компилю, запускаю - все работает: МОЛОДЦА!
Создаю свой отчет, кампилю запускаю - не работает, вижу пустой отчет.
Копирую ваш отчет переделываю его под свои нужды.( Называю по своему датасет, делаю свою строку подключения.) Не работает, пустой отчет
Выяснилось следующее, если я в переделаном из вашего отчете называю свой датасет в коде программы DemoDataset, как у вас в примере, то все замечательно работает. Вопрос. Почему так??
Как создается связь между бэндом и датасетом когда в создаваемом отчете нет ни одного frAdoTable и frADOQuery???

Комментарии

  • gpigpi
    отредактировано 11:37
    написал:
    Как создается связь между бэндом и датасетом когда в создаваемом отчете нет ни одного frAdoTable и frADOQuery???
    Посмотрите на DialogPage внизу
  • отредактировано 11:37
    Хотелось бы более подробных инструкций, что за DialogPage, как он правильно называется на русском, как его вызвать или отобразить???
  • gpigpi
    отредактировано 11:37
    В примере для FoxPro в дизайнере с левой стороны над деревом отчёта есть вкладки Code (Код), Page1(страница отчёта), DialogPage1(диалоговая форма)
  • отредактировано 11:37
    Я наверное чего-то недопонимаю. Посмотрел я на DialogPage1, все свойства вроде стоят по умолчанию, события все пустые, компонентов на форме нету.
    Где вы указываете что датасет называется DemoDataset, и как бэнд знает что он связян именно с DemoDataset, а не с какм-то другим источником данных???
  • gpigpi
    отредактировано 11:37
    написал:
    и как бэнд знает что он связян именно с DemoDataset, а не с какм-то другим источником данных???
    Двойной клик по бэнду - вызывается диалог выбора источника данных для бэнда. В примере бэнд связан с ADOTable1
  • отредактировано 11:37
    В вашем примере к Visual FoxPro, открываю отчет. Кликаю 2 раза по бэнду появляется окно источник данных, там в листбоксе две строчки: [не назначен] и Одна строка. Никаких Тable`ов в отчете я не вижу.
  • отредактировано 11:37
    thisform.frx_dataset=CREATEOBJECT('FastReport.TfrxADOTable')
    thisform.frx_dataset.Name='DemoDataset'
    && В этой строчке если вместо 'DemoDataset'я пишу скажем 'myDataset' и соответственно в отчете ставлю myDataset у memo1:TFrxMemoView у меня выходит пустой лист. Отчет состоит из одного банда Мастердата и одного мемо. Свойство DataSet у банда изменить не удается. Свой отчет я переделал из вашего ..
    thisform.frx_dataset.Database=thisform.db_connection
    thisform.frx_dataset.TableName = 'customers'
  • gpigpi
    отредактировано 11:37
    Всё, теперь ясно ;) У меня был установлен FR Studio 3.18. Там в примере были ADODatabase и ADOTable. Теперь установил 3.19.43, а там их нет ;)
    Т.к. FoxPro у меня не установлен, то подсказать ничего больше не могу. Судя по файлу отчёта, MasterData1.DataSet=DemoDataSet, но корректировать отчёт нужно из запущенной программы. В примере дизайнер вызывается при нажатии Command4 - thisform.fr.DesignReport();



  • отредактировано 11:37
    Хорошо как достучатся из фокса до банда в отчете???
    Когда я создаю датасет с именем демодатасет и нажимаю редктировать отчет, то я вижу слева что появляется таблица с полями. Если обозвать датасет каким-то другим именем то он после создания его в коде программы в редакторе не появляется.
  • отредактировано 11:37
    Получилось вызывать отчеты если добавить следующие строки:
    db_connection.Connected=.T.
    и
    fr.SelectDataset(.T., frx_dataset)
    опять же вызываются отчеты только переделанные из вашего отчета, если создаю свой новый с нуля, вижу только пустой лист.
    Как правильно вызывать метод
    fr.SetVariable(
    'b_date', 123) - работает на ура.
    fr.SetVariable(
    'Firm_name', 'abc') - вылетает с ошибкой??? Как передовать строковые переменные в отчет???
  • отредактировано 11:37
    P.S.
    Если передавать в переменную строку состоящую только из цифер, то все работает..
  • отредактировано 11:37
    Ну что товарищи разработчики, даст кто-нить толковый ответ???
  • отредактировано 11:37
    Строки в переменных надо окружать дополнительными кавычками, иначе FR пытается разбирать строку как выражение. Пример:
    fr.SetVariable('Firm_name', '''' + 'abc' + '''')
    (это для паскаля - не знаю, как в vfp написать одинарную кавычку в строке).
  • отредактировано 11:37
    Спасиба!!! Работает. ;)

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.