Commit 9a49006b35cdf60af2f98bbfa0c04e3f77dd5d10

Authored by José Maria Villac Pinheiro
1 parent 552061af

Implementada a atribuição de cotas nas redes de esgoto. Retirado aviso da tela o…

…nde não encontra MDT para calcular cotas. Mostra aviso no GeoSanlogErro.txt
install/GeraSetupGeoSan/Codigo Gerador Instalador Geosan com TerraComponents.iss
1 #define SetupBaseName "SetupGeoSan-v." 1 #define SetupBaseName "SetupGeoSan-v."
2 -#define AppVersionFile "08.01.01" 2 +#define AppVersionFile "08.02.00"
3 3
4 [Setup] 4 [Setup]
5 AppName=GeoSan 5 AppName=GeoSan
trunk/Controles/variaveisGlobais.txt
No preview for this file type
trunk/Forms/frmMain.frm
@@ -1014,7 +1014,7 @@ Begin VB.MDIForm FrmMain @@ -1014,7 +1014,7 @@ Begin VB.MDIForm FrmMain
1014 Caption = "Exporta consumidores, redes, ramais e nós no formato .shp" 1014 Caption = "Exporta consumidores, redes, ramais e nós no formato .shp"
1015 End 1015 End
1016 Begin VB.Menu mnuAtualizaCotas 1016 Begin VB.Menu mnuAtualizaCotas
1017 - Caption = "Atualiza todas as cotas de todos os nós" 1017 + Caption = "Atualiza todas cotas dos nós de água e esgoto"
1018 End 1018 End
1019 Begin VB.Menu mnuAutoLogin 1019 Begin VB.Menu mnuAutoLogin
1020 Caption = "Logar Automaticamente" 1020 Caption = "Logar Automaticamente"
@@ -1450,11 +1450,14 @@ End Sub @@ -1450,11 +1450,14 @@ End Sub
1450 ' 1450 '
1451 Private Sub mnuAtualizaCotas_Click() 1451 Private Sub mnuAtualizaCotas_Click()
1452 Dim setaZs As New CAcertaZsDosNos 1452 Dim setaZs As New CAcertaZsDosNos
  1453 + Dim setaZsNosEsgoto as New CAcertaZsDosNosEsgoto
1453 1454
1454 varGlobais.pararExecucao = False 'indica que iniciará sem sem informar que deverá parar a execução 1455 varGlobais.pararExecucao = False 'indica que iniciará sem sem informar que deverá parar a execução
1455 FrmMain.Timer1.Enabled = True 'habilita o timer 1456 FrmMain.Timer1.Enabled = True 'habilita o timer
1456 - setaZs.AtribuiZs 'chama método para atualizar todas as cotas da cidade toda 1457 + setaZs.AtribuiZs 'chama método para atualizar todas as cotas das redes de água da cidade toda
  1458 + setaZsNosEsgoto.AtribuiZs 'chama método para atualizar todas as cotas das redes de esgoto da cidade toda
1457 FrmMain.Timer1.Enabled = False 'deshabilita o timer 1459 FrmMain.Timer1.Enabled = False 'deshabilita o timer
  1460 + FrmMain.sbStatusBar.Panels(2).Text = "Fim dos cálculos"
1458 End Sub 1461 End Sub
1459 1462
1460 Private Sub mnuAtualizaNumCasaGps_Click() 1463 Private Sub mnuAtualizaNumCasaGps_Click()
trunk/GeoSan.vbp
@@ -140,6 +140,7 @@ Class=clsConsumidorModel; classes\clsConsumidorModel.cls @@ -140,6 +140,7 @@ Class=clsConsumidorModel; classes\clsConsumidorModel.cls
140 Class=clsConsumidorControler; classes\clsConsumidorControler.cls 140 Class=clsConsumidorControler; classes\clsConsumidorControler.cls
141 Object={F03ABD98-7B60-43E4-9934-DA5F0D19FDAC}#1.0#0; TeComViewManager.dll 141 Object={F03ABD98-7B60-43E4-9934-DA5F0D19FDAC}#1.0#0; TeComViewManager.dll
142 ResFile32="GeoSan.RES" 142 ResFile32="GeoSan.RES"
  143 +Class=CAcertaZsDosNosEsgoto; classes\CAcertaZsDosNosEsgoto.cls
143 IconForm="FrmMain" 144 IconForm="FrmMain"
144 Startup="Sub Main" 145 Startup="Sub Main"
145 HelpFile="" 146 HelpFile=""
trunk/GeoSan.vbw
@@ -5,7 +5,7 @@ frmAbout = 0, 0, 0, 0, C, 154, 154, 1273, 886, C @@ -5,7 +5,7 @@ frmAbout = 0, 0, 0, 0, C, 154, 154, 1273, 886, C
5 FrmTypes = 0, 0, 0, 0, C, 176, 176, 1295, 908, C 5 FrmTypes = 0, 0, 0, 0, C, 176, 176, 1295, 908, C
6 FrmMain = 16, 71, 1497, 969, C, 139, 12, 1258, 744, C 6 FrmMain = 16, 71, 1497, 969, C, 139, 12, 1258, 744, C
7 FrmAssociation = 35, 68, 1273, 637, C, 220, 220, 1339, 952, C 7 FrmAssociation = 35, 68, 1273, 637, C, 220, 220, 1339, 952, C
8 -FrmCadastroRamal = 63, 13, 1453, 868, Z, 45, 39, 1164, 771, C 8 +FrmCadastroRamal = 63, 13, 1453, 868, C, 45, 39, 1164, 771, C
9 frmCadastroRamalFiltro = 100, 100, 1246, 731, C, 264, 264, 1383, 996, C 9 frmCadastroRamalFiltro = 100, 100, 1246, 731, C, 264, 264, 1383, 996, C
10 frmCanvas = 12, 33, 1492, 898, C, 110, 110, 1229, 842, C 10 frmCanvas = 12, 33, 1492, 898, C, 110, 110, 1229, 842, C
11 frmConsumidoresDesabastecidos = 110, 110, 1229, 842, C, 308, 308, 1427, 1040, C 11 frmConsumidoresDesabastecidos = 110, 110, 1229, 842, C, 308, 308, 1427, 1040, C
@@ -84,7 +84,7 @@ CViewDatabase = 93, 254, 1219, 987, C @@ -84,7 +84,7 @@ CViewDatabase = 93, 254, 1219, 987, C
84 CDistRamalInicioTrecho = 0, 0, 0, 0, C 84 CDistRamalInicioTrecho = 0, 0, 0, 0, C
85 CCoordIniRamalDistTrecho = 0, 0, 0, 0, C 85 CCoordIniRamalDistTrecho = 0, 0, 0, 0, C
86 CEmail = 0, 0, 0, 0, C 86 CEmail = 0, 0, 0, 0, C
87 -CArquivo = 0, 0, 0, 0, C 87 +CArquivo = 50, 50, 1301, 607, C
88 CIntBilinear = 0, 0, 0, 0, C 88 CIntBilinear = 0, 0, 0, 0, C
89 CObtemZdoNo = 0, 0, 0, 0, C 89 CObtemZdoNo = 0, 0, 0, 0, C
90 CAcertaZsDosNos = 125, 125, 785, 625, C 90 CAcertaZsDosNos = 125, 125, 785, 625, C
@@ -99,3 +99,4 @@ clsRamalModel = 225, 225, 1371, 856, C @@ -99,3 +99,4 @@ clsRamalModel = 225, 225, 1371, 856, C
99 clsRamalController = 156, 128, 1302, 759, C 99 clsRamalController = 156, 128, 1302, 759, C
100 clsConsumidorModel = 0, 0, 0, 0, C 100 clsConsumidorModel = 0, 0, 0, 0, C
101 clsConsumidorControler = 100, 100, 1246, 731, C 101 clsConsumidorControler = 100, 100, 1246, 731, C
  102 +CAcertaZsDosNosEsgoto = 48, 29, 1322, 501,
trunk/Modules/Global.bas
@@ -201,7 +201,7 @@ Public Sub Main() @@ -201,7 +201,7 @@ Public Sub Main()
201 End If 201 End If
202 'Configura a versão atual do GeoSan 202 'Configura a versão atual do GeoSan
203 Versao_Geo = App.Major & "." & App.Minor & "." & App.Revision 203 Versao_Geo = App.Major & "." & App.Minor & "." & App.Revision
204 - Versao_Geo = "08.01.01" 204 + Versao_Geo = "08.02.00"
205 glo.diretorioGeoSan = App.path 'salva globalmente o caminho onde encontra-se o GeoSan.exe 205 glo.diretorioGeoSan = App.path 'salva globalmente o caminho onde encontra-se o GeoSan.exe
206 SaveLoadGlobalData glo.diretorioGeoSan + "/controles/variaveisGlobais.txt", True 'salva em um arquivo todas as variáveis globais para poderem ser acessadas por outras aplicações 206 SaveLoadGlobalData glo.diretorioGeoSan + "/controles/variaveisGlobais.txt", True 'salva em um arquivo todas as variáveis globais para poderem ser acessadas por outras aplicações
207 connn = "" 207 connn = ""
trunk/Projeto_PManager4/PManager4.vbw
1 -ClsAttributes = 88, 116, 785, 604, C 1 +ClsAttributes = 113, 40, 1299, 759, C
2 CItens = 402, 85, 1099, 643, C 2 CItens = 402, 85, 1099, 643, C
3 -Manager = 158, 24, 1466, 989, , 291, 115, 996, 614, C  
4 -mdlQuerys = 86, 71, 1375, 940, C 3 +Manager = 16, 13, 1449, 841, , 291, 115, 996, 614, C
  4 +mdlQuerys = 90, 2, 1379, 871,
trunk/classes/CAcertaZsDosNos.cls
@@ -29,22 +29,12 @@ Public Sub AtribuiZs() @@ -29,22 +29,12 @@ Public Sub AtribuiZs()
29 Dim yNo As Double 29 Dim yNo As Double
30 Dim objIdNo As String 30 Dim objIdNo As String
31 Dim zNo As Double 31 Dim zNo As Double
32 - Dim diretorio As String 'Diretório onde será salva a exportação das cotas calculadas para conferir a anterior com a nova  
33 Dim retorno As Boolean 32 Dim retorno As Boolean
34 - Dim arquivoExportacao As String 'nome do arquivo junto com o diretório onde serão exportadas as cotas para conferência  
35 Dim zNoStr As String 'coordenada Z do no convertida para string. Isso para tratar a virgula que o SQL nao permite no UPDATE 33 Dim zNoStr As String 'coordenada Z do no convertida para string. Isso para tratar a virgula que o SQL nao permite no UPDATE
36 34
37 - diretorio = arquivo.SelecionaDiretorio  
38 - If diretorio = "falhou" Then  
39 - Screen.MousePointer = vbNormal  
40 - Exit Sub  
41 - End If  
42 Screen.MousePointer = vbHourglass 35 Screen.MousePointer = vbHourglass
43 Set RSNos = New ADODB.Recordset 36 Set RSNos = New ADODB.Recordset
44 RSNos.Open "Select x, y, object_id from Points2", Conn, adOpenKeyset, adLockOptimistic 37 RSNos.Open "Select x, y, object_id from Points2", Conn, adOpenKeyset, adLockOptimistic
45 - arquivoExportacao = diretorio & "\GeoSan_atualização_cotas.txt"  
46 - Open arquivoExportacao For Output As #10 'Abre o arquivo novo  
47 - Close #10  
48 retorno = cGeoDatabase.geoDatabase.setCurrentLayer("mdt") 'ativa o layer do MDT 38 retorno = cGeoDatabase.geoDatabase.setCurrentLayer("mdt") 'ativa o layer do MDT
49 If retorno = False Then 39 If retorno = False Then
50 Screen.MousePointer = vbNormal 40 Screen.MousePointer = vbNormal
@@ -65,16 +55,12 @@ Public Sub AtribuiZs() @@ -65,16 +55,12 @@ Public Sub AtribuiZs()
65 RSNos.MoveNext 55 RSNos.MoveNext
66 Set rsAtributoNos = New ADODB.Recordset 56 Set rsAtributoNos = New ADODB.Recordset
67 rsAtributoNos.Open "SELECT GROUNDHEIGHT FROM WATERCOMPONENTS WHERE OBJECT_ID_ = " & objIdNo, Conn, adOpenKeyset, adLockOptimistic 57 rsAtributoNos.Open "SELECT GROUNDHEIGHT FROM WATERCOMPONENTS WHERE OBJECT_ID_ = " & objIdNo, Conn, adOpenKeyset, adLockOptimistic
68 - Open arquivoExportacao For Append As #10  
69 - Print #10, objIdNo & " , " & xNo & " , " & yNo & " , " & rsAtributoNos.Fields("GROUNDHEIGHT").value & " , " & CStr(zNo)  
70 - Close #10  
71 - FrmMain.sbStatusBar.Panels(2).Text = "Z nó " & objIdNo & " calculado = " & zNo 58 + FrmMain.sbStatusBar.Panels(2).Text = " Z nó água " & objIdNo & " calculado = " & zNo & " "
72 rsAtributoNos.Close 59 rsAtributoNos.Close
73 zNoStr = CStr(zNo) 'converte a cota do no para string para poder atualizar no SQL como ponto 60 zNoStr = CStr(zNo) 'converte a cota do no para string para poder atualizar no SQL como ponto
74 zNoStr = Replace(zNoStr, ",", ".") 'troca a vírgula por ponto 61 zNoStr = Replace(zNoStr, ",", ".") 'troca a vírgula por ponto
75 Conn.execute "UPDATE WATERCOMPONENTS SET GROUNDHEIGHT = " & zNoStr & " WHERE OBJECT_ID_ = " & objIdNo 62 Conn.execute "UPDATE WATERCOMPONENTS SET GROUNDHEIGHT = " & zNoStr & " WHERE OBJECT_ID_ = " & objIdNo
76 Loop 63 Loop
77 - Close #10  
78 Screen.MousePointer = vbNormalObtemZ 64 Screen.MousePointer = vbNormalObtemZ
79 Exit Sub 65 Exit Sub
80 66
@@ -83,7 +69,7 @@ Trata_Erro: @@ -83,7 +69,7 @@ Trata_Erro:
83 Resume Next 69 Resume Next
84 Else 70 Else
85 Screen.MousePointer = vbNormal 71 Screen.MousePointer = vbNormal
86 - ErroUsuario.Registra "CAcertaZsDosNos", "AtribuiZs", CStr(Err.Number), CStr(Err.Description), True, glo.enviaEmails 72 + ErroUsuario.Registra "CAcertaZsDosNos", "AtribuiZs", CStr(Err.Number), CStr(Err.Description), False, False
87 End If 73 End If
88 End Sub 74 End Sub
89 75
trunk/classes/CAcertaZsDosNosEsgoto.cls 0 → 100644
@@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
  1 +VERSION 1.0 CLASS
  2 +BEGIN
  3 + MultiUse = -1 'True
  4 + Persistable = 0 'NotPersistable
  5 + DataBindingBehavior = 0 'vbNone
  6 + DataSourceBehavior = 0 'vbNone
  7 + MTSTransactionMode = 0 'NotAnMTSObject
  8 +END
  9 +Attribute VB_Name = "CAcertaZsDosNosEsgoto"
  10 +Attribute VB_GlobalNameSpace = False
  11 +Attribute VB_Creatable = True
  12 +Attribute VB_PredeclaredId = False
  13 +Attribute VB_Exposed = False
  14 +' Classe responsável por acertar todos os z's dos nós das redes de água
  15 +'
  16 +'
  17 +'
  18 +
  19 +Private getZNo As New CObtemZdoNo
  20 +' Subrotina que atribui a cota Z a todos os nós das redes
  21 +'
  22 +'
  23 +'
  24 +Public Sub AtribuiZs()
  25 + On Error GoTo Trata_Erro
  26 + Dim RSNos As ADODB.Recordset
  27 + Dim rsAtributoNos As ADODB.Recordset
  28 + Dim xNo As Double
  29 + Dim yNo As Double
  30 + Dim objIdNo As String
  31 + Dim zNo As Double
  32 + Dim retorno As Boolean
  33 + Dim zNoStr As String 'coordenada Z do no convertida para string. Isso para tratar a virgula que o SQL nao permite no UPDATE
  34 +
  35 + Screen.MousePointer = vbHourglass
  36 + Set RSNos = New ADODB.Recordset
  37 + RSNos.Open "Select x, y, object_id from Points4", Conn, adOpenKeyset, adLockOptimistic
  38 + arquivoExportacao = diretorio & "\GeoSan_atualização_cotas_esgoto.txt"
  39 + retorno = cGeoDatabase.geoDatabase.setCurrentLayer("mdt") 'ativa o layer do MDT
  40 + If retorno = False Then
  41 + Screen.MousePointer = vbNormal
  42 + MsgBox ("É necesário antes de iniciar esta operação abrir uma vista do mapa.")
  43 + Exit Sub
  44 + End If
  45 + Do While RSNos.EOF = False
  46 + DoEvents 'para o VB poder escutar o timer e poder parar o processamento caso a tecla ESC tenha sido pressionada
  47 + If varGlobais.pararExecucao = True Then
  48 + varGlobais.pararExecucao = False
  49 + Screen.MousePointer = vbNormal
  50 + Exit Sub
  51 + End If
  52 + xNo = RSNos("x").value
  53 + yNo = RSNos("y").value
  54 + objIdNo = RSNos("object_id").value
  55 + zNo = getZNo.ObtemZ(xNo, yNo, objIdNo)
  56 + RSNos.MoveNext
  57 + Set rsAtributoNos = New ADODB.Recordset
  58 + rsAtributoNos.Open "SELECT GROUNDHEIGHT FROM SEWERCOMPONENTS WHERE OBJECT_ID_ = " & objIdNo, Conn, adOpenKeyset, adLockOptimistic
  59 + FrmMain.sbStatusBar.Panels(2).Text = " Z nó esgoto " & objIdNo & " calculado = " & zNo & " "
  60 + rsAtributoNos.Close
  61 + zNoStr = CStr(zNo) 'converte a cota do no para string para poder atualizar no SQL como ponto
  62 + zNoStr = Replace(zNoStr, ",", ".") 'troca a vírgula por ponto
  63 + Conn.execute "UPDATE SEWERCOMPONENTS SET GROUNDHEIGHT = " & zNoStr & " WHERE OBJECT_ID_ = " & objIdNo
  64 + Loop
  65 + Screen.MousePointer = vbNormalObtemZ
  66 + Exit Sub
  67 +
  68 +Trata_Erro:
  69 + If Err.Number = 0 Or Err.Number = 20 Then
  70 + Resume Next
  71 + Else
  72 + Screen.MousePointer = vbNormal
  73 + ErroUsuario.Registra "CAcertaZsDosNosEsgoto", "AtribuiZs", CStr(Err.Number), CStr(Err.Description), False, False
  74 + End If
  75 +End Sub
  76 +
  77 +
trunk/classes/CObtemZdoNo.cls
@@ -140,7 +140,7 @@ Public Function ObtemZ(xNo As Double, yNo As Double, object_Id_No As String) As @@ -140,7 +140,7 @@ Public Function ObtemZ(xNo As Double, yNo As Double, object_Id_No As String) As
140 'obtem agora as cotas dos 4 pontos do MDT 140 'obtem agora as cotas dos 4 pontos do MDT
141 mensagemDeErro = mensagemDeErro + "Nó com obj_id = " & object_Id_No & " coord. x = " & CStr(Round(xNo, 2)) & " coord. y = " & CStr(Round(yNo, 2)) & "MDT com obj_ids: ObjId1 = " & idObjPonto1 & ", ObjId2 = " & idObjPonto2 & ", ObjId3 = " & idObjPonto3 & ", ObjId4 = " & idObjPonto4 141 mensagemDeErro = mensagemDeErro + "Nó com obj_id = " & object_Id_No & " coord. x = " & CStr(Round(xNo, 2)) & " coord. y = " & CStr(Round(yNo, 2)) & "MDT com obj_ids: ObjId1 = " & idObjPonto1 & ", ObjId2 = " & idObjPonto2 & ", ObjId3 = " & idObjPonto3 & ", ObjId4 = " & idObjPonto4
142 If idObjPonto1 = Null Or idObjPonto2 = Null Or idObjPonto3 = Null Or idObjPonto4 = Null Then 'verifica se ele encontrou os nós do MDT, pois se não encontra não adianta realizar o cálculo 142 If idObjPonto1 = Null Or idObjPonto2 = Null Or idObjPonto3 = Null Or idObjPonto4 = Null Then 'verifica se ele encontrou os nós do MDT, pois se não encontra não adianta realizar o cálculo
143 - ErroUsuario.Registra "CObtemZdoNo", "ObtemZ", CStr(Err.Number), CStr(Err.Description), False, glo.enviaEmails, mensagemDeErro 'não exibe mensagem para o usuário 143 + ErroUsuario.Registra "CObtemZdoNo", "ObtemZ", CStr(Err.Number), CStr(Err.Description), False, False, mensagemDeErro 'não exibe mensagem para o usuário
144 ObtemZ = 0 'retorna sem calcular a cota Z 144 ObtemZ = 0 'retorna sem calcular a cota Z
145 Else 'encontrou 145 Else 'encontrou
146 rs.Open "SELECT * from MDT where " & nomeColunaObjIdMdt & " = " & idObjPonto1, Conn, adOpenKeyset, adLockOptimistic 146 rs.Open "SELECT * from MDT where " & nomeColunaObjIdMdt & " = " & idObjPonto1, Conn, adOpenKeyset, adLockOptimistic
@@ -176,7 +176,7 @@ Trata_Erro: @@ -176,7 +176,7 @@ Trata_Erro:
176 If Err.Number = 0 Or Err.Number = 20 Then 176 If Err.Number = 0 Or Err.Number = 20 Then
177 Resume Next 177 Resume Next
178 Else 178 Else
179 - ErroUsuario.Registra "CObtemZdoNo", "ObtemZ", CStr(Err.Number), CStr(Err.Description), True, glo.enviaEmails, mensagemDeErro 179 + ErroUsuario.Registra "CObtemZdoNo", "ObtemZ", CStr(Err.Number), CStr(Err.Description), False, False, mensagemDeErro
180 End If 180 End If
181 End Function 181 End Function
182 ' Obtem o z de um nó a partir do Object_id do nó 182 ' Obtem o z de um nó a partir do Object_id do nó
@@ -214,6 +214,6 @@ Trata_Erro: @@ -214,6 +214,6 @@ Trata_Erro:
214 If Err.Number = 0 Or Err.Number = 20 Then 214 If Err.Number = 0 Or Err.Number = 20 Then
215 Resume Next 215 Resume Next
216 Else 216 Else
217 - ErroUsuario.Registra "CObtemZdoNo", "CObtemZFromObjIdNo", CStr(Err.Number), CStr(Err.Description), True, glo.enviaEmails 217 + ErroUsuario.Registra "CObtemZdoNo", "CObtemZFromObjIdNo", CStr(Err.Number), CStr(Err.Description), False, False
218 End If 218 End If
219 End Function 219 End Function