Imports System.Xml Inst2Page.aspx Partial Class Inst2Form Inherits System.Web.UI.Page Protected Sub InitVent(ByRef XMLDoc As XmlDocument) For Each elem As String In Std.ventType Type1.Items.Add(elem) Dim n0 As XmlNode Dim Elements As XmlNodeList = XMLDoc.GetElementsByTagName("VENTILATION") For Each n0 In Elements Dim part As Integer = n0.item("part").innertext Dim typ As Integer = Std.GetTyp(part) Dim im As Integer = Std.GetImp(part) Type1.SelectedIndex = typ Protected Sub UpdateVent(ByRef XMLDoc As XmlDocument) Dim i0 As Integer = Type1.SelectedIndex Be06.UpdateVent(XMLDoc, i0) Protected Sub ShowDistHt() For Each elem As String In Std.DistHt Protected Sub ShowBoiler(ByVal type As Integer) If type > 11 Then Loss.Text = "0" Loss.Text = CType(Session("boiler_loss"), String) Dim elem As String Type2.Items.Clear() Select Case type Case 0, 2 For Each elem In Std.BoilerGroup_02 Case 1, 3 For Each elem In Std.BoilerGroup_13 Case 4 For Each elem In Std.BoilerGroup_4 Case 5 For Each elem In Std.BoilerGroup_5 Case 6 For Each elem In Std.BoilerGroup_6 Case For Each elem In Std.BoilerGroup_7 Side 1
End Select Inst2Page.aspx Protected Sub InitHeating(ByRef xml As XmlDocument) For Each elem As String In Std.VpType VpType.Items.Add(elem) Dim item As String = Be06.GetElement(xml, "BOILER", "id") Dim heat As Integer = Be06.GetHeatType(xml) If heat = 1 Then HeatType.Text = "Fjernvarme" ShowDistHt() VpType.Enabled = True Type2.SelectedValue = item Boiler.Items.Add("Intet valg") Boiler.Visible = False If heat = 0 Then VpType.Enabled = True Dim fuel_oil As Boolean = Be06.FuelOil(xml) If fuel_oil Then HeatType.Text = "Oliekedel" For Each elem As String In Std.BoilerType Boiler.Items.Add(elem) Dim group As Integer = Be06.GetElement(xml, "DESCRIPT", "id") If group < 0 Then Dim year As Integer = CType(Session("year"), Integer) group = Std.BoilerGroup(year) Boiler.SelectedIndex = group ShowBoiler(group) Type2.SelectedValue = item SelBoiler.Visible = True LabelLoss.Visible = True Loss.Visible = True HeatType.Text = "Gaskedel" For Each elem As String In Std.GasBoilerType Type2.SelectedValue = item Boiler.Visible = False HeatType.Text = "El" Type2.Items.Add("Intet valg") Type2.Enabled = False VpType.Enabled = True Boiler.Items.Add("Intet valg") Boiler.Visible = False Dim ht_sup As Integer = CType(Session("heat_sup"), Integer) Dim fu_sup As Integer = CType(Session("fuel_sup"), Integer) Dim cons_sup As String = CType(Session("cons_sup"), String) If cons_sup.length < 1 Then ConsSup.Text = "0" If ht_sup > 0 Then HeatSup.Text = Std.NameSupFuel(fu_sup) ConsSup.Enabled = True ConsSup.Text = cons_sup HeatSup.Text = "Ingen supplerende opvarmning" ConsSup.Enabled = False ConsSup.BackColor = Drawing.Color.LightGray Side 2
Protected Sub UpdateHeating(ByRef xml As XmlDocument) Dim i0 As Integer = Type2.SelectedIndex Dim id0 As String = Type2.SelectedItem.Text Dim ht_type = Be06.GetHeatType(xml) Select Case ht_type Case 0 ' kedel If Be06.FuelOil(xml) Then Dim i2 As Integer = Boiler.SelectedIndex Be06.UpdateBoiler(xml, Std.oil2_table, i2, id0) Be06.EditModel(xml, "DESCRIPT", "id", i2) ' boiler group Session.Item("boiler_loss") = Loss.Text Be06.UpdateBoiler(xml, Std.gas_table, i0, id0) Case 1 ' fjernvarme Be06.UpdateDistHt(xml, i0) Case 2 ' el End Select Be06.EditModel(xml, "COOLING", "id", Loss.Text) Be06.EditModel(xml, "BOILER", "id", Type2.SelectedItem.Text) Be06.EditModel(xml, "DESCRIPT", "bbr", ConsSup.Text) ' Consumption sup Session.Item("cons_sup") = ConsSup.Text Protected Sub ShowSolarPanel(ByRef xml As XmlDocument) Svtype.Items.Clear() For Each elem As String In Std.SunColType Svtype.Items.Add(elem) Dim active As Boolean = Be06.IsTrue(Be06.GetElement(xml, "BUILDING", "solarpanel")) Area.Text = Be06.GetElement(xml, "SOLAR_COLLECTOR", "area").replace(".", ",") Orient.Text = Be06.GetElement(xml, "SOLAR_COLLECTOR", "orient").replace(".", ",") Slope.Text = Be06.GetElement(xml, "SOLAR_COLLECTOR", "slope").replace(".", ",") Dim type As String = Be06.GetElement(xml, "SOLAR_COLLECTOR", "has_type") If Not active Then Svtype.SelectedIndex = 0 If type = ".K_TYPE." Then Svtype.SelectedIndex = 2 Svtype.SelectedIndex = 1 VpType.SelectedIndex = Session.Item("heatpump") Session.Item("hp_ex") = VpType.SelectedIndex Protected Sub UpdateSolarPanel(ByRef xml As XmlDocument) Dim hpump As Integer = VpType.SelectedIndex Session.Item("heatpump") = hpump Be06.UpdateHeatPump(xml, hpump) Dim a0 As Double = Area.Text.Replace(".", ",") Dim col As Integer = Svtype.SelectedIndex Be06.EditModel(xml, "BUILDING", "solarpanel", Be06.GetBool(col > 0 And a0 > 0.0)) Dim n0 As XmlNode Dim Elements As XmlNodeList = xml.getelementsbytagname("solar_collector") For Each n0 In Elements n0.item("area").innertext = Area.Text.Replace(",", ".") n0.item("orient").innertext = Orient.Text.Replace(",", ".") n0.item("slope").innertext = Slope.Text.Replace(",", ".") If col > 1 Then n0.item("has_type").innertext = ".K_TYPE." n0.item("has_type").innertext = ".B_TYPE." Side 3
If Area.Text > 0.0 Then If hpump < 1 Then If col = 1 Then ' brugsvand Be06.EditModel(xml, "DHW_TANK", "vol", "192") Be06.EditModel(xml, "DHW_TANK", "heat_loss", "2.7") Be06.EditModel(xml, "DHW_TANK", "vol", "400") Be06.EditModel(xml, "DHW_TANK", "heat_loss", "3.2") Be06.EditModel(xml, "DHW_TANK", "has_el_heat", ".DHW_S.") Be06.EditModel(xml, "DHW_TANK", "solar_heat", ".T.") If hpump < 1 Then Be06.EditModel(xml, "DHW_TANK", "vol", "60") Be06.EditModel(xml, "DHW_TANK", "heat_loss", "0.9") Be06.EditModel(xml, "DHW_TANK", "has_el_heat", ".DHW_N.") Be06.EditModel(xml, "DHW_TANK", "solar_heat", ".F.") Protected Function GetData(ByRef data As String) As String Dim m0 As Integer = data.indexof(";") Dim str As String = data.substring(0, m0) data = data.substring(m0 + 1) str End Function Protected Function UpdateBuildingData(ByRef xml As XmlDocument, ByVal cons As String) As Boolean Dim data As String = Be06.GetElement(xml, "COMMENTS", "id") Try If data.length > 0 Then Dim id As String = GetData(data) If id = Be06.model_id Then For i = 1 To 5 Dim parm0 As String = GetData(data) id += ";" + parm0 Dim parm As String = GetData(data) id += ";" + cons id += ";" + data True Catch ex As Exception End Try False End Function Be06.EditModel(xml, "COMMENTS", "id", id) Protected Sub Dim ex As Integer = CType(Session("exist"), Integer) Dim xml2 As String = CType(Session("savexmldoc"), String) Dim xml As XmlDocument = New XmlDocument If ex > 0 Then xml = CType(Session("xmldoc"), XmlDocument) xml.loadxml(xml2) UpdateVent(xml) UpdateSolarPanel(xml) UpdateHeating(xml) UpdateBuildingData(xml, Consumption.Text) Dim kr As Double = CType(Session("eprice"), Double) Dim el_price As Double = CType(Session("el_price"), Double) Dim ht As Integer = CType(Session("heating"), Double) Dim xml0 As String = xml.outerxml Side 4 ' Bygningsdata
If ex < 1 Then Dim no_change As Boolean = xml0.equals(xml2) If no_change Then Session.Item("exist") = 2 Session.Item("xmldoc") = xml Dim price, el0 As Double Dim dem As Double = Be06.GetDemand(xml, kr, el_price, price, el0) Dim std_cons = Be06.GetConsUnit(ht, dem - el0) ' forbrug i valgte enhed/m2 If Math.Abs(std_cons) < 0.001 Then std_cons = dem Session.Item("consump") = Consumption.Text Session.Item("consump_kr") = Consumption.Text * kr Session.Item("std_cons0") = std_cons Session.Item("cons0") = dem Session.Item("last_kwh") = dem Session.Item("last_kr0") = price Session.Item("el0") = el0 Session.Item("kr0") = price Session.Item("savexmldoc") = xml0 Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init If Not Page.IsPostBack Then Dim ex As Integer = CType(Session("exist"), Integer) Dim ht As Integer = Session("heating") Dim tmp As String = "" Be06.ShowCons(ht, Cons.Text, tmp) Dim cons0 As String = CType(Session("consump"), String) Consumption.Text = cons0 Dim xml As XmlDocument = New XmlDocument If ex > 0 Then xml = CType(Session("xmldoc"), XmlDocument) Dim doc As String = CType(Session("savexmldoc"), String) xml.loadxml(doc) InitVent(xml) InitHeating(xml) ShowSolarPanel(xml) Protected Function CheckVars() As Boolean Dim ok As Boolean = True Message.Text = "" If Not Be06.IsNum(Loss.Text) Then Message.Text += " Røggastab" Dim ls As Double = Loss.Text If ls < 0.0 Or ls > 50.0 Then Message.Text += " Ikke tilladt røggastab" If Not Be06.IsNum(Consumption.Text) Then Message.Text += " Varmeforbrug" If Not Be06.IsNum(ConsSup.Text) Then Message.Text += " Varmeforbrug, supplerende" Side 5
If Not Be06.IsNum(Area.Text) Then Message.Text += " Areal" If Not Be06.IsNum(Slope.Text) Then Message.Text += " Hældning" If Not ok Then Message.Text += " er udefineret." ok End Function Protected Sub RedirSession(ByRef link As String) If CheckVars() Then Page.Response.Redirect(link) Protected Sub ButtonBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonBack.Click RedirSession("WinexPage.aspx") Protected Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button.Click RedirSession("WallPage.aspx") Protected Sub ImageAbout_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageAbout.Click Session.Item("PrevPage") = "Inst2Page.aspx" Page.Response.Redirect("AboutPage.aspx") Protected Sub ImageHelp_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageHelp.Click Session.Item("PrevPage") = "Inst2Page.aspx" Page.Response.Redirect("HelpPage.aspx") Protected Sub ImageMain_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageMain.Click RedirSession("Default.aspx") Protected Sub ImageWall0_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageWall0.Click RedirSession("EnvPage.aspx") Protected Sub ImageWin0_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageWin0.Click RedirSession("WinexPage.aspx") Protected Sub ImageWall1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageWall1.Click RedirSession("WallPage.aspx") Protected Sub ImageWin1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageWin1.Click RedirSession("WinPage.aspx") Side 6
Protected Sub ImageInst1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageInst1.Click RedirSession("Install2Page.aspx") Protected Sub ImageDoc_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageDoc.Click RedirSession("ResPage.aspx") Protected Sub Boiler_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Boiler.SelectedIndexChanged ShowBoiler(Boiler.SelectedIndex) Protected Sub Check_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Check.Click If CheckVars() Then Dim ht As Integer = Session("heating") Dim area As Double = CType(Session("area"), Double) Dim cons0 As Double = CType(Session("std_cons0"), Double) cons0 = Math.Round(area * cons0, 0) Dim unit As String = Be06.Unit(ht) Dim cons As Double = CType(Consumption.Text, Double) Dim dif As Double = Math.Round(100.0 * (cons - cons0) / cons0, 0) dif = Math.Abs(dif) Message.Text = "Teoretisk varmeforbrug: " & cons0 & " " & unit & " + opgivet biobrændsel. Opgivet forbrug afviger " & dif & "%" Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton1.Click RedirSession("http://tools.sparolie.dk/positivliste.asp") End Class Side 7