PortaleOrdiniGruppo/PortalStudio/reporteditor/itemsObj.js
2025-03-24 15:28:26 +01:00

1500 lines
59 KiB
JavaScript

/* exported dragstartx dragstarty newx newy mainitem index nitem nbaritem printgroupuid
calconuid resetonuid into_variable_combo fieldHTML fieldcountindex getBarHtml
getNavigatorDescBand getDescBand2 writeStandardDef readStandardDef readStandardJsonDef
normalizeXML getPropID getObjImg getPropDescObj overBar outBar
newObj
*/
/* global wizard newdesign openReport ZoomOut ZoomIn Redo generateXLSXModel toolbarPreview
getIconDataFromAction trimNameDesc setPropertiesID scale translateCharacters reportProp
getGroupUid
*/
//Tutti gli elementi sono item+n e le ombre sono shadow+n
//#######################################################
var dragstartx, dragstarty, newx, newy, mainitem;
var index; //indice corrente del mainitem nell'Array
var nitem = 0; //numero item crescente
var nbaritem = 0; //numero del item tipo bar crescente
var itemsHTML = []; //array contenente tutti gli oggetti item con id,HTML,shadow,ecc
var countindex = 0; //contatore indice array
var offsetimage = 6;
var printgroupuid = "select[]";
var calconuid = "select[each record,end of report]";
var resetonuid = "select[end of report,end of page]";
var into_variable_combo = "select[]";
var fieldHTML = [];
var fieldcountindex = 0;
var newObj = {};
//Proprieta' oggetti ###########################
if (typeof(ZTObjects) == "undefined") {
var ZTObjects = new function () {
this.fonts_select = "select[Arial,Courier,Tahoma,Times New Roman,Verdana";
this.encoding_select = "select[,UTF-8,UTF-16,ISO-8859-1,ISO-8859-2,ISO-8859-3,ISO-8859-4,ISO-8859-5,ISO-8859-6,ISO-8859-7,ISO-8859-8,ISO-8859-9,ISO-8859-10,ISO-8859-13,ISO-8859-14,ISO-8859-15,ISO-8859-16]";
this.linktype_select = "select[,master,detail,master/detail,dialog,report,routine,page,event,system_function,user_program,web_hyperlink]";
this.linkaction_select = "select[,start,query,edit,editload,new,delete,write,writeload,view]";
this.linktarget_combo = "select[same window,new window]";
this.format_select = "select[A4,A3,letter:LETTER,legal:LEGAL,custom:CUSTOM]";
this.rotation_select = "select[,portrait:PORTRAIT,landscape:LANDSCAPE]";
this.reexecute_select = "select[Execute Query at start (merge-join):false,Execute Query each time (sub-report):true]";
this.applyGlobalFont = "select[use global font:true,use custom font:false]";
this.requiredOrNot = "select[required:true,not required:false]";
this.privacy_select = "select[Not defined:0,Ruled - Health:1,Ruled - Sensible:2,Ruled - Judicial:3,Ruled - Personal:4,Ruled - Specific Risk:7,Private:5,Public:6,Profiled:8,Secret:9]";
this.data_danger_level_select = "select[0 - No risk:0,1 - Low risk:1,2 - Medium risk:2,3 - High risk:3]";
var msg = new JSURL("../servlet/RPFontsList", true).Response();
var fonts_add='';
if (msg.length > 0) {
var otherfontL = msg.split(",");
for (var mm = 0; mm < otherfontL.length; mm++) {
if(otherfontL[mm].indexOf('fonts/DejaVu') < 0) {
fonts_add += "," + otherfontL[mm].replace(/;/gi, ',');
}
}
}
if (fonts_add.length > 0) {
fonts_add = ',separator-Fonts File' + ',fonts/DejaVuSans-ExtraLight.ttf' + fonts_add
}
this.fonts_select += fonts_add + "]";
this.bool_select = "select[false,true]";
this.type_select = "select[character,numeric,date,logic,memo,datetime]";
//Oggetti per operazione UNDO
this.undoObj = function (id, action, x, y, x_init, y_init, obj, w, h, w_init, h_init) {
this.id = id;
this.action = action;
this.x_init = x_init;
this.y_init = y_init;
this.x = x;
this.y = y;
this.w_init = w_init;
this.h_init = h_init;
this.w = w;
this.h = h;
this.obj = obj;
if (this.obj) {
if (!this.w) { this.w = parseInt(this.obj.w); }
if (!this.h) { this.h = parseInt(this.obj.h); }
this.scale = parseInt(this.obj.scale);
}
};
////////
this.findProp= function (propID, container) {
for( var j=0; j< container.length; j++){
if( container[j].propID == propID ){
return j;
break;
}
}
return -1;
}
this.extend = function( objA, objB, pos) { //itemsObj visualweb
// La posizione della properties e' definita dall'oggetto esteso
var propsA = objA['newProperties'], propsB = objB['newProperties'];
var tmpProps = null;
var iB, k = 0;
for (var prop in propsA ) {
for (var i = 0; i< propsA[prop].length; i++ ) {
if (typeof(propsB[prop]) == 'undefined' ) {
propsB[prop] = JSON.parse(JSON.stringify(propsA[prop]));
break;
}
iB = this.findProp(propsA[prop][i].propID, propsB[prop]);
if ( iB == -1 ) {
tmpProps = JSON.parse(JSON.stringify(propsA[prop]));
if (pos == true) {
for (k = 0; k < tmpProps.length; k++) {
propsB[prop] = propsB[prop].concat(tmpProps[k]);
}
}
else {
for (k = 0; k < tmpProps.length; k++) {
propsB[prop].splice(i+k, 0, tmpProps[k]);
}
}
}
}
}
}
this.stdObjClass = {
newProperties:{
generic:[
{name:'comment', propID:'comment', type:'str', tooltip:'Object comment', defaultValue:'', buttons:'plus', actions:'addCommentLabel()'},
{name:'name', disabled:true, noteditable:true, propID:'name', type:'str', tooltip:'Unique identifier for the Object in the current report'},
{name:'uid', propID:'uid', type:'str', disabled:true},
{name:'page', propID:'page', type:'int', disabled:true}
],
layout:[
{name:'x', propID:'x', type:'int', validFunc:'validCoordinate', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'X coordinate', extraClass:"col-3"},
{name:'y', propID:'y', type:'int', validFunc:'validCoordinate', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'Y coordinate', extraClass:"col-3"},
{name:'width', propID:'w', type:'int', validFunc:'validCoordinate', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'Width', extraClass:"col-3"},
{name:'height', propID:'h', type:'int', validFunc:'validCoordinate', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'Height', extraClass:"col-3"}
]
}
};
this.stdObjOptPrintClass = {
newProperties:{
print_options:[
{name:'hide under condition', propID:'hidecond', type:'exp', tooltip:'Object is hidden when this formula is TRUE', defaultValue:''},
{name:'Row print order', propID:'sequence', type:'int', tooltip:'Specify the order in which printing the elements with the same Y coordinate'}
]
}
}
this.stdObjOptBarPrintClass = {
newProperties:{
print_options:[
{name:'hide under condition', propID:'hidecond', validFunc:'validBarProperty', type:'exp', tooltip:'Object is hidden when this formula is TRUE', defaultValue:''}
]
}
}
this.stdObjLayoutBarClass = {
newProperties:{
layout:[
{name:'x', disabled:true, propID:'x', type:'int', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'X coordinate'},
{name:'y', noteditable:true, propID:'y', type:'int', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'Y coordinate'},
{name:'width', disabled:true, propID:'w', type:'int', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'Width'},
{name:'height', disabled:true, propID:'h', type:'int', convertFunc:'convertFromPixels', reconvertFunc:'convertToPixels', tooltip:'Height'},
{name:'Row print order', disabled:true, propID:'sequence', type:'int', tooltip:'Specify the order in which printing the elements with the same Y coordinate'}
]
}
};
this.stdObjPrivacyClass = {
newProperties:{
generic:[
{name:'Privacy GDPR', section:'privacy', propID:'privacy', validFunc:'validPrivacy', type:this.privacy_select, tooltip:'Data subject to privacy regulation', defaultValue:'0'},
{name:'Data Danger Level', section:'privacy', propID:'data_danger_level', validFunc:'validDataDangerLevel', type:this.data_danger_level_select, tooltip:'Specify the danger level of the data for privacy', defaultValue:'0'},
{name:'Data subject identifier', section:'privacy', propID:'identifier', validFunc:'validIdentifier', type:'checkbox', tooltip:'The field represents a data who can identify, directly or indirectly, the subject', defaultValue:false}
]
}
};
this.stdObjOutNameClass = {
newProperties:{
generic:[
{name:'output name', section:'output', propID:'output_name', type:'str', validFunc:'validXMLName', tooltip:'Name in output file (XML, CSV, ...)', defaultValue:''}
]
}
};
this.stdObjOutBarNameClass = {
newProperties:{
generic:[
{name:'output name', section:'output', propID:'output_name', type:'str', validFunc:'validBarProperty', tooltip:'Name in output file (XML, CSV, ...)', defaultValue:''}
]
}
};
this.stdObjBlockClass = {
newProperties:{
generic:[
{name:'print as block', propID:'printblock', validFunc:'validBarProperty', type:'checkbox', tooltip:'Print as block', defaultValue:false}
]
}
};
this.stdObjOutCsvClass = {
newProperties:{
generic:[
{name:'csv title', section:'output', propID:'column_title', type:'exp', tooltip:'Expression title in output file CSV', defaultValue:''}
]
}
}
this.stdObjOutHyperLinkClass = {
newProperties:{
hyperlink:[
{name:'entity type', propID:'link_type', type:this.linktype_select, tooltip:'Type of called entity', defaultValue:''},
{name:'name type', propID:'link_expr', type:'select[constant,expression]'
,tooltip:'Select whether the specified string is a constant or an expression', defaultValue:'constant', extraClass:"col-3"},
{name:'name', propID:'link_name', type:'str', tooltip:'Name of called entity', defaultValue:'', extraClass:"col-3"},
{name:'action', propID:'link_action', type:this.linkaction_select, tooltip:'Action to perform on called entity', defaultValue:''},
{name:'parameters', propID:'link_parameters', type:'str', tooltip:'Parameters for the called entity', buttons:'edit', actions:'LoadHY()', extraClass:"col-3"},
{name:'value', propID:'link_parameters_value', type:'str', tooltip:'Values of parameters for the called entity', buttons:'edit', actions:'LoadHY()', defaultValue:'', extraClass:"col-3"},
{name:'target', propID:'link_target_src', type:this.linktarget_combo
,tooltip:'Select where the called entity will be opened', defaultValue:'same window'
,hide_list:{
'same window':[
'this.hyperlink_link_target',
'this.hyperlink_link_w',
'this.hyperlink_link_h'
],
'new window':['this.hyperlink_link_target'],
'frame':[
'this.hyperlink_link_w',
'this.hyperlink_link_h'
]
}
,show_list:{
'same window':[],
'new window':[
'this.hyperlink_link_w',
'this.hyperlink_link_h'
],
'frame':['this.hyperlink_link_target']
}
},
{name:'frame', propID:'link_target', type:'str', tooltip:'Name of the frame where the called entity will be opened', defaultValue:''},
{name:'window width', propID:'link_w', type:'str', tooltip:'Width of the new browser window', defaultValue:'0', extraClass:"col-3"},
{name:'window height', propID:'link_h', type:'str', tooltip:'Height of the new browser window', defaultValue:'0', extraClass:"col-3"},
{name:'exit at end', propID:'exit_at_end', disabled:true, type:'checkbox', tooltip:'On completion close the newly opened window', defaultValue:false},
{name:'enable under condition', propID:'link_enable_cond', type:'exp', tooltip:'Hyperlink is enabled when this formula is TRUE', defaultValue:''}
]
}
}
this.stdObjNoteClass = {
newProperties:{
notes:[
{name:'user notes', propID:'note', type:'str', tooltip:'User notes', defaultValue:'', buttons:'edit', actions:'EditEUNotes()'},
{name:'technical notes', propID:'technote', type:'str', tooltip:'Technical Notes', defaultValue:'', buttons:'edit', actions:'EditETNotes()'}
]
}
};
this.stdObjExtPrintClass = {
newProperties:{
print_options:[
{name:'print always', propID:'print_always', type:'checkbox'
,tooltip:'Always prints the repeated values', defaultValue:true
,hide_list:{
'checked':[
'this.print_options_print_in_newpage',
'this.print_options_print_when_change_groupuid',
'this.print_options_print_rowgroup'
],
'unchecked':[]
}
,show_list:{
'checked':[],
'unchecked':[
'this.print_options_print_in_newpage',
'this.print_options_print_when_change_groupuid',
'this.print_options_print_rowgroup'
]
}
,section:"printing"
},
{name:'print in new page', propID:'print_in_newpage', type:'checkbox'
,tooltip:'Prints the field in the first band of a new page that is not an overflow from a previous page', defaultValue:false, section:"printing"},
{name:'print group', propID:'print_group', type:'checkbox', disabled:true, defaultValue:false, section:"printing"},
{name:'print when this group', propID:'print_when_change_group', type:'str', disabled:true, defaultValue:'', section:"printing"},
{name:'print when group changes', propID:'print_when_change_groupuid', type:'function:getgroupuid', convertFunc:'TranslateGroupUid', validFunc:'ApplyGroupUidG'
,tooltip:'When selected group changes, the field is printed', defaultValue:'', section:"printing", extraClass:"col-3"},
{name:'print when previous fields on row change', propID:'print_rowgroup', type:'checkbox', defaultValue:false, section:"printing"
,tooltip:'When at least one of previous fields in the row changes, the field is printed', extraClass:"col-3"}
]
}
};
this.stdObjExtPrintRemOutClass = {
newProperties:{
print_options:[
{name:'remove from output', propID:'removefromout', type:'str', tooltip:'Select the output type in which the expression will not be printed'
,buttons:'edit', actions:'LoadRemoveOutput()', defaultValue:'', section:"printing"}
]
}
}
this.stdObjStyleBarcodeClass = {
newProperties:{
style:[
{name:'Pixel Off color', propID:'pixeloffcolor', type:'color', tooltip:'Color selected for Pixel OFF', defaultValue:'#ffffff'},
{name:'Pixel On color', propID:'pixeloncolor', type:'color', tooltip:'Color selected for Pixel ON', defaultValue:'#000000'},
{name:'scale to frame size', propID:'barcodestretch', type:'checkbox', tooltip:'Indicating whether a barcode resizes to fit the size of the barcode frame', defaultValue:true}
]
}
}
this.stdObjStyleFontClass = {
newProperties:{
style:[
{name:'align', propID:'align', type:'select[left,center,right]', tooltip:'Alignment', defaultValue:'left'},
{name:'font', propID:'global_font', type:this.applyGlobalFont
,tooltip:'When this property is selected, the Expression will be printed using the Global Font', defaultValue:true
,hide_list:{
'true':[
'this.style_font',
'this.style_font_size',
'this.style_font_weight',
'this.style_font_effect'
],
'false':[]
}
,show_list:{
'true':[],
'false':[
'this.style_font',
'this.style_font_size',
'this.style_font_weight',
'this.style_font_effect'
]
}
},
{name:'font name', propID:'font', type:'advanced-font', tooltip:'Current font', fontList:this.fonts_select},
{name:'font size', propID:'font_size', type:'str', tooltip:'Current font size'},
{name:'font style', propID:'font_weight', type:'select[,normal,bold,italic,bold italic]', tooltip:'Current font style', extraClass:"col-3"},
{name:'font effects', propID:'font_effect', type:'select[,strikeout,underline,strikeout underline]', tooltip:'Current font effects', defaultValue:'', extraClass:"col-3"},
{name:'font color type', propID:'coltype', type:'select[constant,expression]'
,tooltip:'Select whether the specified foreground color is a constant or an expression', defaultValue:'constant'
,hide_list:{
'constant':['this.style_colexp'],
'expression':['this.style_color']
}
,show_list:{
'constant':['this.style_color'],
'expression':['this.style_colexp']
}
,extraClass:"col-3"
},
{name:'font color', propID:'color', type:'color', tooltip:'Color selected for foreground', defaultValue:'#000000', extraClass:"col-3"},
{name:'font color', propID:'colexp', type:'exp', tooltip:'Color selected for foreground as expression, format #hex', defaultValue:'', extraClass:"col-3"}
]
}
}
this.PSToolbarAlign = [
{ 'id': 'bottom_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('bottom'); }
, 'image': '../portalstudio/images/icon/btn_alignbottom.png'
, 'title': 'Align bottom'
},{ 'id': 'top_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('top'); }
, 'image': '../portalstudio/images/icon/btn_aligntop.png'
, 'title': 'Align top'
},{ 'id': 'left_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('left'); }
, 'image': '../portalstudio/images/icon/btn_alignleft.png'
, 'title': 'Align left'
},{ 'id': 'right_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('right'); }
, 'image': '../portalstudio/images/icon/btn_alignright.png'
, 'title': 'Align right'
},{ 'id': 'vcenter_align'
, 'action': function() { alignItems('center'); }
, 'image': '../portalstudio/images/icon/btn_aligncenter.png'
, 'title': 'Align vertical center'
},{ 'id': 'hcenter_align'
, 'action': function() { alignItems('middle'); }
, 'image': '../portalstudio/images/icon/btn_alignmiddle.png'
, 'title': 'Align horizontal center'
}
];
this.PSToolbarResize = [
{ 'id': 'x_delta_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('x_delta'); }
, 'image': '../portalstudio/images/icon/btn_x-delta.png'
, 'title': 'Same horizontal distance'
},{ 'id': 'y_delta_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('y_delta'); }
, 'image': '../portalstudio/images/icon/btn_y-delta.png'
, 'title': 'Same vertical distance'
},{ 'id': 'resizexy_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('resizexy'); }
, 'image': '../portalstudio/images/icon/btn_resize-xy.png'
, 'title': 'Same size'
},{ 'id': 'resizex_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('resizex'); }
, 'image': '../portalstudio/images/icon/btn_resize-x.png'
, 'title': 'Same width'
},{ 'id': 'resizey_align'
, 'class_name': 'btn'
, 'action': function(){ alignItems('resizey'); }
, 'image': '../portalstudio/images/icon/btn_resize-y.png'
, 'title': 'Same height'
}
];
this.PSToolbarWizard = [
{ 'id': 'wiz'
, 'class_name': 'btn'
, 'action': function(){ wizard(); }
, 'image': '../portalstudio/images/icon/btn_wizard.png'
, 'title': 'Wizard'
, 'withTitle': true
}
];
/* Array contenente i bottoni da visualizzare solo quando il Report Editor e' aperto in modalita' stand alone.*/
this.PSToolbarActionFull = [
{ 'id': 'new'
, 'class_name': 'btn'
, 'action': function(){ newdesign(); }
, 'image': '../portalstudio/images/icon/btn_new.png'
, 'title': 'New'
},{ 'id': 'open'
, 'class_name': 'btn'
, 'action': function(){ openReport(); }
, 'image': '../portalstudio/images/icon/btn_open.png'
, 'title': 'Open'
, 'withTitle': true
},{ 'id': 'save'
, 'class_name': 'btn'
, 'action': function(){ save(); }
, 'image': '../portalstudio/images/icon/btn_save.png'
, 'title': 'Save'
, 'withTitle': true
},{ 'id': 'saveas'
, 'class_name': 'btn'
, 'action': function(){ saveAs('true'); }
, 'image': '../portalstudio/images/icon/btn_saveAs.png'
, 'title': 'Save As'
}
];
this.PSToolbarActionLight = this.PSToolbarActionFull.slice(2,3);
this.PSToolbarEdit = [
{ 'id': 'zoomoutdocpage'
, 'class_name': 'btn'
, 'action': function(){ ZoomOut(); }
, 'image': '../portalstudio/images/icon/btn_zoomOut2.png'
, 'title': 'Zoom Out'
},{ 'id': 'selectZoom'
, 'class_name': 'remMarginLeft'
, 'action': function(){}
, 'title': 'Select Zoom Percent'
, 'innerHTML': '<select name="zoombox" class="pdfTextbox" style="position:relative;top:0;padding:0px;border:1px solid #B6B6B6;" id="zoombox" onchange="zoomindex=this.selectedIndex;zoom(this.options[this.selectedIndex].value)">'
+ '<option value="50">50%</option>'
+ '<option value="75">75%</option>'
+ '<option value="100" selected>100%</option>'
+ '<option value="125">125%</option>'
+ '<option value="150">150%</option>'
+ '<option value="175">175%</option>'
+ '<option value="200">200%</option>'
+ '<option value="225">225%</option>'
+ '<option value="250">250%</option>'
+ '<option value="275">275%</option>'
+ '<option value="300">300%</option>'
+ '<option value="325">325%</option>'
+ '<option value="350">350%</option>'
+ '<option value="375">375%</option>'
+ '<option value="400">400%</option>'
+ '</select>'
},{ 'id': 'zoomindocpage'
, 'class_name': 'btn'
, 'action': function(){ ZoomIn(); }
, 'image': '../portalstudio/images/icon/btn_zoomIn2.png'
, 'title': 'Zoom In'
}
];
/* Array contenente i bottoni da visualizzare solo quando il Report Editor e' aperto in modalita' stand alone.*/
this.PSToolbarEditFull = [
{ 'id': 'copyBtn'
, 'class_name': 'btn'
, 'action': function(){ CopyPaste(true,false); }
, 'image': '../portalstudio/images/icon/btn_copy.png'
, 'title': 'Copy'
},{ 'id': 'cutBtn'
, 'class_name': 'btn'
, 'action': function(){ CopyPaste(true,true); }
, 'image': '../portalstudio/images/icon/btn_cut.png'
, 'title': 'Cut'
},{ 'id': 'pasteBtn'
, 'class_name': 'btn'
, 'action': function(){ CopyPaste(false); }
, 'image': '../portalstudio/images/icon/btn_paste.png'
, 'title': 'Paste'
},{ 'id': 'undoBtn'
, 'class_name': 'btn'
, 'action': function(){ Undo(); }
, 'image': '../portalstudio/images/icon/btn_undo.png'
, 'title': 'Undo'
},{ 'id': 'redoBtn'
, 'class_name': 'btn'
, 'action': function(){ Redo(); }
, 'image': '../portalstudio/images/icon/btn_redo.png'
, 'title': 'Redo'
}
];
this.PSToolbarPreview = [
{ 'id': 'btn_model'
, 'class_name': 'btn'
, 'action': function(){ generateXLSXModel(); }
, 'image': './images/btn_xlsx.png'
, 'title': 'Generate XLSX model'
, 'withTitle': true
},
{ 'id': 'btn_preview'
, 'class_name': 'btn'
, 'action': function(){ toolbarPreview(); }
, 'image': '../portalstudio/images/icon/btn_preview.png'
, 'title': 'Go to Preview'
, 'withTitle': true
}
];
this.PSToolbarCtrl = [
{ 'id': 'label_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_label_off.png'
, 'title': 'Label'
, 'action':{'func':'addItem','par':'Label'}
, 'draggable': true
},{ 'id': 'expr_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_Expression_off.png'
, 'title': 'Expression'
, 'action':{'func':'addItem','par':'Expr'}
, 'draggable': true
},{ 'id': 'box_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_boxarea_off.png'
, 'title': 'Box'
, 'action':{'func':'addItem','par':'Box'}
, 'draggable': true
},{ 'id': 'hline_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_horizontalline_off.png'
, 'title': 'Horizontal line'
, 'action':{'func':'addItem','par':'HLine'}
, 'draggable': true
},{ 'id': 'vline_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_verticalline_off.png'
, 'title': 'Vertical line'
, 'action':{'func':'addItem','par':'VLine'}
, 'draggable': true
},{ 'id': 'image_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_image_off.png'
, 'title': 'Image'
, 'action':{'func':'addItem','par':'Image'}
, 'draggable': true
}
];
this.PSToolbarCtrlOthers = [
{ 'id': 'barcode_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_barcode_off.png'
, 'title': 'Barcode'
, 'action':{'func':'addItem','par':'Barcode'}
, 'draggable': true
},{ 'id': 'barcode2d_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_barcode2d_off.png'
, 'title': 'Barcode 2D'
, 'action':{'func':'addItem','par':'Barcode2D'}
, 'draggable': true
},{ 'id': 'chart_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_graphics_off.png'
, 'title': 'Chart'
, 'action':{'func':'addItem','par':'Chart'}
, 'draggable': true
},{ 'id': 'ssvg_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_signsvg.png'
, 'title': 'Tiny SVG'
, 'draggable' : true
, 'action':{'func':'addItem','par':'SignSVG'}
},{ 'id': 'tinyhtml_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_tinyhtml.png'
, 'title': 'Tiny HTML'
, 'draggable' : true
, 'action':{'func':'addItem','par':'TinyHTML'}
},{ 'id': 'smup_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_signmup.png'
, 'title': 'Signature Markup'
, 'action':{'func':'addItem','par':'SignMark'}
, 'draggable': true
}
];
this.PSToolbarCtrlSections = [
{ 'id': 'autocover_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_autocover_off.png'
, 'title': 'Parameters Mask'
, 'action':{'func':'addItem','par':'AutoCover'}
, 'draggable': true
},
{ 'id': 'group_top_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_group_off.png'
, 'title': 'Group'
, 'action':{'func':'addItem','par':'Group_top'}
, 'draggable': true
},{ 'id': 'section_top_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_section_off.png'
, 'title': 'Hide Section'
, 'action':{'func':'addItem','par':'Section_top'}
, 'draggable': true
},{ 'id': 'query_top_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_altquery_off.png'
, 'title': 'Alternative Query'
, 'action':{'func':'addItem','par':'AltQuery_top'}
, 'draggable': true
},{ 'id': 'breakpage_top_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_pagebreak_off.png'
, 'title': 'Break Page'
, 'action':{'func':'addItem','par':'BreakPage'}
, 'draggable': true
},{ 'id': 'htmlsection_top_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_htmlsection_off.png'
, 'title': 'Html Section'
, 'action':{'func':'addItem','par':'HtmlSection'}
, 'draggable': true
},{ 'id': 'sectbo_top_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/bot_sect_bo_off.png'
, 'title': 'Business Object'
, 'action':{'func':'addItem','par':'SectBo_top'}
, 'draggable': true
}
];
this.PSToolbarPredefined = [
{ 'id': 'npag_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/page_num.png'
, 'title': 'Page number'
, 'action':{'func':'putSystemVar','par':'nNumPageStr'}
, 'draggable': true
},{ 'id': 'tpag_ctrl'
, 'class_name': 'btn'
, 'image': '../portalstudio/images/icon/total_pages.png'
, 'title': 'Total Page number'
, 'action':{'func':'putSystemVar','par':'nTotalPagesStr'}
, 'draggable': true
}
];
this.Createsearch = function(tab, propID){
var propBtnInfo = new Element('div', {'class':'input_inline_btn search_btn', 'icon-data' : getIconDataFromAction('search')});
propBtnInfo.refId = tab + "_" + propID;
propBtnInfo.refPropId = propID;
return propBtnInfo;
};
this.Titlesearch = function(){
return "Find";
};
this.Createsubstitute = function(tab, propID){
var propBtnInfo = new Element('div', {'class':'input_inline_btn substitute_btn', 'icon-data' : getIconDataFromAction('substitute')});
propBtnInfo.refId = tab + "_" + propID;
propBtnInfo.refPropId = propID;
return propBtnInfo;
};
this.Titlesubstitute = function(){
return "Substitute";
};
}
}
ZTObjects.searchObjClass={
newProperties:{
search:[
{name:'Find', propID:'sfind', type:'str', buttons:'search', actions:'KeyFind()'},
{name:'whole word', propID:'cwword', type:'checkbox', extraClass:"col-3"},
{name:'Case sensitive', propID:'ccsensitive', type:'checkbox', extraClass:"col-3"},
{name:'As constant', propID:'cconstant', type:'checkbox', extraClass:"col-3"},
{name:'As expresssion', propID:'cexpression', type:'checkbox', extraClass:"col-3"},
],
results:[
{name:'Finding', propID:'sfind', type:'str', noteditable:true},
{name:'Substitute with', propID:'ssubstitute', type:'str', buttons:'substitute', actions:'KeyReplace()'},
{name:'Hightlight', propID:'chighlight', type:'checkbox', validFunc:'hightlightElementsO', extraClass:"col-3"},
{name:'Select all', propID:'csubsistute', type:'checkbox', validFunc:'ReplaceAllElementsO', extraClass:"col-3"}
]
}
};
ZTObjects.fieldsObjClass={
newProperties:{
queries:[
{name:'', propID:'qr', type:'str'}
],
business_objects:[
{name:'', propID:'bo', type:'str'}
],
variables:[
{name:'', propID:'va', type:'str'}
]
}
};
ZTObjects.searchObj = function() {
this.objClass = ZTObjects.searchObjClass;
this.cconstant = true;
this.cexpression = false;
this.cwword = false;
this.ccsensitive = false;
this.chighlight = false;
this.csubsistute = false;
this.ssubstitute = '';
};
ZTObjects.fieldsObj = function() {
this.objClass = ZTObjects.fieldsObjClass;
this.qr = '';
this.bo = '';
this.va = '';
};
function overBar(obj) {
if (!obj.hasClass("selected_bar")) {
obj.addClass("hover_bar");//obj.style.borderWidth = "2px";
}
}
function outBar(obj) {
obj.removeClass("hover_bar");
}
function getBarHtml(obj) {
var tooltip = "", result = "", expr = "";
var barPos, barInfoPos, barInfoPoss, barInfoWidth;
expr = getDescBand(obj, 25, true);
expr = Strtran(expr, " ", "&nbsp;");
barPos = parseInt(obj.y);
barInfoPos = barPos + 3;
barInfoPoss = barPos - 17;
var l = Math.max(Ctrl("v_line2").offsetLeft, Ctrl("z_line").offsetLeft);
barInfoWidth = (l + 150) + "px";
tooltip = "Click to move bar " + Strtran(obj.name, "'", "\'");
switch (obj.type) {
case "HeaderBar_top":
result = "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";border:0px solid;position:absolute;top:" + barInfoPoss + "px'>" + expr + "</div>";
result += '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)" ></div>';
tooltip = "Click to move bar " + Strtran(obj.title, "'", "\'");
break;
case "HeaderBar_bottom":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
tooltip = "Click to move bar " + Strtran(obj.title, "'", "\'");
break;
case "ReportBar_top":
result = "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPoss + "px'>" + expr + "</div>";
result += '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
tooltip = "Click to move bar " + Strtran(obj.title, "'", "\'");
break;
case "ReportBar_bottom":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
tooltip = "Click to move bar " + Strtran(obj.title, "'", "\'");
break;
case "Group_top":
result = "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPoss + "px'>" + expr + "</div>";
result += '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
break;
case "Group_down":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
break;
case "Section_top":
case "AltQuery_top":
case "SectBo_top":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
break;
case "Section_down":
case "AltQuery_down":
case "SectBo_down":
result = "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPoss + "px;display:none'></div>";
result += '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
break;
case "BreakPage":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
break;
case "HtmlSection":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
break;
case "AutoCover":
result = '<div id="' + obj.id + '" class="unselected_bar" style="z-index:1;border-color:' + obj.bcolor + ';position:absolute;top:' + barPos + 'px;width:' + barInfoWidth + ';height:1px;z-index:100;cursor:n-resize;overflow:hidden" onmousedown="dragBar(event,this)" onmouseover="overBar(this)" onmouseout="outBar(this)"></div>';
result += "<div id='info_" + obj.id + "' class='text_shadow_bar' style='z-index:1;width:" + barInfoWidth + ";position:absolute;top:" + barInfoPos + "px'>" + expr + "</div>";
break;
}
if (result.length > 0) {
result += '<div id="c1_' + obj.id + '" class="circle" title="' + tooltip + '" style="z-index:1;background:' + obj.bcolor + ';cursor:n-resize;position:absolute;top:' + (barPos - offsetimage) + 'px;left:' + -5 + 'px" onmousedown="dragBar(event,' + '\'' + obj.id + '\'' + ')"></div>';
result += '<div id="c2_' + obj.id + '" class="circle" title="' + tooltip + '" style="z-index:1;background:' + obj.bcolor + ';cursor:n-resize;position:absolute;top:' + (barPos - offsetimage) + 'px;left:' + barInfoWidth + '" onmousedown="dragBar(event,' + '\'' + obj.id + '\'' + ')"></div>';
}
return result;
}
function getNavigatorDescBand(obj) {
var description = "";
if (typeof(obj.comment) != "undefined" && LRTrim(obj.comment) != "") {
description = obj.comment;
}
else {
if (obj.type.indexOf("Section") > -1) {
description = obj.name;
}
else if (obj.type.indexOf("Group") > -1) {
if (LRTrim(obj.output_name) != "") {
description = obj.output_name;
}
else if (obj.child > 0 && LRTrim(itemsHTML[obj.child].output_name) != "") {
description = itemsHTML[obj.child].output_name;
}
else {
description = obj.name;
}
}
else if (obj.type.indexOf("AltQuery") > -1) {
if (LRTrim(obj.output_name) != "") {
description = obj.output_name;
}
else {
description = obj.name + " [" + obj.query + "]";
}
}
else if (obj.type.indexOf("SectBo") > -1) {
if (LRTrim(obj.output_name) != "") {
description = obj.output_name;
}
else {
description = obj.name + " [" + obj.busobj + "]";
}
}
else if (obj.type.indexOf("HeaderBar") > -1) {
description = obj.title;
}
else if (obj.type.indexOf("ReportBar") > -1) {
description = obj.title;
}
else if (obj.type.indexOf("BreakPage") > -1) {
description = obj.name;
}
else if (obj.type.indexOf("HtmlSection") > -1) {
description = obj.name;
}
else if (obj.type.indexOf("AutoCover") > -1) {
description = obj.name;
}
else {
description = obj.title + " - " + obj.name;
}
}
description = Strtran(description, "'", "\'");
return description;
}
function getDescBand2(obj) {
return getDescBand(obj, 0, true);
}
function getDescBand(obj, maxlen, add) {
var description = "";
if (obj.type.indexOf("Section") > -1) {
if (typeof(obj.comment) != "undefined" && LRTrim(obj.comment) != "") {
description = trimNameDesc(obj.comment, maxlen);
}
else {
description = trimNameDesc(obj.name, maxlen);
}
}
else if (obj.type.indexOf("Group") > -1) {
if (typeof(obj.comment) != "undefined" && LRTrim(obj.comment) != "") {
description = obj.comment;
}
else {
if (LRTrim(obj.output_name) != "") {
description = obj.output_name;
}
else if (obj.child > 0 && LRTrim(itemsHTML[obj.child].output_name) != "") {
description = itemsHTML[obj.child].output_name;
}
else {
description = obj.name;
}
}
description = trimNameDesc(description, maxlen);
if (add && add == true) {
if (obj.type.indexOf("top") > 0){
description += " - Header";
}
else {
description += " - Footer";
}
}
}
else if (obj.type.indexOf("AltQuery") > -1) {
if (typeof(obj.comment) != "undefined" && LRTrim(obj.comment) != "")
description = trimNameDesc(obj.comment, maxlen);
else {
if (LRTrim(obj.output_name) != "") {
description = trimNameDesc(obj.output_name, maxlen);
}
else {
description = trimNameDesc(obj.name, maxlen) + " [" + obj.query + "]";
}
}
}
else if (obj.type.indexOf("SectBo") > -1) {
if (typeof(obj.comment) != "undefined" && LRTrim(obj.comment) != "")
description = trimNameDesc(obj.comment, maxlen);
else {
if (LRTrim(obj.output_name) != "") {
description = trimNameDesc(obj.output_name, maxlen);
}
else {
description = trimNameDesc(obj.name, maxlen) + " [" + obj.busobj + "]";
}
}
}
else if (obj.type.indexOf("HeaderBar") > -1) {
description = trimNameDesc(obj.title, maxlen);
}
else if (obj.type.indexOf("ReportBar") > -1) {
description = trimNameDesc(obj.title, maxlen);
}
else if (obj.type.indexOf("BreakPage") > -1 || obj.type.indexOf("AutoCover") > -1 || obj.type.indexOf("HtmlSection") > -1) {
if (typeof(obj.comment) != "undefined" && LRTrim(obj.comment) != "") {
description = trimNameDesc(obj.comment, maxlen);
}
else {
description = trimNameDesc(obj.name, maxlen);
}
}
else {
description = obj.title + " - " + obj.name;
}
description = Strtran(description, "'", "\'");
//description = ToHTMLValue(description);
return description;
}
function writeStandardDef(obj) {
var JsonItem = {type : obj.type}
var propName, valueToSave;
setPropertiesID(obj);
for (var u = 0; u < obj.objClass.properties.length; u++) {
propName = obj.objClass.properties[u];
valueToSave = obj[propName];
switch (propName) {
case "x":
case "xl":
case "xr":
case "y":
if (valueToSave < 0) {
PSAlert.alert("Attention: item " + obj.objClass.properties.name + " with position " + propName + " < 0!");
valueToSave = 0;
}
else {
valueToSave = Round((valueToSave * 100 / scale), 0);
}
break;
case "w":
case "h":
if (valueToSave < 0) {
PSAlert.alert("Attention: item " + obj.objClass.properties.name + " with dimension " + propName + " < 0!");
valueToSave = 0;
}
else {
valueToSave = Round((valueToSave * 100 / scale), 0);
}
break;
case "picture":
if (obj.global_picture == true) {
continue;
}
break;
case "font":
case "font_size":
case "font_weight":
case "font_effect":
if (obj.global_font == true) {
continue;
}
break;
case "print_in_newpage":
case "print_group":
case "print_when_change_groupuid":
if (obj.print_always == true) {
continue;
}
break;
case "print_when_change_group":
continue;
case "resetuid":
case "into_variable":
case "calculate_onuid":
case "calculate_when":
if (obj.calculations == "nothing" || obj.calculations == "") {
continue;
}
break;
case "calculate_on":
case "bb_calculate_on":
continue;
case "reset":
continue;
break;
case "link_type":
case "link_expr":
case "link_action":
case "link_parameters":
case "link_parameters_value":
case "link_target_src":
case "link_target":
case "link_w":
case "link_h":
case "exit_at_end":
case "link_enable_cond":
if (LRTrim(obj.link_name) == "") {
continue;
}
break;
}
if (typeof(valueToSave) != "number" && typeof(valueToSave) != "boolean") {
if (typeof(valueToSave) == "undefined" || valueToSave === "") {
// Se la prop e' undefined allora la salvo come ' '
valueToSave = " ";
}
}
valueToSave = "" + valueToSave;
if (valueToSave.length <= 0) {
valueToSave = " ";
}
valueToSave = Strtran(valueToSave, '--', '##x2d;##x2d;');
valueToSave = Strtran(valueToSave, '"', '\"');
JsonItem[propName] = valueToSave;
}
return JsonItem;
}
function readStandardDef(itemProperties, arrayobj) {
var propName, valueToLoad;
for (var b = 0; b < itemProperties.length; b++) {
propName = itemProperties[b];
valueToLoad = translateCharacters(itemProperties[b + 1]);
readProperty(propName, valueToLoad, arrayobj);
b++;
}
}
function readStandardJsonDef(JsonProperties, arrayobj) {
var propName, valueToLoad;
for (var b in JsonProperties) {
propName = b;
valueToLoad = translateCharacters(JsonProperties[propName]);
readProperty(propName, valueToLoad, arrayobj);
}
}
function readProperty(propName, valueToLoad, arrayobj) {
var i;
switch (propName) {
/*case "":
continue;*/
case "x":
case "xl":
case "xr":
case "y":
if (arrayobj) {
//Inserito per compatibilita' con la versione 4.0 del report in cui venivano scritti i valori x, y, w, h per le variabili.
//arrayobj[arrayobj.length - 1][propName] = valueToLoad;
}
else {
if (parseInt(valueToLoad) < 0) {
PSAlert.alert("Attention: item " + itemsHTML[countindex - 1]["name"] + " with position " + propName + " < 0!");
valueToLoad = 0;
}
itemsHTML[countindex - 1][propName] = parseInt(valueToLoad);
}
break;
case "h":
case "w":
if (arrayobj) {
//Inserito per compatibilita' con la versione 4.0 del report in cui venivano scritti i valori x,y,w,h per le variabili.
//arrayobj[arrayobj.length - 1][propName] = valueToLoad;
}
else {
if (parseInt(valueToLoad) < 0) {
PSAlert.alert("Attention: item " + itemsHTML[countindex - 1]["name"] + " with position " + propName + " < 0!");
valueToLoad = 0;
}
itemsHTML[countindex - 1][propName] = parseInt(valueToLoad);
}
break;
case "uid":
if (reportProp.version < "4.4") {
//Errore presente solo nella versioni precedenti la 4.4. L'uid degli elementi copiati non veniva cambiato.
for (i = 0; i < itemsHTML.length; i++) {
if ((valueToLoad.toUpperCase()) == (itemsHTML[i].uid.toUpperCase())) {
valueToLoad = Upper(AlfaKeyGen(10));
i = itemsHTML.length;
}
}
}
itemsHTML[countindex - 1][propName] = valueToLoad;
break;
case "into_variable":
if (reportProp.version == "4.0") {
//Errore presente solo nella versione 4.0 e precedenti. Il valueToLoad della variabile veniva scritto in minuscolo.
for (i = 0; i < reportVariables.length; i++) {
if ((valueToLoad.toLowerCase()) == (reportVariables[i].name.toLowerCase())) {
itemsHTML[countindex - 1][propName] = reportVariables[i].name;
i = reportVariables.length;
}
}
}
else {
//Dalla versione 4.1 posso operare tranquillamente
itemsHTML[countindex - 1][propName] = valueToLoad;
}
break;
case "link_hidecond":
// Inserito questo test perche' nelle vecchie versioni generate con SitePainter (prima 2011), la link_enable_cond delle label era chiamata ling_hidecond.
itemsHTML[countindex - 1].link_enable_cond = valueToLoad;
break;
case "reset":
if (reportProp.version < "4.5") {
if (itemsHTML[countindex - 1].reset != "end of page" && itemsHTML[countindex - 1].reset != "end of report") {
itemsHTML[countindex - 1].resetuid = getGroupUid(valueToLoad);
}
else {
itemsHTML[countindex - 1].resetuid = valueToLoad;
}
}
break;
case "resetuid":
if (reportProp.version == "4.1" && (LRTrim(valueToLoad) == "" && itemsHTML[countindex - 1]["reset"] == "end of report")) {
/* Errore presente solo nella versione 4.1.
La proprieta' si svuotava quando si scriveva un valore nella proprieta' into variable perche' il suo valore era la stringa vuota nel def.*/
itemsHTML[countindex - 1][propName] = "end of report";
}
else {
//Dalla versione 4.2 posso operare tranquillamente
itemsHTML[countindex - 1][propName] = valueToLoad;
}
break;
case "calculate_on":
if (reportProp.version < "4.5") {
if (itemsHTML[countindex - 1].calculate_on != "each record" && itemsHTML[countindex - 1].calculate_on != "end of report") {
itemsHTML[countindex - 1].calculate_onuid = getGroupUid(valueToLoad);
}
else {
itemsHTML[countindex - 1].calculate_onuid = valueToLoad;
}
}
break;
case "calculate_onuid":
if (reportProp.version == "4.1" && (LRTrim(valueToLoad) == "" && itemsHTML[countindex - 1]["calculate_on"] == "each record")) {
/* Errore presente solo nella versione 4.1.
La proprieta' si svuotava quando si scriveva un valore nella proprieta' into variable perche' il suo valore era la stringa vuota nel def.*/
itemsHTML[countindex - 1][propName] = "each record";
}
else {
//Dalla versione 4.2 posso operare tranquillamente
itemsHTML[countindex - 1][propName] = valueToLoad;
}
break;
case "print_when_change_group":
if (reportProp.version < "4.5") {
if (itemsHTML[countindex - 1].print_when_change_group != "") {
itemsHTML[countindex - 1].print_when_change_groupuid = getGroupUid(valueToLoad);
}
else {
itemsHTML[countindex - 1].print_when_change_groupuid = valueToLoad;
}
}
break;
case "link_target":
if (reportProp.version < "4.1") {
/* Errore presente solo nelle versioni precedenti la 4.2.
La proprieta' link_target_src non esisteva nei vrp generati dal SitePainter Report Painter prima del 15/09/2011. */
if (valueToLoad === "new") {
itemsHTML[countindex - 1].link_target_src = "new window";
itemsHTML[countindex - 1].link_target = "";
}
else if (Trim(valueToLoad) === "") {
itemsHTML[countindex - 1].link_target_src = "same window";
}
else {
itemsHTML[countindex - 1].link_target_src = "frame";
itemsHTML[countindex - 1].link_target = valueToLoad;
}
}
else {
itemsHTML[countindex - 1].link_target = valueToLoad;
}
break;
case "picture":
if (reportProp.version < "4.8") {
if (LRTrim(valueToLoad) != "") {
/* Implementazione presente dalla versione 4.7.
E' stata implementata la global picture. */
itemsHTML[countindex - 1].global_picture = false;
}
else {
itemsHTML[countindex - 1].global_picture = true;
valueToLoad = "";
}
}
itemsHTML[countindex - 1][propName] = valueToLoad;
break;
case "global_picture":
case "global_font":
case "struncate":
case "stretch":
case "print_always":
case "print_in_newpage":
case "exit_at_end":
case "start_each_on_page":
case "as_page_header":
case "print_group_footer":
case "as_page_footer":
case "reprint_header":
case "reprint_footer":
case "printblock":
case "reset_page_number":
case "scale_to_frame_size":
case "keep_proportions":
case "clip_to_frame_size":
case "print_not_found_image":
case "printasbg":
case "stretch_to_right":
if (LRTrim(valueToLoad) == "true") {
itemsHTML[countindex - 1][propName] = true;
}
else {
itemsHTML[countindex - 1][propName] = false;
}
break;
case "privacy":
case "data_danger_level":
case "identifier":
reportProp.contentprivacy++;
itemsHTML[countindex - 1][propName] = valueToLoad;
break;
case "font_weight":
var font;
if (arrayobj) {
font = arrayobj[arrayobj.length - 1]['font'];
}
else {
font = itemsHTML[countindex - 1]['font'];
}
if( font.indexOf('fonts/DejaVu') == 0 && font!='fonts/DejaVuSans-ExtraLight.ttf' ) {
var font_weight = valueToLoad;
valueToLoad = font;
valueToLoad = valueToLoad.substring('fonts/'.length);
valueToLoad = valueToLoad.substring(0, valueToLoad.indexOf('.ttf'));
var vs = valueToLoad.split('-');
var fcssL = vs[0].split(/(?=[A-Z])/);
var fcss = '';
fcss = fcssL[0]+fcssL[1];//DejaVu
for (var k=2; k<fcssL.length; k++) {
fcss += ' ' + fcssL[k]
}
if (arrayobj) {
arrayobj[arrayobj.length - 1]['font'] = fcss + ', sans-serif';
}
else {
itemsHTML[countindex - 1]['font'] = fcss + ', sans-serif';
}
if (vs[1]) {
font_weight = '';
if(vs[1].toLowerCase().indexOf('bold') >= 0) {
font_weight = 'bold';
}
if(vs[1].toLowerCase().indexOf('italic')>=0 || vs[1].toLowerCase().indexOf('oblique')>=0) {
font_weight += ' italic';
}
font_weight = font_weight.trim();
if (font_weight.length > 0) {
if (arrayobj) {
arrayobj[arrayobj.length - 1][propName] = font_weight;
}
else {
itemsHTML[countindex - 1][propName] = font_weight;
}
}
}
else {
if (arrayobj) {
arrayobj[arrayobj.length - 1][propName] = font_weight;
}
else {
itemsHTML[countindex - 1][propName] = font_weight;
}
}
}
else {
if (arrayobj) {
arrayobj[arrayobj.length - 1][propName] = valueToLoad;
}
else {
itemsHTML[countindex - 1][propName] = valueToLoad;
}
}
break;
default:
if (arrayobj) {
arrayobj[arrayobj.length - 1][propName] = valueToLoad;
}
else {
itemsHTML[countindex - 1][propName] = valueToLoad;
}
break;
}
}
function normalizeXML(testo) {
return testo;
}
function getPropID(props, prop) {
for (var b = 0; b < props.length; b++) {
if (props[b][1] == prop) {
return b;
}
}
}
function getObjImg(type/*, types*/) {
var image_path = "../portalstudio/images/";
switch (type.toLowerCase()) {
case "label":
image_path += "icon/bot_label_off.png";
break;
case "expr":
image_path += "icon/bot_Expression_off.png";
break;
case "image":
image_path += "bot_image_128.png";
break;
case "box":
image_path += "icon/bot_boxarea_off.png";
break;
case "hline":
image_path += "icon/bot_horizontalline_off.png";
break;
case "vline":
image_path += "icon/bot_verticalline_off.png";
break;
case "chart":
image_path += "bot_graphics_128.png";
break;
case "group":
case "group_top":
case "group_down":
image_path += "icon/bot_group_off.png";
break;
case "section":
case "section_top":
case "section_down":
image_path += "icon/bot_section_off.png";
break;
case "altquery":
case "altquery_top":
case "altquery_down":
image_path += "icon/bot_altquery_off.png";
break;
case "breakpage":
image_path += "icon/bot_pagebreak_off.png";
break;
case "htmlsection":
image_path += "icon/bot_htmlsection_off.png";
break;
case "autocover":
image_path += "icon/bot_autocover_off.png";
break;
case "sectbo":
case "sectbo_top":
case "sectbo_down":
image_path += "icon/bot_sect_bo_off.png";
break;
case "variable":
image_path += "icon/mn_Var_blue.png";
break;
case "barcode":
image_path += "bot_barcode_128.png";
break;
case "barcode2d":
image_path += "bot_barcode2d_128.png";
break;
case "signmark":
image_path += "bot_signmup_128.png";
break;
case "signsvg":
image_path += "bot_signsvg_128.png";
break;
case "tinyhtml":
image_path += "bot_tinyhtml_128.png";
break;
}
image_path += "";
return image_path;
}
function getPropDescObj(obj, propID) {
var ret = {};
ret.desc = propID;
ret.prop = propID;
if (obj.objClass.newProperties) {
var tab, i, ii;
for (i in obj.objClass.newProperties) {
tab = obj.objClass.newProperties[i];
for (ii = 0; ii < tab.length; ii++) {
if (tab[ii].propID == propID) {
ret.desc = tab[ii].name;
ret.tab = i;
return ret;
}
}
}
}
return ret;
}