|
QR-коды в ZENReport'е
|
|||
---|---|---|---|
#18+
Добрый день. Есть ли у кого-то опыт вставки генератора QR в ZENReport? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 09:38 |
|
QR-коды в ZENReport'е
|
|||
---|---|---|---|
#18+
Sacry , В чём именно затык: с генерацией QR-кода или вставкой картинки в отчёт? PS: в 2015.2 генерация QR уже встроена. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 10:57 |
|
QR-коды в ZENReport'е
|
|||
---|---|---|---|
#18+
Sacry , Пример генерации QR-кода и вставка его в ZEN ReportInclude %occUtility Class my.rep Extends %ZEN.Report.reportPage { Parameter DEFAULTMODE As STRING [ Constraint = ",html,tohtml,toxslfo,pdf,xml,xslfo,excel,toexcel,ps,pdfprint,xlsx,tiff,displayxlsx,fo2pdf,foandpdf", Flags = ENUM ] = "pdf"; /// Этот XML блок описывает логическое содержание этого отчёта. XData ReportDefinition [ XMLNamespace = " http://www.intersystems.com/zen/report/definition" ] { <report xmlns=" http://www.intersystems.com/zen/report/definition" name="QRReport" sql=" select 1 ID,'test' data union select 2,'http://sql.ru' union select 3,'Какие-то данные из Caché: ăîşţâĂÎŞŢÂ,^''""'" > <group name="group"> <attribute name="ID" field="ID"/> <element name="qrcode" field="data" expression='"data:image/png;base64,"_..GenQRCodeBase64(%val)'/> </group> </report> } /// Этот XML блок описывает отображение этого отчёта. /// Это используется для создания XSLT стиля, как для HTML, так и для XSL-FO. XData ReportDisplay [ XMLNamespace = " http://www.intersystems.com/zen/report/display" ] { <report xmlns=" http://www.intersystems.com/zen/report/display" name="QRReport" title="QR Отчёт"> <body> <p>QR Отчёт</p> <group name="group" line="1px"> <table orient="row" width="4in"> <item field="@ID" width="2in"> <caption value="ID:"/> </item> <img src="!qrcode"> <caption value="QR-код:"/> </img> </table> </group> </body> </report> } /// Write stream -- base64 encoded ClassMethod EncodeStreamBase64(stream As %Stream.Object) As %String [ Internal, Private ] { ; process stream in groups of 1023 - ; number arbitrary but must be divisible by 3 and 57=76/4*3 Set out="" Do stream.Rewind() While 'stream.AtEnd { Set len=513 ##; text must be divisible by 3 and 76 Set text=stream.Read(.len) quit:len'>0 Set out=out_$system.Encryption.Base64Encode(text) } Quit out } ClassMethod GenQRCodeBase64(data) As %String { #dim ex As %Exception.AbstractException s filename=##class(%File).TempFilename("png") try{ s f=##class(%Stream.FileBinary).%New() s f.Filename=filename d f.Write($zcvt(data,"O","UTF8")) d f.%Save(0) s:'$zf(-1,"zint.exe -o "_$$$quoteall(filename)_" -b 58 -w 0 --border=0 --binary -i "_$$$quoteall(filename)) r=..EncodeStreamBase64(f) }catch(ex){ s ^tmp("error")=ex.DisplayString() } d ##class(%File).Delete(filename) q r } } ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:29 |
|
QR-коды в ZENReport'е
|
|||
---|---|---|---|
#18+
servitPS: в 2015.2 генерация QR уже встроена. Support For QR Codes ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2015, 17:42 |
|
|
start [/forum/topic.php?fid=39&fpage=14&tid=1556618]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 155ms |
0 / 0 |