Files
Facilitor/APPL/CAD/PrintFG.asp
Jos Groot Lipman 9a7f6d1087 Iets consequenter variabele namen op _key laten eindigen
svn path=/Website/trunk/; revision=26849
2015-11-02 12:11:57 +00:00

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();
}
%>