FORMULARIS 1-. FRM_BD_COMERCIAL

Size: px
Start display at page:

Download "FORMULARIS 1-. FRM_BD_COMERCIAL"

Transcription

1

2 Capítol 1: FORMULARIS 1-. FRM_BD_COMERCIAL

3 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_COMERCIAL.vb Option Explicit On 'Option Strict On 1 Imports System Imports System.IO Imports System.Net Imports System.Text Imports System.Data Imports System.Data.OleDb Imports System.Web Public Class FRM_BD_COMERCIAL Private Sub FRM_BD_COMERCIAL_FormClosed(ByVal sender As Object, ByVal e As System. Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_BD_COMERCIAL_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load 'COMPROVEM SI ES UN FORMULARI D'IMPORTACIO If Me.Owner IsNot Nothing Then If Me.Owner.Name = "FRM_DIM_AILLAT" Then BTO_COPIAR_MODUL.Visible = True BTO_COPIAR_INVERSOR.Visible = True BTO_COPIAR_BATERIES.Visible = True BTO_COPIAR_REGULADOR.Visible = True IDIOMES.TraduirApp(Me) 'CARREGUEM LA INFORMACIÓ DELS FABRICANTS DE MODULS FV Try Dim DS_FAB_FV As Data.DataSet DS_FAB_FV = GENERAL.BD_COMERCIAL.StrConsultar(TAULA_COM_FV_FABRICANTS,,, "NOM_FABRICANT") ("WEB") If DS_FAB_FV.Tables(0).Rows.Count <> 0 Then CMBFV_FABRICANTS.DataSource = DS_FAB_FV.Tables(0) CMBFV_FABRICANTS.DisplayMember = "NOM_FABRICANT" LBL_WEB.Text = CMBFV_FABRICANTS.Items(CMBFV_FABRICANTS.SelectedIndex).ITEM Errors.MostrarMSG(999503) CMBFV_FABRICANTS.DataSource = Nothing Me.LBL_WEB.Text = "" Me.CMBFV_MODELS.Text = "" Catch ex As Exception CMBFV_FABRICANTS.DataSource = Nothing Me.LBL_WEB.Text = "" Me.CMBFV_MODELS.Text = "" End Try 'CARREGUEM LA INFORMACIÓ DELS FABRICANTS D'INVERSORS Try Dim DS_FAB_INV As Data.DataSet DS_FAB_INV = GENERAL.BD_COMERCIAL.StrConsultar(TAULA_COM_INVERSORS_FABRICANTS,,, "NOM_FABRICANT") If DS_FAB_INV.Tables(0).Rows.Count <> 0 Then CMBINV_FABRICANTS.DataSource = DS_FAB_INV.Tables(0) CMBINV_FABRICANTS.DisplayMember = "NOM_FABRICANT" CMBINV_FABRICANTS.DataSource = Nothing Me.LBLINV_WEB.Text = "" Me.CMBINV_MODELS.Text = "" Catch ex As Exception

4 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_COMERCIAL.vb Errors.MostrarMSG(999503) CMBB_FABRICANTS.DataSource = Nothing Me.LBLINV_WEB.Text = "" Me.CMBINV_MODELS.Text = "" End Try 2 'CARREGUEM LA INFORMACIÓ DELS FABRICANTS DE BATERIES Try Dim DS_FAB_BAT As Data.DataSet DS_FAB_BAT = GENERAL.BD_COMERCIAL.StrConsultar(GENERAL. TAULA_COM_BATERIES_FABRICANTS,,, "NOM_FABRICANT") If DS_FAB_BAT.Tables(0).Rows.Count <> 0 Then CMBB_FABRICANTS.DataSource = DS_FAB_BAT.Tables(0) CMBB_FABRICANTS.DisplayMember = "NOM_FABRICANT" CMBB_FABRICANTS.DataSource = Nothing Me.LBL_B_WEB.Text = "" Me.CMBB_MODEL.Text = "" Catch ex As Exception Errors.MostrarMSG(999503) CMBB_FABRICANTS.DataSource = Nothing Me.LBL_B_WEB.Text = "" Me.CMBB_MODEL.Text = "" End Try 'CARREGUEM LA INFORMACIÓ DELS FABRICANTS DE REGULADORS Try Dim DS_FAB_REG As Data.DataSet DS_FAB_REG = GENERAL.BD_COMERCIAL.StrConsultar(GENERAL. TAULA_COM_REGULADORS_FABRICANTS,,, "NOM_FABRICANT") If DS_FAB_REG.Tables(0).Rows.Count <> 0 Then CMBR_FABRICANTS.DataSource = DS_FAB_REG.Tables(0) CMBR_FABRICANTS.DisplayMember = "NOM_FABRICANT" CMBR_FABRICANTS.DataSource = Nothing Me.LBL_R_WEB.Text = "" Me.CMBR_MODEL.Text = "" Catch ex As Exception Errors.MostrarMSG(999503) CMBB_FABRICANTS.DataSource = Nothing Me.LBL_R_WEB.Text = "" Me.CMBR_MODEL.Text = "" End Try Private Sub BTO_CANCELAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_TANCAR.Click Me.Close() Private Sub CMBFV_FABRICANTS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBFV_FABRICANTS.SelectedIndexChanged LBL_WEB.Text = CMBFV_FABRICANTS.Items(CMBFV_FABRICANTS.SelectedIndex).ITEM("WEB"). ToString Dim DS_FV As Data.DataSet DS_FV = GENERAL.BD_COMERCIAL.StrConsultar(TAULA_COM_FV,, "ID_FABRICANT=" & CMBFV_FABRICANTS.Items(CMBFV_FABRICANTS.SelectedIndex).ITEM("ID_FABRICANT"), "MODEL") If DS_FV.Tables(0).Rows.Count <> 0 Then CMBFV_MODELS.DataSource = DS_FV.Tables(0) CMBFV_MODELS.DisplayMember = "MODEL" CMBFV_MODELS.DataSource = Nothing

5 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_COMERCIAL.vb 3 Private Sub CMBFV_MODELS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBFV_MODELS.SelectedIndexChanged Dim arrelements() As System.Windows.Forms.Control = Nothing GENERAL.ObtenirElements(Me.TAB_FV, arrelements, False) GENERAL.ObtenirFormBD(GENERAL.BD_COMERCIAL, GENERAL.TAULA_COM_FV, arrelements, CMBFV_MODELS.Items(CMBFV_MODELS.SelectedIndex).ITEM("ID_MODULSFV")) 'CARREGUEM LA IMATGE Dim msimage As MemoryStream Dim IMG As Byte() IMG = CMBFV_MODELS.Items(CMBFV_MODELS.SelectedIndex).ITEM("IMATGE_BIN") msimage = New MemoryStream(IMG) IMG_MODUL.Image = Image.FromStream(msImage) Private Sub ICC2_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles VMPP.TextChanged Private Sub Label8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBLFV_SIM_W.Click Private Sub LBL_WEB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBL_WEB.Click If LBL_WEB.Text.Trim <> "" Then Process.Start(" & LBL_WEB.Text) Private Sub LBL_WEB_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles LBL_WEB.MouseHover Me.Cursor = Cursors.Hand Private Sub LBL_WEB_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles LBL_WEB.MouseLeave Me.Cursor = Cursors.Default Private Sub Label60_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBLR3_SIM_V.Click Private Sub TabPage9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_AMBIENTAL.Click Private Sub TAB_MODULS_FV_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TAB_MODULS_FV.Click Private Sub CMBINV_FABRICANTS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBINV_FABRICANTS.SelectedIndexChanged LBLINV_WEB.Text = CMBINV_FABRICANTS.Items(CMBINV_FABRICANTS.SelectedIndex).ITEM( "WEB").ToString Dim DS_INV As Data.DataSet DS_INV = GENERAL.BD_COMERCIAL.StrConsultar(TAULA_COM_INVERSORS,, "Id_Fabricant=" & CMBINV_FABRICANTS.Items(CMBINV_FABRICANTS.SelectedIndex).ITEM("Id_Fabricant"), "MODEL")

6 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_COMERCIAL.vb 4 If DS_INV.Tables(0).Rows.Count <> 0 Then CMBINV_MODELS.DataSource = DS_INV.Tables(0) CMBINV_MODELS.DisplayMember = "MODEL" CMBINV_MODELS.DataSource = Nothing Private Sub CMBINV_MODELS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBINV_MODELS.SelectedIndexChanged Dim arrelements() As System.Windows.Forms.Control = Nothing GENERAL.ObtenirElements(Me.TAB_INV, arrelements, False) GENERAL.ObtenirFormBD(GENERAL.BD_COMERCIAL, GENERAL.TAULA_COM_INVERSORS, arrelements, CMBINV_MODELS.Items(CMBINV_MODELS.SelectedIndex).ITEM("ID_INVERSORS")) 'CARREGUEM LA IMATGE Dim msimage As MemoryStream Dim IMG As Byte() IMG = CMBINV_MODELS.Items(CMBINV_MODELS.SelectedIndex).ITEM("IMAGE_BIN") msimage = New MemoryStream(IMG) IMG_INV.Image = Image.FromStream(msImage) 'CARREGUEM LES PROTECCIONS LSTI_PROTECCIONS.Items.Clear() Dim arrproteccions() As String arrproteccions = CMBINV_MODELS.Items(CMBINV_MODELS.SelectedIndex).item( "PROTECCIONS").ToString.Split(",") For Each p As String In arrproteccions LSTI_PROTECCIONS.Items.Add(p.Trim) Private Sub BTO_COPIAR_MODUL_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_COPIAR_MODUL.Click Dim ArrCtr() As Control = Nothing For Each ctr As Control In Me.Owner.Controls GENERAL.ObtenirElements(ctr, ArrCtr, False, True) For Each ctr As Control In ArrCtr Select Case ctr.name Case "TXTM_FABRICANT" ctr.text = Me.CMBFV_FABRICANTS.Text Case "TXTM_MODEL" ctr.text = Me.CMBFV_MODELS.Text Case "TXTM_TIPOLOGIA" ctr.text = Me.TXTFV_TIPUSCELES.Text Case "TXTM_W_NOM" ctr.text = Me.TXTFV_WNOM.Text Case "TXTM_ISC" ctr.text = Me.TXTFV_ISC.Text Case "TXTM_VOC" ctr.text = Me.TXTFV_VCO.Text Case "TXTM_VMP" ctr.text = Me.TXTFV_VCO.Text Case "TXTM_IMP" ctr.text = Me.TXTFV_ISC.Text End Select Errors.MostrarMSG(900002) Private Sub BTO_COPIAR_INVERSOR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_COPIAR_INVERSOR.Click Dim ArrCtr() As Control = Nothing

7 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_COMERCIAL.vb For Each ctr As Control In Me.Owner.Controls GENERAL.ObtenirElements(ctr, ArrCtr, False, True) 5 For Each ctr As Control In ArrCtr Select Case ctr.name Case "TXTI_FABRICANT" ctr.text = Me.CMBINV_FABRICANTS.Text Case "TXTI_MODEL" ctr.text = Me.CMBINV_MODELS.Text Case "TXTI_VDC" ctr.text = Me.TXTI_VNOMDC.Text Case "TXTI_VAC" ctr.text = Me.TXTI_VNOMAC.Text Case "TXTI_WNOM" If Convert.ToDouble(Me.TXTI_WNOMAC.Text) >= Convert.ToDouble(Me. TXTI_WNOMDC.Text) Then ctr.text = Me.TXTI_WNOMAC.Text ctr.text = Me.TXTI_WNOMDC.Text ctr.text = Me.TXTI_WNOMAC.Text Case "TXTI_WMAX" ctr.text = Me.TXTI_WMAXAC.Text Case "TXT_I_CARREGA" ctr.text = Me.TXTI_INOMAC.Text Case "TXT_V_CARREGA" If Convert.ToDouble(Me.TXTI_VMAXAC.Text) >= Convert.ToDouble(Me. TXTI_VMAXDC.Text) Then ctr.text = Me.TXTI_VMAXAC.Text ctr.text = Me.TXTI_VMAXDC.Text End Select Errors.MostrarMSG(900002) Private Sub BTO_COPIAR_BATERIES_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_COPIAR_BATERIES.Click Dim ArrCtr() As Control = Nothing For Each ctr As Control In Me.Owner.Controls GENERAL.ObtenirElements(ctr, ArrCtr, False, True) For Each ctr As Control In ArrCtr Select Case ctr.name Case "TXTB_FABRICANT" ctr.text = Me.CMBB_FABRICANTS.Text Case "TXTB_MODEL" ctr.text = Me.CMBB_MODEL.Text Case "TXTB_TIPUS" ctr.text = Me.TXTB_TIPOLOGIA.Text Case "TXTB_V_NOM" ctr.text = Me.TXTB_V_NOM.Text Case "TXTB_CAPACITAT" ctr.text = Me.TXTB_CAPACITAT.TexT End Select Errors.MostrarMSG(900002) Private Sub TAB_BATERIES_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TAB_BATERIES.Click Private Sub BTO_COPIAR_REGULADOR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_COPIAR_REGULADOR.Click Dim ArrCtr() As Control = Nothing For Each ctr As Control In Me.Owner.Controls

8 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_COMERCIAL.vb GENERAL.ObtenirElements(ctr, ArrCtr, False, True) 6 For Each ctr As Control In ArrCtr Select Case ctr.name Case "TXTR_FABRICANT" ctr.text = Me.CMBR_FABRICANTS.Text Case "TXTR_MODEL" ctr.text = Me.CMBR_MODEL.Text Case "TXTR_VNOM" ctr.text = Me.TXTR_V_NOM.Text Case "TXTR_INOM" ctr.text = Me.TXTR_ICC_MAX.Text Case "TXTR_ICARREGA" ctr.text = Me.TXTR_IMAX_SORTIDA.Text End Select Errors.MostrarMSG(900002) Private Sub CMBB_FABRICANTS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBB_FABRICANTS.SelectedIndexChanged Me.LBL_B_WEB.Text = CMBB_FABRICANTS.Items(CMBB_FABRICANTS.SelectedIndex).ITEM("WEB ").ToString Dim DS_BAT As Data.DataSet DS_BAT = GENERAL.BD_COMERCIAL.StrConsultar(TAULA_COM_BATERIES,, "Id_Fabricant=" & CMBB_FABRICANTS.Items(CMBB_FABRICANTS.SelectedIndex).ITEM("Id_Fabricant"), "MODEL") If DS_BAT.Tables(0).Rows.Count <> 0 Then CMBB_MODEL.DataSource = DS_BAT.Tables(0) CMBB_MODEL.DisplayMember = "MODEL" CMBB_MODEL.DataSource = Nothing Private Sub CMBR_FABRICANTS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBR_FABRICANTS.SelectedIndexChanged LBL_R_WEB.Text = CMBR_FABRICANTS.Items(CMBR_FABRICANTS.SelectedIndex).ITEM("WEB"). ToString Dim DS_REG As Data.DataSet DS_REG = GENERAL.BD_COMERCIAL.StrConsultar(TAULA_COM_REGULADORS,, "Id_Fabricant=" & CMBR_FABRICANTS.Items(CMBR_FABRICANTS.SelectedIndex).ITEM("Id_Fabricant"), "MODEL") If DS_REG.Tables(0).Rows.Count <> 0 Then CMBR_MODEL.DataSource = DS_REG.Tables(0) CMBR_MODEL.DisplayMember = "MODEL" CMBR_MODEL.DataSource = Nothing Private Sub CMBB_MODEL_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBB_MODEL.SelectedIndexChanged Dim arrelements() As System.Windows.Forms.Control = Nothing GENERAL.ObtenirElements(Me.TAB_BATERIES, arrelements, False) GENERAL.ObtenirFormBD(GENERAL.BD_COMERCIAL, GENERAL.TAULA_COM_BATERIES, arrelements, CMBB_MODEL.Items(CMBB_MODEL.SelectedIndex).ITEM("ID_BATERIES")) Private Sub CMBR_MODEL_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMBR_MODEL.SelectedIndexChanged Dim arrelements() As System.Windows.Forms.Control = Nothing GENERAL.ObtenirElements(Me.TAB_REGULADORS, arrelements, False) GENERAL.ObtenirFormBD(GENERAL.BD_COMERCIAL, GENERAL.TAULA_COM_REGULADORS, arrelements, CMBR_MODEL.Items(CMBR_MODEL.SelectedIndex).ITEM("ID_REGULADORS")) End Class

9

10 2-.FRM_BD_RADIACIONS

11 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb Option Explicit On 'Option Strict On 1 Imports ZedGraph Imports System.Drawing Imports System Imports System.Math Public Class FRM_BD_RADIACIONS Private Sub actualitzargraficadiaria() Dim TipusGrafic As String = Nothing Dim TmpDS As Data.DataSet = Nothing Dim parametre As String = Nothing For Each ctl As Windows.Forms.Control In GPR_PARAMETRES.Controls If TypeOf ctl Is RadioButton Then Dim rad As RadioButton = ctl If rad.checked = True Then parametre = ctl.name.substring(ctl.name.lastindexof("_") + 1, ctl.name.length - ctl.name.lastindexof("_") - 1) Exit For Dim mesos() As String = Nothing For Each ctl As Windows.Forms.Control In GPR_MESOS.Controls If TypeOf ctl Is CheckBox Then Dim chk As CheckBox = ctl If chk.checked = True Then Try Dim DS As Data.DataSet = BD_RADIACIO.StrConsultar("MES", "NOM_TAULA", "NOM_MES='" & ctl.name.substring(ctl.name.indexof("_") + 1, ctl.name. Length - ctl.name.indexof("_") - 1) & "'") If mesos Is Nothing Then ReDim mesos(0) mesos(0) = DS.Tables(0).Rows(0).Item("NOM_TAULA").ToString ").ToString ReDim Preserve mesos(mesos.length) mesos(mesos.length - 1) = DS.Tables(0).Rows(0).Item("NOM_TAULA Catch ex As Exception 'MsgBox(Err.Description) End Try ZG_DIARIES.GraphPane.CurveList.Clear() ZG_DIARIES.GraphPane.Title.Text = IDIOMES.Traduir("TITOL_MITJANES_DIARIES") & " " & parametre & vbnewline & IDIOMES.Traduir("UNITATS_" & parametre) ZG_DIARIES.GraphPane.XAxis.Title.Text = IDIOMES.Traduir("TITOL_X_HORES") ZG_DIARIES.GraphPane.YAxis.Title.Text = " " If mesos IsNot Nothing Then

12 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb For Each str As String In mesos 2 Try TmpDS = GENERAL.BD_RADIACIO.StrConsultar(str.ToString, parametre & ", HORA", "ID_CIUTAT=" & CMB_CIUTATS.SelectedItem.ITEM("ID_CIUTAT"), "HORA") Catch ex As Exception If Err.Number = 91 Then Exit Sub MsgBox(Err.Description) End Try Dim TIPUSGRAFICA As GRAFIQUES.TipusGrafic = GRAFIQUES.TipusGrafic.Corba GRAFIQUES.DibuixarGrafica(TmpDS, ZG_DIARIES, "HORA", TIPUSGRAFICA, True, SymbolType.None) ZG_DIARIES.Refresh() 'fem la consulta segons els paràmetres 'SQLStr = SQLStr.Substring(0, SQLStr.Length - 2) 'SQLStr += " FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE RAD_MENSUAL.ID_MES<13 AND ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT") & " ORDER BY RAD_MENSUAL.ID_MES" 'Try ' TmpDS = GENERAL.BD_RADIACIO.StrConsultaAmida(SQLStr) 'Catch ex As Exception ' MsgBox(Err.Description) 'End Try 'For Each row As DataRow In TmpDS.Tables(0).Rows ' row.item("nom_mes") = IDIOMES.Traduir("CURT_" & row.item("nom_mes")) ' ''Seleccionem el tipus de gràfica 'Dim TipusGrafica As GRAFIQUES.TipusGrafic = GRAFIQUES.TipusGrafic.Corba 'For Each ctr As ToolStripButton In MNU_BTO_GRAFICA_MENSUAL.Items ' If ctr.checked = True Then ' Select Case ctr.name ' Case "BTO_CURVA" ' TipusGrafica = GRAFIQUES.TipusGrafic.Corba ' Case "BTO_BARRES_HORITZONTALS" ' TipusGrafica = GRAFIQUES.TipusGrafic.BarresHoritzontals ' Case "BTO_BARRES_VERTICALS" ' TipusGrafica = GRAFIQUES.TipusGrafic.BarresVerticals ' End Select ' ' ' 'ZG_MENSUAL.Refresh() Private Sub actualitzargraficamensual() Dim TipusGrafic As String = Nothing Dim TmpDS As Data.DataSet = Nothing Dim SQLStr As String = "SELECT MES.NOM_MES as NOM_MES, " For Each ctl As Windows.Forms.Control In GPR1_PARAMETRES.Controls If TypeOf ctl Is CheckBox Then

13 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb 3 Dim chk As CheckBox = ctl If chk.checkstate = CheckState.Checked Then SQLStr += ctl.name.substring(ctl.name.indexof("_") + 1, ctl.name. Length - ctl.name.indexof("_") - 1) & ", " 'fem la consulta segons els paràmetres SQLStr = SQLStr.Substring(0, SQLStr.Length - 2) SQLStr += " FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE RAD_MENSUAL.ID_MES<13 AND ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT") & " ORDER BY RAD_MENSUAL.ID_MES" Try TmpDS = GENERAL.BD_RADIACIO.StrConsultaAmida(SQLStr) Catch ex As Exception MsgBox(Err.Description) End Try For Each row As DataRow In TmpDS.Tables(0).Rows row.item("nom_mes") = IDIOMES.Traduir("CURT_" & row.item("nom_mes")) 'Seleccionem el tipus de gràfica Dim TipusGrafica As GRAFIQUES.TipusGrafic = GRAFIQUES.TipusGrafic.Corba For Each ctr As ToolStripButton In MNU_BTO_GRAFICA_MENSUAL.Items If ctr.checked = True Then Select Case ctr.name Case "BTO_CURVA" TipusGrafica = GRAFIQUES.TipusGrafic.Corba Case "BTO_BARRES_HORITZONTALS" TipusGrafica = GRAFIQUES.TipusGrafic.BarresHoritzontals Case "BTO_BARRES_VERTICALS" TipusGrafica = GRAFIQUES.TipusGrafic.BarresVerticals End Select ZG_MENSUAL.GraphPane.CurveList.Clear() ZG_MENSUAL.GraphPane.Title.Text = IDIOMES.Traduir("TITOL_MITJANES_MENSUALS") ZG_MENSUAL.GraphPane.XAxis.Title.Text = IDIOMES.Traduir("TITOL_X_MESOS") ZG_MENSUAL.GraphPane.YAxis.Title.Text = " " GRAFIQUES.DibuixarGrafica(TmpDS, ZG_MENSUAL, "NOM_MES", TipusGrafica) ZG_MENSUAL.Refresh() Private Sub AplicarDGVEstil(ByRef cel As DataGridViewCell) Dim CellEstil As New DataGridViewCellStyle CellEstil.BackColor = Color.LightGray CellEstil.ForeColor = Color.Black CellEstil.SelectionBackColor = Color.LightGray CellEstil.SelectionForeColor = Color.Black cel.style = CellEstil Private Sub estilitzardgvmensual(optional ByVal traduir As Boolean = False) For Each row As DataGridViewRow In DGV_MENSUAL.Rows If row.index = DGV_MENSUAL.Rows.Count - 1 Then For Each CEL As DataGridViewCell In row.cells Me.AplicarDGVEstil(CEL)

14 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb If traduir = True Then 4 row.cells(0).value = IDIOMES.Traduir(row.Cells(0).Value.ToString.Trim) Dim celfila As DataGridViewCell celfila = row.cells(0) Me.AplicarDGVEstil(celFila) Private Sub estilitzardgvdiari() For Each row As DataGridViewRow In DGV_DIARI.Rows Dim celfila As DataGridViewCell celfila = row.cells("hora") Me.AplicarDGVEstil(celFila) Private Sub FRM_BD_RADIACIONS_FormClosed(ByVal sender As Object, ByVal e As System. Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_BD_RADIACIONS_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) For Each item As ToolStripMenuItem In MNUCON_ZG_MENSUAL.Items item.text = IDIOMES.Traduir(item.Name) 'For Each item As ToolStripMenuItem In MNUCON_ZG_DIARIA.Items ' item.text = IDIOMES.Traduir(item.Name) ' 'CARREGUEM LA INFORMACIÓ DELS PAISOS Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing Private Sub CMB_PROVINCIES_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PROVINCIES.SelectedIndexChanged If CMB_PROVINCIES.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES CIUTATS Dim DS_CIUTATS As Data.DataSet Dim KK As Integer KK = CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM("ID_PROVINCIA") DS_CIUTATS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_CIUTATS,, "ID_PROVINCIA=" & CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM( "ID_PROVINCIA"), "NOM_CIUTAT") If DS_CIUTATS.Tables(0).Rows.Count <> 0 Then CMB_CIUTATS.DataSource = DS_CIUTATS.Tables(0) CMB_CIUTATS.DisplayMember = "NOM_CIUTAT" CMB_CIUTATS.DataSource = Nothing

15 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb 5 Private Sub CMB_PAISOS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PAISOS.SelectedIndexChanged If CMB_PAISOS.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES PROVINCIES Dim DS_PROVINCIES As Data.DataSet DS_PROVINCIES = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PROVINCIES,, "ID_PAIS='" & CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex).ITEM("ID_PAIS") & "'", "NOM_PROVINCIA") If DS_PROVINCIES.Tables(0).Rows.Count <> 0 Then CMB_PROVINCIES.DataSource = DS_PROVINCIES.Tables(0) CMB_PROVINCIES.DisplayMember = "NOM_PROVINCIA" CMB_PROVINCIES.DataSource = Nothing Private Sub CMB_CIUTATS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_CIUTATS.SelectedIndexChanged If CMB_CIUTATS.SelectedIndex <> -1 Then 'carreguem la latitut i la longitud With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut")) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) End With 'mostrem les files i columnes de radiació mensual Dim DS_RAD_MENSUAL As Data.DataSet DS_RAD_MENSUAL = GENERAL.BD_RADIACIO.StrConsultaAMida( _ "SELECT MES.NOM_MES AS " & IDIOMES.Traduir("MES") & _ ", HH,HOPT,H90,IOPT,TL,DG,TD,T24,NDD, RAD_MENSUAL.ID_MES AS ID_MES FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).ITEM("ID_CIUTAT") & " ORDER BY RAD_MENSUAL.ID_MES") With DGV_MENSUAL.DataSource = DS_RAD_MENSUAL.Tables(0).Columns("ID_MES").Visible = False estilitzardgvmensual(true).columns(0).width = 80.ClearSelection() End With 'Mostrem el Gener a la radiació diaria Dim DS_MES As Data.DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_MESOS,, "ID_MES<=12", "ID_MES") CMB_MESOS.DataSource = DS_MES.Tables(0) CMB_MESOS.DisplayMember = "NOM_MES" Me.BTO_CURVA.Select() actualitzargraficamensual() actualitzargraficadiaria()

16 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb Private Sub CMB_MESOS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_MESOS.SelectedIndexChanged Dim DS_DIARI As Data.DataSet = GENERAL.BD_RADIACIO.StrConsultar(CMB_MESOS.Items (CMB_MESOS.SelectedIndex).ITEM("NOM_TAULA"),, "ID_CIUTAT=" & CMB_CIUTATS.Items (CMB_CIUTATS.SelectedIndex).ITEM("ID_CIUTAT"), "HORA") DGV_DIARI.DataSource = DS_DIARI.Tables(0) With DGV_DIARI.DataSource = DS_DIARI.Tables(0).Columns(0).Visible = False.Columns(1).Visible = False estilitzardgvdiari().clearselection() End With 6 Private Sub DGV_DIARI_ColumnHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV_DIARI. ColumnHeaderMouseClick estilitzardgvdiari() DGV_DIARI.ClearSelection() Private Sub TabControl1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.Click estilitzardgvdiari() DGV_DIARI.ClearSelection() Private Sub CHK_HH_CheckedChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles CHK_HH.Click, _ CHK_H90.Click, CHK_DG.Click, CHK_HOPT.Click, CHK_IOPT.Click, CHK_NDD.Click, CHK_T24. Click, _ CHK_TD.Click, CHK_TL.Click actualitzargraficamensual() Private Sub BTO_CURVA_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles BTO_BARRES_VERTICALS.Click, BTO_CURVA.Click If sender.checkstate <> True Then click 'Desactivem tots els botons de les gràfiques que no siguin el que hem fet For Each bto As ToolStripButton In MNU_BTO_GRAFICA_MENSUAL.Items If bto.name <> sender.name Then bto.checkstate = CheckState.Unchecked bto.checkstate = CheckState.Checked actualitzargraficamensual() Private Sub ZG_MENSUAL_DoubleClick(ByVal sender As Object, ByVal e As System. EventArgs) Handles ZG_MENSUAL.DoubleClick GRAFIQUES.ObrirImatge(ZG_MENSUAL) Private Sub DGV_MENSUAL_ColumnHeaderMouseClick1(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV_MENSUAL. ColumnHeaderMouseClick

17 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb If DGV_MENSUAL.SortedColumn.Name = IDIOMES.Traduir("MES") Then 7 DGV_MENSUAL.Sort(DGV_MENSUAL.Columns("ID_MES"), System.ComponentModel. ListSortDirection.Ascending) estilitzardgvmensual() DGV_MENSUAL.ClearSelection() Private Sub GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarImatgeComToolStripMenuItem.Click GRAFIQUES.GuardarImarge(ZG_MENSUAL) Private Sub CopiarImatgeAlPortaretallsToolStripMenuItem_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles CopiarImatgeAlPortaretallsToolStripMenuItem.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_MENSUAL) Private Sub AmpliarLaImatgeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AmpliarLaImatgeToolStripMenuItem.Click GRAFIQUES.ObrirImatge(ZG_MENSUAL) Private Sub BTO_BTO_TANCAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_TANCAR.Click Me.Close() Private Sub BTO_CURVA_DIARIA_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_CURVA_DIARIA.Click If sender.checkstate <> True Then 'Desactivem tots els botons de les gràfiques que no siguin el que hem fet click For Each bto As ToolStripButton In MNU_BTO_GRAFICA_DIARIA.Items If bto.name <> sender.name Then bto.checkstate = CheckState.Unchecked bto.checkstate = CheckState.Checked 'CHK_HH_CheckedChanged(sender, e) actualitzargraficadiaria() Private Sub CHK_HH_CheckedChanged_1(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles CHK_HH.CheckedChanged Private Sub RAD_G_CheckedChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles RAD_G.CheckedChanged, _ RAD_A.CheckedChanged, RAD_AC_AC.CheckedChanged, RAD_AD.CheckedChanged, RAD_GC. CheckedChanged, _ RAD_GD.CheckedChanged, RAD_TD.CheckedChanged actualitzargraficadiaria() Private Sub CHK_GENER_CheckedChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles CHK_GENER.CheckedChanged, _ CHK_FEBRER.CheckedChanged, CHK_MARÇ.CheckedChanged, CHK_ABRIL.CheckedChanged, CHK_MAIG.CheckedChanged, _ CHK_JUNY.CheckedChanged, CHK_JULIOL.CheckedChanged, CHK_AGOST.CheckedChanged, CHK_SETEMBRE.CheckedChanged, _ CHK_OCTUBRE.CheckedChanged, CHK_NOVEMBRE.CheckedChanged, CHK_DECEMBRE.CheckedChanged

18 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_BD_RADIACIONS.vb 8 actualitzargraficadiaria() Private Sub TAB_RADIACIO_DIARIA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_RADIACIO_DIARIA.Click Private Sub DIARIA_AmpliarImatgeToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) GRAFIQUES.ObrirImatge(ZG_DIARIES) Private Sub DIARIA_CopiarImatgeAlPortaRetallsToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_DIARIES) Private Sub DIARIA_GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) GRAFIQUES.GuardarImarge(ZG_DIARIES) Private Sub ZG_DIARIES_DoubleClick(ByVal sender As Object, ByVal e As System. EventArgs) Handles ZG_DIARIES.DoubleClick GRAFIQUES.ObrirImatge(ZG_DIARIES) Private Sub ZG_DIARIES_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles ZG_DIARIES.Load Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBL_GC.Click Private Sub MNUCON_ZG_MENSUAL_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MNUCON_ZG_MENSUAL.Opening Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles ToolStripMenuItem1.Click GRAFIQUES.GuardarImarge(Me.ZG_DIARIES) Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles ToolStripMenuItem2.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_DIARIES) Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles ToolStripMenuItem3.Click GRAFIQUES.ObrirImatge(ZG_DIARIES) End Class

19

20 3-.FRM_DIM_AILLAT

21 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Option Explicit On 'Option Strict On 1 Imports System.Math Public Class FRM_DIM_AILLAT '**** estructures generals **** Private Structure tipuslletra Dim inici As Integer Dim final As Integer Dim Tamany As Integer Dim ColorLletra As Color Dim negreta As Boolean Dim subratllat As Boolean End Structure '**************************** '**** VARIABLES PRIVADES **** '**************************** Private TabP(1) As TabPage Private DimensionatAillat As DIMENSIONAT Private ArrHh(13) As Double 'MEMORIA PER CADA TABPAGE DEL FORMULARI 'CLASSE DIMENSIONAT PELS CALCULS 'ARRAY PER H HORITZONTAL Private BatErr As ArrayList = New ArrayList 'ARRAY PELS ERRORS DE LES BATERIES Private ModErr As ArrayList = New ArrayList 'ARRAY PELS ERRORS DELS MODULS Private RegErr As ArrayList = New ArrayList 'ARRAY PELS ERRORS DELS REGULADORS Private InvErr As ArrayList = New ArrayList 'ARRAY PELS ERRORS DELS INVERSORS Private ArrErrors As ArrayList = New ArrayList 'Array que conté tots els elements amb errors del projecte Private EstilLletra As tipuslletra() Private HiHaErrors As Boolean = False Private carregantprojecte As Boolean = False Dim arrsel() As Boolean '**************************** '**** FUNCIONS PRIVADES ***** '**************************** Private Sub CarregarProjecte() Me.carregantProjecte = True 'guardem tipus de columnes de DGV_CONSUM Dim arrcolconsum As New ArrayList For Each c As DataGridViewColumn In DGV_CONSUM.Columns arrcolconsum.add(c) Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing Dim arrelements As Control() = Nothing GENERAL.ObtenirElements(Me, arrelements, False, True, True) GENERAL.PROJECT.ImportarAillat(arrelements) 'canviem de format el tipus de celes del dgv_consum Dim arrrowsconsum(dgv_consum.rows.count - 1) As DataGridViewRow For i As Integer = 0 To DGV_CONSUM.Rows.Count - 1 arrrowsconsum(i) = DGV_CONSUM.Rows(i)

22 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 2 DGV_CONSUM.Columns.Clear() DGV_CONSUM.Rows.Clear() For Each item As DataGridViewColumn In arrcolconsum DGV_CONSUM.Columns.Add(item) DGV_CONSUM.Columns(DGV_CONSUM.Columns.Count - 1).HeaderText = IDIOMES.Traduir (DGV_CONSUM.Columns(DGV_CONSUM.Columns.Count - 1).Name) DGV_CONSUM.Columns(0).Width = DGV_CONSUM.Width * 0.25 If arrrowsconsum.length - 1 > 0 Then DGV_CONSUM.Rows.Add(arrRowsConsum.Length - 1) For r As Integer = 0 To arrrowsconsum.length - 1 For c As Integer = 0 To DGV_CONSUM.Columns.Count - 1 DGV_CONSUM.Rows(r).Cells(c).Value = arrrowsconsum(r).cells(c).value 'actualitzem mes seleccionat DGV_mensual ReDim arrsel(dgv_mensual.rows.count - 1) Dim index As Integer = 0 For Each row As DataGridViewRow In DGV_MENSUAL.Rows If row.cells(0).value = True Then 'Or row.cells(0).value = False Then arrsel(index) = True arrsel(index) = False index += 1 DGV_MENSUAL.Rows.Clear() DGV_MENSUAL.Columns.Clear() Me.ActualitzarResultatsConsum() Dim DS_MES As Data.DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_MENSUAL,, "ID_MES<=12 AND ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT"), "ID_MES") Dim j As Integer = 1 'MsgBox(DS_MES.Tables(GENERAL.TAULA_RAD_MENSUAL).Rows.Count) For Each ROW As DataRow In DS_MES.Tables(0).Rows ArrHh(j) = (Convert.ToDouble(ROW.Item("HH")) * 30) / 1000 j += 1 With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut"), True) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) DimensionatAillat = New DIMENSIONAT(.item("latitut"), ArrHh,.item( "ANGLE_OPTIM")) 'CANVIEM EL VALOR DE LA CIUTAT I ELEMENTS RELACIONATS LA TAULA RESUM Me.CanviarValor(Me.TXTR_CIUTAT.Name,.item("NOM_CIUTAT").ToString) Me.CanviarValor(Me.LBLR_A_OPTIM.Name,.ITEM("ANGLE_OPTIM").ToString) Me.CanviarValor(Me.LBLR_LAT_GRAUS.Name, LBL_LAT_GRAUS.Text) Me.CanviarValor(Me.LBLR_LON_GRAUS.Name, LBL_LON_GRAUS.Text) End With Me.GenerarGraficaConsum() Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_ACABAR_I_GUARDAR")

23 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 'Me.TXT_CMB_PAISOS.Text = -1 'Me.TXT_CMB_PROVINCIES.Text = -1 'Me.TXT_CMB_CIUTATS.Text = -1 Me.carregantProjecte = False Me.IniciarDGVMensual() 3 For Each c As Control In arrelements If TypeOf c Is NumericUpDown Then Dim n As NumericUpDown = c n.maximum = 4 * n.value n.minimum = 0 Me.ActualitzarNumBateries() Me.ActualitzarDgvCostos() Private Sub guardaraillat() Dim arrelements() As Control = Nothing GENERAL.ObtenirElements(Me, arrelements, False, True, True, False, False, False) Dim arr2() As Control = Nothing For Each e As Control In arrelements If e.name <> "TXT_CMB_PAISOS" And e.name <> "TXT_CMB_CIUTATS" And e.name <> "TXT_CMB_PROVINCIES" Then If arr2 Is Nothing Then ReDim arr2(1) arr2(0) = e ReDim Preserve arr2(arr2.length) arr2(arr2.length - 1) = e GENERAL.PROJECT.genearXMLAillat(arr2) Me.ZG_CONSUM.Copy(False) Dim img As New Drawing.Bitmap(My.Computer.Clipboard.GetImage()) img.save(application.startuppath & "\aillat_consum.bmp") Me.ZG_HORES_PIC.Copy(False) Dim img2 As New Drawing.Bitmap(My.Computer.Clipboard.GetImage) img2.save(application.startuppath & "\aillat_hp.bmp") FRM_MAIN.BTO_BTO_DESAR_PROJECTE.Enabled = True '**** GENERALS PER CANVIS DE VALORS **** Private Sub canviarlbl(byval lbl As Label, Optional ByVal correcte As Boolean = True) If Me.carregantProjecte = False Then If correcte = True Then lbl.forecolor = Color.Black 'treiem l'element que no te error de l'array If ArrErrors.IndexOf(lbl.Name) <> -1 Then ArrErrors.Remove(lbl.Name) lbl.forecolor = Color.Red 'afegim l'element que dóna error a l'array If ArrErrors.IndexOf(lbl.Name) = -1 Then ArrErrors.Add(lbl.Name) 'Comprovem si hi ha errors al projecte per no deixar guardar 'al sortir If ArrErrors.Count > 0 Then HiHaErrors = True HiHaErrors = False

24 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 4 ' MsgBox(HiHaErrors) Private Sub estilitzarerrors() If Me.IsHandleCreated = True Then For Each t As tipuslletra In EstilLletra Dim estil As FontStyle = FontStyle.Regular If t.negreta = True Then estil = estil Or FontStyle.Bold If t.subratllat = True Then estil = estil Or FontStyle.Underline Me.RTB_ERRORS_DIMENSIONAT.Select(t.inici, t.final) Me.RTB_ERRORS_DIMENSIONAT.SelectionFont = New Font(Me. RTB_ERRORS_DIMENSIONAT.SelectionFont, estil) Me.RTB_ERRORS_DIMENSIONAT.SelectionColor = t.colorlletra 'Me.RTB_ERRORS_DIMENSIONAT.SelectionAlignment = HorizontalAlignment.Center Me.RTB_ERRORS_DIMENSIONAT.DeselectAll() Private Sub AfegirEstilLletra(ByVal inici As Integer, ByVal final As Integer, ByVal color As Color, _ Optional ByVal negreta As Boolean = False, Optional ByVal subratllat As Boolean = False) If EstilLletra.Length = 0 Then ReDim EstilLletra(0) ReDim Preserve EstilLletra(EstilLletra.Length) EstilLletra(EstilLletra.Length - 1).inici = inici EstilLletra(EstilLletra.Length - 1).final = final EstilLletra(EstilLletra.Length - 1).ColorLletra = color EstilLletra(EstilLletra.Length - 1).negreta = negreta EstilLletra(EstilLletra.Length - 1).subratllat = subratllat Private Sub ImprimirErrorsDimensionat() If Me.IsHandleCreated = True Then Dim ultimapos As Integer = 0 Me.RTB_ERRORS_DIMENSIONAT.Text = IDIOMES.Traduir("BATERIES") & vbnewline ReDim EstilLletra(0) Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkBlue, True, True) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength If BatErr IsNot Nothing And BatErr.Count <> 0 Then For Each item As Integer In BatErr Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(item) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkRed) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength

25 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(910001) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkGreen) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength 5 'MODULS Me.RTB_ERRORS_DIMENSIONAT.Text += vbnewline & IDIOMES.Traduir("MODULS") & vbnewline ReDim Preserve EstilLletra(EstilLletra.Length) Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkBlue, True, True) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength If ModErr IsNot Nothing And ModErr.Count <> 0 Then For Each item As Integer In ModErr Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(item) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkRed) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(910002) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkGreen) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength 'REGULADORS() Me.RTB_ERRORS_DIMENSIONAT.Text += vbnewline & IDIOMES.Traduir("REGULADORS") & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkBlue, True, True) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength If RegErr IsNot Nothing And RegErr.Count <> 0 Then For Each item As Integer In RegErr Dim tmpstr As String = Errors.GetMsgTxt(item) Dim t10 As Integer = 0 If Me.TXT_REGULADORS_PARALEL.Text <> 0 Then t10 = Ceiling(Me.NUM_SEL_MODULS_PARALEL.Value / Me. TXT_REGULADORS_PARALEL.Text) Dim t12 As Integer = t10 * Me.TXT_REGULADORS_PARALEL.Text Dim t13 As Integer = t12 - Me.NUM_SEL_MODULS_PARALEL.Value Select Case item Case tmpstr = tmpstr.insert(tmpstr.indexof("_%%_"), Me. TXT_REGULADORS_PARALEL.Text) tmpstr = tmpstr.remove(tmpstr.indexof("_%%_"), 4) tmpstr = tmpstr.insert(tmpstr.indexof("_%%_"), t10) tmpstr = tmpstr.remove(tmpstr.indexof("_%%_"), 4) tmpstr = tmpstr.insert(tmpstr.indexof("_%%_"), Me. NUM_SEL_MODULS_SERIE.Value) tmpstr = tmpstr.remove(tmpstr.indexof("_%%_"), 4) Case tmpstr = tmpstr.replace("_%%_", t13) End Select Me.RTB_ERRORS_DIMENSIONAT.Text += tmpstr & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkRed)

26 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength 6 Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(910003) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkGreen) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength 'INVERSORS() Me.RTB_ERRORS_DIMENSIONAT.Text += vbnewline & IDIOMES.Traduir("INVERSORS") & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkBlue, True, True) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength If InvErr IsNot Nothing And InvErr.Count <> 0 Then For Each item As Integer In InvErr Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(item) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkRed) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength Me.RTB_ERRORS_DIMENSIONAT.Text += Errors.GetMsgTxt(910004) & vbnewline & vbnewline Me.AfegirEstilLletra(ultimapos, Me.RTB_ERRORS_DIMENSIONAT.TextLength - ultimapos, Color.DarkGreen) ultimapos = RTB_ERRORS_DIMENSIONAT.TextLength Me.estilitzarErrors() Private Sub CanviarValor(ByVal NomElementDesti As String, ByVal Valor As Double) If Me.carregantProjecte = False Then Dim arrelements() As Control = Nothing Dim arrelementsvirtuals() As Control = Nothing 'elements mostrats For Each tab As TabPage In TABC_AILLAT.TabPages GENERAL.ObtenirElements(tab, arrelements) For Each ctr As Control In arrelements If ctr.name = NomElementDesti Then ctr.text = Valor 'elements per mostrar Dim i As Integer For i = 1 To TabP.Length - 1 GENERAL.ObtenirElements(TabP(i), arrelementsvirtuals) If arrelementsvirtuals IsNot Nothing Then For Each ctr As Control In arrelementsvirtuals If ctr.name = NomElementDesti Then ctr.text = Valor

27 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 7 Private Sub CanviarValor(ByVal NomElementDesti As String, ByVal Valor As String) If Me.carregantProjecte = False Then Dim arrelements() As Control = Nothing Dim arrelementsvirtuals() As Control = Nothing 'elements mostrats For Each tab As TabPage In TABC_AILLAT.TabPages GENERAL.ObtenirElements(tab, arrelements) For Each ctr As Control In arrelements If ctr.name = NomElementDesti Then ctr.text = Valor 'elements per mostrar Dim i As Integer For i = 1 To TabP.Length - 1 GENERAL.ObtenirElements(TabP(i), arrelementsvirtuals) If arrelementsvirtuals IsNot Nothing Then For Each ctr As Control In arrelementsvirtuals If ctr.name = NomElementDesti Then ctr.text = Valor '**** CALCUL PROTECCIONS **** Private Sub ActualitzarProteccions() If Me.IsHandleCreated = True Then If Me.carregantProjecte = True Then Exit Sub 'generador - regulador Dim TmpISCProteccions As Double = Round(Convert.ToDouble(Me.TXT2_ISC_GENERADOR.Text) / Me.TXT_REGULADORS_PARALEL.Text, 2) Me.CanviarValor(Me.TXTP_ISC.Name, TmpISCProteccions.ToString) Dim TmpImax As Double = Round((Convert.ToDouble(Me.TXTP_ISC.Text) * 1.25), 2) TXTP_IMAX.Text = TmpImax.ToString Me.TXTP_VOC.Text = Me.TXT_V_MAX_SISTEMA.Text Me.TXTP1_CALCI1.Text = Round((TmpImax * 1.25), 2) Me.TXTP1_CALCF1.Text = Round((TmpImax * 1.25), 2) Me.TXTP1_CALCI2.Text = Me.TXTP_VOC.Text Me.TXTP1_CALCF2.Text = Me.TXTP_VOC.Text 'regulador - DC If Convert.ToDouble(Me.TXT_W_DC.Text) = 0 Then Me.TXTP_IPICDC.Text = "0" Me.TXTP_IPICDC.Text = Round(((Convert.ToDouble(Me.TXT_W_DC.Text) / Convert.ToDouble(Me.TXT_V_NOM.Text)) / Convert.ToDouble(Me.TXT_REGULADORS_PARALEL.Text)), 2). ToString Me.TXTP_IMAXDC.Text = Round((Convert.ToDouble(Me.TXTP_IPICDC.Text) * 1.25), 2).ToString Me.TXTP2_VMAXDC.Text = Me.TXT_V_NOM.Text Me.TXTP2_CALCI1.Text = Round((Convert.ToDouble(Me.TXTP_IMAXDC.Text) * 1.25), 2).ToString Me.TXTP2_CALCF1.Text = Round((Convert.ToDouble(Me.TXTP_IMAXDC.Text) * 1.25), 2).ToString

28 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Me.TXTP2_CALCI2.Text = Me.TXT_V_NOM.Text Me.TXTP2_CALCF2.Text = Me.TXT_V_NOM.Text 8 ''bateria - inversor Me.TXTP_WNOM.Text = Me.TXTI_WNOM.Text Me.TXTP_RENDIMENT.Text = Me.NUMI_RENDIMENT.Value Me.TXTP2_VMAXDC.Text = Me.TXTI_VDC.Text If Convert.ToDouble(Me.TXTP2_VMAXDC.Text) = 0 Then Me.TXTP3_CALCI1.Text = "0" Me.TXTP3_CALCF1.Text = "0" Me.TXTP3_CALCI1.Text = Round(Convert.ToDouble(Me.TXTP_WNOM.Text) / (Convert.ToDouble(Me.TXTP_RENDIMENT.Text) * Convert.ToDouble(Me.TXTP2_VMAXDC.Text)) * 1.25, 2).ToString Me.TXTP3_CALCF1.Text = Round(Convert.ToDouble(Me.TXTP_WNOM.Text) / (Convert.ToDouble(Me.TXTP_RENDIMENT.Text) * Convert.ToDouble(Me.TXTP2_VMAXDC.Text)) * 1.25, 2).ToString ' Me.TXTP3_CALCI1.Text = Round((Convert.ToDouble(Me.TXTP_WNOM.Text) / (Convert.ToDouble(Me.TXTP_RENDIMENT.Text) * Convert.ToDouble(Me.TXTP_VMAXDC.Text)) * 1.25), 2).ToString 'Me.TXTP3_CALCF1.Text = Round((Convert.ToDouble(Me.TXTP_WNOM.Text) / (Convert. ToDouble(Me.TXTP_RENDIMENT.Text) * Convert.ToDouble(Me.TXTP_VMAXDC.Text)) * 1.25), 2). ToString Me.TXTP3_CALCI2.Text = Me.TXTI_VDC.Text Me.TXTP3_CALCF2.Text = Me.TXTI_VDC.Text ''inversor - DC If Convert.ToDouble(Me.TXT_VAC.Text) = 0 Then Me.TXTP2_IMAX.Text = 0 Me.TXTP2_IMAX.Text = Round(((Convert.ToDouble(Me.TXT_W_AC.Text) / Me. NUM_SEL_INVERSORS.Value) / Convert.ToDouble(Me.TXT_VAC.Text)), 2).ToString Me.TXTP_IMAXCORREGIDA.Text = (Convert.ToDouble(Me.TXTP2_IMAX.Text) * 1.25). ToString Me.TXTP_VMAXAC.Text = Me.TXT_VAC.Text Me.TXTP4_CALCI1.Text = (Convert.ToDouble(Me.TXTP2_IMAX.Text) * 1.25).ToString Me.TXTP4_CALCF1.Text = (Convert.ToDouble(Me.TXTP2_IMAX.Text) * 1.25).ToString Me.TXTP4_CALCI2.Text = Me.TXTI_VAC.Text Me.TXTP4_CALCF2.Text = Me.TXTI_VAC.Text '**** GRAFICA CONSUM **** Private Sub GenerarGraficaConsum() Dim Trobat As Boolean = False For Each tab As TabPage In TABC_AILLAT.TabPages If tab.name = "TAB_DIM_RESUM" Then Trobat = True Exit For If Trobat = True Then Dim tmpds As New DataSet tmpds.tables.add("consum")

29 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Dim COL1 As DataColumn = New DataColumn Dim COL2 As DataColumn = New DataColumn Dim COL3 As DataColumn = New DataColumn Dim COL4 As DataColumn = New DataColumn 9 COL1.DataType = System.Type.GetType("System.String") COL1.ColumnName = "NOM_MES" 'COL1.column.ReadOnly = True 'column.unique = True COL2.DataType = System.Type.GetType("System.Double") COL2.ColumnName = "OBTENIDA_DIARIA" COL3.DataType = System.Type.GetType("System.Double") COL3.ColumnName = "NECESSARIA_DIARIA" COL4.DataType = System.Type.GetType("System.Double") COL4.ColumnName = "BALANS" With tmpds.tables(0).columns.add(col1).add(col2).add(col3).add(col4) End With If DimensionatAillat IsNot Nothing Then Dim i As Integer = 1 For i = 1 To 12 Dim MES As String = Nothing Dim OBTENIDA As Double = 0 Dim CONSUMIDA As Double = 0 Dim BALANS As Double = 0 MES = IDIOMES.Traduir("CURT_MES" & i) OBTENIDA = ((DimensionatAillat.RadMesos(i).HoresSolars * Convert. ToDouble(Me.TXTM_ISC.Text) * Me.NUM_SEL_MODULS_PARALEL.Value) / 1000) * Convert. ToDouble(Me.DGV_CONSUM.Rows(0).Cells("COL_TENSIO_NOMINAL").Value) CONSUMIDA = (Convert.ToDouble(Me.TXT_CONSUM_TOTAL_CORREGIT.Text) * Convert.ToDouble(Me.DGV_CONSUM.Rows(0).Cells("COL_TENSIO_NOMINAL").Value)) / 1000 BALANS = OBTENIDA - CONSUMIDA Dim ARROBJ() As Object = {MES, OBTENIDA, CONSUMIDA, BALANS} Dim row As DataRow = tmpds.tables(0).newrow row.item("nom_mes") = MES row.item("obtenida_diaria") = OBTENIDA row.item("necessaria_diaria") = CONSUMIDA row.item("balans") = BALANS i tmpds.tables(0).rows.add(row) ZG_CONSUM.GraphPane.CurveList.Clear() ZG_CONSUM.GraphPane.Title.Text = IDIOMES.Traduir("TITOL_GRAFIC_CONSUM") ZG_CONSUM.GraphPane.XAxis.Title.Text = IDIOMES.Traduir("TITOL_X_MESOS") ZG_CONSUM.GraphPane.YAxis.Title.Text = "(kwh/d) " GRAFIQUES.DibuixarGrafica(tmpDS, ZG_CONSUM, "NOM_MES", TipusGrafic. BarresVerticals) ZG_CONSUM.Refresh() '**** DIMENSIONAT INVERSORS **** Private Sub ComprovarErrorsInversors() ' W ac sobredimensionada If Convert.ToDouble(Me.TXT_W_TOTAL_AC.Text) > 1.25 * Convert.ToDouble(Me. TXT_W_MIN_NECESSARIA.Text) Then

30 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb If InvErr.IndexOf(910012) = -1 Then InvErr.Add(910012) If InvErr.IndexOf(910012) <> -1 Then InvErr.Remove(910012) 10 ' Nombre de reguladors inferior al mínim recomenat If Me.TXT_MIN_INVERSORS.Text > Me.NUM_SEL_INVERSORS.Value Then If InvErr.IndexOf(910017) = -1 Then InvErr.Add(910017) If InvErr.IndexOf(910017) <> -1 Then InvErr.Remove(910017) Me.ImprimirErrorsDimensionat() Private Sub ActualitzarNumInversors() If Me.IsHandleCreated = True Then Me.TXT_W_TOTAL_AC.Text = Me.NUM_SEL_INVERSORS.Value * Me.TXT_W_NOM_INVERSORS. Text ComprovarErrorsInversors() Me.ActualitzarProteccions() Private Sub ActualitzarDimInversors() If Me.IsHandleCreated = True Then If Me.carregantProjecte = True Then Exit Sub Me.TXT_W_MIN_NECESSARIA.Text = (Me.TXT_W_MAX_CONSUM.Text * Me.NUM_COEF_SIM. Value) / 100 If Me.TXT_W_NOM_INVERSORS.Text <> 0 Then Me.TXT_MIN_INVERSORS.Text = Ceiling(Me.TXT_W_MIN_NECESSARIA.Text / Me. TXT_W_NOM_INVERSORS.Text) Me.TXT_MIN_INVERSORS.Text = 0 If Me.TABC_AILLAT.SelectedTab.Name <> "TAB_DIMENSIONAT" Then Me.NUM_SEL_INVERSORS.Minimum = Me.TXT_MIN_INVERSORS.Text Me.NUM_SEL_INVERSORS.Maximum = 4 * Me.NUM_SEL_INVERSORS.Minimum Me.NUM_SEL_INVERSORS.Value = Me.TXT_MIN_INVERSORS.Text Then Dim vac As Integer = 220 For i As Integer = 0 To Me.DGV_CONSUM.Rows.Count - 1 If DGV_CONSUM.Rows(i).Cells("COL_TIPUS_CARREGA").Value IsNot Nothing Then If DGV_CONSUM.Rows(i).Cells("COL_TIPUS_CARREGA").Value.ToString = "AC" vac = DGV_CONSUM.Rows(i).Cells("COL_TENSIO").Value Exit For Me.TXT_VAC.Text = vac Me.ActualitzarNumInversors() '*** dimensionat reguladors **** Private Sub ComprovarErrorsReguladors()

31 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 11 ' Es recomana subdividir el generador fotovoltaic en _%%_ grups de _%%_ mòduls paral lels i _%%_ mòduls sèrie cada grup If Me.TXT_REGULADORS_PARALEL.Text > 1 Then If RegErr.IndexOf(910008) = -1 Then RegErr.Add(910008) If RegErr.IndexOf(910008) <> -1 Then RegErr.Remove(910008) Dim t10 As Integer = 0 If Me.TXT_REGULADORS_PARALEL.Text <> 0 Then t10 = Ceiling(Me.NUM_SEL_MODULS_PARALEL.Value / Me.TXT_REGULADORS_PARALEL. Text) Dim t12 As Integer = t10 * Me.TXT_REGULADORS_PARALEL.Text Dim t13 As Integer = t12 - Me.NUM_SEL_MODULS_PARALEL.Value ' Es necessita augmentar en _%%_ mòduls més cada branca de paral lels If t13 <> 0 Then If RegErr.IndexOf(910009) = -1 Then RegErr.Add(910009) If RegErr.IndexOf(910009) <> -1 Then RegErr.Remove(910009) ' El regulador seleccionat no és apte per a la configuració sèrie paral lel If t13 > 2 Then If RegErr.IndexOf(910010) = -1 Then RegErr.Add(910010) If RegErr.IndexOf(910010) <> -1 Then RegErr.Remove(910010) ' El nombre de reguladors es inferior al mínim Me.ImprimirErrorsDimensionat() Private Sub ActualitzarDimReguladors() If Me.IsHandleCreated = True Then If Me.carregantProjecte = True Then Exit Sub Me.TXT_I_NOM_REGULADOR.Text = Round(Me.TXT2_ISC_GENERADOR.Text * 1.25, 4) If Me.NUM_I_NOM_REGULADOR.Value <> 0 Then Me.TXT_REGULADORS_PARALEL.Text = Ceiling(Me.TXT_I_NOM_REGULADOR.Text / Me. NUM_I_NOM_REGULADOR.Value) Me.TXT_REGULADORS_PARALEL.Text = 0 ComprovarErrorsReguladors() Me.ActualitzarProteccions() '**** Dimensionat Mòduls **** Private Sub ComprovarErrorsModuls()

32 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 12 'Error Numero moduls serie inferior al minim recoment If Convert.ToInt32(TXT_MIN_MODULS_SERIE.Text) > Me.NUM_SEL_MODULS_SERIE.Value Then If Me.ModErr.IndexOf(910015) = -1 Then Me.ModErr.Add(910015) If Me.ModErr.IndexOf(910015) <> -1 Then Me.ModErr.Remove(910015) 'Error Numero de moduls paralel inferior al minim recomenat If Convert.ToInt32(TXT_MIN_MODULS_PARALEL.Text) > Me.NUM_SEL_MODULS_PARALEL.Value Then If Me.ModErr.IndexOf(910016) = -1 Then Me.ModErr.Add(910016) If Me.ModErr.IndexOf(910016) <> -1 Then Me.ModErr.Remove(910016) Me.ImprimirErrorsDimensionat() Private Sub ActualitzarNumModuls() If Me.IsHandleCreated = True Then Me.TXT_TOTAL_MODULS_SELECCIO.Text = Me.NUM_SEL_MODULS_PARALEL.Value * Me. NUM_SEL_MODULS_SERIE.Value Me.TXT_ISC_GENERADOR.Text = Me.TXTM_ISC.Text * Me.NUM_SEL_MODULS_PARALEL.Value ''W PIC GENERADOR If Me.TXT_TOTAL_MODULS_SELECCIO.Text <> 0 Then Me.TXT_W_PIC_GENERADOR.Text = Me.TXT_MOD_W_NOM.Text * Me. TXT_TOTAL_MODULS_SELECCIO.Text Me.TXT_W_PIC_GENERADOR.Text = "0" 'v max sistema Me.TXT_V_MAX_SISTEMA.Text = Me.TXT2_VOC.Text * Me.NUM_SEL_MODULS_SERIE.Value 2) 'V MAX FLOTACIO If Me.TXT_V_FLOTACIO.Text = "" Then Me.TXT_V_FLOTACIO.Text = 0 If Me.TXT_V_FLOTACIO.Text < 3 Then Me.TXT_V_MAX_FLOTACIO.Text = Me.TXT_V_FLOTACIO.Text * (Me.TXT_V_NOM.Text / Me.TXT_V_MAX_FLOTACIO.Text = Me.TXT_V_FLOTACIO.Text * Me. NUM_SEL_MODULS_SERIE.Value 'V EQU Me.TXT_V_MAX_EQUALITZACIO.Text = ((Me.TXT_V_NOM_SISTEMA.Text / 2) * Me. TXT_V_EQUALITZACIO.Text) 'T MAX CELA Me.TXT_T_MAX_CELA.Text = Me.NUM_T_MAX_TREBALL.Value + ((27 / 800) * 900) 'v max tc Me.TXT_V_MAX_TC.Text = Round(Me.TXT_V_MAX_SISTEMA.Text - ((((Me.TXT_T_MAX_CELA.Text - 25) * 0.5) * Me.TXT_V_MAX_SISTEMA.Text) / 100), 4) Me.ComprovarErrorsModuls() Me.ActualitzarProteccions() Me.ActualitzarResultatsConsum()

33 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 13 Private Sub ActualitzarDimModuls() If Me.IsHandleCreated = True Then If Me.carregantProjecte = True Then Exit Sub ' I corregida If Me.NUM_VIABILITAT_TE.Value = 6 Then Me.TXT_I_CORREGIDA.Text = Me.TXT_I_DISSENY.Text Dim tmp As Double = 0 Dim elevat As Integer = 0 Dim arrel5 As Double = Math.Sqrt(5) elevat = NUM_VIABILITAT_TE.Value + 6 tmp = (1 / arrel5) * (Math.Pow(((1 + arrel5) / 2), elevat)) - (Math.Pow(( (1 - arrel5) / 2), elevat)) tmp) If Me.TXT_HORES_PIC_DISSENY.Text <> 0 Then tmp = Me.TXT_CAPACITAT_UTIL.Text / (Me.TXT_HORES_PIC_DISSENY.Text * Me.TXT_HORES_PIC_DISSENY.Text = 0 Me.TXT_I_CORREGIDA.Text = Round(Me.TXT_I_DISSENY.Text - tmp, 4) 'I corregida disseny If Me.NUM_CORRECCIO_MODUL.Value <> 0 Then Me.TXT_I_CORREGIDA_DISSENY.Text = Round(Me.TXT_I_CORREGIDA.Text / Me. NUM_CORRECCIO_MODUL.Value, 4) Me.TXT_I_CORREGIDA_DISSENY.Text = 0 'Moduls serie If Me.TXT2_VMP.Text <> 0 Then Me.TXT_MIN_MODULS_SERIE.Text = Ceiling(Me.TXT_V_NOM_SISTEMA.Text / Me. TXT2_VMP.Text) Me.TXT_MIN_MODULS_SERIE.Text = 0 Text) If Me.TABC_AILLAT.SelectedTab.Name <> "TAB_DIMENSIONAT" Then Me.NUM_SEL_MODULS_SERIE.Minimum = Convert.ToInt32(Me.TXT_MIN_MODULS_SERIE. Me.NUM_SEL_MODULS_SERIE.Maximum = 4 * Me.NUM_SEL_MODULS_SERIE.Minimum Me.NUM_SEL_MODULS_SERIE.Value = Convert.ToInt32(Me.TXT_MIN_MODULS_SERIE. Text) If Convert.ToInt32(TXT_MIN_MODULS_SERIE.Text) < Me.NUM_SEL_MODULS_SERIE. Minimum Then Me.NUM_SEL_MODULS_SERIE.Minimum = Convert.ToInt32(TXT_MIN_MODULS_SERIE.Text) 'moduls paral lel

34 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb If Me.TXT2_IMP.Text <> 0 Then Me.TXT_MIN_MODULS_PARALEL.Text = Ceiling(Me.TXT_I_CORREGIDA_DISSENY.Text / Me.TXT2_IMP.Text) Me.TXT_MIN_MODULS_PARALEL.Text = 0 If Me.TABC_AILLAT.SelectedTab.Name <> "TAB_DIMENSIONAT" Then Me.NUM_SEL_MODULS_PARALEL.Minimum = Convert.ToInt32(Me. TXT_MIN_MODULS_PARALEL.Text) Me.NUM_SEL_MODULS_PARALEL.Maximum = 4 * Me.NUM_SEL_MODULS_PARALEL.Minimum Me.NUM_SEL_MODULS_PARALEL.Value = Convert.ToInt32(Me. TXT_MIN_MODULS_PARALEL.Text) If Convert.ToInt32(TXT_MIN_MODULS_PARALEL.Text) < Me. NUM_SEL_MODULS_PARALEL.Minimum Then Me.NUM_SEL_MODULS_PARALEL.Minimum = Convert.ToInt32 (TXT_MIN_MODULS_PARALEL.Text) 14 'moduls totals Me.CanviarValor(Me.TXT_MIN_MODULS_TOTAL.Name, (Me.TXT_MIN_MODULS_SERIE.Text * Me.TXT_MIN_MODULS_PARALEL.Text)) 'Me.TXT_MIN_MODULS_TOTAL.Text = Me.TXT_MIN_MODULS_SERIE.Text * Me. TXT_MIN_MODULS_PARALEL.Text Me.ActualitzarNumModuls() '**** Dimensionat Bateries **** Private Sub ComprovarErrorsBat() 'Error Es recomana augmentar la capacitat del banc de bateries o revisar els dies d'autonomia i la màxima profunditat de descàrrega If (Me.TXT_DESC_AUTONOMIA.Text) / 100 > Me.NUM_PROFUNDITAT_DESCARREGA.Value Then If BatErr.IndexOf(910005) = -1 Then BatErr.Add(910005) If BatErr.IndexOf(910005) <> -1 Then BatErr.Remove(910005) 'Error Es recomana augmentar la capacitat de les bateries If Me.TXT_DESC_DIARIA.Text / 100 > 0.2 Then If BatErr.IndexOf(910006) = -1 Then BatErr.Add(910006) If BatErr.IndexOf(910006) <> -1 Then BatErr.Remove(910006) 'Error La seleccio del número de bateries és incorrecte If Me.TXT_DESC_DIARIA.Text / 100 > 1 Then If BatErr.IndexOf(910007) = -1 Then BatErr.Add(910007)

35 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb If BatErr.IndexOf(910007) <> -1 Then BatErr.Remove(910007) 15 'Error Nombre de bateries serie inferior al minim recomenat If Convert.ToInt32(TXT_MIN_BAT_SERIE.Text) > Me.NUM_SEL_SERIE.Value Then If Me.BatErr.IndexOf(910013) = -1 Then Me.BatErr.Add(910013) If Me.BatErr.IndexOf(910013) <> -1 Then Me.BatErr.Add(910013) 'Error Nombre de bateries paralel inferior al minim recomenat If Convert.ToInt32(TXT_MIN_BAT_PARALEL.Text) > Me.NUM_SEL_PARALEL.Value Then If Me.BatErr.IndexOf(910014) = -1 Then Me.BatErr.Add(910014) If Me.BatErr.IndexOf(910014) <> -1 Then Me.BatErr.Remove(910014) Me.ImprimirErrorsDimensionat() Private Sub ActualitzarNumBateries() If Me.IsHandleCreated = True Then Me.TXT_SELECCIO_TOTAL_BATERIES.Text = (Me.NUM_SEL_PARALEL.Value * NUM_SEL_SERIE.Value).ToString Me.TXT_CAPACITAT_SISTEMA.Text = (Me.NUM_SEL_PARALEL.Value * Me.TXT_CAPACITAT. Text).ToString Me.TXT_CAPACITAT_UTIL.Text = Round(Me.TXT_CAPACITAT_SISTEMA.Text * Me. NUM_PROFUNDITAT_DESCARREGA.Value, 4) If Me.TXT_CAPACITAT_SISTEMA.Text <> 0 Then Me.TXT_DESC_DIARIA.Text = Round((Me.TXT2_CONSUM_TOTAL_CORREGIT.Text * 0.75 / Me.TXT_CAPACITAT_SISTEMA.Text) * 100, 4) Me.TXT_DESC_AUTONOMIA.Text = Round((((Me.TXT2_CONSUM_TOTAL_CORREGIT.Text * Me.NUM_DIES_AUTONOMIA.Value) / Me.TXT_CAPACITAT_SISTEMA.Text) * Me. TXT_DESC_DIARIA.Text), 4) Me.TXT_DESC_DIARIA.Text = 0 Me.TXT_DESC_AUTONOMIA.Text = 0 Me.TXT_DESC_AUTONOMIA.Text = Round((((Me.TXT2_CONSUM_TOTAL_CORREGIT.Text * Me. NUM_DIES_AUTONOMIA.Value) / Me.TXT_CAPACITAT_SISTEMA.Text) * Me.TXT_DESC_DIARIA. Text), 4) Me.ComprovarErrorsBat() Me.ActualitzarProteccions() 'Me.TXT_RECUPERACIO_HIVERN = Round(, 4) 'Me.TXT_RECUPERACIO_ESTIU = Round(, 4) Private Sub ActualitzarDimBateries() If Me.IsHandleCreated = True Then If Me.carregantProjecte = True Then Exit Sub

36 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 'Me.TXT2_CONSUM_TOTAL_CORREGIT = Me.TXT_CONSUM_TOTAL_CORREGIT TXT_CAPACITAT_NECESSARIA.Text = Round((Convert.ToDouble(Me. TXT2_CONSUM_TOTAL_CORREGIT.Text) * Convert.ToDouble(Me.NUM_DIES_AUTONOMIA.Value)) / (Convert.ToDouble(Me.NUM_PROFUNDITAT_DESCARREGA.Value) * Convert.ToDouble(Me. NUM_CORRECIO_TEMP.Value)), 4).ToString 16 If Convert.ToDouble(TXT_CAPACITAT.Text) <> 0 Then Me.TXT_MIN_BAT_PARALEL.Text = Ceiling((Convert.ToDouble(Me. TXT_CAPACITAT_NECESSARIA.Text) / Convert.ToDouble(Me.TXT_CAPACITAT.Text))).ToString TXT_MIN_BAT_PARALEL.Text = "0" Then If Me.TABC_AILLAT.SelectedTab.Name <> "TAB_DIMENSIONAT" Then Me.NUM_SEL_PARALEL.Minimum = Convert.ToInt32(TXT_MIN_BAT_PARALEL.Text) Me.NUM_SEL_PARALEL.Maximum = 4 * NUM_SEL_PARALEL.Minimum Me.NUM_SEL_PARALEL.Value = Convert.ToInt32(TXT_MIN_BAT_PARALEL.Text) If Convert.ToInt32(TXT_MIN_BAT_PARALEL.Text) < Me.NUM_SEL_PARALEL.Minimum Me.NUM_SEL_PARALEL.Minimum = Convert.ToInt32(TXT_MIN_BAT_PARALEL.Text) If Me.TXT_V_NOM_BATERIES.Text <> 0 Then Me.TXT_MIN_BAT_SERIE.Text = Ceiling((Convert.ToDouble(Me.TXT_V_NOM_SISTEMA.Text) / Convert.ToDouble(Me.TXT_V_NOM_BATERIES.Text))).ToString Me.TXT_V_NOM_BATERIES.Text = 0 If Me.TABC_AILLAT.SelectedTab.Name <> "TAB_DIMENSIONAT" Then Me.NUM_SEL_SERIE.Minimum = Convert.ToInt32(TXT_MIN_BAT_SERIE.Text) Me.NUM_SEL_SERIE.Maximum = 4 * NUM_SEL_SERIE.Minimum Me.NUM_SEL_SERIE.Value = Convert.ToInt32(TXT_MIN_BAT_SERIE.Text) If Convert.ToInt32(TXT_MIN_BAT_SERIE.Text) < Me.NUM_SEL_SERIE.Minimum Then Me.NUM_SEL_SERIE.Minimum = Convert.ToInt32(TXT_MIN_BAT_SERIE.Text).Text Me.TXT_MIN_BAT_TOTAL.Text = Me.TXT_MIN_BAT_PARALEL.Text * Me.TXT_MIN_BAT_SERIE 'promig hivern Me.ActualitzarNumBateries() If DimensionatAillat IsNot Nothing Then Dim promig As Double = (DimensionatAillat.GetHoresPicSolar(DIMENSIONAT. NomMesos.GENER) + _ DimensionatAillat.GetHoresPicSolar(DIMENSIONAT. NomMesos.FEBRER) + _ DimensionatAillat.GetHoresPicSolar(DIMENSIONAT. NomMesos.MARÇ)) / _ 3 If Me.TXTM_IMP.Text = "" Then Me.TXTM_IMP.Text = "0"

37 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Dim tmpden As Double = (Me.NUM_SEL_MODULS_PARALEL.Value * Me.TXTM_IMP.Text * promig) - (Me.TXT_CONSUM_TOTAL_CORREGIT.Text * 0.8) '(Me.NUM_SEL_MODULS_PARALEL.Value * Me.TXTM_IMP.Text * promig) - (Me. TXT_CONSUM_TOTAL_CORREGIT.Text * 0.8) If tmpden = 0 Then Me.CanviarValor(Me.TXT_RECUPERACIO_HIVERN.Name, "0") If (Me.TXT_CAPACITAT_UTIL.Text / tmpden) > 0 Then Me.CanviarValor(Me.TXT_RECUPERACIO_HIVERN.Name, Ceiling((Me. TXT_CAPACITAT_UTIL.Text / tmpden))) Me.CanviarValor(Me.TXT_RECUPERACIO_HIVERN.Name, "0") 17 _ NomMesos.JULIOL) + _ NomMesos.AGOST)) / _ 'promig estiu promig = (DimensionatAillat.GetHoresPicSolar(DIMENSIONAT.NomMesos.JUNY) + DimensionatAillat.GetHoresPicSolar(DIMENSIONAT. DimensionatAillat.GetHoresPicSolar(DIMENSIONAT. 3 tmpden = Me.NUM_SEL_MODULS_PARALEL.Value * Me.TXTM_IMP.Text * promig - Me. TXT_CONSUM_TOTAL_CORREGIT.Text If tmpden = 0 Then Me.CanviarValor(Me.TXT_RECUPERACIO_ESTIU.Name, "0") If (Me.TXT_CAPACITAT_UTIL.Text / tmpden) > 0 Then Me.CanviarValor(Me.TXT_RECUPERACIO_ESTIU.Name, Ceiling((Me. TXT_CAPACITAT_UTIL.Text / tmpden))) Me.CanviarValor(Me.TXT_RECUPERACIO_ESTIU.Name, "0") '**** Zona geogràfica ***** Private Sub BuscarMesDisseny() Dim MinHores As Double = Nothing Dim INDEX As Integer = -1 For Each row As DataGridViewRow In DGV_MENSUAL.Rows If row.cells("col_seleccio").value = True Then If MinHores = Nothing Then MinHores = row.cells("col_hores_pic_sol").value INDEX = row.index 'Resume If row.cells("col_hores_pic_sol").value < MinHores Then MinHores = row.cells("col_hores_pic_sol").value INDEX = row.index 'Resume If INDEX <> -1 Then

38 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb With DGV_MENSUAL.Rows(INDEX) Me.TXT_I_DISSENY.Text =.Cells("COL_INTENSITAT_DISSENY").Value.ToString Me.TXT_MES_DISSENY.Text =.Cells("COL_MES").Value.ToString Me.TXT_HORES_PIC_DISSENY.Text =.Cells("COL_HORES_PIC_SOL").Value.ToString End With Me.TXT_I_DISSENY.Text = "" Me.TXT_MES_DISSENY.Text = "" Me.TXT_HORES_PIC_DISSENY.Text = "" 18 Private Sub ActualitzarDgvCostos() If Me.IsHandleCreated = True Then Dim TROBAT As Boolean = False For Each T As TabPage In TABC_AILLAT.TabPages If T.Name = "TAB_CALCUL_ECONOMIC" Then TROBAT = True Exit For If TROBAT = True Then 'mostrem les files i columnes de radiació mensual Dim DS_COSTOS As Data.DataSet DS_COSTOS = GENERAL.BD_CONF.StrConsultar(GENERAL.TAULA_CONF_PREUS) Dim RowArr As ArrayList = New ArrayList Dim TmpCount As Integer = (DGV_COSTOS.Rows.Count) For I As Integer = 1 To TmpCount ' For Each R As DataGridViewRow In DGV_COSTOS.Rows Dim R As DataGridViewRow = DGV_COSTOS.Rows(TmpCount - I) If R.IsNewRow = False Then RowArr.Insert(0, R) DGV_COSTOS.Rows.Remove(R) ' DGV_COSTOS.Columns.Clear() Dim KK333 As Integer = DGV_COSTOS.Columns.Count Dim col1 As New DataGridViewTextBoxColumn col1.name = "COL_ID" col1.visible = False Dim col2 As New DataGridViewTextBoxColumn col2.name = "COL_CONCEPTE" Dim col3 As New DataGridViewTextBoxColumn col3.name = "COL_UNITATS" Dim col4 As New DataGridViewTextBoxColumn col4.name = "COL_PREU_UNITAT" Dim col5 As New DataGridViewTextBoxColumn col5.name = "COL_SUBTOTAL" DGV_COSTOS.Columns.Add(col2) DGV_COSTOS.Columns.Add(col1) DGV_COSTOS.Columns.Add(col3) DGV_COSTOS.Columns.Add(col4) DGV_COSTOS.Columns.Add(col5) For Each COL As DataGridViewColumn In DGV_COSTOS.Columns COL.HeaderText = IDIOMES.Traduir(COL.Name)

39 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb DGV_COSTOS.Columns(0).Width = DGV_COSTOS.Width * For I As Integer = 1 To 4 Dim quantitat As String = Nothing Select Case I Case 1 quantitat = Me.TXT_SELECCIO_TOTAL_BATERIES.Text Case 2 quantitat = Me.TXT_TOTAL_MODULS_SELECCIO.Text Case 3 quantitat = Me.NUM_SEL_INVERSORS.Value Case 4 quantitat = Me.TXT_REGULADORS_PARALEL.Text End Select If RowArr.Count < 4 Then DGV_COSTOS.Rows.Add() DGV_COSTOS.Rows(I - 1).Cells("COL_ID").Value = I DGV_COSTOS.Rows(I - 1).Cells("COL_CONCEPTE").Value = IDIOMES. Traduir("ELEMENT_COSTOS_" & I) DGV_COSTOS.Rows(I - 1).Cells("COL_UNITATS").Value = quantitat DGV_COSTOS.Rows(I - 1).Cells("COL_PREU_UNITAT").Value = DS_COSTOS. Tables(0).Rows(0).Item(I) DGV_COSTOS.Rows(I - 1).Cells("COL_SUBTOTAL").Value = quantitat * DS_COSTOS.Tables(0).Rows(0).Item(I) For Each r As DataGridViewRow In RowArr If IsDBNull(r.Cells(1).Value) Then r.cells(1).value = 0.Item(I) If r.cells(1).value = I Then r.cells(0).value = IDIOMES.Traduir("ELEMENT_COSTOS_" & I) r.cells(2).value = quantitat r.cells(3).value = DS_COSTOS.Tables(0).Rows(0).Item(I) r.cells(4).value = quantitat * DS_COSTOS.Tables(0).Rows(0) 'DGV_COSTOS.Rows.Add(r) 'If DGV_COSTOS.Rows.Count < 4 Then ' For Each r As DataGridViewRow In RowArr DGV_COSTOS.Rows.Add(r) Dim Total As Double = 0 For Each R As DataGridViewRow In DGV_COSTOS.Rows Total += R.Cells(4).Value Me.TXT_COST_TOTAL.Text = Total Private Sub GenerarGraficaHP() Dim Trobat As Boolean = False For Each tab As TabPage In TABC_AILLAT.TabPages If tab.name = "TAB_ZONA_GEOGRAFICA_I_INCLINACIO" Then Trobat = True Exit For

40 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 20 If Trobat = True Then Dim DS_RAD_MENSUAL As Data.DataSet DS_RAD_MENSUAL = GENERAL.BD_RADIACIO.StrConsultaAMida( _ "SELECT MES.NOM_MES AS " & IDIOMES.Traduir("MES") & _ ", HH, HOPT,H90,RAD_MENSUAL.ID_MES AS ID_MES FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT") & " AND RAD_MENSUAL.ID_MES<=12 ORDER BY RAD_MENSUAL. ID_MES") Dim tmpds As New DataSet tmpds.tables.add("radiacio") Dim COL1 As DataColumn = New DataColumn Dim COL2 As DataColumn = New DataColumn Dim COL3 As DataColumn = New DataColumn Dim COL4 As DataColumn = New DataColumn Dim COL5 As DataColumn = New DataColumn COL1.DataType = System.Type.GetType("System.String") COL1.ColumnName = "NOM_MES" 'COL1.column.ReadOnly = True 'column.unique = True COL2.DataType = System.Type.GetType("System.Double") COL2.ColumnName = "HH" COL3.DataType = System.Type.GetType("System.Double") COL3.ColumnName = "HOPT" COL4.DataType = System.Type.GetType("System.Double") COL4.ColumnName = "H90" COL5.DataType = System.Type.GetType("System.Double") COL5.ColumnName = "HSEL" With tmpds.tables(0).columns.add(col1) If Me.CHK_RADIACIO_HH.Checked = True Then.Add(COL2) If Me.CHK_RADIACIO_HOPTIM.Checked = True Then.Add(COL3) If Me.CHK_RADIACIO_H90.Checked = True Then.Add(COL4) If Me.CHK_RADIACIO_HSEL.Checked = True Then.Add(COL5) End With If DimensionatAillat IsNot Nothing Then Dim i As Integer = 1 For i = 1 To 12 Dim MES As String = Nothing MES = IDIOMES.Traduir("CURT_MES" & i) Value Dim row As DataRow = tmpds.tables(0).newrow row.item("nom_mes") = MES If Me.CHK_RADIACIO_HH.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("hh") = Me.DGV_MENSUAL.Rows(i - 1).Cells("COL_HH"). If Me.CHK_RADIACIO_HOPTIM.Checked = True Then

41 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb "HOPT").ToString If DGV_MENSUAL.Rows.Count > 0 Then row.item("hopt") = DS_RAD_MENSUAL.Tables(0).Rows(i - 1).Item( If Me.CHK_RADIACIO_H90.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("h90") = DS_RAD_MENSUAL.Tables(0).Rows(i - 1).Item( "H90").ToString If Me.CHK_RADIACIO_HSEL.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("hsel") = Me.DGV_MENSUAL.Rows(i - 1).Cells( "COL_HORES_PIC_SOL").Value * i tmpds.tables(0).rows.add(row) Me.ZG_HORES_PIC.GraphPane.CurveList.Clear() Me.ZG_HORES_PIC.GraphPane.Title.Text = IDIOMES.Traduir( "TITOL_GRAFIC_RADIACIO") Me.ZG_HORES_PIC.GraphPane.XAxis.Title.Text = IDIOMES.Traduir( "TITOL_X_MESOS") Me.ZG_HORES_PIC.GraphPane.YAxis.Title.Text = IDIOMES.Traduir( "TITOL_Y_HORES_PIC") If Me.BTO_BARRES_VERTICALS.Selected = True Then GRAFIQUES.DibuixarGrafica(tmpDS, Me.ZG_HORES_PIC, "NOM_MES", TipusGrafic.BarresVerticals) GRAFIQUES.DibuixarGrafica(tmpDS, Me.ZG_HORES_PIC, "NOM_MES", TipusGrafic.Corba,, ZedGraph.SymbolType.None) Me.ZG_HORES_PIC.Refresh() Private Sub IniciarDGVMensual() If Me.carregantProjecte = False Then 'mostrem les files i columnes de radiació mensual Dim DS_RAD_MENSUAL As Data.DataSet DS_RAD_MENSUAL = GENERAL.BD_RADIACIO.StrConsultaAMida( _ "SELECT MES.NOM_MES AS " & IDIOMES.Traduir("MES") & _ ", HH, RAD_MENSUAL.ID_MES AS ID_MES FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT") & " AND RAD_MENSUAL.ID_MES<=12 ORDER BY RAD_MENSUAL. ID_MES") With DGV_MENSUAL If.Columns.Count = 0 Then Dim DGV_Col As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn(False) DGV_Col.Name = "COL_SELECCIO" DGV_Col.HeaderText = "" 'IDIOMES.Traduir("SELECCIONAT") DGV_Col.Width = 20 DGV_Col.TrueValue = "1" DGV_Col.FalseValue = "0"

42 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb.Columns.Insert(0, DGV_Col).Columns.Add("COL_MES", IDIOMES.Traduir("MES")).Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_HH", "Hh").Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_CONSUM_TOTAL_CORREGIT", IDIOMES.Traduir( "CONSUM_TOTAL_CORREGIT") & " (" & IDIOMES.Traduir("SIM_AH_DIA") & ")").Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_HORES_PIC_SOL", IDIOMES.Traduir("HORES_PIC_SOL")).Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_INTENSITAT_DISSENY", IDIOMES.Traduir( "INTENSITAT_DISSENY")).Columns(.Columns.Count - 1).ReadOnly = True 22 If.Rows.Count = 0 Then.Rows.Add(DS_RAD_MENSUAL.Tables(0).Rows.Count) Dim rowcount As Integer = 1 For Each row As DataGridViewRow In.Rows row.cells("col_hh").value = DS_RAD_MENSUAL.Tables(0).Rows(row.Index). Item("HH").ToString row.cells("col_mes").value = IDIOMES.Traduir(DS_RAD_MENSUAL.Tables(0). Rows(row.Index).Item(IDIOMES.Traduir("MES"))) row.cells("col_seleccio").value = True row.cells("col_consum_total_corregit").value = Me. TXT_CONSUM_TOTAL_CORREGIT.Text row.cells("col_hores_pic_sol").value = Round(DimensionatAillat. GetHoresPicSolar(rowcount), 4) If row.cells("col_hores_pic_sol").value <> 0 Then row.cells("col_intensitat_disseny").value = Round(row.Cells( "COL_CONSUM_TOTAL_CORREGIT").Value / row.cells("col_hores_pic_sol").value, 4) row.cells("col_intensitat_disseny").value = 0 rowcount += 1.Columns("COL_SELECCIO").Width = 20.ClearSelection() End With If arrsel IsNot Nothing Then For i As Integer = 0 To DGV_MENSUAL.Rows.Count - 1 DGV_MENSUAL.Rows(i).Cells("COL_SELECCIO").Value = arrsel(i) Me.GenerarGraficaHP() Me.BuscarMesDisseny() '**** CONSUM ***** Private Sub ActualitzarResultatsConsum() If Me.carregantProjecte = False Then Dim W_DC As Double = 0 Dim W_AC As Double = 0 Dim C_DC As Double = 0 Dim C_AC As Double = 0 Dim V_NOM As Integer = 0 For Each ROW As DataGridViewRow In DGV_CONSUM.Rows

43 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb For Each CEL As DataGridViewCell In ROW.Cells 23 If DGV_CONSUM.Columns(CEL.ColumnIndex).Name = "COL_TIPUS_CARREGA" Then If CEL.Value IsNot Nothing Then If CEL.Value.ToString = "DC" Then W_DC += ROW.Cells("COL_POTENCIA").Value C_DC += ROW.Cells("COL_CONSUM").Value If IsDBNull(ROW.Cells("COL_POTENCIA").Value) = False Then W_AC += ROW.Cells("COL_POTENCIA").Value If IsDBNull(ROW.Cells("COL_consum").Value) = False Then C_AC += ROW.Cells("COL_CONSUM").Value If IsDBNull(ROW.Cells("COL_tensio_nominal").Value) = False Then V_NOM += ROW.Cells("COL_TENSIO_NOMINAL").Value Me.TXT_CONSUM_AC.Text = C_AC.ToString Me.TXT_CONSUM_DC.Text = C_DC.ToString Me.TXT_CONSUM.Text = (C_AC + C_DC).ToString Me.TXT_W_AC.Text = W_AC.ToString Me.TXT_W_DC.Text = W_DC.ToString Me.TXT_W.Text = (W_AC + W_DC).ToString Me.TXT_CONSUM_TOTAL_CORREGIT.Text = Round((C_AC + C_DC) / (Me. NUM_FACTOR_BATERIES.Value * Me.NUM_FACTOR_CABLEJAT.Value), 4) If DGV_CONSUM.Rows.Count <> 0 Then Me.TXT_V_NOM.Text = Round((V_NOM / (DGV_CONSUM.Rows.Count - 1)), 4). ToString Me.TXT_I_PIC.Text = Round(((W_AC + W_DC) / (V_NOM / (DGV_CONSUM.Rows.Count - 1))), 4).ToString Me.TXT_V_NOM.Text = "0" Me.TXT_I_PIC.Text = "0" ' Me.GenerarGraficaConsum() '******************************** '**** FUNCIONS DEL FORMULARI **** '******************************** Private Sub FRM_DIM_AILLAT_FormClosed(ByVal sender As Object, ByVal e As System. Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_DIM_AILLAT_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) 'si(projecte) If PROJECT.EstaObert = True And PROJECT.ExisteixAillat = True Then Me.CarregarProjecte() 'Eliminem tots els tabs menys el primer Dim i As Integer = 1 ReDim TabP(TABC_AILLAT.TabCount - 1) For i = 1 To (TABC_AILLAT.TabCount - 1) TabP(i) = TABC_AILLAT.TabPages(i) 'TABC_AILLAT.TabPages.Remove(TabP(i))

44 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb For i = 1 To (TABC_AILLAT.TabCount - 1) 'TabP(i) = TABC_AILLAT.TabPages(i) TABC_AILLAT.TabPages.Remove(TabP(i)) For Each COL As DataGridViewColumn In DGV_CONSUM.Columns COL.HeaderText = IDIOMES.Traduir(COL.Name) DGV_CONSUM.Columns(0).Width = DGV_CONSUM.Width * For Each COL As DataGridViewColumn In DGV_COSTOS.Columns COL.HeaderText = IDIOMES.Traduir(COL.Name) DGV_COSTOS.Columns(0).Width = DGV_COSTOS.Width * 0.45 ActualitzarDgvCostos() Me.TXTI_FABRICANT.Text = "" Me.TXTI_MODEL.Text = "" Me.NUMI_RENDIMENT.Value = 0.9 Me.NUM_FACTOR_BATERIES.Value = 0.9 Me.NUM_FACTOR_CABLEJAT.Value = 0.85 Me.TXT_I_PIC.Text = "0" Me.TXT_V_NOM.Text = "0" Me.BTO_IMPORTAR_REGULADORS.Text = "" Me.BTO_IMPORTAR_MODULS.Text = "" Me.BTO_IMPORTAR_INVERSORS.Text = "" Me.BTO_IMPORTAR_BATERIES.Text = "" 'sense projecte Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_BTO_SEGUENT.Click If Me.IsHandleCreated = True Then If TABC_AILLAT.TabCount < TabP.Length Then Dim ErrorsTrobats As Boolean = False Select Case TABC_AILLAT.TabPages(TABC_AILLAT.TabCount - 1).Name Case "TAB_CONSUM" If Convert.ToDouble(Me.TXT_CONSUM_TOTAL_CORREGIT.Text) = 0 Or Me. TXT_CONSUM_TOTAL_CORREGIT.Text.Trim = "" Then Me.TXT_CONSUM_TOTAL_CORREGIT.Text = "0" Me.canviarLBL(Me.LBL_CONSUM_TOTAL_CORREGIT, False) ErrorsTrobats = True If Convert.ToDouble(Me.TXT_W.Text) = 0 Or Me.TXT_W.Text.Trim = "" Then Me.TXT_W.Text = "0" Me.canviarLBL(Me.LBL_POTENCIA_TOTAL, False) ErrorsTrobats = True Case "TAB_ESPECIFICACIO_COMPONENTS" End Select If ErrorsTrobats = True Then Errors.MostrarMSG(909008) Exit Sub TABC_AILLAT.TabPages.Add(TabP(TABC_AILLAT.TabCount))

45 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb TABC_AILLAT.SelectedIndex = TABC_AILLAT.TabCount If TABC_AILLAT.TabCount = (TabP.Length - 1) Then Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_FINALITZAR") Exit Sub If TABC_AILLAT.TabCount = TabP.Length And BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_FINALITZAR") Then Me.ActualitzarDgvCostos() Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_ACABAR_I_GUARDAR") Me.bto_bto_cancelar.text = IDIOMES.Traduir("BTO_CANCELAR") Me.BTO_BTO_CANCELAR.Visible = True Exit Sub GenerarGraficaConsum() If Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_ACABAR_I_GUARDAR") Then Me.guardarAillat() Me.Close() Private Sub DGV_CONSUM_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_CONSUM. CellContentDoubleClick Private Sub DGV_CONSUM_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewCellEventArgs) Handles DGV_CONSUM.CellEndEdit If DGV_CONSUM.Rows.Count <= 0 Then Exit Sub If e.rowindex > 0 And e.columnindex > 0 Then 'MsgBox(DGV_CONSUM.Rows.Count) 'MsgBox(DGV_CONSUM.Columns.Count) 'DGV_MENSUAL.Rows(e.RowIndex).Cells(e.ColumnIndex).ErrorText = "" 'ACTUALITZEM ELS VALORS For Each cel As DataGridViewCell In DGV_CONSUM.Rows(e.RowIndex).Cells Select Case DGV_CONSUM.Columns(cel.ColumnIndex).Name Case "COL_NUM_CARREGUES", "COL_INTENSITAT", "COL_TENSIO" With DGV_CONSUM.Rows(e.RowIndex).Cells("COL_POTENCIA").Value = Round(.Cells("COL_NUM_CARREGUES"). Value *.Cells("COL_INTENSITAT").Value *.Cells("COL_TENSIO").Value, 4) End With Case "COL_CICLE_DIARI", "COL_CICLE_SETMANAL", "COL_RENDIMENT", "COL_TENSIO_NOMINAL" With DGV_CONSUM.Rows(e.RowIndex).Cells("COL_CONSUM").Value = Round((.Cells("COL_POTENCIA").Value *.Cells("COL_CICLE_DIARI").Value * (.Cells("COL_CICLE_SETMANAL").Value / 7)) / (.Cells ("COL_RENDIMENT").Value *.Cells("COL_TENSIO_NOMINAL").Value), 4) End With End Select

46 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 26 Me.ActualitzarResultatsConsum() Private Sub DGV_CONSUM_CellValueChanged(ByVal sender As Object, ByVal e As System. Windows.Forms.DataGridViewCellEventArgs) Handles DGV_CONSUM.CellValueChanged Private Sub DGV_CONSUM_DefaultValuesNeeded(ByVal sender As Object, ByVal e As System. Windows.Forms.DataGridViewRowEventArgs) Handles DGV_CONSUM.DefaultValuesNeeded For Each cel As DataGridViewCell In e.row.cells Select Case DGV_CONSUM.Columns(cel.ColumnIndex).Name Case "COL_NUM_CARREGUES" cel.value = 1 Case "COL_INTENSITAT" cel.value = 1 Case ("COL_TENSIO") cel.value = 220 Case "COL_CICLE_DIARI" cel.value = "8" Case "COL_CICLE_SETMANAL" cel.value = "7" Case "COL_RENDIMENT" cel.value = "0,9" Case "COL_TENSIO_NOMINAL" cel.value = "24" Case "COL_TIPUS_CARREGA" Dim CMB As DataGridViewComboBoxCell = cel CMB.Value = CMB.Items.Item(0) Case "COL_POTENCIA" cel.value = "220" Case "COL_CONSUM" cel.value = "8,1481" End Select Private Sub DGV_CONSUM_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_CONSUM.CellContentClick Private Sub DGV_CONSUM_CellValidating(ByVal sender As Object, ByVal e As System. Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DGV_CONSUM.CellValidating 'COMPROVEM QUE EL VALOR SIGUI CORRECTE Dim tmp As String = e.formattedvalue.tostring.replace(".", ",") With DGV_CONSUM.Rows(e.RowIndex).Cells(e.ColumnIndex) Select Case DGV_CONSUM.Columns(e.ColumnIndex).Name Case "COL_NUM_CARREGUES" If Not IsNumeric(e.FormattedValue) Then Errors.MostrarMSG(909001).ErrorText = Errors.GetMsgTxt(909001) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub If e.formattedvalue <= 0 Then Errors.MostrarMSG(909002).ErrorText = Errors.GetMsgTxt(909002) 'Me.CanviarCel(.Style, False) Exit Sub If e.formattedvalue >= 25 Then

47 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Errors.MostrarMSG(909006).ErrorText = Errors.GetMsgTxt(909006) 'Me.CanviarCel(.Style, False) Exit Sub.ErrorText = "" 27 Case "COL_INTENSITAT" If Not IsNumeric(e.FormattedValue) Then Errors.MostrarMSG(909001).ErrorText = Errors.GetMsgTxt(909001) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub If e.formattedvalue <= 0 Then Errors.MostrarMSG(909002).ErrorText = Errors.GetMsgTxt(909002) 'Me.CanviarCel(.Style, False) Exit Sub If e.formattedvalue >= 100 Then Errors.MostrarMSG(909006).ErrorText = Errors.GetMsgTxt(909006) 'Me.CanviarCel(.Style, False) Exit Sub.ErrorText = "" Case "COL_TENSIO" If Not IsNumeric(e.FormattedValue) Then Errors.MostrarMSG(909001).ErrorText = Errors.GetMsgTxt(909001) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub If e.formattedvalue <= 0 Then Errors.MostrarMSG(909002).ErrorText = Errors.GetMsgTxt(909002) 'Me.CanviarCel(.Style, False) Exit Sub If e.formattedvalue >= 230 Then Errors.MostrarMSG(909006).ErrorText = Errors.GetMsgTxt(909006) 'Me.CanviarCel(.Style, False) Exit Sub.ErrorText = "" Case "COL_CICLE_DIARI" If Not IsNumeric(e.FormattedValue) Then Errors.MostrarMSG(909001).ErrorText = Errors.GetMsgTxt(909001) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub If e.formattedvalue <= 0 Then Errors.MostrarMSG(909002).ErrorText = Errors.GetMsgTxt(909002) 'Me.CanviarCel(.Style, False) Exit Sub If (e.formattedvalue > 24) Then

48 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Errors.MostrarMSG(909003).ErrorText = Errors.GetMsgTxt(909003) 'Me.CanviarCel(.Style, False) Exit Sub.ErrorText = "" 28 Case "COL_CICLE_SETMANAL" If Not IsNumeric(e.FormattedValue) Then Errors.MostrarMSG(909001).ErrorText = Errors.GetMsgTxt(909001) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub If e.formattedvalue <= 0 Then Errors.MostrarMSG(909002).ErrorText = Errors.GetMsgTxt(909002) 'Me.CanviarCel(.Style, False) Exit Sub If (e.formattedvalue > 7) Then Errors.MostrarMSG(909004).ErrorText = Errors.GetMsgTxt(909004) 'Me.CanviarCel(.Style, False) Exit Sub.ErrorText = "" Case "COL_RENDIMENT" If Not IsNumeric(e.FormattedValue) Then Errors.MostrarMSG(909001).ErrorText = Errors.GetMsgTxt(909001) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub If Convert.ToDouble(tmp) <= 0 Then Errors.MostrarMSG(909002).ErrorText = Errors.GetMsgTxt(909002) 'Me.CanviarCel(.Style, False) 'e.cancel = True Exit Sub If (Convert.ToDouble(tmp) > 1) Then Errors.MostrarMSG(909005).ErrorText = Errors.GetMsgTxt(909005) 'Dim kk As Double = Convert.ToDouble(e.FormattedValue) 'MsgBox(kk) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub.ErrorText = "" Case "COL_TENSIO_NOMINAL" If e.rowindex > 0 Then '***** aki aki aki If e.formattedvalue <> DGV_CONSUM.Rows(0).Cells( "COL_TENSIO_NOMINAL").Value Then Errors.MostrarMSG(909007).ErrorText = Errors.GetMsgTxt(909007) 'Me.CanviarCel(.Style, False) e.cancel = True Exit Sub.ErrorText = ""

49 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 29 End Select End With Private Sub DGV_CONSUM_RowValidated(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewCellEventArgs) Handles DGV_CONSUM.RowValidated Me.ActualitzarResultatsConsum() Private Sub TAB_CONSUM_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TAB_CONSUM.Click Private Sub NUM_FACTOR_CABLEJAT_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles NUM_FACTOR_CABLEJAT.ValueChanged, NUM_FACTOR_BATERIES.ValueChanged Me.ActualitzarResultatsConsum() Private Sub CMB_PAISOS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PAISOS.SelectedIndexChanged If CMB_PAISOS.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES PROVINCIES Dim DS_PROVINCIES As Data.DataSet DS_PROVINCIES = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PROVINCIES,, "ID_PAIS='" & CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex).ITEM("ID_PAIS") & "'", "NOM_PROVINCIA") If DS_PROVINCIES.Tables(0).Rows.Count <> 0 Then CMB_PROVINCIES.DataSource = DS_PROVINCIES.Tables(0) CMB_PROVINCIES.DisplayMember = "NOM_PROVINCIA" CMB_PROVINCIES.DataSource = Nothing 'CANVIEM LA INFORMACIÓ DE LA UBICACIÓ A LA PESTANYA RESUM 'If TXT_CMB_PROVINCIES.Text <> -1 Then ' Try ' CMB_PROVINCIES.SelectedIndex = TXT_CMB_PROVINCIES.Text ' Catch ex As Exception ' End Try ' 'TXT_CMB_PROVINCIES.Text = -1 ' 'Me.TXT_CMB_PROVINCIES.Text = CMB_PROVINCIES.SelectedIndex If CMB_PAISOS.SelectedIndex <> -1 Then Me.CanviarValor(Me.TXTR_PAIS.Name, CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex). ITEM("NOM_PAIS").ToString) ' Me.CanviarValor(Me.TXTR_PROVINCIA.Name, CMB_PROVINCIES.Items (CMB_PROVINCIES.SelectedIndex).ITEM("NOM_provincia").ToString) Private Sub TAB_ZONA_GEOGRAFICA_I_INCLINACIO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_ZONA_GEOGRAFICA_I_INCLINACIO.Click Private Sub CMB_PROVINCIES_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PROVINCIES.SelectedIndexChanged

50 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 30 If CMB_PROVINCIES.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES CIUTATS Dim DS_CIUTATS As Data.DataSet Dim KK As Integer KK = CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM("ID_PROVINCIA") DS_CIUTATS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_CIUTATS,, "ID_PROVINCIA=" & CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM( "ID_PROVINCIA"), "NOM_CIUTAT") If DS_CIUTATS.Tables(0).Rows.Count <> 0 Then CMB_CIUTATS.DataSource = DS_CIUTATS.Tables(0) CMB_CIUTATS.DisplayMember = "NOM_CIUTAT" CMB_CIUTATS.DataSource = Nothing 'If TXT_CMB_CIUTATS.Text <> -1 Then ' Try ' CMB_CIUTATS.SelectedIndex = TXT_CMB_CIUTATS.Text ' Catch ex As Exception ' End Try ' 'TXT_CMB_CIUTATS.Text = -1 ' 'TXT_CMB_CIUTATS.Text = CMB_CIUTATS.SelectedIndex 'CANVIEM EL VALOR DE LA PROVINCIA A LA TAULA RESUM Me.CanviarValor(Me.TXTR_PROVINCIA.Name, CMB_PROVINCIES.Items(CMB_PROVINCIES. SelectedIndex).ITEM("NOM_PROVINCIA").ToString) Private Sub CMB_CIUTATS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_CIUTATS.SelectedIndexChanged If CMB_CIUTATS.SelectedIndex <> -1 Then 'CARREGUEM LA RADIACIO EN PLA MIG Dim DS_MES As Data.DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_MENSUAL,, "ID_MES<=12 AND ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT"), "ID_MES") Dim i As Integer = 1 'MsgBox(DS_MES.Tables(GENERAL.TAULA_RAD_MENSUAL).Rows.Count) For Each ROW As DataRow In DS_MES.Tables(0).Rows ArrHh(i) = (Convert.ToDouble(ROW.Item("HH")) * 30) / 1000 i += 1 'carreguem la latitut i la longitud With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut"), True) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) If Me.carregantProjecte = False Or arrsel Is Nothing Then NUM_ANGLE_INCLINACIO.Value =.ITEM("ANGLE_OPTIM") DimensionatAillat = New DIMENSIONAT(.item("latitut"), ArrHh,.item( "ANGLE_OPTIM")) 'CANVIEM EL VALOR DE LA CIUTAT I ELEMENTS RELACIONATS LA TAULA RESUM Me.CanviarValor(Me.TXTR_CIUTAT.Name,.item("NOM_CIUTAT").ToString) Me.CanviarValor(Me.LBLR_A_OPTIM.Name,.ITEM("ANGLE_OPTIM").ToString) Me.CanviarValor(Me.LBLR_LAT_GRAUS.Name, LBL_LAT_GRAUS.Text) Me.CanviarValor(Me.LBLR_LON_GRAUS.Name, LBL_LON_GRAUS.Text)

51 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 31 End With 'Me.GenerarGraficaConsum() Me.IniciarDGVMensual() Private Sub TAB_ZONA_GEOGRAFICA_I_INCLINACIO_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_ZONA_GEOGRAFICA_I_INCLINACIO.GotFocus Private Sub TAB_ZONA_GEOGRAFICA_I_INCLINACIO_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_ZONA_GEOGRAFICA_I_INCLINACIO.HandleCreated If GENERAL.PROJECT.ExisteixAillat = False Then If Me.TXT_CMB_PAISOS.Text = -1 Then Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing 'Me.CMB_PAISOS.SelectedIndex = Me.TXT_CMB_PAISOS.Text 'Me.TXT_CMB_PAISOS.Text = -1 CMB_PAISOS.SelectedIndex = Me.TXT_CMB_PAISOS.Text CMB_PROVINCIES.SelectedIndex = Me.TXT_CMB_PROVINCIES.Text CMB_CIUTATS.SelectedIndex = Me.TXT_CMB_CIUTATS.Text Rows For Each r As DataRow In GENERAL.PROJECT.DSAillat.Tables("aillat_Elements"). If r.item(0) = NUM_ANGLE_INCLINACIO.Name Then Me.NUM_ANGLE_INCLINACIO.Value = r.item(1) Exit For Private Sub BTO_IMPORTAR_BATERIES_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles BTO_IMPORTAR_BATERIES.Click, BTO_IMPORTAR_MODULS.Click, BTO_IMPORTAR_INVERSORS.Click, BTO_IMPORTAR_REGULADORS.Click FRM_BD_COMERCIAL.ShowDialog(Me) Private Sub NUM_ANGLE_INCLINACIO_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_ANGLE_INCLINACIO.ValueChanged If DimensionatAillat IsNot Nothing Then DimensionatAillat.AngleGeneral = NUM_ANGLE_INCLINACIO.Value Me.IniciarDGVMensual() sender.maximum = 90 sender.minimum = 1 Me.CanviarValor(Me.LBLR_A_SEL.Name, Me.NUM_ANGLE_INCLINACIO.Value) 'Me.GenerarGraficaConsum()

52 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 32 Private Sub DGV_MENSUAL_CellValueChanged(ByVal sender As Object, ByVal e As System. Windows.Forms.DataGridViewCellEventArgs) Handles DGV_MENSUAL.CellValueChanged 'If DGV_MENSUAL.Columns.Count <> 0 And DGV_MENSUAL.Rows.Count <> 0 Then ' Me.BuscarMesDisseny() ' Private Sub DGV_MENSUAL_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_MENSUAL.CellContentClick If e.columnindex = 0 Then arrsel = Nothing Dim CHK As DataGridViewCheckBoxCell = DGV_MENSUAL.Rows(e.RowIndex).Cells(e. ColumnIndex) If CHK.Value = True Then CHK.Value = False CHK.Value = True Me.BuscarMesDisseny() Private Sub TAB_DIM_MODULS_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TAB_DIMENSIONAT.Click Private Sub NUM_DIES_AUTONOMIA_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles NUM_DIES_AUTONOMIA.ValueChanged, NUM_PROFUNDITAT_DESCARREGA.ValueChanged, _ NUM_CORRECIO_TEMP.ValueChanged Me.ActualitzarDimBateries() Private Sub TXT2_CONSUM_TOTAL_CORREGIT_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles TXT2_CONSUM_TOTAL_CORREGIT.TextChanged, TXT_CAPACITAT.TextChanged, TXT_V_NOM_BATERIES.TextChanged, _ TXT_V_NOM_SISTEMA.TextChanged Me.ActualitzarDimBateries() 'Me.GenerarGraficaConsum() Private Sub NUM_SEL_SERIE_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles NUM_SEL_SERIE.ValueChanged If Me.IsHandleCreated = True Then Me.ActualitzarNumBateries() Me.CanviarValor(Me.TXTR_B_SERIE.Name, Me.NUM_SEL_SERIE.Value) Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles GPR2_PARAM_GENERALS_DISSENY.Enter Private Sub NUM_VIABILITAT_TE_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles NUM_VIABILITAT_TE.ValueChanged, NUM_CORRECCIO_MODUL.ValueChanged Me.ActualitzarDimModuls()

53 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 33 Private Sub NUM_SEL_MODULS_SERIE_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles NUM_SEL_MODULS_SERIE.ValueChanged If Me.IsHandleCreated = True Then Me.ActualitzarNumModuls() Me.CanviarValor(Me.TXTR_M_SERIE.Name, Me.NUM_SEL_MODULS_SERIE.Value) Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBL9_SIM_A.Click Private Sub NUM_I_NOM_REGULADOR_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_I_NOM_REGULADOR.ValueChanged Me.ActualitzarDimReguladors() Private Sub NUM_COEF_SIM_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_COEF_SIM.ValueChanged Me.ActualitzarDimInversors() Private Sub NUM_SEL_INVERSORS_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_SEL_INVERSORS.ValueChanged If Me.IsHandleCreated = True Then Me.ActualitzarNumInversors() Me.CanviarValor(Me.TXTR_I_TOTAL.Name, Me.NUM_SEL_INVERSORS.Value) ActualitzarDgvCostos() Private Sub TabPage4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB1_DIM_INVERSORS.Click Private Sub TXT_CONSUM_TOTAL_CORREGIT_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CONSUM_TOTAL_CORREGIT.TextChanged If Me.IsHandleCreated = True Then If Me.carregantProjecte = False Then Me.canviarLBL(Me.LBL_CONSUM_TOTAL_CORREGIT) Me.CanviarValor(Me.TXT2_CONSUM_TOTAL_CORREGIT.Name, Me. TXT_CONSUM_TOTAL_CORREGIT.Text) Me.CanviarValor(Me.TXTR_C_TOTAL_CORREGIT.Name, Me. TXT_CONSUM_TOTAL_CORREGIT.Text) If TABC_AILLAT.TabCount > 1 Then Me.IniciarDGVMensual() Private Sub TXT_W_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXT_W.TextChanged If Me.IsHandleCreated = True Then Me.canviarLBL(Me.LBL_POTENCIA_TOTAL) Me.CanviarValor(Me.TXT_W_MAX_CONSUM.Name, Me.TXT_W.Text) Me.CanviarValor(Me.TXTR_W_TOTAL.Name, Me.TXT_W.Text) Private Sub TXT_I_DISSENY_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles TXT_I_DISSENY.TextChanged, TXT_HORES_PIC_DISSENY.TextAlignChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_I_DISSENY.Name, Me.TXT_I_DISSENY.Text) If Me.TABC_AILLAT.TabCount >= 4 Then

54 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Me.ActualitzarNumModuls() 34 Private Sub TXT_ISC_GENERADOR_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles TXT_ISC_GENERADOR.TextChanged, TXT2_ISC.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXT2_ISC_GENERADOR.Name, Me.TXT_ISC_GENERADOR.Text) Private Sub TXTB_AH_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTB_AH.TextChanged Private Sub TXTB_V_NOM_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTB_V_NOM.TextChanged Private Sub TXT2_VMP_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles TXT2_VMP.TextChanged, TXT2_IMP.TextChanged, TXT2_ISC.TextChanged, TXT2_VOC. TextChanged, _ TXT_MOD_W_NOM.TextChanged Me.ActualitzarDimModuls() Private Sub TXT2_ISC_GENERADOR_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles TXT2_ISC_GENERADOR.TextChanged, TXT_I_NOM_REGULADOR.TextChanged Me.ActualitzarDimReguladors() Private Sub TXT_W_NOM_INVERSORS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles TXT_W_NOM_INVERSORS.TextChanged, TXT_W_MAX_CONSUM.TextChanged Me.ActualitzarDimInversors() Private Sub TABC_DIMENSIONAT_Click(ByVal sender As Object, ByVal e As System. EventArgs) Handles TABC_DIMENSIONAT.Click Select Case Me.TABC_DIMENSIONAT.SelectedIndex Case 0 Me.ActualitzarDimBateries() Case 1 Me.ActualitzarDimModuls() Case 2 Me.ActualitzarDimReguladors() Case 3 Me.ActualitzarDimInversors() End Select Private Sub TXTM_W_NOM_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTM_W_NOM.TextChanged

55 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Private Sub TXTM_VMP_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTM_VMP.TextChanged If TXTM_VMP.Text = "" Then TXTM_VMP.Text = 0 Me.ActualitzarDimBateries() 35 Private Sub TXTM_IMP_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTM_IMP.TextChanged, TXTM_VMP.TextChanged Me.ActualitzarDimBateries() Private Sub TXTM_VOC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTM_VOC.TextChanged Me.ActualitzarDimBateries() Private Sub TXTM_ISC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTM_ISC.TextChanged Me.ActualitzarDimBateries() Private Sub TXTR_I_NOM_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTR_I_NOM.TextChanged Me.ActualitzarDimReguladors() Private Sub TXTI_WNOM_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTI_WNOM.TextChanged If TXTI_WNOM.Text = "" Then Me.TXTI_WNOM.Text = "0" Me.ActualitzarDimInversors() Private Sub TAB_CONSUM_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_CONSUM.GotFocus Private Sub TAB_CONSUM_HandleCreated(ByVal sender As Object, ByVal e As System. EventArgs) Handles TAB_CONSUM.HandleCreated Private Sub TAB_CONSUM_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_CONSUM.Leave Private Sub TAB_CONSUM_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_CONSUM.LostFocus Private Sub TAB_CONSUM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TAB_CONSUM.Validating Dim ErrorsTrobats As Boolean = False If Convert.ToDouble(Me.TXT_CONSUM_TOTAL_CORREGIT.Text) = 0 Or Me. TXT_CONSUM_TOTAL_CORREGIT.Text.Trim = "" Then Me.TXT_CONSUM_TOTAL_CORREGIT.Text = "0"

56 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Me.canviarLBL(Me.LBL_CONSUM_TOTAL_CORREGIT, False) ErrorsTrobats = True 36 If Convert.ToDouble(Me.TXT_W.Text) = 0 Or Me.TXT_W.Text.Trim = "" Then Me.TXT_W.Text = "0" Me.canviarLBL(Me.LBL_POTENCIA_TOTAL, False) ErrorsTrobats = True If ErrorsTrobats = True Then Errors.MostrarMSG(909008) e.cancel = True Exit Sub Private Sub TAB_ESPECIFICACIO_COMPONENTS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_ESPECIFICACIO_COMPONENTS.Click Private Sub TAB_ESPECIFICACIO_COMPONENTS_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TAB_ESPECIFICACIO_COMPONENTS. Validating Dim ErrorsTrobats As Boolean 'BATERIES If Me.TXTB_AH.Text = "0" Or Me.TXTB_AH.Text.Trim = "" Then Me.TXTB_AH.Text = "0" Me.canviarLBL(Me.LBLBAT_CAPACITAT, False) ErrorsTrobats = True If Me.TXTB_V_NOM.Text.Trim = "0" Or Me.TXTB_V_NOM.Text.Trim = "" Then Me.TXT_V_NOM.Text = "0" Me.canviarLBL(Me.LBLBAT_V_NOM, False) ErrorsTrobats = True 'MODULS If Me.TXTM_ISC.Text = "0" Or Me.TXTM_ISC.Text = "" Then Me.TXTM_ISC.Text = "0" Me.canviarLBL(Me.LBLM_ISC, False) ErrorsTrobats = True If Me.TXTM_VOC.Text = "0" Or Me.TXTM_VOC.Text = "" Then Me.TXTM_VOC.Text = "0" Me.canviarLBL(Me.LBLM_VOC, False) ErrorsTrobats = True If Me.TXTM_VMP.Text = "0" Or Me.TXTM_VMP.Text = "" Then Me.TXTM_VMP.Text = "0" Me.canviarLBL(Me.LBL_VMP, False) ErrorsTrobats = True If Me.TXTM_IMP.Text = "0" Or Me.TXTM_IMP.Text = "" Then Me.TXTM_IMP.Text = "0" Me.canviarLBL(Me.LBL_IMP, False) ErrorsTrobats = True If Me.TXTM_W_NOM.Text = "0" Or Me.TXTM_W_NOM.Text = "" Then Me.TXTM_W_NOM.Text = "0" Me.canviarLBL(Me.LBLM_W_NOM, False) ErrorsTrobats = True 'REGULADORS If Me.TXTR_I_NOM.Text = "0" Or Me.TXTR_I_NOM.Text = "" Then Me.TXTR_I_NOM.Text = "0" Me.canviarLBL(Me.LBL_INTENSITAT_NOMINAL, False) ErrorsTrobats = True

57 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 'INVERSORS If Me.TXTI_WNOM.Text = "0" Or Me.TXTI_WNOM.Text = "" Then 37 Me.TXTI_WNOM.Text = "0" Me.canviarLBL(Me.LBL_W_NOM_CURT, False) ErrorsTrobats = True If ErrorsTrobats = True Then Errors.MostrarMSG(909008) e.cancel = True Exit Sub Private Sub TXTB_V_NOM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTB_V_NOM.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTB_V_NOM.Text.Trim) Or TXTB_V_NOM.Text.Trim = "") Then If TXTB_V_NOM.Text.Trim = "" Then TXTB_V_NOM.Text = "0" TXTB_V_NOM.Text = TXTB_V_NOM.Text.Replace(".", ",") Me.canviarLBL(Me.LBLBAT_V_NOM) Me.CanviarValor(Me.TXT_V_NOM_BATERIES.Name, Me.TXTB_V_NOM.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLBAT_V_NOM, False) Exit Sub Private Sub TXTB_AH_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTB_AH.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTB_AH.Text.Trim) Or TXTB_AH.Text.Trim = "") Then If TXTB_AH.Text.Trim = "" Then TXTB_AH.Text = "0" TXTB_AH.Text = TXTB_AH.Text.Replace(".", ",") Me.canviarLBL(Me.LBLBAT_CAPACITAT) Me.CanviarValor(Me.TXT_CAPACITAT.Name, Me.TXTB_AH.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLBAT_CAPACITAT, False) Exit Sub Private Sub TXT_V_FLOTACIO_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_V_FLOTACIO.TextChanged If TXT_V_FLOTACIO.Text = "" Then TXT_V_FLOTACIO.Text = 0 Private Sub TXTM_W_NOM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_W_NOM.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_W_NOM.Text.Trim) Or TXTM_W_NOM.Text.Trim = "") Then If TXTM_W_NOM.Text.Trim = "" Then TXTM_W_NOM.Text = "0" TXTM_W_NOM.Text = TXTM_W_NOM.Text.Replace(".", ",") Me.canviarLBL(Me.LBLM_W_NOM) Me.CanviarValor(Me.TXT_MOD_W_NOM.Name, Me.TXTM_W_NOM.Text)

58 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLM_W_NOM, False) Exit Sub 38 Private Sub TXTM_VMP_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_VMP.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_VMP.Text.Trim) Or TXTM_VMP.Text.Trim = "") Then If TXTM_VMP.Text.Trim = "" Then TXTM_VMP.Text = "0" TXTM_VMP.Text = TXTM_VMP.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_VMP) Me.CanviarValor(Me.TXT2_VMP.Name, Me.TXTM_VMP.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_VMP, False) Exit Sub Private Sub TXTM_IMP_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_IMP.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_IMP.Text.Trim) Or TXTM_IMP.Text.Trim = "") Then If TXTM_IMP.Text.Trim = "" Then TXTM_IMP.Text = "0" TXTM_IMP.Text = TXTM_IMP.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_IMP) Me.CanviarValor(Me.TXT2_IMP.Name, Me.TXTM_IMP.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_IMP, False) Exit Sub Private Sub TXTM_VOC_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_VOC.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_VOC.Text.Trim) Or TXTM_VOC.Text.Trim = "") Then If TXTM_VOC.Text.Trim = "" Then TXTM_VOC.Text = "0" TXTM_VOC.Text = TXTM_VOC.Text.Replace(".", ",") Me.canviarLBL(Me.LBLM_VOC) Me.CanviarValor(Me.TXT2_VOC.Name, Me.TXTM_VOC.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLM_VOC, False) Exit Sub Private Sub TXTM_ISC_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_ISC.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_ISC.Text.Trim) Or TXTM_ISC.Text.Trim = "") Then If TXTM_ISC.Text.Trim = "" Then TXTM_ISC.Text = "0"

59 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb TXTM_ISC.Text = TXTM_ISC.Text.Replace(".", ",") Me.canviarLBL(Me.LBLM_ISC) Me.CanviarValor(Me.TXT2_ISC.Name, Me.TXTM_ISC.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLM_ISC, False) Exit Sub 39 Private Sub TXTR_V_NOM_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTR_V_NOM.TextChanged If TXTR_V_NOM.Text = "" Then TXTR_V_NOM.Text = 0 Me.ActualitzarDimReguladors() Private Sub TXTR_I_NOM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTR_I_NOM.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTR_I_NOM.Text.Trim) Or TXTR_I_NOM.Text.Trim = "") Then If TXTR_I_NOM.Text.Trim = "" Then TXTR_I_NOM.Text = "0" TXTR_I_NOM.Text = TXTR_I_NOM.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_INTENSITAT_NOMINAL) Me.CanviarValor(Me.TXT_I_NOM_REGULADOR.Name, Me.TXTR_I_NOM.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_INTENSITAT_NOMINAL, False) Exit Sub Private Sub TXT_I_CARREGA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_I_CARREGA.TextChanged If TXT_I_CARREGA.Text = "" Then TXT_I_CARREGA.Text = 0 Me.ActualitzarDimInversors() Private Sub TXTI_WNOM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTI_WNOM.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTI_WNOM.Text.Trim) Or TXTI_WNOM.Text.Trim = "") Then If TXTI_WNOM.Text.Trim = "" Then TXTI_WNOM.Text = "0" TXTI_WNOM.Text = TXTI_WNOM.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_W_NOM_CURT) Me.CanviarValor(Me.TXT_W_NOM_INVERSORS.Name, Me.TXTI_WNOM.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_W_NOM_CURT, False) Exit Sub Private Sub DGV_CONSUM_RowsRemoved(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewRowsRemovedEventArgs) Handles DGV_CONSUM.RowsRemoved 'Me.ActualitzarResultatsConsum()

60 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 40 Private Sub DGV_CONSUM_RowsAdded(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewRowsAddedEventArgs) Handles DGV_CONSUM.RowsAdded If Me.IsHandleCreated = True Then Me.ActualitzarResultatsConsum() Private Sub DGV_CONSUM_RowPrePaint(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewRowPrePaintEventArgs) Handles DGV_CONSUM.RowPrePaint Me.ActualitzarResultatsConsum() Private Sub RTB_ERRORS_DIMENSIONAT_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RTB_ERRORS_DIMENSIONAT.TextChanged Private Sub TXT_REGULADORS_PARALEL_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_REGULADORS_PARALEL.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_R_TOTAL.Name, Me.TXT_REGULADORS_PARALEL.Text) ActualitzarDgvCostos() Private Sub TAB1_DIM_MODULS_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TAB1_DIM_MODULS.Click Private Sub Label9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBLR_LON_GRAUS.Click Private Sub TXT_MES_DISSENY_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_MES_DISSENY.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_MES_DISSENY.Name, Me.TXT_MES_DISSENY.Text) Private Sub TXT_HORES_PIC_DISSENY_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_HORES_PIC_DISSENY.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_HORES_DISSENY.Name, Me.TXT_HORES_PIC_DISSENY.Text) Private Sub NUM_SEL_PARALEL_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_SEL_PARALEL.ValueChanged If Me.IsHandleCreated = True Then Me.ActualitzarNumBateries() Me.CanviarValor(Me.TXTR_B_PARALEL.Name, Me.NUM_SEL_PARALEL.Value) Private Sub TXT_SELECCIO_TOTAL_BATERIES_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_SELECCIO_TOTAL_BATERIES.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_B_TOTAL.Name, Me.TXT_SELECCIO_TOTAL_BATERIES.Text) ActualitzarDgvCostos() Private Sub NUM_SEL_MODULS_PARALEL_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_SEL_MODULS_PARALEL.ValueChanged If Me.IsHandleCreated = True Then Me.ActualitzarNumModuls() Me.CanviarValor(Me.TXTR_M_PARALEL.Name, Me.NUM_SEL_MODULS_PARALEL.Value)

61 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 41 Private Sub TXT_TOTAL_MODULS_SELECCIO_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_TOTAL_MODULS_SELECCIO.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_M_TOTAL.Name, Me.TXT_TOTAL_MODULS_SELECCIO.Text) ActualitzarDgvCostos() Private Sub GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarImatgeComToolStripMenuItem.Click GRAFIQUES.GuardarImarge(ZG_CONSUM) Private Sub CopiarImatgeAlPortaretallsToolStripMenuItem_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles CopiarImatgeAlPortaretallsToolStripMenuItem.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_CONSUM) Private Sub AmpliarLaImatgeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AmpliarLaImatgeToolStripMenuItem.Click GRAFIQUES.ObrirImatge(ZG_CONSUM) Private Sub ZG_CONSUM_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ZG_CONSUM.DoubleClick GRAFIQUES.ObrirImatge(ZG_CONSUM) Private Sub ZG_CONSUM_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZG_CONSUM.Load Private Sub MNUCON_ZG_RESUM_Opening(ByVal sender As System.Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles MNUCON_ZG_RESUM.Opening Private Sub TXTP_IMAX_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTP_IMAX.TextChanged Private Sub TXTP_ISC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTP_ISC.TextChanged Private Sub Label9_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LBL2_VMAX.Click Private Sub NUM_T_MAX_TREBALL_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_T_MAX_TREBALL.ValueChanged Me.ActualitzarNumModuls() Private Sub TAB_CALCUL_ECONOMIC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_CALCUL_ECONOMIC.Click Private Sub DGV_COSTOS_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_COSTOS.CellContentClick

62 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Private Sub DGV_COSTOS_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewCellEventArgs) Handles DGV_COSTOS.CellEndEdit With DGV_COSTOS.Rows(e.RowIndex) If e.columnindex = 2 Then.Cells(4).Value =.Cells(2).Value *.Cells(3).Value If e.columnindex = 3 Then.Cells(4).Value =.Cells(2).Value *.Cells(3).Value End With Dim Total As Double = 0 For Each R As DataGridViewRow In DGV_COSTOS.Rows Total += R.Cells(4).Value Me.TXT_COST_TOTAL.Text = Total Private Sub ZG_HORES_PIC_DoubleClick(ByVal sender As Object, ByVal e As System. EventArgs) Handles ZG_HORES_PIC.DoubleClick GRAFIQUES.ObrirImatge(ZG_HORES_PIC) Private Sub ZG_HORES_PIC_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles ZG_HORES_PIC.Load Private Sub CHK_RADIACIO_HH_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CHK_RADIACIO_HH.CheckedChanged, CHK_RADIACIO_H90.CheckedChanged, CHK_RADIACIO_HOPTIM.CheckedChanged, _ CHK_RADIACIO_HSEL.CheckedChanged If Me.IsHandleCreated = True Then Me.GenerarGraficaHP() Private Sub BTO_BARRES_VERTICALS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles BTO_BARRES_VERTICALS.Click, BTO_CURVA.Click If sender.checkstate <> True Then 'Desactivem tots els botons de les gràfiques que no siguin el que hem fet click For Each bto As ToolStripButton In MNU_BTO_GRAFICA_MENSUAL.Items If bto.name <> sender.name Then bto.checkstate = CheckState.Unchecked bto.checkstate = CheckState.Checked Me.GenerarGraficaHP() Private Sub A_GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A_GuardarImatgeComToolStripMenuItem.Click GRAFIQUES.GuardarImarge(ZG_HORES_PIC) Private Sub A_CopiarImatgeAlPortaretallsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A_CopiarImatgeAlPortaretallsToolStripMenuItem.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_HORES_PIC) Private Sub A_AmpliarLaImatgeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A_AmpliarLaImatgeToolStripMenuItem.Click GRAFIQUES.ObrirImatge(ZG_HORES_PIC) Private Sub TXT_CMB_PAISOS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CMB_PAISOS.TextChanged 42

63 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb 'Me.CMB_PAISOS.SelectedIndex = Me.TXT_CMB_PAISOS.Text 43 Private Sub BTO_BTO_CANCELAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_CANCELAR.Click Me.Close() Private Sub TXT_CMB_PROVINCIES_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CMB_PROVINCIES.TextChanged Private Sub TXT_CMB_CIUTATS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CMB_CIUTATS.TextChanged Private Sub TXT_RECUPERACIO_HIVERN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_RECUPERACIO_HIVERN.TextChanged Private Sub NUMI_RENDIMENT_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUMI_RENDIMENT.ValueChanged Me.CanviarValor(TXTP_RENDIMENT.Name, NUMI_RENDIMENT.TextAlign) Private Sub DGV_COSTOS_RowsRemoved(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewRowsRemovedEventArgs) Handles DGV_COSTOS.RowsRemoved Dim total As Double For Each R As DataGridViewRow In DGV_COSTOS.Rows Total += R.Cells(4).Value Me.TXT_COST_TOTAL.Text = Total Private Sub LBL_PAIS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Private Sub TXT_V_EQUALITZACIO_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_V_EQUALITZACIO.TextChanged If Me.TXT_V_EQUALITZACIO.Text = "" Then Me.TXT_V_EQUALITZACIO.Text = 0 Private Sub TXTR_I_DC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTR_I_DC.TextChanged If TXTR_I_DC.Text = "" Then TXTR_I_DC.Text = 0 Me.ActualitzarDimReguladors() Private Sub TXT_V_CARREGA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXTI_WMAX.TextChanged If TXTI_WMAX.Text = "" Then TXTI_WMAX.Text = 0 Me.ActualitzarDimInversors() Private Sub TXTI_VDC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTI_VDC.TextChanged If TXTI_VDC.Text = "" Then TXTI_VDC.Text = 0

64 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_AILLAT.vb Private Sub TXTI_VAC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTI_VAC.TextChanged If TXTI_VAC.Text = "" Then TXTI_VAC.Text = 0 Me.ActualitzarDimInversors() 44 Private Sub TXT_V_CARREGA_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_V_CARREGA.TextChanged If TXT_V_CARREGA.Text = "" Then TXT_V_CARREGA.Text = 0 Me.ActualitzarDimInversors() Private Sub TABC_AILLAT_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TABC_AILLAT.Click For Each tab As TabPage In TABC_AILLAT.TabPages If tab.focus = True Then If tab.name = "TAB_DIM_RESUM" Then Me.GenerarGraficaConsum() End Class

65

66 4-.FRM_DIM_CON

67 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb Option Explicit On 'Option Strict On 1 Imports System.Math Public Class FRM_DIM_CON '**** estructures generals **** Private Structure tipuslletra Dim inici As Integer Dim final As Integer Dim Tamany As Integer Dim ColorLletra As Color Dim negreta As Boolean Dim subratllat As Boolean End Structure '**************************** '**** VARIABLES PRIVADES **** '**************************** Private TabP(1) As TabPage Private DimensionatCon As DIMENSIONAT Private ArrHh(13) As Double 'MEMORIA PER CADA TABPAGE DEL FORMULARI 'CLASSE DIMENSIONAT PELS CALCULS 'ARRAY PER H HORITZONTAL Private InvErr As ArrayList = New ArrayList 'ARRAY PELS ERRORS DELS INVERSORS Private ArrErrors As ArrayList = New ArrayList 'Array que conté tots els elements amb errors del projecte Private HiHaErrors As Boolean = False Private carregantprojecte As Boolean = False Dim arrsel() As Boolean '**************************** '**** FUNCIONS PRIVADES ***** '**************************** Private Sub CarregarProjecte() Me.carregantProjecte = True 'Dim DS_PAISOS As Data.DataSet 'DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") 'If DS_PAISOS.Tables(0).Rows.Count <> 0 Then ' CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) ' CMB_PAISOS.DisplayMember = "NOM_PAIS" ' ' CMB_PAISOS.DataSource = Nothing ' Dim arrelements As Control() = Nothing GENERAL.ObtenirElements(Me, arrelements, False, True, True) Dim resultat As Boolean = GENERAL.PROJECT.ImportarConexionat(arrelements) If resultat = False Then Exit Sub 'If GENERAL.PROJECT.ExisteixConexionat = False Then 'If Me.TXT_CMB_PAISOS.Text = -1 Then Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing '

68 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 2 ' ' CMB_PAISOS.SelectedIndex = Me.TXT_CMB_PAISOS.Text CMB_PROVINCIES.SelectedIndex = Me.TXT_CMB_PROVINCIES.Text CMB_CIUTATS.SelectedIndex = Me.TXT_CMB_CIUTATS.Text For Each r As DataRow In GENERAL.PROJECT.DSConexionat.Tables("conexionat_Elements" ).Rows If r.item(0) = NUM_ANGLE_INCLINACIO.Name Then Me.NUM_ANGLE_INCLINACIO.Value = r.item(1) Exit For ' 'actualitzem mes seleccionat DGV_mensual ReDim arrsel(dgv_mensual.rows.count - 1) Dim index As Integer = 0 For Each row As DataGridViewRow In DGV_MENSUAL.Rows If row.cells(0).value = True Then 'Or row.cells(0).value = False Then arrsel(index) = True arrsel(index) = False index += 1 DGV_MENSUAL.Rows.Clear() DGV_MENSUAL.Columns.Clear() Dim DS_MES As Data.DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_MENSUAL,, "ID_MES<=12 AND ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT"), "ID_MES") Dim j As Integer = 1 'MsgBox(DS_MES.Tables(GENERAL.TAULA_RAD_MENSUAL).Rows.Count) For Each ROW As DataRow In DS_MES.Tables(0).Rows ArrHh(j) = (Convert.ToDouble(ROW.Item("HH")) * 30) / 1000 j += 1 With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut"), True) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) )) DimensionatCon = New DIMENSIONAT(.item("latitut"), ArrHh,.item("ANGLE_OPTIM" 'CANVIEM EL VALOR DE LA CIUTAT I ELEMENTS RELACIONATS LA TAULA RESUM Me.CanviarValor(Me.TXTR_CIUTAT.Name,.item("NOM_CIUTAT").ToString) Me.CanviarValor(Me.LBLR_A_OPTIM.Name,.ITEM("ANGLE_OPTIM").ToString) Me.CanviarValor(Me.LBLR_LAT_GRAUS.Name, LBL_LAT_GRAUS.Text) Me.CanviarValor(Me.LBLR_LON_GRAUS.Name, LBL_LON_GRAUS.Text) End With Me.GenerarGraficaConsum()

69 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_ACABAR_I_GUARDAR") Me.carregantProjecte = False Me.IniciarDGVMensual() 3 'For Each c As Control In arrelements ' If TypeOf c Is NumericUpDown Then ' Dim n As NumericUpDown = c ' n.maximum = 4 * n.value ' n.minimum = 0 ' ' Me.ActualitzarDgvCostos() Private Sub guardarcon() Dim arrelements() As Control = Nothing GENERAL.ObtenirElements(Me, arrelements, False, True, True, False, False, False) Dim arr2() As Control = Nothing For Each e As Control In arrelements If e.name <> "TXT_CMB_PAISOS" And e.name <> "TXT_CMB_CIUTATS" And e.name <> "TXT_CMB_PROVINCIES" Then If arr2 Is Nothing Then ReDim arr2(1) arr2(0) = e ReDim Preserve arr2(arr2.length) arr2(arr2.length - 1) = e GENERAL.PROJECT.generarXMLCon(arr2) Me.ZG_CONSUM.Copy(False) Dim img As New Drawing.Bitmap(My.Computer.Clipboard.GetImage()) img.save(application.startuppath & "\conexionat_consum.bmp") Me.ZG_HORES_PIC.Copy(False) Dim img2 As New Drawing.Bitmap(My.Computer.Clipboard.GetImage) img2.save(application.startuppath & "\conexionat_hp.bmp") FRM_MAIN.BTO_BTO_DESAR_PROJECTE.Enabled = True Private Sub ActualitzarTempsRecuperacio() If Me.carregantProjecte = True Then Exit Sub If Me.IsHandleCreated = False Then Exit Sub Me.TXT_KW_ANUALS.Text = Round(Convert.ToDouble(Me.TXT_GEN_MITJA.Text) * 24 * 30, 4) Me.TXT2_KW_ANUALS.Text = Round(Convert.ToDouble(Me.TXT_GEN_MITJA.Text) * 24 * 30, 4) Me.TXT_GEN_25_ANYS.Text = Round(25 * Convert.ToDouble(Me.TXT_KW_ANUALS.Text) * Convert.ToDouble(Me.NUM_KW_PRIMERS_25.Value), 2) 'MIREM SI ES NECESSITEN MÉS DE 25 ANYS Dim ANYS As Double = 0 Dim TMPKW As Double = 0 Dim TMPANYS As Double = 0 If Convert.ToDouble(Me.TXT_COST_TOTAL.Text) <= Convert.ToDouble(Me.TXT_GEN_25_ANYS.Text) Then

70 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb If Convert.ToDouble(Me.NUM_KW_PRIMERS_25.Value) <> 0 Then TMPKW = Convert.ToDouble(Me.TXT_COST_TOTAL.Text) / Convert.ToDouble(Me. NUM_KW_PRIMERS_25.Value) 4 TMPANYS = Round(TMPKW / Convert.ToDouble(Me.TXT_KW_ANUALS.Text), 2) ANYS = 25 If Me.NUM_KW.Value <> 0 Then TMPKW = (Convert.ToDouble(Me.TXT_COST_TOTAL.Text) - Convert.ToDouble(Me. TXT_GEN_25_ANYS.Text)) / Convert.ToDouble(Me.NUM_KW.Value) TMPANYS = Round(TMPKW / Convert.ToDouble(Me.TXT_KW_ANUALS.Text), 2) ANYS += TMPANYS Me.TXT_ANYS_RECUPERACIO.Text = ANYS '**** GENERALS PER CANVIS DE VALORS **** Private Sub canviarlbl(byval lbl As Label, Optional ByVal correcte As Boolean = True) If Me.carregantProjecte = False Then If correcte = True Then lbl.forecolor = Color.Black 'treiem l'element que no te error de l'array If ArrErrors.IndexOf(lbl.Name) <> -1 Then ArrErrors.Remove(lbl.Name) lbl.forecolor = Color.Red 'afegim l'element que dóna error a l'array If ArrErrors.IndexOf(lbl.Name) = -1 Then ArrErrors.Add(lbl.Name) 'Comprovem si hi ha errors al projecte per no deixar guardar 'al sortir If ArrErrors.Count > 0 Then HiHaErrors = True HiHaErrors = False ' MsgBox(HiHaErrors) Private Sub CanviarValor(ByVal NomElementDesti As String, ByVal Valor As Double) If Me.carregantProjecte = False Then Dim arrelements() As Control = Nothing Dim arrelementsvirtuals() As Control = Nothing 'elements mostrats For Each tab As TabPage In TABC_AILLAT.TabPages GENERAL.ObtenirElements(tab, arrelements) For Each ctr As Control In arrelements If ctr.name = NomElementDesti Then ctr.text = Valor 'elements per mostrar Dim i As Integer For i = 1 To TabP.Length - 1 GENERAL.ObtenirElements(TabP(i), arrelementsvirtuals)

71 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 5 If arrelementsvirtuals IsNot Nothing Then For Each ctr As Control In arrelementsvirtuals If ctr.name = NomElementDesti Then ctr.text = Valor Private Sub CanviarValor(ByVal NomElementDesti As String, ByVal Valor As String) If Me.carregantProjecte = False Then Dim arrelements() As Control = Nothing Dim arrelementsvirtuals() As Control = Nothing 'elements mostrats For Each tab As TabPage In TABC_AILLAT.TabPages GENERAL.ObtenirElements(tab, arrelements) For Each ctr As Control In arrelements If ctr.name = NomElementDesti Then ctr.text = Valor 'elements per mostrar Dim i As Integer For i = 1 To TabP.Length - 1 GENERAL.ObtenirElements(TabP(i), arrelementsvirtuals) If arrelementsvirtuals IsNot Nothing Then For Each ctr As Control In arrelementsvirtuals If ctr.name = NomElementDesti Then ctr.text = Valor '**** GRAFICA CONSUM **** Private Sub GenerarGraficaConsum() If Me.carregantProjecte = True Then Exit Sub Dim Trobat As Boolean = False For Each tab As TabPage In TABC_AILLAT.TabPages If tab.name = "TAB_DIM_RESUM" Then Trobat = True Exit For If Trobat = True Then Dim tmpds As New DataSet tmpds.tables.add("consum") Dim COL1 As DataColumn = New DataColumn Dim COL2 As DataColumn = New DataColumn Dim COL3 As DataColumn = New DataColumn COL1.DataType = System.Type.GetType("System.String")

72 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb COL1.ColumnName = "NOM_MES" 6 COL2.DataType = System.Type.GetType("System.Double") COL2.ColumnName = "OBTENIDA_DIARIA" COL3.DataType = System.Type.GetType("System.Double") COL3.ColumnName = "MITJA" With tmpds.tables(0).columns.add(col1).add(col2) End With If DimensionatCon IsNot Nothing Then Dim i As Integer = 1 Dim MAX As Double = 0 Dim min As Double = 0 Dim mitja As Double = 0 Dim mesos() As String = {"", "GENER", "FEBRER", "MARÇ", "ABRIL", "MAIG", "JUNY", "JULIOL", "AGOST", "SETEMBRE", "OCTUBRE", "NOVEMBRE", "DESEMBRE"} For i = 1 To 12 Dim MES As String = Nothing Dim OBTENIDA As Double = 0 MES = IDIOMES.Traduir("CURT_MES" & i) OBTENIDA = ((DimensionatCon.RadMesos(i).HoresSolars * Convert.ToDouble (Me.TXTM_ISC.Text) * Me.NUM_SEL_MODULS_PARALEL.Value) / 1000) * 220 Dim ARROBJ() As Object = {MES, OBTENIDA} Dim row As DataRow = tmpds.tables(0).newrow row.item("nom_mes") = MES row.item("obtenida_diaria") = OBTENIDA tmpds.tables(0).rows.add(row) If min = 0 Then min = OBTENIDA Me.TXT_MES_MIN.Text = IDIOMES.Traduir(mesos(i)) If min < OBTENIDA Then min = OBTENIDA Me.TXT_MES_MIN.Text = IDIOMES.Traduir(mesos(i)) If OBTENIDA > MAX Then MAX = OBTENIDA Me.TXT_MES_MAX.Text = IDIOMES.Traduir(mesos(i)) mitja += OBTENIDA i Dim LST As New ZedGraph.PointPairList False) For i = 1 To 12 LST.Add(i, mitja / 12) ZG_CONSUM.GraphPane.CurveList.Clear() GRAFIQUES.dibuixarLinia(ZG_CONSUM, LST, "MITJA", ZedGraph.SymbolType.None, Me.TXT_GEN_MAX.Text = Round(MAX, 2) Me.TXT_GEN_MIN.Text = Round(min, 2) Me.TXT_GEN_MITJA.Text = Round(mitja / 12, 2) ZG_CONSUM.GraphPane.Title.Text = IDIOMES.Traduir("TITOL_GRAFIC_CONSUM") ZG_CONSUM.GraphPane.XAxis.Title.Text = IDIOMES.Traduir("TITOL_X_MESOS") ZG_CONSUM.GraphPane.YAxis.Title.Text = "(kwh/d) "

73 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb GRAFIQUES.DibuixarGrafica(tmpDS, ZG_CONSUM, "NOM_MES", TipusGrafic. BarresVerticals) ZG_CONSUM.Refresh() 7 '**** DIMENSIONAT INVERSORS **** Private Sub ComprovarErrorsInversors() 'If Me.carregantProjecte = True Then ' Exit Sub ' '' W ac sobredimensionada 'If Me.TXT_W_TOTAL_AC.Text > 1.25 * Me.TXTI_WMAX.Text Then ' If InvErr.IndexOf(910012) = -1 Then ' InvErr.Add(910012) ' ' ' If InvErr.IndexOf(910012) <> -1 Then ' InvErr.Remove(910012) ' ' Private Sub ActualitzarNumInversors() 'If Me.carregantProjecte = True Then ' Exit Sub ' 'If Me.IsHandleCreated = True Then ' Me.TXT_W_TOTAL_AC.Text = Me.NUM_SEL_INVERSORS.Value * Me.TXT_W_NOM_INVERSORS. Text ' 'ComprovarErrorsInversors() Private Sub ActualitzarDimInversors() 'If Me.carregantProjecte = True Then ' Exit Sub ' 'If Me.IsHandleCreated = True Then ' If Me.carregantProjecte = True Then ' Exit Sub ' ' Me.TXT_W_MIN_NECESSARIA.Text = (Me.TXT_W_MAX_CONSUM.Text * Me.NUM_COEF_SIM. Value) / 100 ' Dim vac As Integer = 220 ' Me.TXT_VAC.Text = vac ' Me.ActualitzarNumInversors() ' '**** Dimensionat Mòduls **** Private Sub ActualitzarDimModuls() 'If Me.carregantProjecte = True Then ' Exit Sub ' 'If Me.IsHandleCreated = True Then ' If Me.carregantProjecte = True Then ' Exit Sub

74 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb ' ' Me.TXT_TOTAL_MODULS_SELECCIO.Text = Me.NUM_SEL_MODULS_PARALEL.Value * Me. NUM_SEL_MODULS_SERIE.Value ' Me.GenerarGraficaConsum() ' 8 '**** Zona geogràfica ***** Private Sub BuscarMesDisseny() If Me.carregantProjecte = True Then Exit Sub Dim MinHores As Double = Nothing Dim INDEX As Integer = -1 For Each row As DataGridViewRow In DGV_MENSUAL.Rows If row.cells("col_seleccio").value = True Then If MinHores = Nothing Then MinHores = row.cells("col_hores_pic_sol").value INDEX = row.index 'Resume If row.cells("col_hores_pic_sol").value < MinHores Then MinHores = row.cells("col_hores_pic_sol").value INDEX = row.index 'Resume If INDEX <> -1 Then With DGV_MENSUAL.Rows(INDEX) Me.TXT_MES_DISSENY.Text =.Cells("COL_MES").Value.ToString Me.TXT_HORES_PIC_DISSENY.Text =.Cells("COL_HORES_PIC_SOL").Value.ToString End With Me.TXT_MES_DISSENY.Text = "" Me.TXT_HORES_PIC_DISSENY.Text = "" Private Sub ActualitzarDgvCostos() If Me.carregantProjecte = True Then Exit Sub If Me.IsHandleCreated = True Then Dim TROBAT As Boolean = False For Each T As TabPage In TABC_AILLAT.TabPages If T.Name = "TAB_CALCUL_ECONOMIC" Then TROBAT = True Exit For If TROBAT = True Then 'mostrem les files i columnes de radiació mensual Dim DS_COSTOS As Data.DataSet DS_COSTOS = GENERAL.BD_CONF.StrConsultar(GENERAL.TAULA_CONF_PREUS)

75 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb Dim RowArr As ArrayList = New ArrayList 9 Dim TmpCount As Integer = (DGV_COSTOS.Rows.Count) For I As Integer = 1 To TmpCount ' For Each R As DataGridViewRow In DGV_COSTOS.Rows Dim R As DataGridViewRow = DGV_COSTOS.Rows(TmpCount - I) If R.IsNewRow = False Then RowArr.Insert(0, R) DGV_COSTOS.Rows.Remove(R) ' DGV_COSTOS.Columns.Clear() Dim KK333 As Integer = DGV_COSTOS.Columns.Count Dim col1 As New DataGridViewTextBoxColumn col1.name = "COL_ID" col1.visible = False Dim col2 As New DataGridViewTextBoxColumn col2.name = "COL_CONCEPTE" Dim col3 As New DataGridViewTextBoxColumn col3.name = "COL_UNITATS" Dim col4 As New DataGridViewTextBoxColumn col4.name = "COL_PREU_UNITAT" Dim col5 As New DataGridViewTextBoxColumn col5.name = "COL_SUBTOTAL" DGV_COSTOS.Columns.Add(col2) DGV_COSTOS.Columns.Add(col1) DGV_COSTOS.Columns.Add(col3) DGV_COSTOS.Columns.Add(col4) DGV_COSTOS.Columns.Add(col5) For Each COL As DataGridViewColumn In DGV_COSTOS.Columns COL.HeaderText = IDIOMES.Traduir(COL.Name) DGV_COSTOS.Columns(0).Width = DGV_COSTOS.Width * 0.45 For I As Integer = 3 To 4 Dim quantitat As String = Nothing Select Case I Case 3 quantitat = Me.TXT_TOTAL_MODULS_SELECCIO.Text Case 4 quantitat = Me.NUM_SEL_INVERSORS.Value End Select If RowArr.Count < 2 Then DGV_COSTOS.Rows.Add() DGV_COSTOS.Rows(I - 3).Cells("COL_ID").Value = I DGV_COSTOS.Rows(I - 3).Cells("COL_CONCEPTE").Value = IDIOMES. Traduir("ELEMENT_COSTOS_" & I) DGV_COSTOS.Rows(I - 3).Cells("COL_UNITATS").Value = quantitat DGV_COSTOS.Rows(I - 3).Cells("COL_PREU_UNITAT").Value = DS_COSTOS. Tables(0).Rows(0).Item(I) DGV_COSTOS.Rows(I - 3).Cells("COL_SUBTOTAL").Value = quantitat * DS_COSTOS.Tables(0).Rows(0).Item(I) For Each r As DataGridViewRow In RowArr If IsDBNull(r.Cells(1).Value) Then r.cells(1).value = 0 If r.cells(1).value = I Then r.cells(0).value = IDIOMES.Traduir("ELEMENT_COSTOS_" & I)

76 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb.Item(I) r.cells(2).value = quantitat r.cells(3).value = DS_COSTOS.Tables(0).Rows(0).Item(I) r.cells(4).value = quantitat * DS_COSTOS.Tables(0).Rows(0) For Each r As DataGridViewRow In RowArr DGV_COSTOS.Rows.Add(r) Dim Total As Double = 0 For Each R As DataGridViewRow In DGV_COSTOS.Rows Total += R.Cells(4).Value Me.TXT_COST_TOTAL.Text = Total Private Sub GenerarGraficaHP() If Me.carregantProjecte = True Then Exit Sub Dim Trobat As Boolean = False For Each tab As TabPage In TABC_AILLAT.TabPages If tab.name = "TAB_ZONA_GEOGRAFICA_I_INCLINACIO" Then Trobat = True Exit For If Trobat = True Then Dim DS_RAD_MENSUAL As Data.DataSet DS_RAD_MENSUAL = GENERAL.BD_RADIACIO.StrConsultaAMida( _ "SELECT MES.NOM_MES AS " & IDIOMES.Traduir("MES") & _ ", HH, HOPT,H90,RAD_MENSUAL.ID_MES AS ID_MES FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT") & " AND RAD_MENSUAL.ID_MES<=12 ORDER BY RAD_MENSUAL. ID_MES") Dim tmpds As New DataSet tmpds.tables.add("radiacio") Dim COL1 As DataColumn = New DataColumn Dim COL2 As DataColumn = New DataColumn Dim COL3 As DataColumn = New DataColumn Dim COL4 As DataColumn = New DataColumn Dim COL5 As DataColumn = New DataColumn 10 COL1.DataType = System.Type.GetType("System.String") COL1.ColumnName = "NOM_MES" COL2.DataType = System.Type.GetType("System.Double") COL2.ColumnName = "HH" COL3.DataType = System.Type.GetType("System.Double") COL3.ColumnName = "HOPT" COL4.DataType = System.Type.GetType("System.Double") COL4.ColumnName = "H90" COL5.DataType = System.Type.GetType("System.Double") COL5.ColumnName = "HSEL" With tmpds.tables(0).columns.add(col1)

77 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb If Me.CHK_RADIACIO_HH.Checked = True Then.Add(COL2) If Me.CHK_RADIACIO_HOPTIM.Checked = True Then.Add(COL3) If Me.CHK_RADIACIO_H90.Checked = True Then.Add(COL4) If Me.CHK_RADIACIO_HSEL.Checked = True Then.Add(COL5) 11 End With If DimensionatCon IsNot Nothing Then Dim i As Integer = 1 For i = 1 To 12 Dim MES As String = Nothing MES = IDIOMES.Traduir("CURT_MES" & i) Dim row As DataRow = tmpds.tables(0).newrow row.item("nom_mes") = MES If Me.CHK_RADIACIO_HH.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("hh") = Me.DGV_MENSUAL.Rows(i - 1).Cells("COL_HH"). Value If Me.CHK_RADIACIO_HOPTIM.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("hopt") = DS_RAD_MENSUAL.Tables(0).Rows(i - 1).Item( "HOPT").ToString If Me.CHK_RADIACIO_H90.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("h90") = DS_RAD_MENSUAL.Tables(0).Rows(i - 1).Item( "H90").ToString If Me.CHK_RADIACIO_HSEL.Checked = True Then If DGV_MENSUAL.Rows.Count > 0 Then row.item("hsel") = Me.DGV_MENSUAL.Rows(i - 1).Cells( "COL_HORES_PIC_SOL").Value * 1000 i tmpds.tables(0).rows.add(row) Me.ZG_HORES_PIC.GraphPane.CurveList.Clear() Me.ZG_HORES_PIC.GraphPane.Title.Text = IDIOMES.Traduir( "TITOL_GRAFIC_RADIACIO") Me.ZG_HORES_PIC.GraphPane.XAxis.Title.Text = IDIOMES.Traduir( "TITOL_X_MESOS") Me.ZG_HORES_PIC.GraphPane.YAxis.Title.Text = IDIOMES.Traduir( "TITOL_Y_HORES_PIC") If Me.BTO_BARRES_VERTICALS.Selected = True Then GRAFIQUES.DibuixarGrafica(tmpDS, Me.ZG_HORES_PIC, "NOM_MES", TipusGrafic.BarresVerticals) GRAFIQUES.DibuixarGrafica(tmpDS, Me.ZG_HORES_PIC, "NOM_MES", TipusGrafic.Corba,, ZedGraph.SymbolType.None) Me.ZG_HORES_PIC.Refresh()

78 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 12 Private Sub IniciarDGVMensual() If Me.carregantProjecte = False Then 'mostrem les files i columnes de radiació mensual Dim DS_RAD_MENSUAL As Data.DataSet DS_RAD_MENSUAL = GENERAL.BD_RADIACIO.StrConsultaAMida( _ "SELECT MES.NOM_MES AS " & IDIOMES.Traduir("MES") & _ ", HH, RAD_MENSUAL.ID_MES AS ID_MES FROM (RAD_MENSUAL LEFT JOIN MES ON (RAD_MENSUAL.ID_MES=MES.ID_MES)) WHERE ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT") & " AND RAD_MENSUAL.ID_MES<=12 ORDER BY RAD_MENSUAL. ID_MES") With DGV_MENSUAL If.Columns.Count = 0 Then Dim DGV_Col As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn(False) DGV_Col.Name = "COL_SELECCIO" DGV_Col.HeaderText = "" 'IDIOMES.Traduir("SELECCIONAT") DGV_Col.Width = 20 DGV_Col.TrueValue = "1" DGV_Col.FalseValue = "0".Columns.Insert(0, DGV_Col).Columns.Add("COL_MES", IDIOMES.Traduir("MES")).Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_HH", "Hh").Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_CONSUM_TOTAL_CORREGIT", IDIOMES.Traduir( "CONSUM_TOTAL_CORREGIT") & " (" & IDIOMES.Traduir("SIM_AH_DIA") & ")").Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_HORES_PIC_SOL", IDIOMES.Traduir("HORES_PIC_SOL")).Columns(.Columns.Count - 1).ReadOnly = True.Columns.Add("COL_INTENSITAT_DISSENY", IDIOMES.Traduir( "INTENSITAT_DISSENY")).Columns(.Columns.Count - 1).ReadOnly = True If.Rows.Count = 0 Then.Rows.Add(DS_RAD_MENSUAL.Tables(0).Rows.Count) Dim rowcount As Integer = 1 For Each row As DataGridViewRow In.Rows row.cells("col_hh").value = DS_RAD_MENSUAL.Tables(0).Rows(row.Index). Item("HH").ToString row.cells("col_mes").value = IDIOMES.Traduir(DS_RAD_MENSUAL.Tables(0). Rows(row.Index).Item(IDIOMES.Traduir("MES"))) row.cells("col_seleccio").value = True 'row.cells("col_consum_total_corregit").value = Me. TXT_CONSUM_TOTAL_CORREGIT.Text row.cells("col_hores_pic_sol").value = Round(DimensionatCon. GetHoresPicSolar(rowcount), 4) If row.cells("col_hores_pic_sol").value <> 0 Then row.cells("col_intensitat_disseny").value = Round(row.Cells( "COL_CONSUM_TOTAL_CORREGIT").Value / row.cells("col_hores_pic_sol").value, 4) row.cells("col_intensitat_disseny").value = 0 rowcount += 1.Columns("COL_SELECCIO").Width = 20.ClearSelection()

79 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb End With If arrsel IsNot Nothing Then For i As Integer = 0 To DGV_MENSUAL.Rows.Count - 1 DGV_MENSUAL.Rows(i).Cells("COL_SELECCIO").Value = arrsel(i) 13 Me.GenerarGraficaHP() Me.BuscarMesDisseny() '******************************** '**** FUNCIONS DEL FORMULARI **** '******************************** Private Sub FRM_DIM_CON_FormClosed(ByVal sender As Object, ByVal e As System.Windows. Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_DIM_CON_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) 'si(projecte) If PROJECT.EstaObert = True And PROJECT.ExisteixConexionat = True Then Me.CarregarProjecte() Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing 'Eliminem tots els tabs menys el primer Dim i As Integer = 1 ReDim TabP(TABC_AILLAT.TabCount - 1) For i = 1 To (TABC_AILLAT.TabCount - 1) TabP(i) = TABC_AILLAT.TabPages(i) 'TABC_AILLAT.TabPages.Remove(TabP(i)) For i = 1 To (TABC_AILLAT.TabCount - 1) 'TabP(i) = TABC_AILLAT.TabPages(i) TABC_AILLAT.TabPages.Remove(TabP(i)) For Each COL As DataGridViewColumn In DGV_COSTOS.Columns COL.HeaderText = IDIOMES.Traduir(COL.Name) DGV_COSTOS.Columns(0).Width = DGV_COSTOS.Width * 0.45 ActualitzarDgvCostos() Me.BTO_IMPORTAR_BATERIES.Text = "" Me.BTO_IMPORTAR_INVERSORS.Text = ""

80 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 14 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_BTO_SEGUENT.Click If Me.IsHandleCreated = True Then If TABC_AILLAT.TabCount < TabP.Length Then Dim ErrorsTrobats As Boolean = False Select Case TABC_AILLAT.TabPages(TABC_AILLAT.TabCount - 1).Name Case "TAB_CONSUM" Case "TAB_ESPECIFICACIO_COMPONENTS" ''MODULS If Me.TXTM_ISC.Text = 0 Or Me.TXTM_ISC.Text = "" Then Me.TXTM_ISC.Text = "0" Me.canviarLBL(Me.LBLM_ISC, False) ErrorsTrobats = True If Me.TXTM_VOC.Text = 0 Or Me.TXTM_VOC.Text = "" Then Me.TXTM_VOC.Text = "0" Me.canviarLBL(Me.LBLM_VOC, False) ErrorsTrobats = True If Me.TXTM_VMP.Text = 0 Or Me.TXTM_VMP.Text = "" Then Me.TXTM_VMP.Text = "0" Me.canviarLBL(Me.LBL_VMP, False) ErrorsTrobats = True If Me.TXTM_IMP.Text = 0 Or Me.TXTM_IMP.Text = "" Then Me.TXTM_IMP.Text = "0" Me.canviarLBL(Me.LBL_IMP, False) ErrorsTrobats = True If Me.TXTM_W_NOM.Text = 0 Or Me.TXTM_W_NOM.Text = "" Then Me.TXTM_W_NOM.Text = "0" Me.canviarLBL(Me.LBLM_W_NOM, False) ErrorsTrobats = True 'REGULADORS 'INVERSORS If Me.TXTI_WNOM.Text = 0 Or Me.TXTI_WNOM.Text = "" Then Me.TXTI_WNOM.Text = "0" Me.canviarLBL(Me.LBL_W_NOM_CURT, False) ErrorsTrobats = True End Select If ErrorsTrobats = True Then Errors.MostrarMSG(909008) Exit Sub TABC_AILLAT.TabPages.Add(TabP(TABC_AILLAT.TabCount)) TABC_AILLAT.SelectedIndex = TABC_AILLAT.TabCount - 1 If TABC_AILLAT.TabCount = (TabP.Length - 1) Then Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_FINALITZAR") Exit Sub If TABC_AILLAT.TabCount = TabP.Length And BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_FINALITZAR") Then Me.ActualitzarDgvCostos() Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_ACABAR_I_GUARDAR") Me.BTO_BTO_CANCELAR.Text = IDIOMES.Traduir("BTO_CANCELAR") Me.BTO_BTO_CANCELAR.Visible = True Exit Sub

81 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 15 GenerarGraficaConsum() If Me.BTO_BTO_SEGUENT.Text = IDIOMES.Traduir("BTO_ACABAR_I_GUARDAR") Then 'Me.guardaraillat() Me.GUARDARCON() Me.Close() Private Sub CMB_PAISOS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PAISOS.SelectedIndexChanged If CMB_PAISOS.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES PROVINCIES Dim DS_PROVINCIES As Data.DataSet DS_PROVINCIES = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PROVINCIES,, "ID_PAIS='" & CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex).ITEM("ID_PAIS") & "'", "NOM_PROVINCIA") If DS_PROVINCIES.Tables(0).Rows.Count <> 0 Then CMB_PROVINCIES.DataSource = DS_PROVINCIES.Tables(0) CMB_PROVINCIES.DisplayMember = "NOM_PROVINCIA" CMB_PROVINCIES.DataSource = Nothing If CMB_PAISOS.SelectedIndex <> -1 Then Me.CanviarValor(Me.TXTR_PAIS.Name, CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex). ITEM("NOM_PAIS").ToString) ' Me.CanviarValor(Me.TXTR_PROVINCIA.Name, CMB_PROVINCIES.Items (CMB_PROVINCIES.SelectedIndex).ITEM("NOM_provincia").ToString) 'Private Sub TAB_ZONA_GEOGRAFICA_I_INCLINACIO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_ZONA_GEOGRAFICA_I_INCLINACIO.Click ' Private Sub CMB_PROVINCIES_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PROVINCIES.SelectedIndexChanged If CMB_PROVINCIES.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES CIUTATS Dim DS_CIUTATS As Data.DataSet Dim KK As Integer KK = CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM("ID_PROVINCIA") DS_CIUTATS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_CIUTATS,, "ID_PROVINCIA=" & CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM( "ID_PROVINCIA"), "NOM_CIUTAT") If DS_CIUTATS.Tables(0).Rows.Count <> 0 Then CMB_CIUTATS.DataSource = DS_CIUTATS.Tables(0) CMB_CIUTATS.DisplayMember = "NOM_CIUTAT" CMB_CIUTATS.DataSource = Nothing

82 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 16 Me.CanviarValor(Me.TXTR_PROVINCIA.Name, CMB_PROVINCIES.Items(CMB_PROVINCIES. SelectedIndex).ITEM("NOM_PROVINCIA").ToString) Private Sub CMB_CIUTATS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_CIUTATS.SelectedIndexChanged If CMB_CIUTATS.SelectedIndex <> -1 Then 'CARREGUEM LA RADIACIO EN PLA MIG Dim DS_MES As Data.DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_MENSUAL,, "ID_MES<=12 AND ID_CIUTAT=" & CMB_CIUTATS.Items(CMB_CIUTATS. SelectedIndex).ITEM("ID_CIUTAT"), "ID_MES") Dim i As Integer = 1 'MsgBox(DS_MES.Tables(GENERAL.TAULA_RAD_MENSUAL).Rows.Count) For Each ROW As DataRow In DS_MES.Tables(0).Rows ArrHh(i) = (Convert.ToDouble(ROW.Item("HH")) * 30) / 1000 i += 1 'carreguem la latitut i la longitud With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut"), True) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) If Me.carregantProjecte = False Or arrsel Is Nothing Then NUM_ANGLE_INCLINACIO.Value =.ITEM("ANGLE_OPTIM") DimensionatCon = New DIMENSIONAT(.item("latitut"), ArrHh,.item( "ANGLE_OPTIM")) 'CANVIEM EL VALOR DE LA CIUTAT I ELEMENTS RELACIONATS LA TAULA RESUM Me.CanviarValor(Me.TXTR_CIUTAT.Name,.item("NOM_CIUTAT").ToString) Me.CanviarValor(Me.LBLR_A_OPTIM.Name,.ITEM("ANGLE_OPTIM").ToString) Me.CanviarValor(Me.LBLR_LAT_GRAUS.Name, LBL_LAT_GRAUS.Text) Me.CanviarValor(Me.LBLR_LON_GRAUS.Name, LBL_LON_GRAUS.Text) End With Me.GenerarGraficaConsum() Me.IniciarDGVMensual() Private Sub TAB_ZONA_GEOGRAFICA_I_INCLINACIO_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_ZONA_GEOGRAFICA_I_INCLINACIO.HandleCreated Private Sub BTO_IMPORTAR_BATERIES_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_IMPORTAR_BATERIES.Click FRM_BD_COMERCIAL.ShowDialog(Me) Private Sub NUM_ANGLE_INCLINACIO_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_ANGLE_INCLINACIO.ValueChanged If DimensionatCon IsNot Nothing Then DimensionatCon.AngleGeneral = NUM_ANGLE_INCLINACIO.Value

83 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb Me.IniciarDGVMensual() sender.maximum = 90 sender.minimum = 1 Me.CanviarValor(Me.LBLR_A_SEL.Name, Me.NUM_ANGLE_INCLINACIO.Value) 17 Me.GenerarGraficaConsum() Private Sub DGV_MENSUAL_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_MENSUAL.CellContentClick If e.columnindex = 0 Then arrsel = Nothing Dim CHK As DataGridViewCheckBoxCell = DGV_MENSUAL.Rows(e.RowIndex).Cells(e. ColumnIndex) If CHK.Value = True Then CHK.Value = False CHK.Value = True Me.BuscarMesDisseny() Private Sub NUM_VIABILITAT_TE_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.ActualitzarDimModuls() Private Sub NUM_SEL_MODULS_SERIE_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) If Me.IsHandleCreated = True Then If Me.carregantProjecte = True Then Exit Sub ActualitzarDimModuls() Me.CanviarValor(Me.TXTR_M_SERIE.Name, Me.NUM_SEL_MODULS_SERIE.Value) Private Sub NUM_COEF_SIM_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.ActualitzarDimInversors() Private Sub NUM_SEL_INVERSORS_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) If Me.IsHandleCreated = True Then Me.ActualitzarNumInversors() Me.CanviarValor(Me.TXTR_I_TOTAL.Name, Me.NUM_SEL_INVERSORS.Value) ActualitzarDgvCostos()

84 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb Private Sub TAB_ESPECIFICACIO_COMPONENTS_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TAB_ESPECIFICACIO_COMPONENTS. Validating Dim ErrorsTrobats As Boolean 'MODULS If Me.TXTM_ISC.Text = "0" Or Me.TXTM_ISC.Text = "" Then Me.TXTM_ISC.Text = "0" Me.canviarLBL(Me.LBLM_ISC, False) ErrorsTrobats = True If Me.TXTM_VOC.Text = "0" Or Me.TXTM_VOC.Text = "" Then Me.TXTM_VOC.Text = "0" Me.canviarLBL(Me.LBLM_VOC, False) ErrorsTrobats = True If Me.TXTM_VMP.Text = "0" Or Me.TXTM_VMP.Text = "" Then Me.TXTM_VMP.Text = "0" Me.canviarLBL(Me.LBL_VMP, False) ErrorsTrobats = True If Me.TXTM_IMP.Text = "0" Or Me.TXTM_IMP.Text = "" Then Me.TXTM_IMP.Text = "0" Me.canviarLBL(Me.LBL_IMP, False) ErrorsTrobats = True If Me.TXTM_W_NOM.Text = "0" Or Me.TXTM_W_NOM.Text = "" Then Me.TXTM_W_NOM.Text = "0" Me.canviarLBL(Me.LBLM_W_NOM, False) ErrorsTrobats = True 'INVERSORS If Me.TXTI_WNOM.Text = "0" Or Me.TXTI_WNOM.Text = "" Then Me.TXTI_WNOM.Text = "0" Me.canviarLBL(Me.LBL_W_NOM_CURT, False) ErrorsTrobats = True If ErrorsTrobats = True Then Errors.MostrarMSG(909008) e.cancel = True Exit Sub 18 Private Sub TXTM_W_NOM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_W_NOM.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_W_NOM.Text.Trim) Or TXTM_W_NOM.Text.Trim = "") Then If TXTM_W_NOM.Text.Trim = "" Then TXTM_W_NOM.Text = "0" TXTM_W_NOM.Text = TXTM_W_NOM.Text.Replace(".", ",") Me.canviarLBL(Me.LBLM_W_NOM) Me.CanviarValor(Me.TXT_MOD_W_NOM.Name, Me.TXTM_W_NOM.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLM_W_NOM, False) Exit Sub

85 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 19 Private Sub TXTM_VMP_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_VMP.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_VMP.Text.Trim) Or TXTM_VMP.Text.Trim = "") Then If TXTM_VMP.Text.Trim = "" Then TXTM_VMP.Text = "0" TXTM_VMP.Text = TXTM_VMP.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_VMP) Me.CanviarValor(Me.TXT2_VMP.Name, Me.TXTM_VMP.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_VMP, False) Exit Sub Private Sub TXTM_IMP_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_IMP.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_IMP.Text.Trim) Or TXTM_IMP.Text.Trim = "") Then If TXTM_IMP.Text.Trim = "" Then TXTM_IMP.Text = "0" TXTM_IMP.Text = TXTM_IMP.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_IMP) Me.CanviarValor(Me.TXT2_IMP.Name, Me.TXTM_IMP.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_IMP, False) Exit Sub Private Sub TXTM_VOC_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_VOC.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_VOC.Text.Trim) Or TXTM_VOC.Text.Trim = "") Then If TXTM_VOC.Text.Trim = "" Then TXTM_VOC.Text = "0" TXTM_VOC.Text = TXTM_VOC.Text.Replace(".", ",") Me.canviarLBL(Me.LBLM_VOC) Me.CanviarValor(Me.TXT2_VOC.Name, Me.TXTM_VOC.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLM_VOC, False) Exit Sub Private Sub TXTM_ISC_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTM_ISC.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTM_ISC.Text.Trim) Or TXTM_ISC.Text.Trim = "") Then If TXTM_ISC.Text.Trim = "" Then TXTM_ISC.Text = "0" TXTM_ISC.Text = TXTM_ISC.Text.Replace(".", ",") Me.canviarLBL(Me.LBLM_ISC) Me.CanviarValor(Me.TXT2_ISC.Name, Me.TXTM_ISC.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBLM_ISC, False) Exit Sub

86 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 20 Private Sub TXTI_WNOM_Validating(ByVal sender As Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles TXTI_WNOM.Validating If Me.IsHandleCreated = True Then If (IsNumeric(TXTI_WNOM.Text.Trim) Or TXTI_WNOM.Text.Trim = "") Then If TXTI_WNOM.Text.Trim = "" Then TXTI_WNOM.Text = "0" TXTI_WNOM.Text = TXTI_WNOM.Text.Replace(".", ",") Me.canviarLBL(Me.LBL_W_NOM_CURT) Me.CanviarValor(Me.TXT_W_NOM_INVERSORS.Name, Me.TXTI_WNOM.Text) Errors.MostrarMSG(909001) e.cancel = True Me.canviarLBL(Me.LBL_W_NOM_CURT, False) Exit Sub Private Sub TXT_MES_DISSENY_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_MES_DISSENY.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_MES_DISSENY.Name, Me.TXT_MES_DISSENY.Text) Private Sub TXT_HORES_PIC_DISSENY_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_HORES_PIC_DISSENY.TextChanged If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_HORES_DISSENY.Name, Me.TXT_HORES_PIC_DISSENY.Text) Private Sub NUM_SEL_MODULS_PARALEL_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) If Me.IsHandleCreated = True Then ActualitzarDimModuls() Me.CanviarValor(Me.TXTR_M_PARALEL.Name, Me.NUM_SEL_MODULS_PARALEL.Value) Private Sub TXT_TOTAL_MODULS_SELECCIO_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) If Me.IsHandleCreated = True Then Me.CanviarValor(Me.TXTR_M_TOTAL.Name, Me.TXT_TOTAL_MODULS_SELECCIO.Text) ActualitzarDgvCostos() Private Sub GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarImatgeComToolStripMenuItem.Click GRAFIQUES.GuardarImarge(ZG_CONSUM) Private Sub CopiarImatgeAlPortaretallsToolStripMenuItem_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles CopiarImatgeAlPortaretallsToolStripMenuItem.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_CONSUM) Private Sub AmpliarLaImatgeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AmpliarLaImatgeToolStripMenuItem.Click GRAFIQUES.ObrirImatge(ZG_CONSUM)

87 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 21 Private Sub ZG_CONSUM_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ZG_CONSUM.DoubleClick GRAFIQUES.ObrirImatge(ZG_CONSUM) Private Sub DGV_COSTOS_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewCellEventArgs) Handles DGV_COSTOS.CellEndEdit With DGV_COSTOS.Rows(e.RowIndex) If e.columnindex = 2 Then.Cells(4).Value =.Cells(2).Value *.Cells(3).Value If e.columnindex = 3 Then.Cells(4).Value =.Cells(2).Value *.Cells(3).Value End With Dim Total As Double = 0 For Each R As DataGridViewRow In DGV_COSTOS.Rows Total += R.Cells(4).Value Me.TXT_COST_TOTAL.Text = Total Private Sub ZG_HORES_PIC_DoubleClick(ByVal sender As Object, ByVal e As System. EventArgs) Handles ZG_HORES_PIC.DoubleClick GRAFIQUES.ObrirImatge(ZG_HORES_PIC) Private Sub ZG_HORES_PIC_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles ZG_HORES_PIC.Load Private Sub CHK_RADIACIO_HH_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles CHK_RADIACIO_HH.CheckedChanged, CHK_RADIACIO_H90.CheckedChanged, CHK_RADIACIO_HOPTIM.CheckedChanged, _ CHK_RADIACIO_HSEL.CheckedChanged If Me.IsHandleCreated = True Then Me.GenerarGraficaHP() Private Sub BTO_BARRES_VERTICALS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles BTO_BARRES_VERTICALS.Click, BTO_CURVA.Click If sender.checkstate <> True Then 'Desactivem tots els botons de les gràfiques que no siguin el que hem fet click For Each bto As ToolStripButton In MNU_BTO_GRAFICA_MENSUAL.Items If bto.name <> sender.name Then bto.checkstate = CheckState.Unchecked bto.checkstate = CheckState.Checked Me.GenerarGraficaHP() Private Sub A_GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A_GuardarImatgeComToolStripMenuItem.Click GRAFIQUES.GuardarImarge(ZG_HORES_PIC) Private Sub A_CopiarImatgeAlPortaretallsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

88 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb A_CopiarImatgeAlPortaretallsToolStripMenuItem.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_HORES_PIC) 22 Private Sub A_AmpliarLaImatgeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A_AmpliarLaImatgeToolStripMenuItem.Click GRAFIQUES.ObrirImatge(ZG_HORES_PIC) Private Sub TXT_CMB_PAISOS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CMB_PAISOS.TextChanged 'Me.CMB_PAISOS.SelectedIndex = Me.TXT_CMB_PAISOS.Text Private Sub BTO_BTO_CANCELAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_CANCELAR.Click Me.Close() Private Sub TXT_CMB_PROVINCIES_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CMB_PROVINCIES.TextChanged Private Sub TXT_CMB_CIUTATS_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_CMB_CIUTATS.TextChanged Private Sub TXT_RECUPERACIO_HIVERN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Private Sub DGV_COSTOS_RowsRemoved(ByVal sender As Object, ByVal e As System.Windows. Forms.DataGridViewRowsRemovedEventArgs) Handles DGV_COSTOS.RowsRemoved Dim total As Double For Each R As DataGridViewRow In DGV_COSTOS.Rows total += R.Cells(4).Value Me.TXT_COST_TOTAL.Text = total Private Sub TXT_TOTAL_MODULS_SELECCIO_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_TOTAL_MODULS_SELECCIO.TextChanged CanviarValor(Me.TXTR_M_TOTAL.Name, TXT_TOTAL_MODULS_SELECCIO.Text) Me.ActualitzarDgvCostos() Me.GenerarGraficaConsum() Private Sub NUM_SEL_MODULS_SERIE_ValueChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_SEL_MODULS_SERIE.ValueChanged Me.TXT_TOTAL_MODULS_SELECCIO.Text = (NUM_SEL_MODULS_SERIE.Value * NUM_SEL_MODULS_PARALEL.Value).ToString CanviarValor(Me.TXTR_M_SERIE.Name, NUM_SEL_MODULS_SERIE.Value) Private Sub NUM_SEL_MODULS_PARALEL_ValueChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_SEL_MODULS_PARALEL.ValueChanged Me.TXT_TOTAL_MODULS_SELECCIO.Text = (NUM_SEL_MODULS_SERIE.Value * NUM_SEL_MODULS_PARALEL.Value).ToString CanviarValor(Me.TXTR_M_PARALEL.Name, NUM_SEL_MODULS_PARALEL.Value) Private Sub TXTM_ISC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTM_ISC.TextChanged Me.GenerarGraficaConsum()

89 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb 23 Private Sub NUM_SEL_INVERSORS_ValueChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NUM_SEL_INVERSORS.ValueChanged Me.CanviarValor(Me.TXTR_I_TOTAL.Name, NUM_SEL_INVERSORS.Value) Me.ActualitzarDgvCostos() Private Sub TAB_DIM_RESUM_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TAB_DIM_RESUM.Click Private Sub TAB_DIM_RESUM_HandleCreated(ByVal sender As Object, ByVal e As System. EventArgs) Handles TAB_DIM_RESUM.HandleCreated Me.GenerarGraficaConsum() Private Sub TAB_DIM_RESUM_HandleDestroyed(ByVal sender As Object, ByVal e As System. EventArgs) Handles TAB_DIM_RESUM.HandleDestroyed Private Sub TXT_COST_TOTAL_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_COST_TOTAL.TextChanged Me.ActualitzarTempsRecuperacio() Private Sub TXT_KW_PRIMERS_25_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles NUM_KW_PRIMERS_25.ValueChanged Me.ActualitzarTempsRecuperacio() Private Sub TXT_KW_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles NUM_KW.ValueChanged Me.ActualitzarTempsRecuperacio() Private Sub TAB_CALCUL_ECONOMIC_HandleCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TAB_CALCUL_ECONOMIC.HandleCreated 'PREUS Dim ds As Data.DataSet ds = GENERAL.BD_CONF.strconsultar(GENERAL.TAULA_CONF_PREUS) Me.NUM_KW.Value = ds.tables(0).rows(0).item("kw") Me.NUM_KW_PRIMERS_25.Value = ds.tables(0).rows(0).item("kw_primers_25") Private Sub TAB_ESPECIFICACIO_COMPONENTS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_ESPECIFICACIO_COMPONENTS.Click Private Sub TAB_CALCUL_ECONOMIC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TAB_CALCUL_ECONOMIC.Click Private Sub TXTI_WNOM_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTI_WNOM.TextChanged If TXTI_WNOM.Text = "" Then TXTI_WNOM.Text = 0 Private Sub TXTI_WMAX_TextChanged(ByVal sender As System.Object, ByVal e As System.

90 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_DIM_CON.vb EventArgs) Handles TXTI_WMAX.TextChanged If TXTI_WMAX.Text = "" Then TXTI_WMAX.Text = 0 24 Private Sub TXT_V_CARREGA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_V_CARREGA.TextChanged If TXT_V_CARREGA.Text = "" Then TXT_V_CARREGA.Text = 0 Private Sub TXT_I_CARREGA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TXT_I_CARREGA.TextChanged If TXT_I_CARREGA.Text = "" Then TXT_I_CARREGA.Text = 0 Private Sub TXTI_VDC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTI_VDC.TextChanged If TXTI_VDC.Text = "" Then TXTI_VDC.Text = 0 Private Sub TXTI_VAC_TextChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles TXTI_VAC.TextChanged If TXTI_VAC.Text = "" Then TXTI_VAC.Text = 0 End Class

91 5-.FRM_GRAFICS_GRANS

92 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_GRAFICS_GRANS.vb Public Class FRM_GRAFICS_GRANS 1 Private Sub FRM_GRAFICS_GRANS_FormClosed(ByVal sender As Object, ByVal e As System. Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_GRAFICS_GRANS_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) For Each item As ToolStripMenuItem In MNUCON_ZG_GRAN.Items item.text = IDIOMES.Traduir(item.Name) ZG_GRAN.Size = New Size(ZG_GRAN.Size.Width + 1, ZG_GRAN.Size.Height + 1) ZG_GRAN.Refresh() Private Sub GuardarImatgeComToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GuardarImatgeComToolStripMenuItem.Click GRAFIQUES.GuardarImarge(ZG_GRAN) Private Sub CopiarImatgeAlPortaretallsToolStripMenuItem_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles CopiarImatgeAlPortaretallsToolStripMenuItem.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_GRAN) Private Sub GuardarImatgeCom_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles GuardarImatgeCom.Click GRAFIQUES.GuardarImarge(ZG_GRAN) Private Sub Copiaralportaretalls_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Copiaralportaretalls.Click GRAFIQUES.CopiarImatgeAlPortaRetalls(ZG_GRAN) Private Sub MNUCON_ZG_GRAN_Opening(ByVal sender As System.Object, ByVal e As System. ComponentModel.CancelEventArgs) Handles MNUCON_ZG_GRAN.Opening IDIOMES.TraduirApp(Me) Private Sub BTO_BTO_TANCAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_TANCAR.Click Me.Close() Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System. Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked End Class

93

94 6-.FRM_HAR_TAULES

95 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_HAR_TAULES.vb Public Class FRM_HAR_TAULES 1 Private Function GenerarCapceleres(ByVal TipusAngle As String) As String Dim TmpReturn As String = "" Select Case TipusAngle Case "AZIMUT" TmpReturn = "float AZIMUT[364][" & Me.NUM_VALORS_AZIMUT.Value - 1 & "];" & vbnewline Case "SOLAR" TmpReturn = "float AZIMUT[364][" & Me.NUM_VALORS_SOLAR.Value - 1 & "];" & vbnewline End Select Return TmpReturn End Function Private Sub FRM_HAR_TAULES_FormClosed(ByVal sender As Object, ByVal e As System. Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_HAR_TAULES_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) 'CARREGUEM LA INFORMACIÓ DELS PAISOS Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing Private Sub CMB_PAISOS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PAISOS.SelectedIndexChanged If CMB_PAISOS.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES PROVINCIES Dim DS_PROVINCIES As Data.DataSet DS_PROVINCIES = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PROVINCIES,, "ID_PAIS='" & CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex).ITEM("ID_PAIS") & "'", "NOM_PROVINCIA") If DS_PROVINCIES.Tables(0).Rows.Count <> 0 Then CMB_PROVINCIES.DataSource = DS_PROVINCIES.Tables(0) CMB_PROVINCIES.DisplayMember = "NOM_PROVINCIA" CMB_PROVINCIES.DataSource = Nothing Private Sub CMB_PROVINCIES_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PROVINCIES.SelectedIndexChanged If CMB_PROVINCIES.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES CIUTATS Dim DS_CIUTATS As Data.DataSet Dim KK As Integer KK = CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM("ID_PROVINCIA") DS_CIUTATS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_CIUTATS,, "ID_PROVINCIA=" & CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM( "ID_PROVINCIA"), "NOM_CIUTAT") If DS_CIUTATS.Tables(0).Rows.Count <> 0 Then CMB_CIUTATS.DataSource = DS_CIUTATS.Tables(0) CMB_CIUTATS.DisplayMember = "NOM_CIUTAT"

96 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_HAR_TAULES.vb CMB_CIUTATS.DataSource = Nothing 2 Private Sub CMB_CIUTATS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_CIUTATS.SelectedIndexChanged If CMB_CIUTATS.SelectedIndex <> -1 Then 'carreguem la latitut i la longitud With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut")) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) End With Private Sub CHK_CALC_AZIMUT_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CHK_CALC_AZIMUT.CheckedChanged If CHK_CALC_AZIMUT.Checked = True Then Me.NUM_VALORS_AZIMUT.Enabled = True Me.NUM_VALORS_AZIMUT.Enabled = False Private Sub CHK_CALC_SOLAR_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CHK_CALC_SOLAR.CheckedChanged If CHK_CALC_SOLAR.Checked = True Then Me.NUM_VALORS_SOLAR.Enabled = True Me.NUM_VALORS_SOLAR.Enabled = False Private Sub BTO_GENERAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_GENERAR.Click If Me.CHK_CALC_AZIMUT.Checked = False And Me.CHK_CALC_SOLAR.Checked = False Then Errors.MostrarMSG(909100) Exit Sub 'fem els calculs per l'any actual Dim arrazimut(,) As Double Dim arraltura(,) As Double Dim tmptaula As New Seguidor2Eixos ") tmptaula.latitut = Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).item("latitut") tmptaula.longitut = Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).ITEM("longitut tmptaula.utm = Convert.ToInt32(Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex). ITEM("zona_horaria").ToString.Substring(3, 2)) If (Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).ITEM("zona_horaria").ToString. Substring(2, 1) = "-") Then tmptaula.utm = -1 * tmptaula.utm Dim tmph As Integer = Convert.ToInt32(Me.DTA_INICI.Value.ToString.Substring(Me. DTA_INICI.Value.ToString.Length - 8, 2)) * 3600 Dim tmpm As Integer = Convert.ToInt32(Me.DTA_INICI.Value.ToString.Substring(Me. DTA_INICI.Value.ToString.Length - 5, 2)) * 60

97 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_HAR_TAULES.vb Dim tmps As Integer = Convert.ToInt32(Me.DTA_INICI.Value.ToString.Substring(Me. DTA_INICI.Value.ToString.Length - 2, 2)) 3 tmptaula.segonsinici = tmph + tmpm + tmps tmph = Convert.ToInt32(Me.DTA_FINAL.Value.ToString.Substring(Me.DTA_FINAL.Value. ToString.Length - 8, 2)) * 3600 tmpm = Convert.ToInt32(Me.DTA_FINAL.Value.ToString.Substring(Me.DTA_FINAL.Value. ToString.Length - 5, 2)) * 60 tmps = Convert.ToInt32(Me.DTA_FINAL.Value.ToString.Substring(Me.DTA_FINAL.Value. ToString.Length - 2, 2)) tmptaula.segonsfi = tmph + tmpm + tmps tmptaula.intervals = Me.NUM_VALORS_AZIMUT.Value tmptaula.calcularangles() arrazimut = tmptaula.arrazimut arraltura = tmptaula.arraltura Me.TXT_CODI.Text = "" Me.TXT_CAPCELERES.Text = "" If Me.CHK_CALC_AZIMUT.Checked = True Then 'Me.TXT_CODI.Text += Me.generarTaulaAzimut() Me.TXT_CAPCELERES.Text += Me.GenerarCapceleres("AZIMUT") Dim txtazimut As String = "static float azimut[365][" & Me.NUM_VALORS_AZIMUT. Value - 1 & "] = {" & vbnewline For i As Integer = 1 To 365 txtazimut += "{" For j As Integer = 0 To Me.NUM_VALORS_AZIMUT.Value - 1 txtazimut += arrazimut(i, j).tostring.replace(",", ".") & "," txtazimut = txtazimut.substring(0, txtazimut.length - 1) & "}" & vbnewline txtazimut = txtazimut.substring(0, txtazimut.length - 1) & "};" & vbnewline & vbnewline Me.TXT_CODI.Text += txtazimut If Me.CHK_CALC_SOLAR.Checked = True Then Me.TXT_CAPCELERES.Text += Me.GenerarCapceleres("SOLAR") Dim txtaltura As String = "static float altura[365][" & Me.NUM_VALORS_AZIMUT. Value - 1 & "] = {" & vbnewline For i As Integer = 1 To 365 txtaltura += "{" For j As Integer = 0 To Me.NUM_VALORS_AZIMUT.Value - 1 txtaltura += arraltura(i, j).tostring.replace(",", ".") & "," txtaltura = txtaltura.substring(0, txtaltura.length - 1) & "}" & vbnewline txtaltura = txtaltura.substring(0, txtaltura.length - 1) & "};" & vbnewline & vbnewline Me.TXT_CODI.Text += txtaltura Private Sub BTO_BTO_TANCAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_TANCAR.Click Me.Close()

98 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_HAR_TAULES.vb End Class 4

99

100 7-.FRM_INFORME

101 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_INFORME.vb Public Class FRM_INFORME 1 Private Function agafarvalor(byval nom As String, ByVal dt As DataTable) As String For Each row As DataRow In dt.rows Dim TmpNom As String = row.item(0) If TmpNom = "TXT_CONSUM_DC" Then Dim kk As Integer = 0 If TmpNom = nom Then Return row.item(1) Exit Function Return "NO" End Function Private Sub traduirreport(byval ra As CrystalDecisions.CrystalReports.Engine. ReportDocument, ByVal dt As DataTable) For i As Integer = 0 To ra.reportdefinition.reportobjects.count - 1 Dim obj As CrystalDecisions.CrystalReports.Engine.ReportObject = ra. ReportDefinition.ReportObjects(i) If TypeOf obj Is CrystalDecisions.CrystalReports.Engine.TextObject Then Dim tmpobj As CrystalDecisions.CrystalReports.Engine.TextObject = obj Dim senyal As String = "" If obj.name.indexof("_") <> -1 Then senyal = obj.name.substring(0, obj.name.indexof("_")) _ "TXTI" _ "LBLBAT" _ " Then If senyal = "TXT" Or senyal = "NUM" Or senyal = "TXTR" Or senyal = "TXTB" Or senyal = "TXTBAT" Or senyal = "TXTM" Or senyal = "TXTR" Or senyal = Or senyal = "NUMI" Then tmpobj.text = Me.agafarValor(obj.Name, dt) If senyal = "LBL" Or senyal = "GPR" Or senyal = "CHK" Or senyal = Or senyal = "LBLM" Or senyal = "LBL2" Or senyal = "LBLR" Or senyal = "LBLI tmpobj.text = IDIOMES.Traduir(obj.Name.Substring(obj.Name.IndexOf("_") + 1, obj.name.length - obj.name.indexof("_") - 1)) If senyal = "NO" Then tmpobj.text = IDIOMES.Traduir(obj.Name) For I As Integer = 0 To ra.reportdefinition.reportobjects.count - 1 Dim kk As String = (ra.reportdefinition.reportobjects(i).gettype).tostring Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_BTO_GENERAR.Click Dim DTA_CONSUM As New DataTable Dim DTA_RADIACIO As New DataTable Dim DTA_COSTOS As New DataTable 'Dim DTC_CONSUM As New DataTable

102 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_INFORME.vb Dim DTC_RADIACIO As New DataTable Dim DTC_COSTOS As New DataTable Dim DTA_AILLAT As New DataTable Dim DTC_CONEXIONAT As New DataTable 2 'UBIQUEM ELS DATASET AILLAT If GENERAL.PROJECT.DSAillat IsNot Nothing Then With GENERAL.PROJECT.DSAillat DTA_AILLAT =.Tables("AILLAT_ELEMENTS") End With For Each ROW As DataRow In.Tables("AILLAT_IDDGV").Rows Dim KK As String = ROW.Item(0) If ROW.Item(0) = "DGV_CONSUM" Then DTA_CONSUM =.Tables(ROW.Item(1)) If ROW.Item(0) = "DGV_MENSUAL" Then DTA_RADIACIO =.Tables(ROW.Item(1)) If ROW.Item(0) = "DGV_COSTOS" Then DTA_COSTOS =.Tables(ROW.Item(1)) 'CARREGUEM DATASETS CONEXIONAT If GENERAL.PROJECT.DSConexionat IsNot Nothing Then With GENERAL.PROJECT.DSConexionat DTC_CONEXIONAT =.Tables("CONEXIONAT_ELEMENTS") For Each ROW As DataRow In.Tables("CONEXIONAT_IDDGV").Rows 'If ROW.Item(0) = "DGV_CONSUM" Then ' 'DTC_CONSUM =.Tables(ROW.Item(1)) ' If ROW.Item(0) = "DGV_MENSUAL" Then DTC_RADIACIO =.Tables(ROW.Item(1)) If ROW.Item(0) = "DGV_COSTOS" Then DTC_COSTOS =.Tables(ROW.Item(1)) End With 'Carreguem els Subreports Dim rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument = New complet Me.traduirReport(rpt, Nothing) Dim TMPDS As DataSet = GENERAL.BD_CONF.STRCONSULTAR(GENERAL.TAULA_CONF_EMPRESA,, "ID_" & GENERAL.TAULA_CONF_EMPRESA & "=1") TMPDS.Tables(0).Columns("POBLACIO_EMPRESA").ColumnName = "POBLACIO EMPRESA" rpt.setdatasource(tmpds.tables(0)) For i As Integer = 0 To rpt.subreports.count - 1 Dim subr As CrystalDecisions.CrystalReports.Engine.ReportDocument subr = rpt.subreports(i) Select Case subr.name 'i Case "A_CONSUM" Me.traduirReport(subr, DTA_AILLAT) subr.setdatasource(dta_consum) Case "A_GRAFICA_CONSUM" Me.traduirReport(subr, DTA_AILLAT) Case "A_RADIACIO" Me.traduirReport(subr, DTA_AILLAT) subr.setdatasource(dta_radiacio) Case "A_RAD_DETALLS" Me.traduirReport(subr, DTA_AILLAT)

103 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_INFORME.vb Dim idciutat As String = "" If GENERAL.PROJECT.DSAillat IsNot Nothing Then For Each R As DataRow In GENERAL.PROJECT.DSAillat.Tables( "AILLAT_ELEMENTS").Rows If R.Item(0).ToString = "TXTR_CIUTAT" Then idciutat = R.Item(1) Dim RadC As DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_CIUTATS,, "NOM_CIUTAT='" & idciutat & "'") subr.setdatasource(radc.tables(0)) Case "A_DIM" Me.traduirReport(subr, DTA_AILLAT) Case "A_COSTOS" Me.traduirReport(subr, DTA_AILLAT) 3 subr.reportdefinition.reportobjects("lbl_kw_anuals").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("txt_kw_anuals").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("lbl_anys_recuperacio"). ObjectFormat.EnableSuppress = True subr.reportdefinition.reportobjects("txt_anys_recuperacio"). ObjectFormat.EnableSuppress = True subr.reportdefinition.reportobjects("no_2").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("line7").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("lbl_resum_costos").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("lbl_anys").objectformat. EnableSuppress = True 'Dim tmpobj As CrystalDecisions.CrystalReports.Engine.TextObject = obj subr.setdatasource(dta_costos) 'CONEXIONAT Case "C_RAD" Me.traduirReport(subr, DTC_CONEXIONAT) Dim TMPDC As DataTable = DTC_RADIACIO 'TMPDC.Columns.Add("COL_CONSUM_TOTAL_CORREGIT") 'TMPDC.Columns.Add("COL_INTENSITAT_DISSENY") subr.setdatasource(tmpdc) Case "C_RAD_DETALLS" Me.traduirReport(subr, DTC_CONEXIONAT) Dim idciutat As String = "Barcelona" If GENERAL.PROJECT.DSConexionat IsNot Nothing Then For Each R As DataRow In GENERAL.PROJECT.DSConexionat.Tables( "CONEXIONAT_ELEMENTS").Rows If R.Item(0).ToString = "TXTR_CIUTAT" Then idciutat = R.Item(1) Dim RadC As DataSet = GENERAL.BD_RADIACIO.StrConsultar(GENERAL. TAULA_RAD_CIUTATS,, "NOM_CIUTAT='" & idciutat & "'") subr.setdatasource(radc.tables(0)) subr.reportdefinition.reportobjects("lbl_i_disseny").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("txt_i_disseny").objectformat. EnableSuppress = True subr.reportdefinition.reportobjects("no_4").objectformat.

104 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_INFORME.vb EnableSuppress = True 4 Case "C_DIME" Me.traduirReport(subr, DTC_CONEXIONAT) Case "C_COSTOS" Me.traduirReport(subr, DTC_CONEXIONAT) subr.setdatasource(dtc_costos) End Select Me.INFORME.ReportSource = rpt If Me.CHK_OPT_GRAFICS.Checked = False Then rpt.reportdefinition.sections("sa_consum_grafica").sectionformat. EnableSuppress = True rpt.reportdefinition.sections("sa_radiacio_grafica").sectionformat. EnableSuppress = True rpt.reportdefinition.sections("sc_radiacio_grafica").sectionformat. EnableSuppress = True rpt.reportdefinition.sections("sc_grafic_consum").sectionformat.enablesuppress = True 'Seleccionem les seccions que s'han de visualitzar If (Me.CHKA_INF_CONSUM.Checked = False) Then rpt.reportdefinition.sections("sa_consum").sectionformat.enablesuppress = True rpt.reportdefinition.sections("sa_consum_grafica").sectionformat. EnableSuppress = True If (Me.CHKA_INF_RADIACIO.Checked = False) Then rpt.reportdefinition.sections("sa_radiacio").sectionformat.enablesuppress = True rpt.reportdefinition.sections("sa_radiacio_grafica").sectionformat. EnableSuppress = True If (Me.CHKA_INF_DIMENSIONAT.Checked = False) Then rpt.reportdefinition.sections("sa_dime").sectionformat.enablesuppress = True If (Me.CHKA_INF_COSTOS.Checked = False) Then rpt.reportdefinition.sections("sa_costos").sectionformat.enablesuppress = True 'CONEXIONAT If (Me.CHKC_INF_RADIACIO.Checked = False) Then rpt.reportdefinition.sections("sc_radiacio").sectionformat.enablesuppress = True rpt.reportdefinition.sections("sc_radiacio_grafica").sectionformat. EnableSuppress = True If (Me.CHKC_INF_DIMENSIONAT.Checked = False) Then rpt.reportdefinition.sections("sc_dime").sectionformat.enablesuppress = True If (Me.CHKC_INF_COSTOS.Checked = False) Then rpt.reportdefinition.sections("sc_costos").sectionformat.enablesuppress = True Private Sub FRM_INFORME_FormClosed(ByVal sender As Object, ByVal e As System.Windows. Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_INFORME_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) If GENERAL.PROJECT.ExisteixAillat = False Then Me.GPR_OPCIONS_AILLAT.Enabled = False Me.CHKA_INF_CONSUM.Checked = False Me.CHKA_INF_COSTOS.Checked = False Me.CHKA_INF_DIMENSIONAT.Checked = False Me.CHKA_INF_RADIACIO.Checked = False If GENERAL.PROJECT.ExisteixConexionat = False Then

105 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_INFORME.vb Me.GPR_OPCIONS_CONEXIONAT.Enabled = False Me.CHKC_INF_COSTOS.Checked = False Me.CHKC_INF_DIMENSIONAT.Checked = False Me.CHKC_INF_RADIACIO.Checked = False If GENERAL.PROJECT.ExisteixConexionat = False And GENERAL.PROJECT.ExisteixAillat = False Then Me.GPR_OPCIONS_AILLAT.Enabled = False Me.GPR_OPCIONS_CONEXIONAT.Enabled = False Me.CHK_OPT_GRAFICS.Enabled = False Me.BTO_BTO_GENERAR.Enabled = False Me.GPR_OPCIONS_AILLAT.Enabled = False Me.CHKA_INF_CONSUM.Checked = False Me.CHKA_INF_COSTOS.Checked = False Me.CHKA_INF_DIMENSIONAT.Checked = False Me.CHKA_INF_RADIACIO.Checked = False 5 Me.GPR_OPCIONS_CONEXIONAT.Enabled = False Me.CHKC_INF_COSTOS.Checked = False Me.CHKC_INF_DIMENSIONAT.Checked = False Me.CHKC_INF_RADIACIO.Checked = False Private Sub CHKA_INF_RADIACIO_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CHKA_INF_RADIACIO.CheckedChanged Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles CHKC_INF_DIMENSIONAT.CheckedChanged Private Sub BTO_BTO_TANCAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_TANCAR.Click Me.Close() End Class

106 8-.FRM_MAIN

107 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_MAIN.vb Option Explicit On Option Strict On 1 Public Class FRM_MAIN Private Sub ActivarDimensionat() BTO_DIM_AILLAT.Enabled = True AillatToolStripMenuItem.Enabled = True BTO_DIM_CONEXIONAT.Enabled = True ConexionatToolStripMenuItem.Enabled = True BTO_GENERAR_INFORME.Enabled = False GenerarInformeToolStripMenuItem.Enabled = False Me.Text = IDIOMES.Traduir("FRM_MAIN") & " [ " & GENERAL.PROJECT.Ruta & " ] " Private Sub CrearProjecte() If GENERAL.PROJECT.EstaObert = True And GENERAL.PROJECT.EstaAillatGuardat = False Or GENERAL.PROJECT.EstaConexionatGuardat = False _ And GENERAL.PROJECT.ExisteixAillat = True And GENERAL.PROJECT.ExisteixConexionat = True Then Dim result As MsgBoxResult = MsgBox(Errors.GetMsgTxt(920001), MsgBoxStyle. YesNoCancel) If result = MsgBoxResult.Cancel Then Exit Sub If result = MsgBoxResult.Yes Then GENERAL.PROJECT.GuardarProjecte() BTO_BTO_DESAR_PROJECTE.Enabled = False DesarProjecteToolStripMenuItem.Enabled = False GENERAL.PROJECT = New PROJECTE Do 'mostrem la pantalla per obrir el projecte OFD_PROJECT.Title = IDIOMES.Traduir("ESCRIGUI_EL_NOM_DEL_PROJECTE") OFD_PROJECT.Filter = IDIOMES.Traduir("PROJECT_EXT") & " *.xml" OFD_PROJECT.InitialDirectory = Application.ExecutablePath OFD_PROJECT.FileName = IDIOMES.Traduir("NOU_PROJECT") OFD_PROJECT.CheckFileExists = False Dim resultat As DialogResult = OFD_PROJECT.ShowDialog() If IO.File.Exists(OFD_PROJECT.FileName) Then If resultat <> Windows.Forms.DialogResult.Cancel Then If IO.File.Exists(OFD_PROJECT.FileName) Then Errors.MostrarMSG(920007) If OFD_PROJECT.FileName <> "" Then GENERAL.PROJECT.Ruta = OFD_PROJECT.FileName Me.ActivarDimensionat() Exit Do Errors.MostrarMSG(920005) Exit Do Loop

108 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_MAIN.vb Private Sub ObrirProjecte() If GENERAL.PROJECT.EstaObert = True And GENERAL.PROJECT.EstaAillatGuardat = False Or GENERAL.PROJECT.EstaConexionatGuardat = False _ And GENERAL.PROJECT.ExisteixAillat = True And GENERAL.PROJECT.ExisteixConexionat = True Then Dim result As MsgBoxResult = MsgBox(Errors.GetMsgTxt(920002), MsgBoxStyle. YesNoCancel) If result = MsgBoxResult.Cancel Then Exit Sub If result = MsgBoxResult.Yes Then GENERAL.PROJECT.GuardarProjecte() BTO_BTO_DESAR_PROJECTE.Enabled = False DesarProjecteToolStripMenuItem.Enabled = False 'mostrem la pantalla per obrir el projecte OFD_PROJECT.Title = IDIOMES.Traduir("ESCRIGUI_EL_NOM_DEL_PROJECTE_OBRIR") OFD_PROJECT.Filter = IDIOMES.Traduir("PROJECT_EXT") & " *.xml" OFD_PROJECT.InitialDirectory = Application.ExecutablePath OFD_PROJECT.FileName = "" OFD_PROJECT.CheckFileExists = True Dim resultat As DialogResult = OFD_PROJECT.ShowDialog() If resultat <> Windows.Forms.DialogResult.Cancel Then If OFD_PROJECT.FileName <> "" Then GENERAL.PROJECT.Ruta = OFD_PROJECT.FileName GENERAL.PROJECT.ObrirProjecte() ActivarDimensionat() Me.BTO_GENERAR_INFORME.Enabled = True GenerarInformeToolStripMenuItem.Enabled = True 'BTO_BTO_DESAR_PROJECTE.Enabled = True Private Sub DesarProjecte() GENERAL.PROJECT.GuardarProjecte() BTO_BTO_DESAR_PROJECTE.Enabled = False DesarProjecteToolStripMenuItem.Enabled = False BTO_GENERAR_INFORME.Enabled = True GenerarInformeToolStripMenuItem.Enabled = True Private Sub SortirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SortirToolStripMenuItem.Click Me.Close() Private Sub ConfiguracióToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConfiguracioToolStripMenuItem.Click FRM_SETTINGS.ShowDialog() Private Sub FRM_MAIN_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated If GENERAL.PROJECT.ExisteixAillat = True And GENERAL.PROJECT.EstaAillatGuardat = False Then Me.BTO_BTO_DESAR_PROJECTE.Enabled = True DesarProjecteToolStripMenuItem.Enabled = True Exit Sub If GENERAL.PROJECT.ExisteixConexionat = True And GENERAL.PROJECT. EstaConexionatGuardat = False Then Me.BTO_BTO_DESAR_PROJECTE.Enabled = True DesarProjecteToolStripMenuItem.Enabled = True 2

109 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_MAIN.vb Exit Sub Me.BTO_BTO_DESAR_PROJECTE.Enabled = False DesarProjecteToolStripMenuItem.Enabled = False 'If GENERAL.PROJECT.EstaObert = False And GENERAL.PROJECT.EstaAillatGuardat = True And GENERAL.PROJECT.EstaConexionatGuardat = True Then ' Me.BTO_BTO_DESAR_PROJECTE.Enabled = False ' ' Me.BTO_BTO_DESAR_PROJECTE.Enabled = True ' Private Sub FRM_MAIN_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed Private Sub FRM_MAIN_FormClosed(ByVal sender As Object, ByVal e As System.Windows. Forms.FormClosedEventArgs) Handles Me.FormClosed Private Sub FRM_MAIN_FormClosing(ByVal sender As Object, ByVal e As System.Windows. Forms.FormClosingEventArgs) Handles Me.FormClosing If GENERAL.PROJECT.EstaObert = True And GENERAL.PROJECT.EstaAillatGuardat = False Or GENERAL.PROJECT.EstaConexionatGuardat = False _ And GENERAL.PROJECT.ExisteixAillat = True And GENERAL.PROJECT.ExisteixConexionat = True Then Dim result As MsgBoxResult = MsgBox(Errors.GetMsgTxt(920006), MsgBoxStyle. YesNoCancel) If result = MsgBoxResult.Cancel Then e.cancel = True Exit Sub If result = MsgBoxResult.Yes Then GENERAL.PROJECT.GuardarProjecte() BTO_BTO_DESAR_PROJECTE.Enabled = False DesarProjecteToolStripMenuItem.Enabled = False 3 Private Sub FRM_MAIN_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load GENERAL.Inicialitzar() Private Sub BTO_GENERACIO_HARDWARE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles GeneracióDeTaulesToolStripMenuItem.Click, BTO_GENERACIO_HARDWARE.Click Dim resultat As Windows.Forms.DialogResult = FRM_HAR_TAULES.ShowDialog(Me) Private Sub BTO_BD_COMERCIAL_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles BTO_BD_COMERCIAL.Click, ComercialToolStripMenuItem.Click Dim resultat As Windows.Forms.DialogResult = FRM_BD_COMERCIAL.ShowDialog(Me) Private Sub BTO_BD_RADIACIO_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles BTO_BD_RADIACIO.Click, RadiacióToolStripMenuItem.Click Dim resultat As Windows.Forms.DialogResult = FRM_BD_RADIACIONS.ShowDialog(Me) Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles BTO_DIM_AILLAT.Click, AillatToolStripMenuItem.Click Dim resultat As Windows.Forms.DialogResult = FRM_DIM_AILLAT.ShowDialog(Me)

110 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_MAIN.vb 4 Private Sub BTO_CALCUL_OMBRES_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles BTO_CALCUL_OMBRES.Click, CàlculDombresToolStripMenuItem.Click Dim resultat As Windows.Forms.DialogResult = FRM_OMBRES.ShowDialog(Me) Private Sub MENU_SUP_ItemClicked(ByVal sender As System.Object, ByVal e As System. Windows.Forms.ToolStripItemClickedEventArgs) Handles MENU_SUP.ItemClicked Private Sub BTO_BTO_CREAR_PRJECTE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_BTO_CREAR_PRJECTE.Click Me.CrearProjecte() Private Sub BTO_BTO_OBRIR_PROJECTE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_BTO_OBRIR_PROJECTE.Click Me.ObrirProjecte() Private Sub BTO_BTO_DESAR_PROJECTE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTO_BTO_DESAR_PROJECTE.Click Me.DesarProjecte() BTO_BTO_DESAR_PROJECTE.Enabled = False DesarProjecteToolStripMenuItem.Enabled = False Private Sub BTO_DIM_CONEXIONAT_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles BTO_DIM_CONEXIONAT.Click, ConexionatToolStripMenuItem.Click Dim resultat As Windows.Forms.DialogResult = FRM_DIM_CON.ShowDialog(Me) Private Sub BTO_GENERAR_INFORME_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles BTO_GENERAR_INFORME.Click, GenerarInformeToolStripMenuItem.Click Dim resultat As Windows.Forms.DialogResult = FRM_INFORME.ShowDialog(Me) Private Sub CrearProjecteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearProjecteToolStripMenuItem.Click Me.CrearProjecte() Private Sub ObrirProjecteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ObrirProjecteToolStripMenuItem.Click Me.ObrirProjecte() Private Sub DesarProjecteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DesarProjecteToolStripMenuItem.Click Me.DesarProjecte() Private Sub GenerarInformeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GenerarInformeToolStripMenuItem.Click Private Sub BTO_CONTROL_HARDWARE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles ControlMotorsToolStripMenuItem.Click, BTO_CONTROL_HARDWARE.Click

111 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_MAIN.vb 5 End Class

112 9-.FRM_OMBRES

113 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_OMBRES.vb Imports ZedGraph 1 Public Class FRM_OMBRES Private arrazimut() As Double Private arraltura() As Double Private Sub GenerarGraficOmbres() Dim arraltura(,) As Double Dim tmptaula As New MitgesAngles 'Dim tmptaula As New Seguidor2Eixos ") tmptaula.latitut = Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).item("latitut") tmptaula.longitut = Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).ITEM("longitut tmptaula.utm = 0 ' Convert.ToInt32(Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).ITEM("zona_horaria").ToString.Substring(3, 2)) If (Me.CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex).ITEM("zona_horaria").ToString. Substring(2, 1) = "-") Then tmptaula.utm = -1 * tmptaula.utm tmptaula.segonsfi = tmptaula.intervals = 50 tmptaula.calcularangles() 'tmptaula.generarmensuals() 'arrazimut = tmptaula. Dim arrhsolar(,) As Double = tmptaula.gethsolarmensual arraltura = tmptaula.getalturamensual 'grafiquem Dim arrlist(12) As PointPairList For i As Integer = 1 To 12 arrlist(i) = New PointPairList For inter As Integer = 1 To tmptaula.intervals - 1 arrlist(i).add(arrhsolar(i, inter), arraltura(i, inter)) ZG_OMBRES.GraphPane.CurveList.Clear() ZG_OMBRES.GraphPane.Title.Text = IDIOMES.Traduir("TITOL_OMBRES") ZG_OMBRES.GraphPane.XAxis.Title.Text = IDIOMES.Traduir("TITOL_X_AXIS_OMBRES") ZG_OMBRES.GraphPane.YAxis.Title.Text = IDIOMES.Traduir("TITOL_Y_AXIS_OMBRES") ZG_OMBRES.GraphPane.Legend.IsVisible = False ZG_OMBRES.GraphPane.XAxis.Scale.Min = -180 ZG_OMBRES.GraphPane.XAxis.Scale.Max = 180 For linies As Integer = 1 To 12 GRAFIQUES.dibuixarLinia(ZG_OMBRES, arrlist(linies), "RADIACIO_" & linies, SymbolType.None, False) 'grafica sombra Dim tmphsolaranual() As Double = tmptaula.gethsolaranual Dim tmpombres() As Double = tmptaula.getombres(me.num_a1.value, Me.NUM_A2.Value, Me.NUM_DISTANCIA.Value, Me.NUM_AS.Value) Dim sombra As New PointPairList For inter As Integer = 1 To tmptaula.intervals - 1 sombra.add(tmphsolaranual(inter), tmpombres(inter))

114 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_OMBRES.vb GRAFIQUES.dibuixarLinia(ZG_OMBRES, sombra, "", SymbolType.None, True) 2 ZG_OMBRES.Refresh() Private Sub FRM_OMBRES_FormClosed(ByVal sender As Object, ByVal e As System.Windows. Forms.FormClosedEventArgs) Handles Me.FormClosed Me.Dispose() Private Sub FRM_OMBRES_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load IDIOMES.TraduirApp(Me) 'CARREGUEM LA INFORMACIÓ DELS PAISOS Dim DS_PAISOS As Data.DataSet DS_PAISOS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PAISOS,,, "NOM_PAIS") If DS_PAISOS.Tables(0).Rows.Count <> 0 Then CMB_PAISOS.DataSource = DS_PAISOS.Tables(0) CMB_PAISOS.DisplayMember = "NOM_PAIS" CMB_PAISOS.DataSource = Nothing Private Sub CMB_PAISOS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PAISOS.SelectedIndexChanged If CMB_PAISOS.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES PROVINCIES Dim DS_PROVINCIES As Data.DataSet DS_PROVINCIES = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_PROVINCIES,, "ID_PAIS='" & CMB_PAISOS.Items(CMB_PAISOS.SelectedIndex).ITEM("ID_PAIS") & "'", "NOM_PROVINCIA") If DS_PROVINCIES.Tables(0).Rows.Count <> 0 Then CMB_PROVINCIES.DataSource = DS_PROVINCIES.Tables(0) CMB_PROVINCIES.DisplayMember = "NOM_PROVINCIA" CMB_PROVINCIES.DataSource = Nothing Private Sub CMB_PROVINCIES_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_PROVINCIES.SelectedIndexChanged If CMB_PROVINCIES.SelectedIndex <> -1 Then 'CARREGUEM LA INFORMACIÓ DE LES CIUTATS Dim DS_CIUTATS As Data.DataSet Dim KK As Integer KK = CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM("ID_PROVINCIA") DS_CIUTATS = GENERAL.BD_RADIACIO.StrConsultar(GENERAL.TAULA_RAD_CIUTATS,, "ID_PROVINCIA=" & CMB_PROVINCIES.Items(CMB_PROVINCIES.SelectedIndex).ITEM( "ID_PROVINCIA"), "NOM_CIUTAT") If DS_CIUTATS.Tables(0).Rows.Count <> 0 Then CMB_CIUTATS.DataSource = DS_CIUTATS.Tables(0) CMB_CIUTATS.DisplayMember = "NOM_CIUTAT" CMB_CIUTATS.DataSource = Nothing Private Sub CMB_CIUTATS_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_CIUTATS.SelectedIndexChanged If CMB_CIUTATS.SelectedIndex <> -1 Then

115 C:\Users\TuTu\Desktop\PFC2_app\App\App\FRM_OMBRES.vb 'carreguem la latitut i la longitud With CMB_CIUTATS.Items(CMB_CIUTATS.SelectedIndex) LBL_A_OPTIM.Text =.ITEM("ANGLE_OPTIM").ToString LBL_D_ANUAL.Text =.item("deficit_anual").tostring LBL_Z_HORARIA.Text =.ITEM("ZONA_HORARIA").ToString 3 'Ho passem als controls LBL_LAT_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("latitut")) LBL_LON_GRAUS.Text = DIME.ConvertirCoordsAPolars(.item("longitut"), False) End With Me.GenerarGraficOmbres() Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.GenerarGraficOmbres() Private Sub NUM_A1_ValueChanged(ByVal sender As System.Object, ByVal e As System. EventArgs) _ Handles NUM_A1.ValueChanged, NUM_A2.ValueChanged, NUM_AS.ValueChanged, NUM_DISTANCIA. ValueChanged If Me.IsHandleCreated = True Then Me.GenerarGraficOmbres() Private Sub BTO_BTO_TANCAR_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles BTO_BTO_TANCAR.Click Me.Close() End Class

116 10-.FRM_SETTINGS

LAMPIRAN A: Listing Program

LAMPIRAN A: Listing Program 67 1. Form Menu Utama LAMPIRAN A: Listing Program Public Class MScreen Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Hide() Form1.Show()

More information

Déclaration du module

Déclaration du module Déclaration du module Imports System.IO Module ModuleStagiaires Public Structure Stagiaire Private m_code As Long Private m_nom As String Private m_prenom As String Public Property code() As Long Get Return

More information

ANNEX. CODI FONT DE LES CLASSES DESENVOLUPADES

ANNEX. CODI FONT DE LES CLASSES DESENVOLUPADES ANNEX. CODI FONT DE LES CLASSES DESENVOLUPADES CLASSE FORMULARI

More information

Imports System.Data.SqlClient. Public Class Phonebook

Imports System.Data.SqlClient. Public Class Phonebook Imports System.Data.SqlClient Public Class Phonebook Dim vbdatabasedataset As New vbdatabasedataset() Dim PhonebookTableAdapter As New vbdatabasedatasettableadapters.phonebooktableadapter() Dim selection

More information

C16 Visual Basic Net Programming

C16 Visual Basic Net Programming C16 Visual Basic Net Programming Student ID Student Name Date - Module Tutor - 1 P a g e Report Contents Introduction... 2 Software Development Process... 3 Self Reflection... 6 References... 6 Appendices...

More information

Learning VB.Net. Tutorial 19 Classes and Inheritance

Learning VB.Net. Tutorial 19 Classes and Inheritance Learning VB.Net Tutorial 19 Classes and Inheritance Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you

More information

Projecte Final de Carrera - Domotització d un jardí domèstic Annex 1

Projecte Final de Carrera - Domotització d un jardí domèstic Annex 1 Marc Flores Nogués Juny 2009 Projecte Final de Carrera - Domotització d un jardí domèstic Annex 1 Public Sector1 As Boolean Public Sector2 As Boolean Public Sector3 As Boolean Public Sector6 As Boolean

More information

Updated: Saturday, November 29, 2014 Page 1

Updated: Saturday, November 29, 2014 Page 1 ' Copyright 2013 Safe T Services - All Rights Reserved '=========================================================================================== 'Changed by Change Date Change Tag ' Description of Change

More information

Private Sub MenuUtamaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.ShowDialog() End Sub

Private Sub MenuUtamaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.ShowDialog() End Sub LISTING PROGRAM Menu_Utama.vb Public Class FrmUtama Private Sub DataMovieToolStripMenuItem_Click(ByVal sender As DataMovieToolStripMenuItem.Click FrmMovie.ShowDialog() Private Sub DataPeminjamToolStripMenuItem_Click(ByVal

More information

Hands-On Lab. Lab: Client Object Model. Lab version: Last updated: 2/23/2011

Hands-On Lab. Lab: Client Object Model. Lab version: Last updated: 2/23/2011 Hands-On Lab Lab: Client Object Model Lab version: 1.0.0 Last updated: 2/23/2011 CONTENTS OVERVIEW... 3 EXERCISE 1: RETRIEVING LISTS... 4 EXERCISE 2: PRINTING A LIST... 8 EXERCISE 3: USING ADO.NET DATA

More information

Unit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types

Unit 4. Lesson 4.1. Managing Data. Data types. Introduction. Data type. Visual Basic 2008 Data types Managing Data Unit 4 Managing Data Introduction Lesson 4.1 Data types We come across many types of information and data in our daily life. For example, we need to handle data such as name, address, money,

More information

ภาคผนวก ก. Source Code

ภาคผนวก ก. Source Code ภาคผนวก ภาคผนวก ก. Source Code 154 155 Source Code ช อ Empbook Option Explicit On Option Strict On Imports System.data Imports System.Data.OleDb Public Class Empbook Dim Book_status As Integer = 1 'ęğŀşľłŀăăő

More information

C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions

C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions C4.3, 4 Lab: Conditionals - Select Statement and Additional Input Controls Solutions Between the comments included with the code and the code itself, you shouldn t have any problems understanding what

More information

"!#... )*! "!# )+, -./ 01 $

!#... )*! !# )+, -./ 01 $ Email engauday@hotmail.com! "!#... $ %&'... )*! "!# )+, -./ 01 $ ) 1+ 2#3./ 01 %.. 7# 89 ; )! 5/< 3! = ;, >! 5 6/.?

More information

VB FUNCTIONS AND OPERATORS

VB FUNCTIONS AND OPERATORS VB FUNCTIONS AND OPERATORS In der to compute inputs from users and generate results, we need to use various mathematical operats. In Visual Basic, other than the addition (+) and subtraction (-), the symbols

More information

SUMARI 1 I. CLASSES DEL SUBPROGRAMA DE CÀLCUL 3. A. Classe CEstructura...3 B. Classe CElement...74 II. MÒDULS DEL SUBPROGRAMA DE CÀLCUL 127

SUMARI 1 I. CLASSES DEL SUBPROGRAMA DE CÀLCUL 3. A. Classe CEstructura...3 B. Classe CElement...74 II. MÒDULS DEL SUBPROGRAMA DE CÀLCUL 127 1 Sumari SUMARI 1 I. CLASSES DEL SUBPROGRAMA DE CÀLCUL 3 A. Classe CEstructura...3 B. Classe CElement...74 II. MÒDULS DEL SUBPROGRAMA DE CÀLCUL 127 A. Mòdul principal...127 3 I. Classes del subprograma

More information

Annexes. Kpax Plataforma d'aprenentatge en Xarxa: Migració de kpaxserver a NodeJs amb MongoDB

Annexes. Kpax Plataforma d'aprenentatge en Xarxa: Migració de kpaxserver a NodeJs amb MongoDB Kpax Plataforma d'aprenentatge en Xarxa: Migració de kpaxserver a NodeJs amb MongoDB Annexes Miquel A. Muntaner Morey Administració web i comerç electrònic Màster en Programari Lliure Daniel Riera Terrén

More information

Form Adapter Example. DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date :

Form Adapter Example. DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date : Form Adapter Example DRAFT Document ID : Form_Adapter.PDF Author : Michele Harris Version : 1.1 Date : 2009-06-19 Form_Adapter.doc DRAFT page 1 Table of Contents Creating Form_Adapter.vb... 2 Adding the

More information

Lab 6: Making a program persistent

Lab 6: Making a program persistent Lab 6: Making a program persistent In this lab, you will cover the following topics: Using the windows registry to make parts of the user interface sticky Using serialization to save application data in

More information

APÉNDICE J. CÓDIGO DEL ARCHIVO FORM1.CS EN LENGUAJE C# Comprende:

APÉNDICE J. CÓDIGO DEL ARCHIVO FORM1.CS EN LENGUAJE C# Comprende: APÉNDICE J. CÓDIGO DEL ARCHIVO FORM1.CS EN LENGUAJE C# Comprende: Interfaz gráfica de wiimocap. Obtención de las variables de los tres acelerómetros. Algoritmos de reconocimiento de posiciones. Inclinación

More information

Learning VB.Net. Tutorial 16 Modules

Learning VB.Net. Tutorial 16 Modules Learning VB.Net Tutorial 16 Modules Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you enjoy it. If

More information

IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants

IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants IMS1906: Business Software Fundamentals Tutorial exercises Week 5: Variables and Constants These notes are available on the IMS1906 Web site http://www.sims.monash.edu.au Tutorial Sheet 4/Week 5 Please

More information

Lampiran 1 Kode Program

Lampiran 1 Kode Program 53 Lampiran 1 Kode Program Kode Program 1 Kode Menu Peminjaman Private Sub BT_Cari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_Cari.Click Call CariKaset() Private Sub RB_CheckedChanged(ByVal

More information

VISUAL BASIC PROGRAMMING (44) Technical Task KEY. Regional 2013 TOTAL POINTS (485)

VISUAL BASIC PROGRAMMING (44) Technical Task KEY. Regional 2013 TOTAL POINTS (485) 5 Pages VISUAL BASIC PROGRAMMING (44) Technical Task KEY Regional 2013 TOTAL POINTS (485) Graders: Please double-check and verify all scores! Property of Business Professionals of America. May be reproduced

More information

Private Sub Cours_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Private Sub Cours_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Public Class Cours Private nc As Integer Private Sub Cours_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO : cette ligne de code charge les données dans la table

More information

Else. End If End Sub End Class. PDF created with pdffactory trial version

Else. End If End Sub End Class. PDF created with pdffactory trial version Dim a, b, r, m As Single Randomize() a = Fix(Rnd() * 13) b = Fix(Rnd() * 13) Label1.Text = a Label3.Text = b TextBox1.Clear() TextBox1.Focus() Private Sub Button2_Click(ByVal sender As System.Object, ByVal

More information

1. Create your First VB.Net Program Hello World

1. Create your First VB.Net Program Hello World 1. Create your First VB.Net Program Hello World 1. Open Microsoft Visual Studio and start a new project by select File New Project. 2. Select Windows Forms Application and name it as HelloWorld. Copyright

More information

LAMPIRAN. Universitas Sumatera Utara

LAMPIRAN. Universitas Sumatera Utara LAMPIRAN 1. Modul Imports System.Data Imports System.Data.OleDb Module Module1 Public conn As OleDbConnection Public CMD As OleDbCommand Public DS As New DataSet Public DA As OleDbDataAdapter Public RD

More information

DO NOT COPY AMIT PHOTOSTUDIO

DO NOT COPY AMIT PHOTOSTUDIO AMIT PHOTOSTUDIO These codes are provided ONLY for reference / Help developers. And also SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUERMENT FOR THE AWARD OF BACHELOR OF COMPUTER APPLICATION (BCA) All rights

More information

Learning VB.Net. Tutorial 15 Structures

Learning VB.Net. Tutorial 15 Structures Learning VB.Net Tutorial 15 Structures Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you enjoy it.

More information

DRAWING AND MOVING IMAGES

DRAWING AND MOVING IMAGES DRAWING AND MOVING IMAGES Moving images and shapes in a Visual Basic application simply requires the user of a Timer that changes the x- and y-positions every time the Timer ticks. In our first example,

More information

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Option Strict On Imports System.Drawing.Imaging Imports System.Drawing Imports System Imports System.Collections Imports System.Configuration Imports System.Data Imports System.IO Imports System.Web Imports

More information

Learning VB.Net. Tutorial 10 Collections

Learning VB.Net. Tutorial 10 Collections Learning VB.Net Tutorial 10 Collections Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you enjoy it.

More information

PROGRAMMING ASSIGNMENT: MOVIE QUIZ

PROGRAMMING ASSIGNMENT: MOVIE QUIZ PROGRAMMING ASSIGNMENT: MOVIE QUIZ For this assignment you will be responsible for creating a Movie Quiz application that tests the user s of movies. Your program will require two arrays: one that stores

More information

Revision for Final Examination (Second Semester) Grade 9

Revision for Final Examination (Second Semester) Grade 9 Revision for Final Examination (Second Semester) Grade 9 Name: Date: Part 1: Answer the questions given below based on your knowledge about Visual Basic 2008: Question 1 What is the benefit of using Visual

More information

LAMPIRAN LISTING PROGRAM

LAMPIRAN LISTING PROGRAM LAMPIRAN LISTING PROGRAM Imports System Imports System.IO Imports System.Math Public Class frmutama Dim dicari As DirectoryInfo Dim flpath As String, srcpath As String Dim asnode As Double, dsnode As Double,

More information

The New Brew-CQ Synchronous Sockets and Threading

The New Brew-CQ Synchronous Sockets and Threading The New Brew-CQ Synchronous Sockets and Threading Server Topology: The Brew-CQ server is an application written in the new.net compilers from Microsoft. The language of choice is Visual Basic. The purpose

More information

VARIABLES. 1. STRINGS Data with letters and/or characters 2. INTEGERS Numbers without decimals 3. FLOATING POINT NUMBERS Numbers with decimals

VARIABLES. 1. STRINGS Data with letters and/or characters 2. INTEGERS Numbers without decimals 3. FLOATING POINT NUMBERS Numbers with decimals VARIABLES WHAT IS A VARIABLE? A variable is a storage location in the computer s memory, used for holding information while the program is running. The information that is stored in a variable may change,

More information

Visual Basic/C# Programming (330)

Visual Basic/C# Programming (330) Page 1 of 12 Visual Basic/C# Programming (330) REGIONAL 2017 Production Portion: Program 1: Calendar Analysis (400 points) TOTAL POINTS (400 points) Judge/Graders: Please double check and verify all scores

More information

Check out the demo video of this application so you know what you will be making in this tutorial.

Check out the demo video of this application so you know what you will be making in this tutorial. Visual Basic - System Information Viewer Welcome to our special tutorial of visual basic. In this tutorial we will use Microsoft visual studio 2010 version. You can download it for free from their website.

More information

The original of this document was developed by the Microsoft special interest group. We made some addons.

The original of this document was developed by the Microsoft special interest group. We made some addons. Naming Conventions for.net / C# Projects Martin Zahn, Akadia AG, 20.03.2003 The original of this document was developed by the Microsoft special interest group. We made some addons. This document explains

More information

CALIFORNIA STATE UNIVERSITY, SACRAMENTO College of Business Administration. MIS 15 Introduction to Business Programming. Programming Assignment 3 (P3)

CALIFORNIA STATE UNIVERSITY, SACRAMENTO College of Business Administration. MIS 15 Introduction to Business Programming. Programming Assignment 3 (P3) CALIFORNIA STATE UNIVERSITY, SACRAMENTO College of Business Administration MIS 15 Introduction to Business Programming Programming Assignment 3 (P3) Points: 50 Due Date: Tuesday, May 10 The purpose of

More information

How to work with data sources and datasets

How to work with data sources and datasets Chapter 14 How to work with data sources and datasets Objectives Applied Use a data source to get the data that an application requires. Use a DataGridView control to present the data that s retrieved

More information

Serial-out Color Sensor. Overview. Features

Serial-out Color Sensor. Overview. Features Visit us @ www.thearyatechnologies.com Email: aryaprotech@gmail.com / info@thearyatechnologies.com Contact us@ 0253-2512131 Serial-out Color Sensor Overview Color sensor identifies primary colors (Red,

More information

Mr.Khaled Anwar ( )

Mr.Khaled Anwar ( ) The Rnd() function generates random numbers. Every time Rnd() is executed, it returns a different random fraction (greater than or equal to 0 and less than 1). If you end execution and run the program

More information

To enter the number in decimals Label 1 To show total. Text:...

To enter the number in decimals Label 1 To show total. Text:... Visual Basic tutorial - currency converter We will use visual studio to create a currency converter where we can convert a UK currency pound to other currencies. This is the interface for the application.

More information

Bachelor s Thesis: Building Web Application for Mahabad University Graduate Affairs Afsaneh Nezami Savojbolaghi

Bachelor s Thesis: Building Web Application for Mahabad University Graduate Affairs Afsaneh Nezami Savojbolaghi Bachelor s Thesis: Building Web Application for Mahabad University Graduate Affairs Afsaneh Nezami Savojbolaghi Turku University of Applied Sciences Degree Programme in Business Information Technology

More information

CALCULATOR APPLICATION

CALCULATOR APPLICATION CALCULATOR APPLICATION Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;

More information

This PDF was generated in real-time using DynamicPDF; Generator for.net.

This PDF was generated in real-time using DynamicPDF; Generator for.net. TableReport.aspx 1 1 Imports System 2 Imports System.Data 3 Imports System.Data.SqlClient 4 5 Imports cete.dynamicpdf 6

More information

VISUAL BASIC II CC111 INTRODUCTION TO COMPUTERS

VISUAL BASIC II CC111 INTRODUCTION TO COMPUTERS VISUAL BASIC II CC111 INTRODUCTION TO COMPUTERS Intended Learning Objectives Able to build a simple Visual Basic Application. 2 The Sub Statement Private Sub ControlName_eventName(ByVal sender As System.Object,

More information

System Analysis and Design

System Analysis and Design System Analysis and Design LAB RECORD-INFS -280/L Information Systems Department University of Nizwa, Sultanate of Oman Table of Contents Task. No: Title Page Nos. Date 1) VB Text box and Message Button

More information

Learning VB.Net. Tutorial 17 Classes

Learning VB.Net. Tutorial 17 Classes Learning VB.Net Tutorial 17 Classes Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple applications, hope you enjoy it. If

More information

Database Tutorials

Database Tutorials Database Tutorials Hello everyone welcome to database tutorials. These are going to be very basic tutorials about using the database to create simple applications, hope you enjoy it. If you have any notes

More information

IBSDK Quick Start Tutorial for C# 2010

IBSDK Quick Start Tutorial for C# 2010 IB-SDK-00003 Ver. 3.0.0 2012-04-04 IBSDK Quick Start Tutorial for C# 2010 Copyright @2012, lntegrated Biometrics LLC. All Rights Reserved 1 QuickStart Project C# 2010 Example Follow these steps to setup

More information

Visual Basic 2008 The programming part

Visual Basic 2008 The programming part Visual Basic 2008 The programming part Code Computer applications are built by giving instructions to the computer. In programming, the instructions are called statements, and all of the statements that

More information

Examples. Products. WinForms Controls > Products > Tree List > Examples

Examples. Products. WinForms Controls > Products > Tree List > Examples Examples 2584 WinForms Controls > Products > Tree List > Examples Please refer to the sections below, for many examples of the corresponding features in use. Data Binding Nodes Data Editing Data Representation

More information

โปรแกรมช วยทดสอบหม อแปลงกระแส

โปรแกรมช วยทดสอบหม อแปลงกระแส โปรแกรมช วยทดสอบหม อแปลงกระแส 1.เมน ของโปรแกรม ภาพท 1 หน าเมน ของโปรแกรม Public Class frmmain Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

More information

A Second Visual BASIC Application : Greetings

A Second Visual BASIC Application : Greetings The Greetings Program A Second Visual BASIC Application : Greetings The following instructions take you through the steps to create a simple application. A greeting is displayed in one of four different

More information

...ic Programming\Mystery Escape\Mystery Escape\frmEscape.vb

...ic Programming\Mystery Escape\Mystery Escape\frmEscape.vb ...ic Programming\Mystery Escape\Mystery Escape\frmEscape.vb 1 1 Option Strict On 2 3 Public Class frmescape 4 5 ' Class variables. 6 7 Private _intonehour As Integer = 1 8 Private _inttwohour As Integer

More information

FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources

FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources FOR 240 Homework Assignment 4 Using DBGridView and Other VB Controls to Manipulate Database Introduction to Computing in Natural Resources This application demonstrates how a DataGridView control can be

More information

Connection Example. Document ID : Connection_Example.PDF Author : Michele Harris Version : 1.1 Date :

Connection Example. Document ID : Connection_Example.PDF Author : Michele Harris Version : 1.1 Date : Connection Example Document ID : Connection_Example.PDF Author : Michele Harris Version : 1.1 Date : 2009-06-19 page 1 Table of Contents Connection Example... 2 Adding the Code... 2 Quick Watch myconnection...

More information

Examples. Products. W informs Controls > Products > Navigation Bar > Examples. This topic provides how -to examples, grouped by features.

Examples. Products. W informs Controls > Products > Navigation Bar > Examples. This topic provides how -to examples, grouped by features. Examples 3564 W informs Controls > Products > Navigation Bar > Examples This topic provides how -to examples, grouped by features. Examples Layout How to: Create a NavBar Control in Code How to: Activate

More information

'The following GUID is for the ID of the typelib if this project is exposed to COM <Assembly: Guid("8b a5-46bb-a6a9-87b4949d1f4c")>

'The following GUID is for the ID of the typelib if this project is exposed to COM <Assembly: Guid(8b a5-46bb-a6a9-87b4949d1f4c)> LAMPIRAN A : LISTING PROGRAM Imports System Imports System.Reflection Imports System.Runtime.InteropServices ' General Information about an assembly is controlled through the following ' set of attributes.

More information

Adapting a Grid to REP++

Adapting a Grid to REP++ Adapting a Grid to REP++ Author: R&D Department Publication date: April 28 2006 2006 Consyst SQL Inc. All rights reserved. Adapting a Grid to REP++ Overview The REP++toolkit for Windows provides a good

More information

Lab 3 The High-Low Game

Lab 3 The High-Low Game Lab 3 The High-Low Game LAB GOALS To develop a simple windows-based game named High-Low using VB.Net. You will use: Buttons, Textboxes, Labels, Dim, integer, arithmetic operations, conditionals [if-then-else],

More information

Herefordshire College of Technology Centre Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3)

Herefordshire College of Technology Centre Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3) Student: Candidate Number: Assessor: Len Shand Herefordshire College of Technology Centre 24150 Edexcel BTEC Level 3 Extended Diploma in Information Technology (Assignment 1 of 3) Course: Unit: Title:

More information

Visual Studio.NET for AutoCAD Programmers

Visual Studio.NET for AutoCAD Programmers December 2-5, 2003 MGM Grand Hotel Las Vegas Visual Studio.NET for AutoCAD Programmers Speaker Name: Andrew G. Roe, P.E. Class Code: CP32-3 Class Description: In this class, we'll introduce the Visual

More information

Objectives. After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism

Objectives. After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism Polymorphism Objectives After completing this topic, the students will: Understand of the concept of polymorphism Know on How to implement 2 types of polymorphism Definition Polymorphism provides the ability

More information

A-1 LISTING PROGRAM. 1. Module1

A-1 LISTING PROGRAM. 1. Module1 A-1 LISTING PROGRAM 1. Module1 Imports System.Data.Odbc Imports System.Data Imports System.Data.SqlClient Imports MySql.Data.MySqlClient Module Module1 Public userid As String Public level As String Public

More information

You can call the project anything you like I will be calling this one project slide show.

You can call the project anything you like I will be calling this one project slide show. C# Tutorial Load all images from a folder Slide Show In this tutorial we will see how to create a C# slide show where you load everything from a single folder and view them through a timer. This exercise

More information

LISTING PROGRAM. mainform.vb A-1. Universitas Sumatera Utara

LISTING PROGRAM. mainform.vb A-1. Universitas Sumatera Utara A-1 LISTING PROGRAM mainform.vb Imports System.IO Public Class mainform Private Sub mainform_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load enkripsirb.checked = True

More information

Main Game Code. //ok honestly im not sure, if i guess its a class ment for this page called methodtimer that //either uses the timer or set to timer..

Main Game Code. //ok honestly im not sure, if i guess its a class ment for this page called methodtimer that //either uses the timer or set to timer.. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;

More information

Fast Food Store Group Boxes and Other User Controls

Fast Food Store Group Boxes and Other User Controls VISUAL BASIC Fast Food Store Group Boxes and Other User Controls Copyright 2014 Dan McElroy Sample Program Execution The customer receipt is updated each time another selection is made and the Enter button

More information

Using Template Bookmarks for Automating Microsoft Word Reports

Using Template Bookmarks for Automating Microsoft Word Reports Using Template Bookmarks for Automating Microsoft Word Reports Darryl Bryk U.S. Army RDECOM-TARDEC Warren, MI 48397 Disclaimer: Reference herein to any specific commercial company, product, process, or

More information

IOS Plus Trade - Web Services Version 4 Walkthrough

IOS Plus Trade - Web Services Version 4 Walkthrough IOS Plus Trade - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IOS Plus Trade information The purpose of this walkthrough is to build the following Windows Forms Application that

More information

IRESS Depth - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IRESS Depth information

IRESS Depth - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IRESS Depth information IRESS Depth - Web Services Version 4 Walkthrough Visual Basic 2008 sample to retrieve IRESS Depth information The purpose of this walkthrough is to build the following Windows Forms Application that will

More information

'... '... '... Module created: unknown '... Proj finished: March 21, 2012 '... '...

'... '... '... Module created: unknown '... Proj finished: March 21, 2012 '... '... ThisWorkbook - 1 If g_bdebugmode Then '... Module created: unknown '... Proj finished: March 21, 2012 '************************* CLASS-LEVEL DECLARATIONS ************************** Option Explicit Option

More information

Generics in VB.net. Generic Class: The following example shows a skeleton definition of a generic class.

Generics in VB.net. Generic Class: The following example shows a skeleton definition of a generic class. 1 Generics in VB.net A generic type is a single programming element that adapts to perform the same functionality for a variety of data types. When you define a generic class or procedure, you do not have

More information

ISM 3253 Exam I Spring 2009

ISM 3253 Exam I Spring 2009 ISM 3253 Exam I Spring 2009 Directions: You have exactly 75 minutes to complete this test. Time available is part of the exam conditions and all work must cease when "Stop work" is announced. Failing to

More information

UNIT-3. Prepared by R.VINODINI 1

UNIT-3. Prepared by R.VINODINI 1 Prepared by R.VINODINI 1 Prepared by R.VINODINI 2 Prepared by R.VINODINI 3 Prepared by R.VINODINI 4 Prepared by R.VINODINI 5 o o o o Prepared by R.VINODINI 6 Prepared by R.VINODINI 7 Prepared by R.VINODINI

More information

MapWindow Plug-in Development

MapWindow Plug-in Development MapWindow Plug-in Development Sample Project: Simple Path Analyzer Plug-in A step-by-step guide to creating a custom MapWindow Plug-in using the IPlugin interface by Allen Anselmo shade@turbonet.com Introduction

More information

DEVELOPING OBJECT ORIENTED APPLICATIONS

DEVELOPING OBJECT ORIENTED APPLICATIONS DEVELOPING OBJECT ORIENTED APPLICATIONS By now, everybody should be comfortable using form controls, their properties, along with methods and events of the form class. In this unit, we discuss creating

More information

How to Validate DataGridView Input

How to Validate DataGridView Input How to Validate DataGridView Input This example explains how to use DR.net to set validation criteria for a DataGridView control on a Visual Studio.NET form. Why You Should Use This To add extensible and

More information

PASSTCERT QUESTION & ANSWER

PASSTCERT QUESTION & ANSWER PASSTCERT QUESTION & ANSWER Higher Quality Better Service! Weofferfreeupdateserviceforoneyear HTTP://WWW.PASSTCERT.COM Exam : 070-540VB Title : TS: MS.NET Frmewk 3.5, Workflow Foundation App Dev Version

More information

Handle Web Application Errors

Handle Web Application Errors Handle Web Application Errors Lesson Overview In this lesson, you will learn about: Hypertext Transfer Protocol (HTTP) error trapping Common HTTP errors HTTP Error Trapping Error handling in Web applications

More information

Menus, Common Dialog Controls, Context Menus, Sub Procedures, and Functions

Menus, Common Dialog Controls, Context Menus, Sub Procedures, and Functions 5-menus.htm; updated September 12, 2011 Menus, Common Dialog Controls, Context Menus, Sub Procedures, and Functions Coverage: This chapter covers several important topics: (1) use of menus and context

More information

My first game. 'function which adds objects with bug tag to bugarray array. Saturday, November 23, :06 AM

My first game. 'function which adds objects with bug tag to bugarray array. Saturday, November 23, :06 AM My first game Saturday, November 23, 2013 5:06 AM Public Class Form1 Dim moveright As Boolean = False Dim moveup As Boolean = False Dim moveleft As Boolean = False Dim movedown As Boolean = False Dim score

More information

Activating AspxCodeGen 4.0

Activating AspxCodeGen 4.0 Activating AspxCodeGen 4.0 The first time you open AspxCodeGen 4 Professional Plus edition you will be presented with an activation form as shown in Figure 1. You will not be shown the activation form

More information

1 Dept: CE.NET Programming ( ) Prof. Akash N. Siddhpura. Working with Form: properties, methods and events

1 Dept: CE.NET Programming ( ) Prof. Akash N. Siddhpura. Working with Form: properties, methods and events Working with Form: properties, methods and events To create a New Window Forms Application, Select File New Project. It will open one dialog box which is shown in Fig 2.1. Fig 2.1 The New Project dialog

More information

The following are required to duplicate the process outlined in this document.

The following are required to duplicate the process outlined in this document. Technical Note ClientAce WPF Project Example 1. Introduction Traditional Windows forms are being replaced by Windows Presentation Foundation 1 (WPF) forms. WPF forms are fundamentally different and designed

More information

Start Visual Studio and create a new windows form application under C# programming language. Call this project YouTube Alarm Clock.

Start Visual Studio and create a new windows form application under C# programming language. Call this project YouTube Alarm Clock. C# Tutorial - Create a YouTube Alarm Clock in Visual Studio In this tutorial we will create a simple yet elegant YouTube alarm clock in Visual Studio using C# programming language. The main idea for this

More information

Programming with Microsoft Visual Basic.NET. Array. What have we learnt in last lesson? What is Array?

Programming with Microsoft Visual Basic.NET. Array. What have we learnt in last lesson? What is Array? What have we learnt in last lesson? Programming with Microsoft Visual Basic.NET Using Toolbar in Windows Form. Using Tab Control to separate information into different tab page Storage hierarchy information

More information

LAMPIRAN A-2 : LAPORAN PENJUALAN DOKUMEN KELUARAN

LAMPIRAN A-2 : LAPORAN PENJUALAN DOKUMEN KELUARAN LAMPIRAN A-2 : LAPORAN PENJUALAN DOKUMEN KELUARAN LAMPIRAN A-1 : NOTA DOKUMEN KELUARAN LAMPIRAN B MASUKAN SISTEM BERJALAN LAMPIRAN B-1 : DATA BARANG DOKUMEN MASUKAN LAMPIRAN B-2 : DATA PELANGGAN DOKUMEN

More information

CS708 Lecture Notes. Visual Basic.NET Object-Oriented Programming. Implementing Client/Server Architectures. Part (I of?) (Lecture Notes 5A)

CS708 Lecture Notes. Visual Basic.NET Object-Oriented Programming. Implementing Client/Server Architectures. Part (I of?) (Lecture Notes 5A) CS708 Lecture Notes Visual Basic.NET Object-Oriented Programming Implementing Client/Server Architectures Part (I of?) (Lecture Notes 5A) Professor: A. Rodriguez CHAPTER 1 IMPLEMENTING CLIENT/SERVER APPLICATIONS...

More information

Lab 4: Adding a Windows User-Interface

Lab 4: Adding a Windows User-Interface Lab 4: Adding a Windows User-Interface In this lab, you will cover the following topics: Creating a Form for use with Investment objects Writing event-handler code to interact with Investment objects Using

More information

MCAD/MCSD Developing and Implementing Web Applications with Visual Basic.NET and Visual Studio.NET Training Guide: Exam

MCAD/MCSD Developing and Implementing Web Applications with Visual Basic.NET and Visual Studio.NET Training Guide: Exam MCAD/MCSD Developing and Implementing Web Applications with Visual Basic.NET and Visual Studio.NET Training Guide: Exam 70-305 Copyright 2003 by Que Publishing International Standard Book Number: 0789728184

More information

BackgroundWorker Component Overview 1 Multithreading with the BackgroundWorker Component 3 Walkthrough Running an Operation in the Background 10 How

BackgroundWorker Component Overview 1 Multithreading with the BackgroundWorker Component 3 Walkthrough Running an Operation in the Background 10 How BackgroundWorker Component Overview 1 Multithreading with the BackgroundWorker Component 3 Walkthrough Running an Operation in the Background 10 How to Download a File in the Background 15 How to Implement

More information

Private Sub 終了 XToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 終了 XToolStripMenuItem.

Private Sub 終了 XToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 終了 XToolStripMenuItem. Imports MySql.Data.MySqlClient Imports System.IO Public Class FrmMst Private Sub 終了 XToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 終了 XToolStripMenuItem.Click

More information

Tutorial 03 understanding controls : buttons, text boxes

Tutorial 03 understanding controls : buttons, text boxes Learning VB.Net Tutorial 03 understanding controls : buttons, text boxes Hello everyone welcome to vb.net tutorials. These are going to be very basic tutorials about using the language to create simple

More information

private string sconnection = ConfigurationManager.ConnectionStrings["Development"].ConnectionString

private string sconnection = ConfigurationManager.ConnectionStrings[Development].ConnectionString using System; using System.Configuration; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms;

More information