Commit 04e10eae1b18323121fbe6cedf5e6cf77cc37f36

Authored by joaorocha
1 parent 874b9b0a
Exists in master

Iniciado o Mapa2.

git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@1534 fecfc0c7-e812-0410-ae72-849f08638ee7
Mapa2/Mapa2.dpr 0 → 100644
... ... @@ -0,0 +1,14 @@
  1 +program Mapa2;
  2 +
  3 +uses
  4 + Forms,
  5 + Unit1 in 'Unit1.pas' {Form1};
  6 +
  7 +{$R *.res}
  8 +
  9 +begin
  10 + Application.Initialize;
  11 + Application.MainFormOnTaskbar := True;
  12 + Application.CreateForm(TForm1, Form1);
  13 + Application.Run;
  14 +end.
... ...
Mapa2/Mapa2.dproj 0 → 100644
... ... @@ -0,0 +1,72 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3 + <PropertyGroup>
  4 + <ProjectGuid>{d3ca3b54-0625-490e-998f-ff10ae284979}</ProjectGuid>
  5 + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  6 + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  7 + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
  8 + <DCC_DependencyCheckOutputName>Mapa2.exe</DCC_DependencyCheckOutputName>
  9 + <MainSource>Mapa2.dpr</MainSource>
  10 + </PropertyGroup>
  11 + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  12 + <Version>7.0</Version>
  13 + <DCC_DebugInformation>False</DCC_DebugInformation>
  14 + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
  15 + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
  16 + <DCC_Define>RELEASE</DCC_Define>
  17 + </PropertyGroup>
  18 + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  19 + <Version>7.0</Version>
  20 + <DCC_Define>DEBUG</DCC_Define>
  21 + </PropertyGroup>
  22 + <ProjectExtensions>
  23 + <Borland.Personality>Delphi.Personality</Borland.Personality>
  24 + <Borland.ProjectType />
  25 + <BorlandProject>
  26 +<BorlandProject> <Delphi.Personality> <Parameters>
  27 + <Parameters Name="UseLauncher">False</Parameters>
  28 + <Parameters Name="LoadAllSymbols">True</Parameters>
  29 + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
  30 + </Parameters>
  31 + <VersionInfo>
  32 + <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
  33 + <VersionInfo Name="AutoIncBuild">False</VersionInfo>
  34 + <VersionInfo Name="MajorVer">1</VersionInfo>
  35 + <VersionInfo Name="MinorVer">0</VersionInfo>
  36 + <VersionInfo Name="Release">0</VersionInfo>
  37 + <VersionInfo Name="Build">0</VersionInfo>
  38 + <VersionInfo Name="Debug">False</VersionInfo>
  39 + <VersionInfo Name="PreRelease">False</VersionInfo>
  40 + <VersionInfo Name="Special">False</VersionInfo>
  41 + <VersionInfo Name="Private">False</VersionInfo>
  42 + <VersionInfo Name="DLL">False</VersionInfo>
  43 + <VersionInfo Name="Locale">1046</VersionInfo>
  44 + <VersionInfo Name="CodePage">1252</VersionInfo>
  45 + </VersionInfo>
  46 + <VersionInfoKeys>
  47 + <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
  48 + <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
  49 + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
  50 + <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
  51 + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
  52 + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
  53 + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
  54 + <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
  55 + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
  56 + <VersionInfoKeys Name="Comments"></VersionInfoKeys>
  57 + </VersionInfoKeys>
  58 + <Source>
  59 + <Source Name="MainSource">Mapa2.dpr</Source>
  60 + </Source>
  61 + </Delphi.Personality> </BorlandProject></BorlandProject>
  62 + </ProjectExtensions>
  63 + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
  64 + <ItemGroup>
  65 + <DelphiCompile Include="Mapa2.dpr">
  66 + <MainSource>MainSource</MainSource>
  67 + </DelphiCompile>
  68 + <DCCReference Include="Unit1.pas">
  69 + <Form>Form1</Form>
  70 + </DCCReference>
  71 + </ItemGroup>
  72 +</Project>
0 73 \ No newline at end of file
... ...
Mapa2/Mapa2.res 0 → 100644
No preview for this file type
Mapa2/Unit1.dfm 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +object Form1: TForm1
  2 + Left = 0
  3 + Top = 0
  4 + Caption = 'Mapa2'
  5 + ClientHeight = 176
  6 + ClientWidth = 455
  7 + Color = clBtnFace
  8 + Font.Charset = DEFAULT_CHARSET
  9 + Font.Color = clWindowText
  10 + Font.Height = -11
  11 + Font.Name = 'Tahoma'
  12 + Font.Style = []
  13 + OldCreateOrder = False
  14 + PixelsPerInch = 96
  15 + TextHeight = 13
  16 +end
... ...
Mapa2/Unit1.pas 0 → 100644
... ... @@ -0,0 +1,885 @@
  1 +(**
  2 +---------------------------------------------------------------------------------------------------------------------------------------------------------------
  3 +Copyright 2000, 2001, 2002, 2003, 2004, 2005 Dataprev - Empresa de Tecnologia e Informações da Previdência Social, Brasil
  4 +
  5 +Este arquivo é parte do programa CACIC - Configurador Automático e Coletor de Informações Computacionais
  6 +
  7 +O CACIC é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como
  8 +publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opinião) qualquer versão.
  9 +
  10 +Este programa é distribuido na esperança que possa ser util, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer
  11 +MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.
  12 +
  13 +Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", junto com este programa, se não, escreva para a Fundação do Software
  14 +Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  15 +---------------------------------------------------------------------------------------------------------------------------------------------------------------
  16 +*)
  17 +
  18 +unit Unit1;
  19 +
  20 +interface
  21 +
  22 +uses
  23 + Windows,
  24 + SysUtils, // Deve ser colocado após o Windows acima, nunca antes
  25 + StrUtils,
  26 + StdCtrls,
  27 + Controls,
  28 + Classes,
  29 + Forms,
  30 + ExtCtrls,
  31 + Graphics,
  32 + Dialogs,
  33 + CACIC_Library,
  34 + CACIC_Comm,
  35 + ComCtrls,
  36 + ShellAPI,
  37 + CACIC_WMI,
  38 + Math;
  39 +
  40 +function IsUserAnAdmin() : boolean; external shell32;
  41 +
  42 +var strCollectsPatrimonioLast,
  43 + strConfigsPatrimonioCombos,
  44 + strFieldsAndValuesToRequest,
  45 + strIdUON1,
  46 + strFrmAtual,
  47 + strShowOrHide : string;
  48 + textFileAguarde : TextFile;
  49 + boolFinalizando : boolean;
  50 + objCacic : TCACIC;
  51 +type
  52 + TfrmMapaCacic = class(TForm)
  53 + gbLeiaComAtencao: TGroupBox;
  54 + lbLeiaComAtencao: TLabel;
  55 + gbInformacoesSobreComputador: TGroupBox;
  56 + lbEtiqueta1: TLabel;
  57 + lbEtiqueta2: TLabel;
  58 + lbEtiqueta3: TLabel;
  59 + cbIdUnidOrganizacionalNivel1: TComboBox;
  60 + cbIdUnidOrganizacionalNivel2: TComboBox;
  61 + edTeLocalizacaoComplementar: TEdit;
  62 + btGravarInformacoes: TButton;
  63 + lbEtiqueta4: TLabel;
  64 + lbEtiqueta5: TLabel;
  65 + lbEtiqueta6: TLabel;
  66 + lbEtiqueta7: TLabel;
  67 + lbEtiqueta8: TLabel;
  68 + lbEtiqueta9: TLabel;
  69 + edTeInfoPatrimonio1: TEdit;
  70 + edTeInfoPatrimonio2: TEdit;
  71 + edTeInfoPatrimonio3: TEdit;
  72 + edTeInfoPatrimonio4: TEdit;
  73 + edTeInfoPatrimonio5: TEdit;
  74 + edTeInfoPatrimonio6: TEdit;
  75 + pnMessageBox: TPanel;
  76 + lbMensagens: TLabel;
  77 + lbEtiqueta1a: TLabel;
  78 + cbIdUnidOrganizacionalNivel1a: TComboBox;
  79 + pnDivisoria01: TPanel;
  80 + lbWebManagerAddress: TLabel;
  81 + edWebManagerAddress: TLabel;
  82 + pnVersao: TPanel;
  83 + btCombosUpdate: TButton;
  84 + timerMessageShowTime: TTimer;
  85 + timerMessageBoxShowOrHide: TTimer;
  86 +
  87 + procedure AtualizaPatrimonio(Sender: TObject);
  88 + procedure mapa;
  89 + procedure FormClose(Sender: TObject; var Action: TCloseAction);
  90 + procedure cbIdUnidOrganizacionalNivel1Change(Sender: TObject);
  91 + procedure cbIdUnidOrganizacionalNivel1aChange(Sender: TObject);
  92 + procedure FormCreate(Sender: TObject);
  93 + procedure cbIdUnidOrganizacionalNivel1Click(Sender: TObject);
  94 + procedure FormActivate(Sender: TObject);
  95 + procedure cbIdUnidOrganizacionalNivel1DrawItem(Control: TWinControl;
  96 + Index: Integer; Rect: TRect; State: TOwnerDrawState);
  97 + procedure btCombosUpdateClick(Sender: TObject);
  98 + procedure timerMessageShowTimeTimer(Sender: TObject);
  99 + procedure cbIdUnidOrganizacionalNivel1aDrawItem(Control: TWinControl;
  100 + Index: Integer; Rect: TRect; State: TOwnerDrawState);
  101 + procedure cbIdUnidOrganizacionalNivel2DrawItem(Control: TWinControl;
  102 + Index: Integer; Rect: TRect; State: TOwnerDrawState);
  103 + procedure timerMessageBoxShowOrHideTimer(Sender: TObject);
  104 + private
  105 + strIdUnidOrganizacionalNivel1,
  106 + strIdUnidOrganizacionalNivel1a,
  107 + strIdUnidOrganizacionalNivel2,
  108 + strIdLocal,
  109 + strTeLocalizacaoComplementar,
  110 + strTeInfoPatrimonio1,
  111 + strTeInfoPatrimonio2,
  112 + strTeInfoPatrimonio3,
  113 + strTeInfoPatrimonio4,
  114 + strTeInfoPatrimonio5,
  115 + strTeInfoPatrimonio6 : String;
  116 +
  117 + function getConfigs : String;
  118 + function RetornaValorVetorUON1(pStrIdUON1 : string) : String;
  119 + function RetornaValorVetorUON1a(pStrIdUON1a : string) : String;
  120 + function RetornaValorVetorUON2(pStrIdUON2,pStrIdLocal : string) : String;
  121 +
  122 + procedure CriaFormSenha(Sender: TObject);
  123 + procedure MontaCombos;
  124 + procedure MontaInterface;
  125 + procedure RecuperaValoresAnteriores;
  126 + procedure Sair;
  127 + public
  128 + boolAcessoOK : boolean;
  129 + strId_usuario,
  130 + strChkSisInfFileName,
  131 + strGerColsInfFileName : String;
  132 + procedure Finalizar(p_pausa:boolean);
  133 + procedure Mensagem(p_strMsg : String; p_boolAlerta : boolean = false; p_intPausaSegundos : integer = 0);
  134 + end;
  135 +
  136 +var frmMapaCacic: TfrmMapaCacic;
  137 +
  138 +implementation
  139 +
  140 +{$R *.dfm}
  141 +
  142 +// Estruturas de dados para armazenar os itens das Unidades Organizacionais de Níveis 1, 1a e 2
  143 +type
  144 + TRegistroUON1 = record // Nível 1 => Entidade
  145 + idUON1 : String;
  146 + nmUON1 : String;
  147 + end;
  148 + TVetorUON1 = array of TRegistroUON1;
  149 +
  150 + TRegistroUON1a = record // Nível 1a => Linha de Negócio
  151 + idUON1 : String;
  152 + idUON1a : String;
  153 + nmUON1a : String;
  154 + end;
  155 + TVetorUON1a = array of TRegistroUON1a;
  156 +
  157 + TRegistroUON2 = record // Nível 2 => Órgão
  158 + idUON1a : String;
  159 + idUON2 : String;
  160 + nmUON2 : String;
  161 + idLocal : String;
  162 + end;
  163 + TVetorUON2 = array of TRegistroUON2;
  164 +
  165 +var VetorUON1 : TVetorUON1;
  166 + VetorUON1a : TVetorUON1a;
  167 + VetorUON2 : TVetorUON2;
  168 +
  169 + // Esse array é usado apenas para saber a uon1a, após a filtragem pelo uon1
  170 + VetorUON1aFiltrado : array of String;
  171 +
  172 + // Esse array é usado apenas para saber a uon2, após a filtragem pelo uon1a
  173 + VetorUON2Filtrado : array of String;
  174 +
  175 +procedure TfrmMapaCacic.Mensagem(p_strMsg : String; p_boolAlerta : boolean = false; p_intPausaSegundos : integer = 0);
  176 +Begin
  177 + strShowOrHide := 'Show';
  178 +
  179 + objCacic.writeDebugLog('Mensagem: ' + p_strMsg);
  180 +
  181 + if p_boolAlerta then
  182 + lbMensagens.Font.Color := clRed
  183 + else
  184 + lbMensagens.Font.Color := clBlack;
  185 +
  186 + lbMensagens.Caption := p_strMsg;
  187 +
  188 + objCacic.writeDailyLog(lbMensagens.Caption);
  189 + Application.ProcessMessages;
  190 +
  191 + if (p_intPausaSegundos > 0) then
  192 + timerMessageShowTime.Interval := p_intPausaSegundos * 1000;
  193 +
  194 + timerMessageBoxShowOrHide.Enabled := true;
  195 +
  196 + Application.ProcessMessages;
  197 +End;
  198 +
  199 +procedure showMessageBox;
  200 +Begin
  201 +
  202 +End;
  203 +
  204 +procedure TfrmMapaCacic.Sair;
  205 +Begin
  206 + Application.Terminate;
  207 +End;
  208 +
  209 +procedure TfrmMapaCacic.Finalizar(p_pausa:boolean);
  210 +Begin
  211 + gbLeiaComAtencao.Visible := false;
  212 + gbInformacoesSobreComputador.Visible := false;
  213 + btGravarInformacoes.Visible := false;
  214 +
  215 + Mensagem('Finalizando o MapaCacic...');
  216 +
  217 + Application.ProcessMessages;
  218 +
  219 + Sleep(1000);
  220 +
  221 + Sair;
  222 +End;
  223 +//
  224 +
  225 +Function TfrmMapaCacic.RetornaValorVetorUON1(pStrIdUON1 : string) : String;
  226 +var I : Integer;
  227 +begin
  228 + For I := 0 to (Length(VetorUON1)-1) Do
  229 + If (VetorUON1[I].idUON1 = pStrIdUON1) Then Result := VetorUON1[I].nmUON1;
  230 +end;
  231 +
  232 +Function TfrmMapaCacic.RetornaValorVetorUON1a(pStrIdUON1a : string) : String;
  233 +var I : Integer;
  234 +begin
  235 + For I := 0 to (Length(VetorUON1a)-1) Do
  236 + If (VetorUON1a[I].idUON1a = pStrIdUON1a) Then Result := VetorUON1a[I].nmUON1a;
  237 +end;
  238 +
  239 +Function TfrmMapaCacic.RetornaValorVetorUON2(pStrIdUON2, pStrIdLocal: string) : String;
  240 +var I : Integer;
  241 +begin
  242 + For I := 0 to (Length(VetorUON2)-1) Do
  243 + If (VetorUON2[I].idUON2 = pStrIdUON2) and
  244 + (VetorUON2[I].idLocal = pStrIdLocal) Then Result := VetorUON2[I].nmUON2;
  245 +end;
  246 +
  247 +procedure TfrmMapaCacic.RecuperaValoresAnteriores;
  248 +var strCollectsPatrimonioLast,
  249 + strConfigsPatrimonioInterface : String;
  250 +begin
  251 + btCombosUpdate.Enabled := false;
  252 +
  253 + Mensagem('Recuperando Valores Anteriores...',false,1);
  254 +
  255 + strCollectsPatrimonioLast := objCacic.deCrypt( objCacic.GetValueFromFile('Collects','Patrimonio_Last',strGerColsInfFileName));
  256 +
  257 + if (strCollectsPatrimonioLast <> '') then
  258 + Begin
  259 + strIdUnidOrganizacionalNivel1 := objCacic.GetValueFromFile('Patrimonio','IdUnidOrganizacionalNivel1',strGerColsInfFileName);
  260 + if (strIdUnidOrganizacionalNivel1='') then
  261 + strIdUnidOrganizacionalNivel1 := objCacic.deCrypt(objCacic.getValueFromTags('ID_UON1', strCollectsPatrimonioLast));
  262 +
  263 + strIdUnidOrganizacionalNivel1a := objCacic.GetValueFromFile('Patrimonio','IdUnidOrganizacionalNivel1a',strGerColsInfFileName);
  264 + if (strIdUnidOrganizacionalNivel1a='') then
  265 + strIdUnidOrganizacionalNivel1a := objCacic.deCrypt(objCacic.getValueFromTags('ID_UON1a', strCollectsPatrimonioLast));
  266 +
  267 + strIdUnidOrganizacionalNivel2 := objCacic.GetValueFromFile('Patrimonio','IdUnidOrganizacionalNivel2',strGerColsInfFileName);
  268 + if (strIdUnidOrganizacionalNivel2='') then
  269 + strIdUnidOrganizacionalNivel2 := objCacic.deCrypt(objCacic.getValueFromTags('ID_UON2', strCollectsPatrimonioLast));
  270 +
  271 + strIdLocal := objCacic.getValueFromTags('IdLocal',strCollectsPatrimonioLast);
  272 +
  273 + Try
  274 + cbIdUnidOrganizacionalNivel1.ItemIndex := cbIdUnidOrganizacionalNivel1.Items.IndexOf(RetornaValorVetorUON1(strIdUnidOrganizacionalNivel1));
  275 + cbIdUnidOrganizacionalNivel1Change(Nil); // Para filtrar os valores do combo2 de acordo com o valor selecionado no combo1
  276 + cbIdUnidOrganizacionalNivel1a.ItemIndex := cbIdUnidOrganizacionalNivel1a.Items.IndexOf(RetornaValorVetorUON1(strIdUnidOrganizacionalNivel1));
  277 + Except
  278 + on E:Exception do
  279 + Begin
  280 + objCacic.writeExceptionLog(E.Message,e.ClassName,'Setando "cbIdUnidOrganizacionalNivel1a.ItemIndex" para "' + IntToStr(cbIdUnidOrganizacionalNivel1a.Items.IndexOf(RetornaValorVetorUON1(strIdUnidOrganizacionalNivel1))) + '"');
  281 + objCacic.writeDebugLog('RecuperaValoresAnteriores: Problema ao setar "cbIdUnidOrganizacionalNivel1a.ItemIndex" para "' + IntToStr(cbIdUnidOrganizacionalNivel1a.Items.IndexOf(RetornaValorVetorUON1(strIdUnidOrganizacionalNivel1))) + '"');
  282 + End;
  283 + end;
  284 +
  285 + Try
  286 + cbIdUnidOrganizacionalNivel1a.ItemIndex := cbIdUnidOrganizacionalNivel1a.Items.IndexOf(RetornaValorVetorUON1a(strIdUnidOrganizacionalNivel1a));
  287 + cbIdUnidOrganizacionalNivel1aChange(Nil); // Para filtrar os valores do combo3 de acordo com o valor selecionado no combo2
  288 + cbIdUnidOrganizacionalNivel2.ItemIndex := cbIdUnidOrganizacionalNivel2.Items.IndexOf(RetornaValorVetorUON2(strIdUnidOrganizacionalNivel2,strIdLocal));
  289 + Except
  290 + on E:Exception do
  291 + Begin
  292 + objCacic.writeExceptionLog(E.Message,e.ClassName,'Setando "cbIdUnidOrganizacionalNivel2.ItemIndex" para "' + IntToStr(cbIdUnidOrganizacionalNivel2.Items.IndexOf(RetornaValorVetorUON2(strIdUnidOrganizacionalNivel2,strIdLocal))) + '"');
  293 + objCacic.writeDebugLog('RecuperaValoresAnteriores: Problema ao setar "cbIdUnidOrganizacionalNivel2.ItemIndex" para "' + IntToStr(cbIdUnidOrganizacionalNivel2.Items.IndexOf(RetornaValorVetorUON2(strIdUnidOrganizacionalNivel2,strIdLocal))) + '"');
  294 + End;
  295 + end;
  296 +
  297 + strConfigsPatrimonioInterface := objCacic.deCrypt( objCacic.GetValueFromFile('Configs','Patrimonio_Interface',strGerColsInfFileName));
  298 +
  299 + lbEtiqueta1.Caption := objCacic.getValueFromTags('te_etiqueta1', strConfigsPatrimonioInterface);
  300 + lbEtiqueta1a.Caption := objCacic.deCrypt(objCacic.getValueFromTags('te_etiqueta1a', strConfigsPatrimonioInterface));
  301 +
  302 + strTeLocalizacaoComplementar := objCacic.getValueFromTags('TeLocalizacaoComplementar',strCollectsPatrimonioLast);
  303 +
  304 + // Tentarei buscar informação gravada no Registry
  305 + strTeInfoPatrimonio1 := objCacic.getValueRegistryKey('HKEY_LOCAL_MACHINE\SOFTWARE\Dataprev\Patrimonio\te_info_patrimonio1');
  306 + strTeInfoPatrimonio2 := objCacic.getValueFromTags('TeInfoPatrimonio2',strCollectsPatrimonioLast);
  307 + strTeInfoPatrimonio3 := objCacic.getValueFromTags('TeInfoPatrimonio3',strCollectsPatrimonioLast);
  308 + strTeInfoPatrimonio4 := objCacic.getValueRegistryKey('HKEY_LOCAL_MACHINE\SOFTWARE\Dataprev\Patrimonio\te_info_patrimonio4');
  309 + strTeInfoPatrimonio5 := objCacic.getValueFromTags('TeInfoPatrimonio5',strCollectsPatrimonioLast);
  310 + strTeInfoPatrimonio6 := objCacic.getValueFromTags('TeInfoPatrimonio6',strCollectsPatrimonioLast);
  311 +
  312 + if (strTeInfoPatrimonio1='') then strTeInfoPatrimonio1 := objCacic.getValueFromTags('TE_INFO1', strCollectsPatrimonioLast);
  313 + if (strTeInfoPatrimonio2='') then strTeInfoPatrimonio2 := objCacic.getValueFromTags('TE_INFO2', strCollectsPatrimonioLast);
  314 + if (strTeInfoPatrimonio3='') then strTeInfoPatrimonio3 := objCacic.getValueFromTags('TE_INFO3', strCollectsPatrimonioLast);
  315 + if (strTeInfoPatrimonio4='') then strTeInfoPatrimonio4 := objCacic.getValueFromTags('TE_INFO4', strCollectsPatrimonioLast);
  316 + if (strTeInfoPatrimonio5='') then strTeInfoPatrimonio5 := objCacic.getValueFromTags('TE_INFO5', strCollectsPatrimonioLast);
  317 + if (strTeInfoPatrimonio6='') then strTeInfoPatrimonio6 := objCacic.getValueFromTags('TE_INFO6', strCollectsPatrimonioLast);
  318 + End;
  319 + btCombosUpdate.Enabled := true;
  320 + Application.ProcessMessages;
  321 +end;
  322 +
  323 +procedure TfrmMapaCacic.MontaCombos;
  324 +var intTagCount,
  325 + intLoopUOS : integer;
  326 + strTagName,
  327 + strTagValue : String;
  328 + tstrTagsNames : TStrings;
  329 +begin
  330 + btCombosUpdate.Enabled := false;
  331 + cbIdUnidOrganizacionalNivel1.Enabled := false;
  332 + cbIdUnidOrganizacionalNivel1a.Enabled := false;
  333 + cbIdUnidOrganizacionalNivel2.Enabled := false;
  334 +
  335 + Mensagem('Montando Listas para Seleção de Unidades Organizacionais...',false,1);
  336 +
  337 + strConfigsPatrimonioCombos := objCacic.deCrypt(objCacic.GetValueFromFile('Configs' ,'Patrimonio_Combos',strGerColsInfFileName));
  338 + strCollectsPatrimonioLast := objCacic.deCrypt(objCacic.GetValueFromFile('Collects','Patrimonio_Last' ,strGerColsInfFileName));
  339 +
  340 + strIdUON1 := objCacic.getValueFromTags('IdUON1',strCollectsPatrimonioLast);
  341 +
  342 + SetLength(VetorUON1 ,0);
  343 + SetLength(VetorUON1a,0);
  344 + SetLength(VetorUON2 ,0);
  345 +
  346 + cbIdUnidOrganizacionalNivel1.Items.Clear;
  347 + cbIdUnidOrganizacionalNivel1a.Items.Clear;
  348 + cbIdUnidOrganizacionalNivel2.Items.Clear;
  349 +
  350 + tstrTagsNames := objCacic.explode('UO1,UO1a,UO2',',');
  351 +
  352 + for intLoopUOS := 0 to tstrTagsNames.Count -1 do
  353 + Begin
  354 + intTagCount := 1;
  355 + strTagValue := '*';
  356 + while (strTagValue <> '') do
  357 + Begin
  358 + strTagName := tstrTagsNames[intLoopUOS] + '#' + intToStr(intTagCount);
  359 + strTagValue := objCacic.getValueFromTags(strTagName,strConfigsPatrimonioCombos);
  360 + if (strTagValue <> '') then
  361 + Begin
  362 + if (tstrTagsNames[intLoopUOS] = 'UO1') then
  363 + Begin
  364 + SetLength(VetorUON1 ,length(VetorUON1)+1);
  365 + VetorUON1[length(VetorUON1)-1].idUON1 := objCacic.getValueFromTags('UO1_ID',strTagValue);
  366 + VetorUON1[length(VetorUON1)-1].nmUON1 := objCacic.getValueFromTags('UO1_NM',strTagValue);
  367 + cbIdUnidOrganizacionalNivel1.Items.Add(VetorUON1[length(VetorUON1)-1].nmUON1);
  368 + if (strIdUON1 = VetorUON1[length(VetorUON1)-1].idUON1) then
  369 + cbIdUnidOrganizacionalNivel1.ItemIndex := cbIdUnidOrganizacionalNivel1.Items.Count-1;
  370 + End
  371 + else if (tstrTagsNames[intLoopUOS] = 'UO1a') then
  372 + Begin
  373 + SetLength(VetorUON1a ,length(VetorUON1a)+1);
  374 + VetorUON1a[length(VetorUON1a)-1].idUON1 := objCacic.getValueFromTags('UO1a_IdUO1',strTagValue);
  375 + VetorUON1a[length(VetorUON1a)-1].idUON1a := objCacic.getValueFromTags('UO1a_ID' ,strTagValue);
  376 + VetorUON1a[length(VetorUON1a)-1].nmUON1a := objCacic.getValueFromTags('UO1a_NM' ,strTagValue);
  377 + End
  378 + else if (tstrTagsNames[intLoopUOS] = 'UO2') then
  379 + Begin
  380 + SetLength(VetorUON2 ,length(VetorUON2)+1);
  381 + VetorUON2[length(VetorUON2)-1].idUON1a := objCacic.getValueFromTags('UO2_IdUO1a' ,strTagValue);
  382 + VetorUON2[length(VetorUON2)-1].idUON2 := objCacic.getValueFromTags('UO2_ID' ,strTagValue);
  383 + VetorUON2[length(VetorUON2)-1].nmUON2 := objCacic.getValueFromTags('UO2_NM' ,strTagValue);
  384 + VetorUON2[length(VetorUON2)-1].idLocal := objCacic.getValueFromTags('UO2_IdLocal',strTagValue);
  385 + End;
  386 + End;
  387 + inc(intTagCount);
  388 + End;
  389 + End;
  390 +
  391 + // Ao fim...
  392 + if (cbIdUnidOrganizacionalNivel1.ItemIndex = -1) then
  393 + cbIdUnidOrganizacionalNivel1.ItemIndex := 0;
  394 +
  395 + cbIdUnidOrganizacionalNivel1Change(nil);
  396 +
  397 + btCombosUpdate.Enabled := true;
  398 + cbIdUnidOrganizacionalNivel1.Enabled := true;
  399 + cbIdUnidOrganizacionalNivel1a.Enabled := true;
  400 + cbIdUnidOrganizacionalNivel2.Enabled := true;
  401 +
  402 + Application.ProcessMessages;
  403 +end;
  404 +
  405 +procedure TfrmMapaCacic.cbIdUnidOrganizacionalNivel1Change(Sender: TObject);
  406 +var intLoopVetorUON1a : integer;
  407 +begin
  408 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: Nível 1 CHANGE');
  409 +
  410 + // Filtro os itens do combo2, de acordo com o item selecionado no combo1
  411 + strIdUON1 := VetorUON1[cbIdUnidOrganizacionalNivel1.ItemIndex].idUON1;
  412 +
  413 + cbIdUnidOrganizacionalNivel1a.Items.Clear;
  414 + cbIdUnidOrganizacionalNivel2.Items.Clear;
  415 + cbIdUnidOrganizacionalNivel1a.Enabled := false;
  416 + cbIdUnidOrganizacionalNivel2.Enabled := false;
  417 + SetLength(VetorUON1aFiltrado, 0);
  418 +
  419 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: Tamanho de VetorUON1..: '+IntToStr(Length(VetorUON1)));
  420 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: ItemIndex de cb_nivel1: '+IntToStr(cbIdUnidOrganizacionalNivel1.ItemIndex));
  421 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: Tamanho de VetorUON1a.: '+IntToStr(Length(VetorUON1a)));
  422 +
  423 + For intLoopVetorUON1a := 0 to Length(VetorUON1a) - 1 Do
  424 + Begin
  425 + Try
  426 + if VetorUON1a[intLoopVetorUON1a].idUON1 = strIdUON1 then
  427 + Begin
  428 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: Add em cb_nivel1a: '+VetorUON1a[intLoopVetorUON1a].nmUON1a);
  429 + cbIdUnidOrganizacionalNivel1a.Items.Add(VetorUON1a[intLoopVetorUON1a].nmUON1a);
  430 +
  431 + SetLength(VetorUON1aFiltrado, Length(VetorUON1aFiltrado) + 1);
  432 + VetorUON1aFiltrado[Length(VetorUON1aFiltrado)-1] := VetorUON1a[intLoopVetorUON1a].idUON1a;
  433 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: VetorUON1aFiltrado['+IntToStr(Length(VetorUON1aFiltrado)-1)+']= '+VetorUON1aFiltrado[Length(VetorUON1aFiltrado)-1]);
  434 + end;
  435 + Except
  436 + on E:Exception do
  437 + Begin
  438 + objCacic.writeExceptionLog(E.Message,e.ClassName);
  439 + End;
  440 + End;
  441 + end;
  442 + if (cbIdUnidOrganizacionalNivel1a.Items.Count > 0) then
  443 + Begin
  444 + cbIdUnidOrganizacionalNivel1a.Enabled := true;
  445 + cbIdUnidOrganizacionalNivel1a.ItemIndex := 0;
  446 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Change: Provocando CHANGE em nivel1a');
  447 + cbIdUnidOrganizacionalNivel1aChange(nil);
  448 + End;
  449 +end;
  450 +
  451 +procedure TfrmMapaCacic.cbIdUnidOrganizacionalNivel1aChange(
  452 + Sender: TObject);
  453 +var intLoopVetorUON2 : integer;
  454 +begin
  455 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: Nível 1a CHANGE');
  456 + // Filtro os itens do combo2, de acordo com o item selecionado no combo1
  457 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: cbIdUnidOrganizacionalNivel1a.ItemIndex = '+intToStr(cbIdUnidOrganizacionalNivel1a.ItemIndex));
  458 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: VetorUON1aFiltrado['+intToStr(cbIdUnidOrganizacionalNivel1a.ItemIndex)+'] => '+VetorUON1aFiltrado[cbIdUnidOrganizacionalNivel1a.ItemIndex]);
  459 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: strIdLocal = '+strIdLocal);
  460 +
  461 + cbIdUnidOrganizacionalNivel2.Items.Clear;
  462 + cbIdUnidOrganizacionalNivel2.Enabled := false;
  463 + SetLength(VetorUON2Filtrado, 0);
  464 +
  465 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: Tamanho de VetorUON1a..: '+IntToStr(Length(VetorUON1a)));
  466 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: ItemIndex de cb_nivel1a: '+IntToStr(cbIdUnidOrganizacionalNivel1a.ItemIndex));
  467 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: Tamanho de VetorUON2...: '+IntToStr(Length(VetorUON2)));
  468 +
  469 + For intLoopVetorUON2 := 0 to Length(VetorUON2) - 1 Do
  470 + Begin
  471 + Try
  472 + if (VetorUON2[intLoopVetorUON2].idUON1a = VetorUON1aFiltrado[cbIdUnidOrganizacionalNivel1a.ItemIndex]) then
  473 + Begin
  474 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: Add em cb_nivel2: '+VetorUON2[intLoopVetorUON2].nmUON2);
  475 + cbIdUnidOrganizacionalNivel2.Items.Add(VetorUON2[intLoopVetorUON2].nmUON2);
  476 +
  477 + SetLength(VetorUON2Filtrado, Length(VetorUON2Filtrado) + 1);
  478 + VetorUON2Filtrado[Length(VetorUON2Filtrado)-1] := VetorUON2[intLoopVetorUON2].idUON2 + '#' + VetorUON2[intLoopVetorUON2].idLocal;
  479 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1aChange: VetorUON2Filtrado['+IntToStr(Length(VetorUON2Filtrado)-1)+']= '+VetorUON2Filtrado[Length(VetorUON2Filtrado)-1]);
  480 + end;
  481 + Except
  482 + on E:Exception do
  483 + Begin
  484 + objCacic.writeExceptionLog(E.Message,e.ClassName);
  485 + End;
  486 + End;
  487 + end;
  488 + if (cbIdUnidOrganizacionalNivel2.Items.Count > 0) then
  489 + Begin
  490 + cbIdUnidOrganizacionalNivel2.Enabled := true;
  491 + cbIdUnidOrganizacionalNivel2.ItemIndex := 0;
  492 + End;
  493 +end;
  494 +
  495 +
  496 +procedure TfrmMapaCacic.AtualizaPatrimonio(Sender: TObject);
  497 +var strColetaAtual,
  498 + strIdUON1,
  499 + strIdUON1a,
  500 + strIdUON2,
  501 + strIdLocal,
  502 + strRetorno : String;
  503 + tstrAuxAP : TStrings;
  504 +begin
  505 + tstrAuxAP := TStrings.Create;
  506 + tstrAuxAP := objCacic.explode(VetorUON2Filtrado[cbIdUnidOrganizacionalNivel2.ItemIndex],'#');
  507 + Try
  508 + strIdUON1 := VetorUON1[cbIdUnidOrganizacionalNivel1.ItemIndex].idUON1;
  509 + strIdUON2 := tstrAuxAP[0];
  510 + strIdLocal := tstrAuxAP[1];
  511 + Except
  512 + on E:Exception do
  513 + Begin
  514 + objCacic.writeExceptionLog(E.Message,e.ClassName);
  515 + End;
  516 + end;
  517 +
  518 + tstrAuxAP := objCacic.explode(VetorUON1aFiltrado[cbIdUnidOrganizacionalNivel1a.ItemIndex],'#');
  519 + Try
  520 + strIdUON1a := tstrAuxAP[0];
  521 + Except
  522 + on E:Exception do
  523 + Begin
  524 + objCacic.writeExceptionLog(E.Message,e.ClassName);
  525 + End;
  526 + end;
  527 +
  528 + tstrAuxAP.Free;
  529 + Mensagem('Enviando Informações Coletadas ao Banco de Dados...',false,1);
  530 +
  531 + strFieldsAndValuesToRequest := 'CollectType=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt('col_patr')) ;
  532 +
  533 + strColetaAtual := StringReplace('[IdUsuario]' + frmMapaCacic.strId_usuario + '[/IdUsuario]' +
  534 + '[IdLocal]' + strIdLocal + '[/IdLocal]' +
  535 + '[IdUnidOrganizacionalNivel1]' + strIdUON1 + '[/IdUnidOrganizacionalNivel1]' +
  536 + '[IdUnidOrganizacionalNivel1a]' + strIdUON1A + '[/IdUnidOrganizacionalNivel1a]'+
  537 + '[IdUnidOrganizacionalNivel2]' + strIdUON2 + '[/IdUnidOrganizacionalNivel2]' +
  538 + '[TeLocalizacaoComplementar]' + edTeLocalizacaoComplementar.Text + '[/TeLocalizacaoComplementar]' +
  539 + '[TeInfoPatrimonio1]' + edTeInfoPatrimonio1.Text + '[/TeInfoPatrimonio1]' +
  540 + '[TeInfoPatrimonio2]' + edTeInfoPatrimonio2.Text + '[/TeInfoPatrimonio2]' +
  541 + '[TeInfoPatrimonio3]' + edTeInfoPatrimonio3.Text + '[/TeInfoPatrimonio3]' +
  542 + '[TeInfoPatrimonio4]' + edTeInfoPatrimonio4.Text + '[/TeInfoPatrimonio4]' +
  543 + '[TeInfoPatrimonio5]' + edTeInfoPatrimonio5.Text + '[/TeInfoPatrimonio5]' +
  544 + '[TeInfoPatrimonio6]' + edTeInfoPatrimonio6.Text + '[/TeInfoPatrimonio6]',',','[[COMMA]]',[rfReplaceAll]);
  545 +
  546 + strFieldsAndValuesToRequest := strFieldsAndValuesToRequest + ',col_patr=' + objCacic.replaceInvalidHTTPChars(objCacic.enCrypt(strColetaAtual));
  547 +
  548 + strRetorno := Comm(objCacic.getWebManagerAddress + objCacic.getWebServicesFolderName +'gercols/set/collects', strFieldsAndValuesToRequest,objCacic.getLocalFolderName);
  549 + objCacic.setBoolCipher(not objCacic.isInDebugMode);
  550 +
  551 + if (strRetorno = '0') then
  552 + Mensagem('ATENÇÃO: PROBLEMAS NO ENVIO DAS INFORMAÇÕES COLETADAS AO BANCO DE DADOS...',true,1)
  553 + else
  554 + Begin
  555 + Mensagem('Salvando Informações Coletadas em Base Local...',false,1);
  556 + objCacic.setValueToFile('Collects','Patrimonio_Last' , objCacic.enCrypt(strColetaAtual), strGerColsInfFileName);
  557 +
  558 + objCacic.setValueRegistryKey('HKEY_LOCAL_MACHINE\SOFTWARE\Dataprev\Patrimonio\te_info_patrimonio1', edTeInfoPatrimonio1.Text);
  559 + objCacic.setValueRegistryKey('HKEY_LOCAL_MACHINE\SOFTWARE\Dataprev\Patrimonio\te_info_patrimonio4', edTeInfoPatrimonio4.Text);
  560 + End;
  561 + objCacic.writeDebugLog('AtualizaPatrimonio: Dados Enviados ao Servidor!');
  562 + Application.ProcessMessages;
  563 +
  564 + Finalizar(true);
  565 +end;
  566 +
  567 +procedure TfrmMapaCacic.MontaInterface;
  568 +var strConfigsPatrimonioInterface : String;
  569 +Begin
  570 + btCombosUpdate.Enabled := false;
  571 +
  572 + Mensagem('Montando Interface para Coleta de Informações...',false,1);
  573 +
  574 + strConfigsPatrimonioInterface := objCacic.deCrypt( objCacic.getValueFromFile('Configs','Patrimonio_Interface',strGerColsInfFileName));
  575 +
  576 + lbEtiqueta1.Caption := objCacic.getValueFromTags('te_etiqueta1', strConfigsPatrimonioInterface);
  577 + lbEtiqueta1.Visible := true;
  578 + cbIdUnidOrganizacionalNivel1.Hint := objCacic.getValueFromTags('te_help_etiqueta1', strConfigsPatrimonioInterface);
  579 +
  580 + lbEtiqueta1a.Caption := objCacic.getValueFromTags('te_etiqueta1a', strConfigsPatrimonioInterface);
  581 + lbEtiqueta1a.Visible := true;
  582 + cbIdUnidOrganizacionalNivel1a.Hint := objCacic.getValueFromTags('te_help_etiqueta1a', strConfigsPatrimonioInterface);
  583 +
  584 + lbEtiqueta2.Caption := objCacic.getValueFromTags('te_etiqueta2', strConfigsPatrimonioInterface);
  585 + lbEtiqueta2.Visible := true;
  586 + cbIdUnidOrganizacionalNivel2.Hint := objCacic.getValueFromTags('te_help_etiqueta2', strConfigsPatrimonioInterface);
  587 +
  588 + lbEtiqueta3.Caption := objCacic.getValueFromTags('te_etiqueta3', strConfigsPatrimonioInterface);
  589 + lbEtiqueta3.Visible := true;
  590 + edTeLocalizacaoComplementar.Text := strTeLocalizacaoComplementar;
  591 +
  592 + objCacic.writeDebugLog('MontaInterface: in_exibir_etiqueta4 -> "'+objCacic.getValueFromTags('in_exibir_etiqueta4', strConfigsPatrimonioInterface)+'"');
  593 + if (trim(objCacic.getValueFromTags('in_exibir_etiqueta4', strConfigsPatrimonioInterface)) = 'S') then
  594 + begin
  595 + lbEtiqueta4.Caption := objCacic.getValueFromTags('te_etiqueta4', strConfigsPatrimonioInterface);
  596 + lbEtiqueta4.Visible := true;
  597 + edTeInfoPatrimonio1.Hint := objCacic.getValueFromTags('te_help_etiqueta4', strConfigsPatrimonioInterface);
  598 + edTeInfoPatrimonio1.Text := strTeInfoPatrimonio1;
  599 + edTeInfoPatrimonio1.visible := True;
  600 + end;
  601 +
  602 + objCacic.writeDebugLog('MontaInterface: in_exibir_etiqueta5 -> "'+objCacic.getValueFromTags('in_exibir_etiqueta5', strConfigsPatrimonioInterface)+'"');
  603 + if (trim(objCacic.getValueFromTags('in_exibir_etiqueta5', strConfigsPatrimonioInterface)) = 'S') then
  604 + begin
  605 + lbEtiqueta5.Caption := objCacic.getValueFromTags('te_etiqueta5', strConfigsPatrimonioInterface);
  606 + lbEtiqueta5.Visible := true;
  607 + edTeInfoPatrimonio2.Hint := objCacic.getValueFromTags('te_help_etiqueta5', strConfigsPatrimonioInterface);
  608 + edTeInfoPatrimonio2.Text := strTeInfoPatrimonio2;
  609 + edTeInfoPatrimonio2.visible := True;
  610 + end;
  611 +
  612 + objCacic.writeDebugLog('MontaInterface: in_exibir_etiqueta6 -> "'+objCacic.getValueFromTags('in_exibir_etiqueta6', strConfigsPatrimonioInterface)+'"');
  613 + if (trim(objCacic.getValueFromTags('in_exibir_etiqueta6', strConfigsPatrimonioInterface)) = 'S') then
  614 + begin
  615 + lbEtiqueta6.Caption := objCacic.getValueFromTags('te_etiqueta6', strConfigsPatrimonioInterface);
  616 + lbEtiqueta6.Visible := true;
  617 + edTeInfoPatrimonio3.Hint := objCacic.getValueFromTags('te_help_etiqueta6', strConfigsPatrimonioInterface);
  618 + edTeInfoPatrimonio3.Text := strTeInfoPatrimonio3;
  619 + edTeInfoPatrimonio3.visible := True;
  620 + end;
  621 +
  622 + objCacic.writeDebugLog('MontaInterface: in_exibir_etiqueta7 -> "'+objCacic.getValueFromTags('in_exibir_etiqueta7', strConfigsPatrimonioInterface)+'"');
  623 + if (trim(objCacic.getValueFromTags('in_exibir_etiqueta7', strConfigsPatrimonioInterface)) = 'S') then
  624 + begin
  625 + lbEtiqueta7.Caption := objCacic.getValueFromTags('te_etiqueta7', strConfigsPatrimonioInterface);
  626 + lbEtiqueta7.Visible := true;
  627 + edTeInfoPatrimonio4.Hint := objCacic.getValueFromTags('te_help_etiqueta7', strConfigsPatrimonioInterface);
  628 + edTeInfoPatrimonio4.Text := strTeInfoPatrimonio4;
  629 + edTeInfoPatrimonio4.visible := True;
  630 + end;
  631 +
  632 + objCacic.writeDebugLog('MontaInterface: in_exibir_etiqueta8 -> "'+objCacic.getValueFromTags('in_exibir_etiqueta8', strConfigsPatrimonioInterface)+'"');
  633 + if (trim(objCacic.getValueFromTags('in_exibir_etiqueta8', strConfigsPatrimonioInterface)) = 'S') then
  634 + begin
  635 + lbEtiqueta8.Caption := objCacic.getValueFromTags('te_etiqueta8', strConfigsPatrimonioInterface);
  636 + lbEtiqueta8.Visible := true;
  637 + edTeInfoPatrimonio5.Hint := objCacic.getValueFromTags('te_help_etiqueta8', strConfigsPatrimonioInterface);
  638 + edTeInfoPatrimonio5.Text := strTeInfoPatrimonio5;
  639 + edTeInfoPatrimonio5.visible := True;
  640 + end;
  641 +
  642 + objCacic.writeDebugLog('MontaInterface: in_exibir_etiqueta9 -> "'+objCacic.getValueFromTags('in_exibir_etiqueta9', strConfigsPatrimonioInterface)+'"');
  643 + if (trim(objCacic.getValueFromTags('in_exibir_etiqueta9', strConfigsPatrimonioInterface)) = 'S') then
  644 + begin
  645 + lbEtiqueta9.Caption := objCacic.getValueFromTags('te_etiqueta9', strConfigsPatrimonioInterface);
  646 + lbEtiqueta9.Visible := true;
  647 + edTeInfoPatrimonio6.Hint := objCacic.getValueFromTags('te_help_etiqueta9', strConfigsPatrimonioInterface);
  648 + edTeInfoPatrimonio6.Text := strTeInfoPatrimonio6;
  649 + edTeInfoPatrimonio6.visible := True;
  650 + end;
  651 +
  652 + Mensagem('',false,1);
  653 + btGravarInformacoes.Visible := true;
  654 + btCombosUpdate.Enabled := true;
  655 +
  656 + cbIdUnidOrganizacionalNivel1.Enabled := true;
  657 + cbIdUnidOrganizacionalNivel1.SetFocus;
  658 +
  659 + Application.ProcessMessages;
  660 +end;
  661 +
  662 +procedure TfrmMapaCacic.FormClose(Sender: TObject; var Action: TCloseAction);
  663 +begin
  664 + Action := caNone;
  665 + objCacic.writeDebugLog('FormClose: ' + Sender.ClassName);
  666 + Finalizar(true);
  667 +end;
  668 +
  669 +procedure TfrmMapaCacic.CriaFormSenha(Sender: TObject);
  670 +begin
  671 + Application.CreateForm(TfrmAcesso, frmAcesso);
  672 +end;
  673 +
  674 +procedure TfrmMapaCacic.mapa;
  675 +begin
  676 + Try
  677 + MontaInterface;
  678 + MontaCombos;
  679 + RecuperaValoresAnteriores;
  680 + Except
  681 + on E:Exception do
  682 + Begin
  683 + objCacic.writeExceptionLog(E.Message,e.ClassName);
  684 + End;
  685 + End;
  686 +End;
  687 +function TfrmMapaCacic.getConfigs : String;
  688 +Begin
  689 + btCombosUpdate.Enabled := false;
  690 +
  691 + Result := Comm(objCacic.getWebManagerAddress + objCacic.getWebServicesFolderName + 'get/config', strFieldsAndValuesToRequest,objCacic.getLocalFolderName);
  692 + objCacic.setBoolCipher(not objCacic.isInDebugMode);
  693 +
  694 + objCacic.writeDebugLog('FormActivate: Retorno de getConfigs: "'+Result+'"');
  695 +
  696 + if (Result <> '0') then
  697 + Begin
  698 + Mensagem('Comunicação Efetuada com Sucesso! Salvando as Configurações Obtidas...',false,1);
  699 + objCacic.setValueToFile('Configs' ,'Patrimonio_Combos' , objCacic.getValueFromTags('Configs_Patrimonio_Combos' , Result), strGerColsInfFileName);
  700 + objCacic.setValueToFile('Configs' ,'Patrimonio_Interface' , objCacic.getValueFromTags('Configs_Patrimonio_Interface', Result), strGerColsInfFileName);
  701 + objCacic.setValueToFile('Collects','Patrimonio_Last' , objCacic.getValueFromTags('Collects_Patrimonio_Last' , Result), strGerColsInfFileName);
  702 + End;
  703 + btCombosUpdate.Enabled := true;
  704 +End;
  705 +
  706 +procedure TfrmMapaCacic.FormCreate(Sender: TObject);
  707 +begin
  708 + Try
  709 + strFrmAtual := 'Principal';
  710 + objCacic := TCACIC.Create();
  711 +
  712 + objCacic.setBoolCipher(true);
  713 + objCacic.setLocalFolderName('Cacic');
  714 + objCacic.setWebServicesFolderName('ws/');
  715 +
  716 + if IsUserAnAdmin then
  717 + Begin
  718 + strChkSisInfFileName := objCacic.getWinDir + 'chksis.inf';
  719 +
  720 + Mensagem('Caminho local para a aplicação CACIC: "'+objCacic.GetValueFromFile('Configs','LocalFolderName',strChkSisInfFileName)+'"');
  721 + if not (objCacic.GetValueFromFile('Configs','LocalFolderName',strChkSisInfFileName) = '') then
  722 + Begin
  723 +
  724 + objCacic.setLocalFolderName(objCacic.GetValueFromFile('Configs','LocalFolderName',strChkSisInfFileName));
  725 + objCacic.setWebServicesFolderName(objCacic.GetValueFromFile('Configs','WebServicesFolderName', strChkSisInfFileName));
  726 + objCacic.setWebManagerAddress(objCacic.GetValueFromFile('Configs','WebManagerAddress', strChkSisInfFileName));
  727 +
  728 + strGerColsInfFileName := objCacic.getLocalFolderName + 'GerCols.inf';
  729 +
  730 + // A existência e bloqueio do arquivo abaixo evitará que o Agente Principal entre em ação
  731 + AssignFile(textFileAguarde,objCacic.getLocalFolderName + '\temp\aguarde_MAPACACIC.txt'); {Associa o arquivo a uma variável do tipo TextFile}
  732 + {$IOChecks off}
  733 + Reset(textFileAguarde); {Abre o arquivo texto}
  734 + {$IOChecks on}
  735 + if (IOResult <> 0) then // Arquivo não existe, será recriado.
  736 + Rewrite (textFileAguarde);
  737 +
  738 + Append(textFileAguarde);
  739 + Writeln(textFileAguarde,'Apenas um pseudo-cookie para o Agente Principal esperar o término de MapaCACIC');
  740 + Append(textFileAguarde);
  741 +
  742 + frmMapaCacic.edWebManagerAddress.Caption := objCacic.GetValueFromFile('Configs','WebManagerAddress', strChkSisInfFileName);
  743 +
  744 + frmMapaCacic.lbMensagens.Caption := 'Entrada de Dados para Autenticação no Módulo Gerente WEB Cacic';
  745 + objCacic.writeDebugLog('FormActivate: Versão do MapaCacic...: ' + pnVersao.Caption);
  746 + objCacic.writeDebugLog('FormActivate: Hash-Code do MapaCacic: ' + objCacic.getFileHash(ParamStr(0)));
  747 +
  748 + // Acessar...
  749 + CriaFormSenha(nil);
  750 + frmAcesso.ShowModal;
  751 +
  752 + Application.ProcessMessages;
  753 + if boolAcessoOK then
  754 + Begin
  755 + Visible := true;
  756 + Height := 575;
  757 + Width := 800;
  758 + WindowState := wsNormal;
  759 + Position := poScreenCenter;
  760 +
  761 + pnMessageBox.Visible := true;
  762 + Mensagem('Efetuando Comunicação com o Módulo Gerente WEB em "'+objCacic.GetValueFromFile('Configs','WebManagerAddress', strChkSisInfFileName)+'"...',false,1);
  763 + frmAcesso.Free;
  764 +
  765 + // Povoamento com dados de configurações da interface patrimonial
  766 + // Solicita ao servidor as configurações para a Coleta de Informações de Patrimônio
  767 + strFieldsAndValuesToRequest := 'id_usuario=' + objCacic.replaceInvalidHTTPChars( objCacic.enCrypt(frmMapaCacic.strId_usuario));
  768 +
  769 + objCacic.writeDebugLog('FormActivate: Requisitando informações de patrimônio da estação...');
  770 +
  771 + if (getConfigs <> '0') then
  772 + mapa
  773 + else
  774 + Sair;
  775 + End;
  776 + End
  777 + else
  778 + Begin
  779 + frmMapaCacic.boolAcessoOK := false;
  780 + MessageDLG(#13#10+'Atenção! É necessário reinstalar o CACIC nesta estação.' + #13#10 + #13#10 +
  781 + 'A estrutura encontra-se corrompida.' + #13#10,mtError,[mbOK],0);
  782 + Application.ProcessMessages;
  783 + frmMapaCacic.Finalizar(false);
  784 + End;
  785 + End
  786 + else
  787 + Begin // Se NT/2000/XP/...
  788 + MessageDLG(#13#10+'ATENÇÃO! Essa aplicação requer execução com nível administrativo.',mtError,[mbOK],0);
  789 + objCacic.writeDailyLog('SEM PRIVILÉGIOS: Necessário ser administrador "local" ou de Domínio!');
  790 + Sair;
  791 + End;
  792 + Finally
  793 + End;
  794 +end;
  795 +
  796 +procedure TfrmMapaCacic.cbIdUnidOrganizacionalNivel1Click(
  797 + Sender: TObject);
  798 +begin
  799 + objCacic.writeDebugLog('cbIdUnidOrganizacionalNivel1Click: Click');
  800 +end;
  801 +
  802 +procedure TfrmMapaCacic.FormActivate(Sender: TObject);
  803 +begin
  804 + pnVersao.Caption := 'Versão: ' + objCacic.getVersionInfo(ParamStr(0));
  805 + strFrmAtual := 'Principal';
  806 +end;
  807 +
  808 +procedure TfrmMapaCacic.btCombosUpdateClick(Sender: TObject);
  809 +begin
  810 + cbIdUnidOrganizacionalNivel1.Enabled := false;
  811 + cbIdUnidOrganizacionalNivel1a.Enabled := false;
  812 + cbIdUnidOrganizacionalNivel2.Enabled := false;
  813 +
  814 + getConfigs;
  815 + MontaInterface;
  816 + MontaCombos;
  817 + RecuperaValoresAnteriores;
  818 +end;
  819 +
  820 +procedure TfrmMapaCacic.timerMessageShowTimeTimer(Sender: TObject);
  821 +begin
  822 + timerMessageShowTime.Enabled := false;
  823 + timerMessageShowTime.Interval := 0;
  824 + strShowOrHide := 'Hide';
  825 + timerMessageBoxShowOrHide.Enabled := true;
  826 +end;
  827 +
  828 +procedure TfrmMapaCacic.cbIdUnidOrganizacionalNivel1DrawItem(
  829 + Control: TWinControl; Index: Integer; Rect: TRect;
  830 + State: TOwnerDrawState);
  831 +var sText : String;
  832 +begin
  833 + sText := cbIdUnidOrganizacionalNivel1.Items[index];
  834 + cbIdUnidOrganizacionalNivel1.Height := 30;
  835 + cbIdUnidOrganizacionalNivel1.Canvas.FillRect(Rect);
  836 + DrawText(cbIdUnidOrganizacionalNivel1.Canvas.Handle,PChar(sText),Length(sText),Rect,DT_VCENTER + DT_SINGLELINE + DT_CENTER);
  837 +end;
  838 +
  839 +procedure TfrmMapaCacic.cbIdUnidOrganizacionalNivel1aDrawItem(
  840 + Control: TWinControl; Index: Integer; Rect: TRect;
  841 + State: TOwnerDrawState);
  842 +var sText : String;
  843 +begin
  844 + sText := cbIdUnidOrganizacionalNivel1a.Items[index];
  845 + cbIdUnidOrganizacionalNivel1a.Height := 30;
  846 + cbIdUnidOrganizacionalNivel1a.Canvas.FillRect(Rect);
  847 + DrawText(cbIdUnidOrganizacionalNivel1a.Canvas.Handle,PChar(sText),Length(sText),Rect,DT_VCENTER + DT_SINGLELINE + DT_CENTER);
  848 +end;
  849 +
  850 +procedure TfrmMapaCacic.cbIdUnidOrganizacionalNivel2DrawItem(
  851 + Control: TWinControl; Index: Integer; Rect: TRect;
  852 + State: TOwnerDrawState);
  853 +var sText : String;
  854 +begin
  855 + sText := cbIdUnidOrganizacionalNivel2.Items[index];
  856 + cbIdUnidOrganizacionalNivel2.Height := 30;
  857 + cbIdUnidOrganizacionalNivel2.Canvas.FillRect(Rect);
  858 + DrawText(cbIdUnidOrganizacionalNivel2.Canvas.Handle,PChar(sText),Length(sText),Rect,DT_VCENTER + DT_SINGLELINE + DT_CENTER);
  859 +end;
  860 +
  861 +procedure TfrmMapaCacic.timerMessageBoxShowOrHideTimer(Sender: TObject);
  862 +begin
  863 + if (strShowOrHide = 'Show') then
  864 + if (strFrmAtual = 'Acesso') then
  865 + frmAcesso.pnMessageBox.Height := frmAcesso.pnMessageBox.Height + 1
  866 + else
  867 + frmMapaCacic.pnMessageBox.Height := frmMapaCacic.pnMessageBox.Height + 1
  868 + else
  869 + if (strFrmAtual = 'Acesso') then
  870 + frmAcesso.pnMessageBox.Height := frmAcesso.pnMessageBox.Height - 1
  871 + else
  872 + frmMapaCacic.pnMessageBox.Height := frmMapaCacic.pnMessageBox.Height - 1;
  873 +
  874 + if (strFrmAtual = 'Acesso') and (frmAcesso.pnMessageBox.Height = 0) or
  875 + (strFrmAtual = 'Acesso') and (frmAcesso.pnMessageBox.Height = 45) or
  876 + (strFrmAtual = 'Principal') and (frmMapaCacic.pnMessageBox.Height = 0) or
  877 + (strFrmAtual = 'Principal') and (frmMapaCacic.pnMessageBox.Height = 45) then
  878 + Begin
  879 + timerMessageBoxShowOrHide.Enabled := false;
  880 + if timerMessageShowTime.Interval > 0 then
  881 + timerMessageShowTime.Enabled := true;
  882 + End;
  883 +end;
  884 +
  885 +end.
... ...