On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение



Пост N: 37
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 20.09.06 16:15. Заголовок: Вывод на печать


Помогите сделать выбор ! Мне нужно сначала сформировать, а затем выдавать на печать и выводить для просмотра выходные формы: списки, ведомости , реестры , справки. Какими средствами лучше всего воспользоваться :
hbprint, miniprint или что-то еще есть интересное ? Главное конечно - это сформировать документ .
( Вот Олег Крутов писал, что он закончил большой проект по зарплате: Олег! Что ты использовал для формирования
расчетных листов, сводных ведомостей, различных списков ?...)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 15 [только новые]


модератор




Пост N: 277
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 20.09.06 17:08. Заголовок: Просто к сведению


Многие хвалят генератор отчетов SREP 1.1 Владимира Карпова, в котором используются RTF шаблоны.

Контакты:
phone: (095)333-63-10 SoftService
E-mail: karpov@softexpress.ru

Пример кода:

#include "srep.ch"

static s1
static s2
static sP2 := "### ### ###.##"
static aParam := {"Fiest parameter", "Second Parametr"}
static sOut := "Out.rtf"
static sRtf := "WordRep.rtf"

//***********************
func main()
//use "..\..\..\..\..\Sample~1\base.dbf" index "..\..\..\..\..\Sample~1\base.cdx" alias "oDB" via "DBFCDX"
//use base.dbf index base.cdx alias oDB via "DBFCDX"
//rddsetdefault("DBFCDX")
dbusearea(.t., nil, "base.dbf", "oDB", .t., .t.)
//oDB->(dbSetIndex("base.cdx"))
RTFReport(sRtf, sOut, "RepHandle")
use
return nil

//***********************
func RepHandle(Message, wParam, lParam)
LOCAL RetDate
LOCAL bC
LOCAL OldGroup
? Message, wParam, lParam
IF Message == WM_REP_START_REPORT
s1 := 0
s2 := 0
ELSEIF Message == WM_REP_END_REPORT
//run winword.exe &sOut
? "The End!"
ELSEIF Message ==WM_REP_SUPERSUBGROUP_FOOTER
IF LParam == SECTION_CHECK
IF (oDB->RecNo % 10) == 0
ClipCheck(.t.)
ELSE
ClipCheck(.f.)
END IF
END IF
IF LParam == SECTION_DATA_REQUEST_BY_NAME
ClipData(AllTrim(Str(oDB->RecNo)))
END IF
ELSEIF Message == WM_REP_RTF_HEADER
IF LParam == SECTION_DATA_REQUEST_BY_NAME
? WParam
ClipData("Hi everybody!")
END IF
ELSEIF Message == WM_REP_BODY
IF Lparam == SECTION_DATA_REQUEST_BY_NUM
DO CASE
CASE Wparam == 1
RetDate := AllTrim(oDB->(FIELDGET("FIRST")))+" "+AllTrim(oDB->(FIELDGET("LAST")))
CASE Wparam == 2
RetDate := AllTrim(oDB->(FIELDGET("STREET")))
CASE Wparam == 3
RetDate := AllTrim(oDB->(FIELDGET("CITY")))
CASE Wparam == 4
RetDate := AllTrim(oDB->(FIELDGET("STATE")))
CASE Wparam == 5
RetDate := AllTrim(oDB->(FIELDGET("ZIP")))
CASE Wparam == 6
RetDate := AllTrim(Str(oDB->(FIELDGET("AGE"))))
CASE Wparam == 7
RetDate := Transform(oDB->(FIELDGET("SALARY")), sP2)
END CASE
ClipData(RetDate)
//ELSEIF Lparam == BODY_CHECK
// IF <Some condition>
// BodyRequest(0) //not to print body section with this record
// END IF
ELSEIF Lparam == SECTION_DATA_REQUEST_BY_NAME
ClipData(AllTrim(oDB->(FIELDGET(Wparam))))
ELSEIF Lparam == SECTION_BEGIN
s1 := s1 + oDB->(FIELDGET("SALARY"))
s2 := s2 + oDB->(FIELDGET("SALARY"))
END IF
ELSEIF Message == WM_REP_HEADER
IF Lparam == SECTION_DATA_REQUEST_BY_NUM
ClipData(aParam[Wparam])
END IF
ELSEIF Message == WM_REP_FOOTER
IF Lparam == SECTION_DATA_REQUEST_BY_NUM
ClipData(AllTrim(Transform(s2, sP2)))
END IF
ELSEIF Message == WM_REP_GROUP_HEADER
IF Lparam == SECTION_CHECK
bC := .f.
oDB->(dbskip(-1))
IF !oDB->(bof())
OldGroup := oDB->(FIELDGET("STATE"))
oDB->(dbskip())
ELSE
OldGroup := "hhhhhhhhhhhhhhhhhhhhhhh"
END IF
IF OldGroup != oDB->(FIELDGET("STATE"))
bC := .t.
END IF
ClipCheck(bC)
ELSEIF Lparam == SECTION_DATA_REQUEST_BY_NUM
ClipData(AllTrim(oDB->(FIELDGET("STATE"))))
END IF
ELSEIF Message == WM_REP_GROUP_FOOTER
IF Lparam == SECTION_CHECK
bC := .f.
oDB->(dbskip())
OldGroup := oDB->(FIELDGET("STATE"))
oDB->(dbskip(-1))
IF OldGroup != oDB->(FIELDGET("STATE"))
bC := .t.
END IF
ClipCheck(bC)
ELSEIF Lparam == SECTION_DATA_REQUEST_BY_NUM
IF Wparam == 1
RetDate := AllTrim(oDB->(FIELDGET("STATE")))
ELSEIF Wparam == 2
RetDate := AllTrim(Transform(s1, sP2))
s1 := 0
END IF
ClipData(RetDate)
END IF
ELSEIF Message == WM_REP_MOVE
IF Lparam == MOVE_TOP
oDB->(dbGoTop())
ELSEIF Lparam == MOVE_NEXT
oDB->(dbskip())
END IF
//
//SELF:oDCPBar:Position := SELF:oDCPBar:Position + 1
//SELF:oDCFT_REC:CurrentText := AsString(SELF:oDCPBar:Position)
//SELF:oDCFT_PROC:CurrentText := Transform((SELF:oDCPBar:Position*100)/SELF:oDB:LastRec, "###.## %")
//
ClipCheck(oDB->(Eof())) //It call is nassasary
ELSEIF Message == WM_REP_OPEN_ERROR
? "Can`t open file "+sRtf
ELSEIF Message == WM_REP_CREATE_ERROR
? "Can`t create report file "+sOut
ELSEIF Message == WM_REP_MEM_ERROR
? "Memory error!"
ELSEIF Message == WM_REP_READ_ERROR
? "Read error: " + Str(lParam)
ELSEIF Message == WM_REP_WRITE_ERROR
? "Write error: " + Str(lParam)
ELSEIF Message == WM_REP_SECTION_ERROR
? "Section error with " + Str(lParam) + " " + sRtf
END IF
return nil


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 38
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 20.09.06 17:45. Заголовок: Re:


gfilatov пишет:

 цитата:
хвалят генератор отчетов SREP 1.1


А можно ли ...#include "srep.ch" ,RTFReport(),ClipData() . ClipCheck() ???



Спасибо: 0 
ПрофильЦитата Ответить
модератор




Пост N: 278
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 20.09.06 17:50. Заголовок: Re:


i3t4j6 пишет:

 цитата:
А можно ли


Выложил SREP по адресу:
http://gfilatov.front.ru/Srep.zip

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 46
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 21.09.06 10:28. Заголовок: Srep


Григорий! во-первых спасибо за новую версию!
Посмотрел исходник TSBRowse - очень правильная мысль -
если новая запись - то предусматривается дальнейший ввод.

Я использую HBPrinter. Расчетные листки вывожу на лист A4,
проверяя перед этим вместится след. листок или нет.
Пока использую RTFReport - там все OK, но надо подключать
внеший exe-шник.

Григорий, я использовал компоненты Карпова под Delphi,
а с Harbouro'м не удается. Скажи - это рабочий вариант,
а то я как ни крутил - не вышло?




Спасибо: 0 
ПрофильЦитата Ответить
модератор




Пост N: 280
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 21.09.06 10:52. Заголовок: Re:


krutoff пишет:

 цитата:
Скажи - это рабочий вариант,
а то я как ни крутил - не вышло?


Олег! Я не пробовал эту библиотеку в деле
Но если есть интерес - то могу посмотреть

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 50
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 21.09.06 12:11. Заголовок: Посмотри пожалуйста


Посмотри, пожалуйста, насколько я понял - это вариант под DOS
- и мне CallBack процедура RepHandle - не выдавала значений.
Дергался, дергался - все со злости удалил и забыл.
Но вещь хороша - у Карпова под Delphi на основе этого алгоритма
работают отчеты RTF, XLS, TXT, HTML

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 40
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 21.09.06 12:38. Заголовок: Посмотри пожалуйста !!!!


gfilatov пишет:

 цитата:
Но если есть интерес - то могу посмотреть


Григорий ! Посмотри , будь ласка ! Может получится ! Если бы без внешнего exe-шника с адаптацией
под xHarbour .

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 56
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 18.10.06 20:39. Заголовок: Re:


gfilatov пишет:

 цитата:
Я не пробовал эту библиотеку в деле
Но если есть интерес - то могу посмотреть


Может я опять обгоняю паровоз, но ... очччень не терпится узнать - как там по поводу RTF ?...

Спасибо: 0 
ПрофильЦитата Ответить
модератор




Пост N: 317
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 18.10.06 22:45. Заголовок: Re:


i3t4j6 пишет:

 цитата:
как там по поводу RTF ?...


Увы, но порадовать нечем...
Моих скромных познаний в Си здесь явно недостаточно

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 67
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 19.10.06 10:11. Заголовок: krutoff


Имя "i3t4j6" какое-то нерусское.
Но отвечаю. Для отчетов я использую HBPrint
В некоторых случаях очень удобно для проверки
на длину страницы (расч.листки бывают разные и надо
уложить 1 или неск-ко на страницу) .
Для красивых форм пока использую RepoRTF
Попробуй -все получится - правда приходится подключать
внешний reportfl.exe (но он маленький ~ 29k)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 49
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 13.03.10 12:13. Заголовок: gfilatov пишет: Выл..


gfilatov пишет:

 цитата:
Выложил SREP по адресу:
http://gfilatov.front.ru/Srep.zip



Выложите ещё раз пожалуйста, или киньте мне на мыло motaro76@inbox.ru

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 13.03.10 14:34. Заголовок: ежели у людей стоит ..


ежели у людей стоит 1С77(или не заморачиваться с лицензией), то очень удобно выводить в 1С-ку свои отчеты

Спасибо: 0 
Цитата Ответить
постоянный участник




Пост N: 50
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 13.03.10 16:34. Заголовок: Увы, в той стране, г..


Увы, в той стране, где я пока что работаю, 1С не существует даже теоретически.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 51
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 13.03.10 23:07. Заголовок: Большое спасибо! Sr..


Большое спасибо!

Srep уже получил. Но хотелось бы что-нибудь с интерактивным дизайном, вроде Crystal Report или ReportSmith

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 52
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 14.03.10 14:13. Заголовок: А если Crystal Repor..


А если Crystal Reports затянуть в прогу через ActiveX? В OOHG есть такая возможность - интерфейс через ActiveX

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 672
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет