188 lines
6.3 KiB
Plaintext
188 lines
6.3 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
File: PrintFG.asp
|
|
Description: Genereer een FG-rapport op basis van een stylesheet
|
|
Parameters:
|
|
mode required: MODE_IN or MODE_OUT
|
|
allFloor required: 0 of 1
|
|
vKey required als allFloor = 0: ALG_VERDIEPING_KEY
|
|
gKey required als allFloor = 1: ALG_GEBOUW_KEY
|
|
Thema optional: CAD_THEMA_KEY
|
|
Label optional: CAD_LABEL_KEY
|
|
Discs optional: comma-separated INS_DISCIPLINE_KEY
|
|
highlight optional: comma-separated ALG_RUIMTE_KEY
|
|
|
|
pngURL voorgevormde SLNKDWF plaatje URL
|
|
Context:
|
|
Note:
|
|
*/
|
|
%>
|
|
|
|
<!-- #include file='../Shared/common.inc' -->
|
|
<!-- #include file='../CAD/FGII.inc' -->
|
|
<!-- #include file="../Shared/xml_converter.inc" -->
|
|
|
|
<%
|
|
var inoutMode = getQParam("mode");
|
|
var pAllFloor = getQParam("AllFloor", 0);
|
|
if (pAllFloor == 0)
|
|
pvKey = getQParamInt("vKey");
|
|
else
|
|
pgKey = getQParamInt("gKey");
|
|
|
|
var highlight_arr = getQParamIntArray("highlight", []); // Comma-separated room_key_list (terrains). Optional
|
|
var pDiscs_arr = getQParamIntArray("discs", []);
|
|
var pThema_key = getQParamInt("thema", -1);
|
|
var pLabel_key = getQParamInt("label", -1);
|
|
var pDWGScale = getQParamFloat("DWGScale", -1);
|
|
var pScenario = getQParamInt("scenario_key", -1);
|
|
|
|
var pXSLMode = getQParam("XSLmode");
|
|
|
|
var pngURL = getQParam("pngURL");
|
|
|
|
function setXMLtagValue (tag, value)
|
|
{
|
|
if (value == 'null')
|
|
value = '';
|
|
ts.Write('<' + tag + '>');
|
|
ts.Write(safe.html(value) );
|
|
ts.WriteLine('</' + tag + '> ');
|
|
}
|
|
|
|
function setXMLtagValueKenmerk (groepnaam, naam, type, volgnummer, kenmerkkey, value)
|
|
{
|
|
if (value == 'null')
|
|
{
|
|
value = '';
|
|
}
|
|
ts.Write('<' + groepnaam + ' naam="' + naam + '" type="' + type + '" volgnummer="' + volgnummer + '" kenmerkkey="' + kenmerkkey + '">');
|
|
ts.Write(safe.html(value));
|
|
ts.WriteLine('</' + groepnaam + '> ');
|
|
}
|
|
|
|
// Tijdelijk voor de XML
|
|
var tempXML = "../../Temp/fg_" + Session.SessionID + ".xml";
|
|
|
|
var fs = Server.CreateObject("Scripting.FileSystemObject");
|
|
var ts = fs.CreateTextFile(Server.MapPath(tempXML), true);
|
|
|
|
//-- Get version Facilitor
|
|
sql = "SELECT MAX(fac_module_version)"
|
|
+ " FROM fac_module"
|
|
|
|
oRs = Oracle.Execute(sql);
|
|
if (!oRs.eof)
|
|
var r_version = '' + oRs(0);
|
|
|
|
var dt = new Date();
|
|
var r_DateYear = dt.getFullYear();
|
|
var r_DateMonth = dt.getMonth() + 1;
|
|
var r_DateDay = dt.getDate();
|
|
var r_DateTime = r_DateDay + "-" + r_DateMonth + "-" + r_DateYear
|
|
+ " "
|
|
+ dt.getHours()+":"
|
|
+ (dt.getMinutes() < 10? "0" + dt.getMinutes() : dt.getMinutes()) + ":"
|
|
+ (dt.getSeconds() < 10? "0" + dt.getSeconds() : dt.getSeconds());
|
|
//-- header of xml file
|
|
ts.WriteLine('<?xml version="1.0" encoding="UTF-8"?>');
|
|
|
|
r_xslsheet = GetStylesheet();
|
|
|
|
// -- root tag
|
|
ts.WriteLine('<facilitor>');
|
|
|
|
ts.WriteLine('<header>');
|
|
setXMLtagValue ('dateTime', r_DateTime);
|
|
setXMLtagValue ('dateDay', r_DateDay);
|
|
setXMLtagValue ('dateMonth', r_DateMonth);
|
|
setXMLtagValue ('dateYear', r_DateYear);
|
|
setXMLtagValue ('user', custpath);
|
|
setXMLtagValue ('custid', custpath);
|
|
setXMLtagValue ('version', r_version);
|
|
ts.WriteLine('</header>');
|
|
|
|
var sql = "SELECT d.alg_district_key"
|
|
+ ", d.alg_district_omschrijving"
|
|
+ ", l.alg_locatie_omschrijving"
|
|
+ ", l.alg_locatie_code"
|
|
+ ", g.alg_gebouw_code"
|
|
+ ", g.alg_gebouw_omschrijving"
|
|
+ ", v.alg_verdieping_key"
|
|
+ ", v.alg_verdieping_code"
|
|
+ ", v.alg_verdieping_omschrijving"
|
|
+ " FROM alg_verdieping v"
|
|
+ ", alg_gebouw g"
|
|
+ ", alg_locatie l"
|
|
+ ", alg_district d"
|
|
+ ", cad_tekening ct"
|
|
+ " WHERE v.alg_gebouw_key = g.alg_gebouw_key"
|
|
+ " AND g.alg_locatie_key = l.alg_locatie_key"
|
|
+ " AND l.alg_district_key = d.alg_district_key"
|
|
+ " AND ct.alg_verdieping_key = v.alg_verdieping_key"
|
|
if (pAllFloor == 0)
|
|
sql += " AND v.alg_verdieping_key = " + pvKey;
|
|
else
|
|
sql += " AND g.alg_gebouw_key = " + pgKey;
|
|
|
|
sql += " ORDER BY alg_verdieping_volgnr";
|
|
|
|
oRFs = Oracle.Execute(sql);
|
|
while (!oRFs.eof)
|
|
{
|
|
ts.WriteLine('<printfg>');
|
|
setXMLtagValue('pngURL', pngURL);
|
|
setXMLtagValue('vKey', oRFs("alg_verdieping_key")); // Kan ook loc_key zijn bij buiten
|
|
setXMLtagValue('highlight', highlight_arr.join(","));
|
|
setXMLtagValue('Discs', pDiscs_arr.join(","));
|
|
setXMLtagValue('THEMA_KEY', pThema_key);
|
|
setXMLtagValue('LABEL_KEY', pLabel_key);
|
|
setXMLtagValue('inoutMode', inoutMode);
|
|
setXMLtagValue('DWGScale', pDWGScale);
|
|
setXMLtagValue('scenario', pScenario);
|
|
|
|
if (pThema_key > 0)
|
|
{
|
|
sql = "SELECT "+ lcl.xsqla('cad_thema_omschrijving', 'cad_thema_key')
|
|
+ ", CAD_LEGENDA_KEY "
|
|
+ " FROM CAD_THEMA "
|
|
+ " WHERE CAD_THEMA_KEY = " + pThema_key;
|
|
oRs = Oracle.Execute( sql );
|
|
ts.WriteLine('<thema>');
|
|
setXMLtagValue ('CAD_THEMA_OMSCHRIJVING', '' + oRs("CAD_THEMA_OMSCHRIJVING"));
|
|
setXMLtagValue ('CAD_LEGENDA_KEY', '' + oRs("CAD_LEGENDA_KEY"));
|
|
ts.WriteLine('</thema>');
|
|
}
|
|
|
|
ts.WriteLine('<plaats>');
|
|
setXMLtagValue ('alg_district_omschrijving', '' + oRFs("alg_district_omschrijving"));
|
|
setXMLtagValue ('alg_locatie_code', '' + oRFs("alg_locatie_code"));
|
|
setXMLtagValue ('alg_locatie_omschrijving', '' + oRFs("alg_locatie_omschrijving"));
|
|
setXMLtagValue ('alg_gebouw_code', '' + oRFs("alg_gebouw_code"));
|
|
setXMLtagValue ('alg_gebouw_omschrijving', '' + oRFs("alg_gebouw_omschrijving"));
|
|
setXMLtagValue ('alg_verdieping_code', '' + oRFs("alg_verdieping_code"));
|
|
setXMLtagValue ('alg_verdieping_omschrijving', '' + oRFs("alg_verdieping_omschrijving"));
|
|
ts.WriteLine('</plaats>');
|
|
ts.WriteLine('</printfg>');
|
|
oRFs.MoveNext();
|
|
}
|
|
|
|
ts.WriteLine('</facilitor>');
|
|
ts.Close();
|
|
|
|
// Beetje omslachtig om eerst in een bestand te schrijven en vervolgens
|
|
// alleen maar terug te lezen maar zo was de code nou eenmaal
|
|
var inFile = fs.OpenTextFile(Server.MapPath(tempXML));
|
|
var xml_content = inFile.ReadAll();
|
|
inFile.Close()
|
|
STR2Stream(xml_content, r_xslsheet, Response, { mode: pXSLMode });
|
|
|
|
if ((Session("logging") & 1) == 0)
|
|
{
|
|
ts = fs.GetFile(Server.MapPath(tempXML));
|
|
ts.Delete();
|
|
}
|
|
%> |