|
|
<!DOCTYPE html>
|
|
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
|
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
|
|
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
|
|
|
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
|
|
|
<head>
|
|
|
<meta charset="utf-8">
|
|
|
<title>FastReport Designer beta</title>
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
|
|
|
<meta name="theme-color" content="#2B579A"/>
|
|
|
|
|
|
<link rel="shortcut icon" href="/favicon.ico"/>
|
|
|
|
|
|
<link rel="stylesheet" href="styles/main.css"/>
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
<div id="fr-designer">
|
|
|
<div class="preload-blanket">
|
|
|
<div class="preload-blanket-cntr">
|
|
|
<span class="sp-h">FastReport Designer beta</span>
|
|
|
|
|
|
<span class="sp-l sp-l-1"></span>
|
|
|
<span class="sp-l sp-l-2"></span>
|
|
|
<span class="sp-l sp-l-3"></span>
|
|
|
<span class="sp-l sp-l-4"></span>
|
|
|
<span class="sp-l sp-l-5"></span>
|
|
|
<span class="sp-l sp-l-6"></span>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<!--[if lt IE 10]>
|
|
|
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
|
|
|
<![endif]-->
|
|
|
|
|
|
<script src="scripts/vendors.js"></script>
|
|
|
|
|
|
<script src="scripts/config-data.js"></script>
|
|
|
|
|
|
<script>
|
|
|
define('initialized', ['jquery', 'utils', 'config'], function($, utils, config) {
|
|
|
return function(app) {
|
|
|
var uuid = utils.getUrlParameter('uuid'),
|
|
|
url;
|
|
|
|
|
|
// поиск отчета на сервере (по указанному uuid) и открытие
|
|
|
if (uuid) {
|
|
|
url = config.get('getReportByUUIDFrom') + uuid;
|
|
|
// url = '/demos/' + uuid + '.frx';
|
|
|
|
|
|
app.openReportByURL(url).done(function(report) {
|
|
|
report._id = uuid;
|
|
|
console.info('report was opened');
|
|
|
});
|
|
|
// открытие дефолтного отчета
|
|
|
} else {
|
|
|
app.createStandardReport().done(function() {
|
|
|
console.info('report was created');
|
|
|
});
|
|
|
}
|
|
|
|
|
|
console.info('system initialised');
|
|
|
};
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<script src="scripts/main.js"></script>
|
|
|
|
|
|
<script id="code" type="text/x-jsrender"><div class=code-container> <textarea id=code-editor>
|
|
|
using System;
|
|
|
using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
|
using System.ComponentModel;
|
|
|
using System.Windows.Forms;
|
|
|
using System.Drawing;
|
|
|
using System.Data;
|
|
|
using FastReport;
|
|
|
using FastReport.Data;
|
|
|
using FastReport.Dialog;
|
|
|
using FastReport.Barcode;
|
|
|
using FastReport.Table;
|
|
|
using FastReport.Utils;
|
|
|
|
|
|
namespace FastReport
|
|
|
{
|
|
|
public class ReportScript
|
|
|
{
|
|
|
|
|
|
}
|
|
|
};
|
|
|
</textarea> </div></script><script id="info" type="text/x-jsrender"><div> <div class=switcher> <div> <a {{if codeRestricted}}disabled=disabled{{/if}} class="btn btn-primary btn-xs show-code-tab {{if !page || page.attr('isHidden')}}btn-active{{/if}}"> <div class=icon-061></div> <span>{{:~trans('Code')}}</span> </a> {{for allPages}} <a data-page={{:_id}} class="btn btn-primary btn-xs show-page {{if !attr('isHidden')}}btn-active{{/if}}"> <div class=icon-135></div> <span>{{>prop('Name')}}</span> </a> {{/for}} </div> </div> <div class=selected-band> <span> {{if band}} {{:band}} {{/if}} </span> </div> <div class=selected-component> <span> {{if component}} {{:component}} {{/if}} </span> </div> <div class=amount-selected-components> {{if amount}} <span> {{:~trans("Amount selected:")}} </span> <span> {{:amount}} </span> {{/if}} </div> <div class=scale-page> <a class=d-ic> <span class=scale-minus>-</span> </a> {{if scaleValue}} <input type=range class="d-ic d-icr" value="{{>scaleValue}}" min=0.1 max=2 step="0.1"> {{/if}} <a class=d-ic> <span class=scale-plus>+</span> </a> </div> </div></script><script id="loader" type="text/x-jsrender"><div id=floatingCirclesG> <div class=f_circleG id=frotateG_01> </div> <div class=f_circleG id=frotateG_02> </div> <div class=f_circleG id=frotateG_03> </div> <div class=f_circleG id=frotateG_04> </div> <div class=f_circleG id=frotateG_05> </div> <div class=f_circleG id=frotateG_06> </div> <div class=f_circleG id=frotateG_07> </div> <div class=f_circleG id=frotateG_08> </div> </div></script><script id="modal-tabs" type="text/x-jsrender"><div> {{setvar "tabs" ~getFields(tabs)/}} <ul class=modal-tabs> {{for ~getvar("tabs")}} <li class="modal-tabs-item {{if #index === 0}}active{{/if}}" data-block=modal-content-{{:key}}> <a>{{>~trans(value)}}</a> </li> {{/for}} </ul> <div class=modal-tabs-content> {{for ~getvar("tabs")}} <div class="modal-content-item modal-content-{{:key}} {{if #index === 0}}active{{/if}}"></div> {{/for}} </div> </div></script><script id="modal" type="text/x-jsrender"><div class="lock_window popup"> <div class="modal fade modal-transform"> <div class=modal-dialog> <div class=modal-header> <button type=button class=close data-dismiss=modal> <span aria-hidden=true>×</span> </button> <h4 class=modal-title>{{>~trans(title)}}</h4> </div> <div class=modal-content></div> </div> </div> </div></script><script id="bands/data-band-sort-tab" type="text/x-jsrender"><div> <div> <span>{{>~trans("Sort by")}}</span> <div class="form-group sort-expr"> <div class=fg-body> <input type=text class="d-fc d-fc-exp-input" {{if Sort[0]}}value={{:Sort[0].Expression}}{{/if}}> <input type=button value=... class=d-fc-exp-but> </div> </div> <div class="form-group sort-dir"> <input type=radio name=Sort0 value=Ascending {{if !Sort[0] || !Sort[0].Descending}}checked=checked{{/if}}>Ascending<br> <input type=radio name=Sort0 value=Descending {{if Sort[0] && Sort[0].Descending}}checked=checked{{/if}}>Descending </div> </div> <hr> <div> <span>{{>~trans("Then by")}}</span> <div class="form-group sort-expr"> <div class=fg-body> <input type=text class="d-fc d-fc-exp-input" {{if Sort[1]}}value={{:Sort[1].Expression}}{{/if}}> <input type=button value=... class=d-fc-exp-but> </div> </div> <div class="form-group sort-dir"> <input type=radio name=Sort1 value=Ascending {{if !Sort[1] || !Sort[1].Descending}}checked=checked{{/if}}>Ascending<br> <input type=radio name=Sort1 value=Descending {{if Sort[1] && Sort[1].Descending}}checked=checked{{/if}}>Descending </div> </div> <hr> <div> <span>{{>~trans("Then by")}}</span> <div class="form-group sort-expr"> <div class=fg-body> <input type=text class="d-fc d-fc-exp-input" {{if Sort[2]}}value={{:Sort[2].Expression}}{{/if}}> <input type=button value=... class=d-fc-exp-but> </div> </div> <div class="form-group sort-dir"> <input type=radio name=Sort2 value=Ascending {{if !Sort[2] || !Sort[2].Descending}}checked=checked{{/if}}>Ascending<br> <input type=radio name=Sort2 value=Descending {{if Sort[2] && Sort[2].Descending}}checked=checked{{/if}}>Descending </div> </div> </div></script><script id="bands/edit-data-band" type="text/x-jsrender"><div> <div class="modal-body edit-band"></div> <div class="modal-footer content-right"> <button type=button class="btn btn-primary edit-db"> {{:~trans("Ok")}} </button> </div> </div></script><script id="bands/edit-group-header-band" type="text/x-jsrender"><div> <div class="modal-body edit-band"> <div class=ghb-content> <div class=ghb-condition> <span>{{>~trans("Condition")}}</span> </div> <div class=ghb-sort> <span>{{>~trans("Sort order")}}</span> </div> </div> </div> <div class="modal-footer content-right"> <button type=button class="btn btn-primary edit-ghb"> {{:~trans("Ok")}} </button> </div> </div></script><script id="components/edit-picture" type="text/x-jsrender"><div> <div class="modal-body edit-picture"></div> <div class="modal-footer content-right"> <button type=button class="btn btn-primary edit-pic"> {{:~trans("Ok")}} </button> </div> </div></script><script id="expression/index" type="text/x-jsrender"><div> <div class=modal-body> <div class=expr-body> <textarea>{{>data}}</textarea> </div> <div class=expr-menu></div> </div> <div class="modal-footer content-right"> <button type=button disabled=disabled class="btn btn-primary add-to-expr"> {{:~trans("Add")}} </button> <button type=button class="btn btn-primary edit-expr"> {{:~trans("Ok")}} </button> </div> </div></script><script id="toolbar/bands-tab" type="text/x-jsrender"><div class="tab-pane bands"> <ul class=tab-pane-body> <li class=group> <div class=container> <div class=group-body> {{if data}} <div class="group-body-subcontainer d-horizontal"> {{for ~getFields(~getConfig().get('bands-sort-order')) ~data=data}} <a class="d-mc d-lib d-wb" data-info="{{>~trans(~data[value].info)}}" data-band="{{>~data[value].title}}"> <div class="{{>~data[value].icon}}"></div> <span>{{:~trans(~data[value].title)}}</span> </a> {{/for}} </div> {{/if}} </div> <div class=group-label> {{:~trans("Bands")}} </div> </div> </li> </ul> </div></script><script id="toolbar/components-tab" type="text/x-jsrender"><div class="tab-pane components"> <ul class=tab-pane-body> <li class=group> <div class=container> <div class=group-body> {{if data}} <div class="group-body-subcontainer d-horizontal"> {{for ~getFields(~getConfig().get('components-sort-order')) ~data=data}} {{if ~data[value] && !~data[value].disabled}} <a class="d-mc d-lib d-wb" data-info="{{>~data[value].info}}" data-component="{{>value}}"> <div class="{{>~data[value].icon}}"></div> <span class=component-title>{{:~trans(~data[value].title)}}</span> <div class=aqw></div> </a> {{/if}} {{/for}} </div> {{/if}} </div> <div class=group-label> {{:~trans("Components")}} </div> </div> </li> </ul> </div></script><script id="toolbar/helper" type="text/x-jsrender"><div class=d-helper> <h3>{{:~trans("Hotkeys")}}</h3> <ul> <li> <strong>Esc</strong> - {{:~trans("Remove all popups")}} </li> <li> <strong>Del</strong> - {{:~trans("Delete selected components or band")}} </li> <li> <strong>Ctrl + A</strong> - {{:~trans("Select all components on the page")}} </li> <li> <strong>Ctrl + C</strong> - {{:~trans("Copy selected components")}} </li> <li> <strong>Ctrl + X</strong> - {{:~trans("Cut selected components")}} </li> <li> <strong>Ctrl + V</strong> - {{:~trans("Paste the copied component")}} </li> <li> <strong>Ctrl + Z</strong> - {{:~trans("Undo")}} </li> <li> <strong>Ctrl + Y</strong> - {{:~trans("Redo")}} </li> <li> <strong><left></strong> - {{:~trans("Move selected components left")}} </li> <li> <strong><right></strong> - {{:~trans("Move selected components right")}} </li> <li> <strong><up></strong> - {{:~trans("Move selected components up")}} </li> <li> <strong><down></strong> - {{:~trans("Move selected components down")}} </li> <li> <strong>Ctrl + S</strong> - {{:~trans("Save current report")}} </li> <li> <strong>Ctrl + P</strong> - {{:~trans("Preview current report")}} </li> </ul> </div></script><script id="toolbar/home-tab" type="text/x-jsrender"><div class="tab-pane home active"> <ul class=tab-pane-body> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-two-lines d-vertical"> <a class="d-mc menu-undo d-sb d-wb"> <div class=icon-008></div> </a> <a class="d-mc menu-redo d-sb d-wb"> <div class=icon-009></div> </a> </div> </div> <div class=group-label> {{:~trans("Undo")}} </div> </div> <div class=separator></div> </li> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-vertical"> <a class="d-mc menu-past d-lb d-wb"> <div class=icon-007></div> <span>{{>~trans("Past")}}</span> </a> </div> <div class="group-body-subcontainer d-three-lines d-vertical"> <a class="d-mc menu-copy d-sb d-wb"> <div class="icon-006 pull-left"></div> <span>{{>~trans("Copy")}}</span> </a> <a class="d-mc menu-cut d-sb d-wb"> <div class="icon-005 pull-left"></div> <span>{{>~trans("Cut")}}</span> </a> <a class="d-mc menu-remove d-sb d-wb"> <div class="icon-012 pull-left"></div> <span>{{>~trans("Delete")}}</span> </a> </div> </div> <div class=group-label> {{:~trans("Clipboard")}} </div> </div> <div class=separator></div> </li> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-horizontal"> <select class="d-mc menu-font-name d-sb" data-info="Font family"> {{for ~getFields(~getConfig().get('font-names'))}} <option value="{{>value}}">{{>value}}</option> {{/for}} </select> </div> <div class="group-body-subcontainer d-one-line d-horizontal"> <a class="d-mc menu-font-bold d-sb d-wb pull-left"> <div class=icon-020></div> </a> <a class="d-mc menu-font-italic d-sb d-wb pull-left"> <div class=icon-021></div> </a> <a class="d-mc menu-font-underline d-sb d-wb pull-left"> <div class=icon-022></div> </a> <a class="d-mc menu-font-strikeout d-sb d-wb pull-left"> <div class="icon-strikeout icon-16by16"></div> </a> <select class="d-mc menu-font-width d-sb" data-info="Font width"> <option value=8pt>8</option> <option value=9pt>9</option> <option value=10pt>10</option> <option value=11pt>11</option> <option value=12pt>12</option> <option value=14pt>14</option> <option value=16pt>16</option> <option value=18pt>18</option> <option value=20pt>20</option> <option value=22pt>22</option> <option value=24pt>24</option> <option value=26pt>26</option> <option value=28pt>28</option> <option value=30pt>30</option> <option value=34pt>34</option> <option value=36pt>36</option> <option value=40pt>40</option> <option value=48pt>48</option> <option value=56pt>56</option> <option value=72pt>72</option> </select> </div> </div> <div class=group-label> {{:~trans("Font")}} </div> </div> <div class=separator></div> </li> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-horizontal"> <a class="d-mc menu-text-fill d-sb d-wb" data-info="Text fill color"> <div class=icon-023></div> </a> <a class="d-mc menu-vert-align-top d-sb d-wb"> <div class=icon-029></div> </a> <a class="d-mc menu-vert-align-center d-sb d-wb"> <div class=icon-030></div> </a> <a class="d-mc menu-vert-align-bottom d-sb d-wb"> <div class=icon-031></div> </a> </div> <div class="group-body-subcontainer d-one-line d-horizontal"> <a class="d-mc menu-horz-align-left d-sb d-wb"> <div class=icon-025></div> </a> <a class="d-mc menu-horz-align-center d-sb d-wb"> <div class=icon-026></div> </a> <a class="d-mc menu-horz-align-right d-sb d-wb"> <div class=icon-027></div> </a> <a class="d-mc menu-horz-align-justify d-sb d-wb"> <div class=icon-028></div> </a> </div> </div> <div class=group-label> {{:~trans("Alignment")}} </div> </div> <div class=separator></div> </li> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-horizontal"> <a class="d-mc menu-border-all d-sb d-wb"> <div class=icon-036></div> </a> <a class="d-mc menu-border-none d-sb d-wb"> <div class=icon-037></div> </a> <a class="d-mc menu-border-left d-sb d-wb"> <div class=icon-034></div> </a> <a class="d-mc menu-border-top d-sb d-wb"> <div class=icon-032></div> </a> <a class="d-mc menu-border-right d-sb d-wb"> <div class=icon-035></div> </a> <a class="d-mc menu-border-bottom d-sb d-wb"> <div class=icon-033></div> </a> </div> <div class="group-body-subcontainer d-one-line d-horizontal"> <a class="d-mc menu-fill-color d-sb d-wb pull-left" data-info="Fill color"> <div class=icon-038></div> </a> <a class="d-mc menu-border-color d-sb d-wb pull-left" data-info="Border color"> <div class=icon-039></div> </a> <select class="d-mc menu-border-style d-sb" data-info="Border style"> {{for ~getFields(~getConfig().get('dasharrays'))}} <option value="{{>key}}">{{>key}}</option> {{/for}} </select> <select class="d-mc menu-border-width d-sb" data-info="Border width"> <option value=1>1</option> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> <option value=5>5</option> <option value=6>6</option> <option value=7>7</option> <option value=8>8</option> <option value=9>9</option> <option value=10>10</option> <option value=11>11</option> <option value=12>12</option> </select> </div> </div> <div class=group-label> {{:~trans("Borders")}} </div> </div> <div class=separator></div> </li> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-two-lines d-vertical"> <a class="d-mc menu-bring-to-front d-sb d-wb" data-info="{{:~trans('bring to front')}}"> <div class=icon-014></div> </a> <a class="d-mc menu-send-to-back d-sb d-wb" data-info="{{:~trans('send to back')}}"> <div class=icon-015></div> </a> </div> </div> <div class=group-label> </div> </div> <div class=separator></div> </li> <li class="group d-extra" style=display:none> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-horizontal"></div> <div class="group-body-subcontainer d-one-line d-horizontal"></div> </div> <div class=group-label> {{:~trans("Extra")}} </div> </div> <div class=separator></div> </li> </ul> </div></script><script id="toolbar/preview" type="text/x-jsrender"><div class=modal-body> {{:report}} </div></script><script id="toolbar/report-tab" type="text/x-jsrender"><div class="tab-pane report"> <ul class=tab-pane-body> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-vertical"> <a class="d-mc menu-preview d-lb d-wb"> <div class=icon-report></div> <span>{{>~trans("Report preview")}}</span> </a> </div> <div class="group-body-subcontainer d-one-line d-vertical"> <a class="d-mc menu-save d-lb d-wb"> <div class=icon-002></div> <span>{{>~trans("Save")}}</span> </a> </div> </div> <div class=group-label> {{:~trans("Report")}} </div> </div> <div class=separator></div> </li> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-vertical d-two-lines"> <a class="d-mc menu-new-report-page d-sb d-wb"> <div class="icon-010 pull-left"></div> <span>{{>~trans("New Report Page")}}</span> </a> <a class="d-mc menu-delete-page d-sb d-wb"> <div class="icon-012 pull-left"></div> <span>{{>~trans("Delete page")}}</span> </a> </div> </div> <div class=group-label> {{:~trans("Pages")}} </div> </div> <div class=separator></div> </li> </ul> </div></script><script id="toolbar/toolbar" type="text/x-jsrender"><div class=topbar> <div class="navbar navbar-default" role=navigation> <div class=container-fluid> <div class=navbar-header> <span class=navbar-brand>{{:~trans("HTML5 Designer")}}</span> </div> </div> </div> <ul class="nav nav-tabs"> <li class="m-item active"> <a class=d-tab data-tab=home> <span>{{:~trans("Home")}}</span> </a> </li> <li class=m-item> <a class=d-tab data-tab=report> <span>{{:~trans("Report")}}</span> </a> </li> <li class=m-item> <a class=d-tab data-tab=view> <span>{{:~trans("View")}}</span> </a> </li> <li class=m-item> <a class=d-tab data-tab=components> <span>{{:~trans("Components")}}</span> </a> </li> <li class=m-item> <a class=d-tab data-tab=bands> <span>{{:~trans("Bands")}}</span> </a> </li> </ul> </div> <div class=tab-content> <div class=tabs-container></div> <a class="hide-menu d-wb"> <span>^</span> </a> <a class="show-helper d-wb"> <span>?</span> </a> </div></script><script id="toolbar/view-tab" type="text/x-jsrender"><div class="tab-pane view"> <ul class=tab-pane-body> <li class=group> <div class=container> <div class=group-body> <div class="group-body-subcontainer d-one-line d-vertical"> <a class="d-mc menu-grid d-lb d-wb" data-info=Grid> <div class=icon-ViewGridlines></div> <span>{{>~trans("Grid")}}</span> </a> </div> <div class="group-body-subcontainer d-two-lines d-vertical"> <select class="d-mc menu-units d-sb" data-info=Units> {{if units}} {{for ~getFields(units)}} <option value={{:key}}>{{>value}}</option> {{/for}} {{/if}} </select> <input class="d-mc menu-snap-size d-sb" min=0 step=0.1 type=number data-info="Snap size"> </div> </div> <div class=group-label> {{:~trans("View")}} </div> </div> <div class=separator></div> </li> </ul> </div></script>
|
|
|
</div>
|
|
|
</body>
|
|
|
</html>
|