Подскажите небольшой примерчик, как записать некоторые данные в текстовый файл (например "11111")... Схема такая, я записываю необходимые данные в файл, потом запускаю внешнюю программу(Excel или Word, или VFP), которая считывает эти данные из файла и формирует различные прибамбасы пользователей..., встроенный FastReport, как-то не устраивает...
В событии кнопки Ok, написал код
begin
cFileName:='c:\base\xxx.txt';
nHandle:=FCREATE(cFileName,0);
c_str:='123456';
FWRITE(nHandle,c_str);
FCLOSE(nHandle);
end
Ничего не появилось (права на запись есть, сам в этом каталоге создал и удалил файл)
Почему то выходила ошибка на строке LOCAL cFileName,nHandle,c_str, пришлось её убрать...
Давайте определимся. Вы хотите записать данные готового отчёта fastreport в текстовый файл? Или просто некие данные из БЭСТ?
Пример, который был приведён, является программой на harbour и должен запускаться как спецфункция из БЭСТ. Этот пример совершенно не подходит для применения в fastreport.
Я захожу в дизайнер отчетов, и там есть объект форма, на которой есть объект кнопка с методом клик, вот хотелось бы именно в этот метод кнопки, положить код записи во внешний файл, данных подготовленные объектом форма в дизайнере отчета, спасибо...
Скорей всего, так не получится из-за того, что fastreport не озаботился подсистемой вывода, отличной от вывода band на странице.
Предлагаю настроить отчёт (печатную форму fastreport) оптимально для текстового вида и сохранять полученный отчёт в текстовый файл средствами самого fastfreport.
Алексей Новиков пишет:
Пример, который был приведён, является программой на harbour и должен
запускаться как спецфункция из БЭСТ.
Это пример не из harbour, это пример из VFP(хотя для harbour тоже подойдет). Кто не знает, есть такое понятие источник данных, у него есть метод Openarea, вот там и пишите вывод в текстовый файл. Судя по всему автор темы с VFP дружит. В чем проблема?
Да, VFP мой любимый язык, списки я уже стараюсь делать в отдельной программе VFP(если не получается стандартными средствами), но вот если распечатывать по конкретной позиции(выбрали в БЭСТ человека, или позицию в логистике), тут уже не подходит отдельная программа, эти данные надо хотя бы записать во временный текстовый файл или dbf(ФИО,должность и т.д.), например несчетное количество тут разных договоров, а потом уже подгружать внешнюю программу для работы с этими данными...(не будут же они по каждому человеку прыгать из программы в программу)
Вот и получается проблема... Не устраивает в данном случае договор, который кто-то когда-то написал, нет отступа на переплет, полей зеркальных, анализа текста(чтоб не было наполовину пустых страниц) и т.д. Данные по отчету есть, есть кнопка OK, следовательно мне надо в этом отчете все убрать и оставить только кнопку Ok, где в свойстве клик написать запись выбранных данных в файл и запустить программу для обработки этих данных
Создание спецфункций не подходит, подходит в данном случае только отчет, поэтому я сильно то и не настаиваю, понимаю, что есть в программе и за то спасибо...
Конечно если можно было бы в кнопке написать...что-то типа
loexcel=CREATEOBJECT('Excel.Application')
loexcel.workbooks.Add
WITH loexcel
.activesheet.pagesetup.ORIENTATION=2
.COLUMNS( 1).COLUMNWIDTH = 4
и т.д.
я конечно был-бы только рад...:-(
А не подойдет такой вариант. Пишите на VFP новый источник, который в параметре будет принимать текстовую строку и в методе OpenArea записывать её в текстовый файл (или в DBF). В шаблоне отчета в методе Click на кнопке Ok устанавливаете требуемое значение этого параметра, а потом открываете (и закрываете) источник. Если в файл надо записать не одну, а много строк, то передачу параметра, открытие и закрытие источника можно сделать в цикле.