<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Initialize &#187; Net Express 3.1</title>
	<atom:link href="http://www.initialize.com.br/category/desenvolvimento/net-express-31/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.initialize.com.br</link>
	<description></description>
	<pubDate>Fri, 20 Aug 2010 12:16:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Criando um Record Layout no NetExpress</title>
		<link>http://www.initialize.com.br/2010/08/criando-um-record-layout-no-netexpress/</link>
		<comments>http://www.initialize.com.br/2010/08/criando-um-record-layout-no-netexpress/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 12:16:01 +0000</pubDate>
		<dc:creator>LeX</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dicas]]></category>

		<category><![CDATA[Net Express 3.1]]></category>

		<guid isPermaLink="false">http://www.initialize.com.br/?p=76</guid>
		<description><![CDATA[O trabalho de manutenção de uma tabela no Cobol geralmente é uma tarefa árdua. Conferir valores de cada registro em uma tabela com 100.000, chega a dar um embrulho no estômago com tantos números para olhar e analisar. Mas&#8230;. Existe uma ferramenta do NetExpress que dá uma mãozinha nessa hora, o Record Layout.
Abaixo descrevo o passo-a-passo [...]]]></description>
			<content:encoded><![CDATA[<p>O trabalho de manutenção de uma tabela no Cobol geralmente é uma tarefa árdua. Conferir valores de cada registro em uma tabela com 100.000, chega a dar um embrulho no estômago com tantos números para olhar e analisar. Mas&#8230;. Existe uma ferramenta do NetExpress que dá uma mãozinha nessa hora, o <strong>Record Layout</strong>.</p>
<p>Abaixo descrevo o passo-a-passo para a geração de um Record Layout no NetExpress 3.1.</p>
<p>1º Passo: Vá em File &gt; New &gt; Record Layout</p>
<p><div class="wp-caption aligncenter" style="width: 309px"><img title="Passo1" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso1.png" alt="Passo 1" width="299" height="252" /><p class="wp-caption-text">Passo 1</p></div></p>
<p>2º Passo: Encontre o arquivo .IDY do seu programa que contém o COPY com a FD do arquivo ( a FD precisa estar dentro de um COPY separado ).</p>
<p><div class="wp-caption aligncenter" style="width: 410px"><img class=" " title="Passo2" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso2.png" alt="Passo 2" width="400" height="282" /><p class="wp-caption-text">Passo 2</p></div></p>
<p>3º Passo: Clique em Avançar e Concluir.</p>
<p><div class="wp-caption aligncenter" style="width: 362px"><img class=" " title="Passo3" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso3.png" alt="Passo 3" width="352" height="272" /><p class="wp-caption-text">Passo 3</p></div></p>
<p>4º Passo: Salve o seu arquivo de Layout ( .STR ).</p>
<p><div class="wp-caption aligncenter" style="width: 410px"><img class=" " title="Passo5" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso5.png" alt="Passo 5" width="400" height="282" /><p class="wp-caption-text">Passo 4</p></div></p>
<p>5º Passo: Abra o seu arquivo com os dados ( certifique-se de que a opção &#8220;Open as&#8221; está setada como Data, na parte de baixo dessa tela ).</p>
<p><div class="wp-caption aligncenter" style="width: 410px"><img class=" " title="Passo6" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso6.png" alt="Passo 6" width="400" height="282" /><p class="wp-caption-text">Passo 5</p></div></p>
<p>6º Passo: Vá em File &gt; Data Tools &gt; Load Record Layout &gt; Selecione o arquivo .STR que foi salvo no 4º passo.</p>
<p><div class="wp-caption aligncenter" style="width: 567px"><img class=" " title="Passo6" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso7.png" alt="Passo 6" width="557" height="353" /><p class="wp-caption-text">Passo 6</p></div></p>
<p>E pronto, do lado esquerdo você terá os seus dados e ao lado direito vão estar as informações de cada registro separadas.</p>
<p><div class="wp-caption aligncenter" style="width: 738px"><img class=" " title="Passo 7" src="http://www.initialize.com.br/wp-content/uploads/2010/08/tutpasso8.png" alt="Passo 7" width="728" height="453" /><p class="wp-caption-text">Passo 7</p></div></p>
<p>Abraços e até mais.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.initialize.com.br/2010/08/criando-um-record-layout-no-netexpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ListView &#8211; O caminho das pedras &#8211; Parte 1</title>
		<link>http://www.initialize.com.br/2009/08/listview-o-caminho-das-pedras-parte-1/</link>
		<comments>http://www.initialize.com.br/2009/08/listview-o-caminho-das-pedras-parte-1/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 12:31:02 +0000</pubDate>
		<dc:creator>LeX</dc:creator>
		
		<category><![CDATA[Componentes]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dialog System]]></category>

		<category><![CDATA[Dicas]]></category>

		<category><![CDATA[Net Express 3.1]]></category>

		<category><![CDATA[OO]]></category>

		<category><![CDATA[dialogsystem]]></category>

		<category><![CDATA[listview]]></category>

		<category><![CDATA[netexpress]]></category>

		<guid isPermaLink="false">http://www.initialize.com.br/2009/08/listview-o-caminho-das-pedras-parte-1/</guid>
		<description><![CDATA[ 
Para mim sempre foi muito penoso trabalhar com o ListView no NetExpress. Devem existir pelo menos 20 pastas com exemplos diferentes no meu PC, e todos ajudaram muito, cada um com aquela função que se propôs a ensinar. Porém, é difícil achar um exemplo que mostre de forma simples, todos os passos para utilização [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.initialize.com.br/wp-content/uploads/2009/08/listview.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="ListView" border="0" alt="ListView" src="http://www.initialize.com.br/wp-content/uploads/2009/08/listview-thumb.jpg" width="244" height="202" /></a> </p>
<p>Para mim sempre foi muito penoso trabalhar com o ListView no NetExpress. Devem existir pelo menos 20 pastas com exemplos diferentes no meu PC, e todos ajudaram muito, cada um com aquela função que se propôs a ensinar. Porém, é difícil achar um exemplo que mostre de forma simples, todos os passos para utilização desse componente ( criar, inserir, alterar, excluir e assim por diante ).</p>
<p>Pensando nisso, resolvi criar uma aplicação demo simples, com a proposta de ensinar o caminho das pedras, para aqueles que estão iniciando a utilização, de uma maneira prática.</p>
<p>Estou disponibilizando hoje a primeira versão dessa aplicação e espero que os todos possam contribuir ao longo do tempo, para que sejam adicionadas novas funções, e assim teremos um guia de referência prático para utilização do tão temido ListView.</p>
<p>Algumas funções que estão nessa primeira versão:</p>
<p>1. Criação de 2 ListView’s na mesma tela utilizando apenas 1 controlador. </p>
<p>2. Adicionando colunas.</p>
<p>3. Criando novas linhas.</p>
<p>4. Pegando a linha selecionada.</p>
<p>5. Pegando a linha selecionada com duplo clique.</p>
<p>6. Adicionando check-boxes.</p>
<p>7. Pegando as informações de quais check-boxes foram selecionadas.</p>
<p>Esse demo foi criado utilizando o programa controlador único, que eu já havia disponibilizado no site do <a href="http://www.clubecobol.com.br/arquivos/indice.php" target="_blank">ClubeCobol</a>, semana passada. Os demais objetos utilizados, são os objetos padrão do NetExpress ( ListView e ListViewItem ). Ou seja, qualquer um com NetExpress vai poder rodar a aplicação.</p>
<p>Ainda existem muitos métodos que podem ser adicionados, e se tudo der certo, ainda teremos as partes 2, 3, 4 5 desse artigo, publicando novas funções ao projeto.</p>
<p>Para fazer o download da aplicação, <a href="http://www.initialize.com.br/wp-content/uploads/2009/08/demolist-v01.zip" target="_blank">clique aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.initialize.com.br/2009/08/listview-o-caminho-das-pedras-parte-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Criando uma caixa de mensagem com a API do Windows em NetExpress 3.1</title>
		<link>http://www.initialize.com.br/2009/06/criando-uma-caixa-de-mensagem-com-a-api-do-windows/</link>
		<comments>http://www.initialize.com.br/2009/06/criando-uma-caixa-de-mensagem-com-a-api-do-windows/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 17:24:09 +0000</pubDate>
		<dc:creator>LeX</dc:creator>
		
		<category><![CDATA[API]]></category>

		<category><![CDATA[Dicas]]></category>

		<category><![CDATA[Net Express 3.1]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.initialize.com.br/?p=38</guid>
		<description><![CDATA[
Quem usa DialogSystem já se acostumou a criar as caixas de mensagens e chamar direto pelo próprio Dialog. Já tinha visto alguns exemplos de criação das MessageBoxes dinamicamente, mas sempre achei trabalhoso demais.
Não faz muito tempo, comecei um projeto novo, que iria utilizar muitas dessas caixas, tanto de questionamento quanto de avisos para o usuário, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-40" title="yesorno" src="http://www.initialize.com.br/wp-content/uploads/2009/06/yesorno.png" alt="yesorno" width="185" height="119" /></p>
<p>Quem usa DialogSystem já se acostumou a criar as caixas de mensagens e chamar direto pelo próprio Dialog. Já tinha visto alguns exemplos de criação das MessageBoxes dinamicamente, mas sempre achei trabalhoso demais.</p>
<p>Não faz muito tempo, comecei um projeto novo, que iria utilizar muitas dessas caixas, tanto de questionamento quanto de avisos para o usuário, resolvi então pesquisar um pouco mais sobre o assunto e colocá-lo em prática.</p>
<p>A idéia era simples: Criar uma classe para tratar essas mensagens, que deixasse a chamada do método mais simples possível.</p>
<p>E não é que deu certo ?</p>
<p>Agora para chamar uma MessageBox só preciso disso:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">invoke wsrMsg <span style="color: #ff0000;">&quot;Question&quot;</span> <span style="color: #008000; font-weight: bold;">using</span> z<span style="color: #ff0000;">&quot;Confirma exclusão ?&quot;</span> returning wsResult</pre></div></div>

<p>e para avisos, ainda mais simples:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">invoke wsrMsg <span style="color: #ff0000;">&quot;Warning&quot;</span> <span style="color: #008000; font-weight: bold;">using</span> z<span style="color: #ff0000;">&quot;Data inválida&quot;</span></pre></div></div>

<p>Então vamos lá, o que é preciso para que você possa cria a sua classe também.</p>
<p>- No inicio do programa, declare o windows.cpy.<br />
- Em special-names: call-convention 66 is WAPI.</p>
<p>E enfim, o método:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">      *&gt;<span style="color: #000066;">================================================================</span>
      *&gt; Mensagem Sim<span style="color: #000066;"> / </span>Não
      *&gt;<span style="color: #000066;">================================================================</span>
       method-id<span style="color: #000066;">.</span> <span style="color: #ff0000;">&quot;Question&quot;</span><span style="color: #000066;">.</span>
&nbsp;
       local-storage <span style="color: #000080; font-weight: bold;">section</span><span style="color: #000066;">.</span>
&nbsp;
       <span style="color: #993399;">77</span> lsHwnd <span style="color: #008000; font-weight: bold;">pic</span> <span style="color: #993399;">9</span><span style="color: #339933;">&#40;</span><span style="color: #993399;">09</span><span style="color: #339933;">&#41;</span> comp-<span style="color: #993399;">5.</span>
       <span style="color: #993399;">77</span> lsMsg <span style="color: #008000; font-weight: bold;">pic</span> x<span style="color: #339933;">&#40;</span><span style="color: #993399;">255</span><span style="color: #339933;">&#41;</span><span style="color: #000066;">.</span>
       <span style="color: #993399;">77</span> lsCaption <span style="color: #008000; font-weight: bold;">pic</span> x<span style="color: #339933;">&#40;</span><span style="color: #993399;">255</span><span style="color: #339933;">&#41;</span><span style="color: #000066;">.</span>
       <span style="color: #993399;">77</span> lsuType UINT<span style="color: #000066;">.</span>
       <span style="color: #993399;">77</span> lsResult LRESULT<span style="color: #000066;">.</span>
&nbsp;
       <span style="color: #008000; font-weight: bold;">linkage</span> <span style="color: #000080; font-weight: bold;">section</span><span style="color: #000066;">.</span>
&nbsp;
       <span style="color: #993399;">77</span> lnkMsg <span style="color: #008000; font-weight: bold;">pic</span> x<span style="color: #339933;">&#40;</span><span style="color: #993399;">255</span><span style="color: #339933;">&#41;</span><span style="color: #000066;">.</span>
       <span style="color: #993399;">77</span> lnkResult <span style="color: #008000; font-weight: bold;">pic</span> <span style="color: #993399;">9</span><span style="color: #339933;">&#40;</span><span style="color: #993399;">09</span><span style="color: #339933;">&#41;</span> comp-<span style="color: #993399;">5.</span>
&nbsp;
       <span style="color: #008000; font-weight: bold;">procedure</span> <span style="color: #008000; font-weight: bold;">division</span> <span style="color: #008000; font-weight: bold;">using</span> lnkMsg returning lnkResult<span style="color: #000066;">.</span>
           // Pega o handle da janela que estiver ativa
           <span style="color: #000000; font-weight: bold;">call</span> WAPI <span style="color: #ff0000;">&quot;GetActiveWindow&quot;</span> returning lsHwnd
&nbsp;
           // <span style="color: #000000; font-weight: bold;">Move</span> o texto e o título da janela
           <span style="color: #000000; font-weight: bold;">move</span> lnkMsg <span style="color: #000000; font-weight: bold;">to</span> lsMSG
           <span style="color: #000000; font-weight: bold;">move</span> z<span style="color: #ff0000;">&quot;Atenção !&quot;</span> <span style="color: #000000; font-weight: bold;">to</span> lsCaption
&nbsp;
           // Seleciona o tipo <span style="color: #008000; font-weight: bold;">de</span> icone que irá aparecer
           <span style="color: #000000; font-weight: bold;">move</span> MB-ICONQUESTION <span style="color: #000000; font-weight: bold;">to</span> lsuType
&nbsp;
           // Seleciona quais botões deverão aparecer
           <span style="color: #000000; font-weight: bold;">add</span> MB-YESNO <span style="color: #000000; font-weight: bold;">to</span> lsuType
&nbsp;
           // Chamando a API
           <span style="color: #000000; font-weight: bold;">call</span> wapi MessageBoxA <span style="color: #008000; font-weight: bold;">using</span> <span style="color: #008000; font-weight: bold;">by</span> <span style="color: #008000; font-weight: bold;">value</span> lsHwnd
                           <span style="color: #008000; font-weight: bold;">by</span> <span style="color: #008000; font-weight: bold;">reference</span> lsMSG
                           <span style="color: #008000; font-weight: bold;">by</span> <span style="color: #008000; font-weight: bold;">reference</span> lsCaption
                           <span style="color: #008000; font-weight: bold;">by</span> <span style="color: #008000; font-weight: bold;">value</span> lsuType
                           returning lsResult
&nbsp;
           <span style="color: #000000; font-weight: bold;">move</span> lsResult <span style="color: #000000; font-weight: bold;">to</span> lnkResult
&nbsp;
       <span style="color: #000000; font-weight: bold;">exit</span> method
       <span style="color: #008000; font-weight: bold;">end</span> method <span style="color: #ff0000;">&quot;Question&quot;</span><span style="color: #000066;">.</span></pre></div></div>

<p>Já tem aí uma receita de bolo bacana pra quem quer começar.  Agradecimentos especiais ao Grande Mestre Jedi <a href="http://netalexpress.blogspot.com/" target="_blank">Alexandre Cortez</a>.</p>
<p>Enjoy..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.initialize.com.br/2009/06/criando-uma-caixa-de-mensagem-com-a-api-do-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Registros em ordem alfabética com a SortedCollection</title>
		<link>http://www.initialize.com.br/2009/04/registros-em-ordem-alfabetica-com-a-sortedcollection/</link>
		<comments>http://www.initialize.com.br/2009/04/registros-em-ordem-alfabetica-com-a-sortedcollection/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:05:22 +0000</pubDate>
		<dc:creator>LeX</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dicas]]></category>

		<category><![CDATA[Net Express 3.1]]></category>

		<guid isPermaLink="false">http://www.initialize.com.br/?p=11</guid>
		<description><![CDATA[
Esse é um problema que muitos programadores cobol, assim como eu, enfrentam ( ou enfrentavam ). Como ordenar uma lista de registros em ordem alfabética, em tempo de execução ? As soluções mais conhecidas são criar um arquivo sort, ou um auxiliar no disco ( e depois apagá-lo ).
Quando você trabalha com banco de dados [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-36 aligncenter" title="Dados bagunçado" src="http://www.initialize.com.br/wp-content/uploads/2009/04/messy-300x225.jpg" alt="Dados bagunçados" width="300" height="225" /></p>
<p>Esse é um problema que muitos programadores cobol, assim como eu, enfrentam ( ou enfrentavam ). Como ordenar uma lista de registros em ordem alfabética, em tempo de execução ? As soluções mais conhecidas são criar um arquivo sort, ou um auxiliar no disco ( e depois apagá-lo ).</p>
<p>Quando você trabalha com banco de dados fica fácil, basta colocar um ORDER BY no seu select, e as informações aparecem do jeitinho certo. Mas imagine que você tem um arquivo indexado, com a seguinte estrutura:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">Clientes
- Código <span style="color: #008000; font-weight: bold;">pic</span> <span style="color: #993399;">9</span><span style="color: #339933;">&#40;</span><span style="color: #993399;">008</span><span style="color: #339933;">&#41;</span><span style="color: #000066;">.</span>  // Primary <span style="color: #008000; font-weight: bold;">key</span>
- Razão Social <span style="color: #008000; font-weight: bold;">pic</span> x<span style="color: #339933;">&#40;</span><span style="color: #993399;">150</span><span style="color: #339933;">&#41;</span><span style="color: #000066;">.</span> // <span style="color: #008000; font-weight: bold;">Alternate</span> <span style="color: #008000; font-weight: bold;">key</span>
- Nome Fantasia <span style="color: #008000; font-weight: bold;">pic</span> x<span style="color: #339933;">&#40;</span><span style="color: #993399;">050</span><span style="color: #339933;">&#41;</span><span style="color: #000066;">.</span></pre></div></div>

<p>E se você precisar listar os clientes, em ordem alfabética, pelo &#8220;Nome Fantasia&#8221; ?</p>
<p><strong>Antes de mais nada, o que é essa tal de SortedCollection ?</strong><br />
SortedCollection é um tipo de coleção onde os registros adicionados são ordenados, bem diferente de uma coleção comum (OrderedCollection), em que os itens adicionados seguem a sequência em que foram criados.</p>
<p>Por exemplo, se você adicionar três itens: João; Pedro; Alexandre, em uma OrderedCollection, no momento da leitura, eles serão retornados exatamente nessa ordem, enquanto que, em uma SortedCollection seria retornado: Alexandre; João; Pedro.</p>
<p>Voltando assunto&#8230;</p>
<p>Vamos ordenar o nosso registro de clientes por &#8220;Nome Fantasia&#8221;. Para isso, declare a classe SortedCollection na sua class-control,  também será necessária a classe CharacterArray, que será usada para armazenar o registro.</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">class-<span style="color: #008000; font-weight: bold;">control</span><span style="color: #000066;">.</span>
  SortedCollection <span style="color: #008000; font-weight: bold;">is</span> <span style="color: #008000; font-weight: bold;">class</span> <span style="color: #ff0000;">&quot;srtdclln&quot;</span>
  CharacterArray <span style="color: #008000; font-weight: bold;">is</span> <span style="color: #008000; font-weight: bold;">class</span> <span style="color: #ff0000;">&quot;chararry&quot;</span></pre></div></div>

<p>Na working, algumas variáveis necessárias:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;"><span style="color: #993399;">77</span> umaListaMat          object <span style="color: #008000; font-weight: bold;">reference</span> <span style="color: #008000; font-weight: bold;">value</span> <span style="color: #008000; font-weight: bold;">null</span><span style="color: #000066;">.</span>
<span style="color: #993399;">77</span> umaString            object <span style="color: #008000; font-weight: bold;">reference</span> <span style="color: #008000; font-weight: bold;">value</span> <span style="color: #008000; font-weight: bold;">null</span><span style="color: #000066;">.</span>
<span style="color: #993399;">77</span> umaColecao           object <span style="color: #008000; font-weight: bold;">reference</span> <span style="color: #008000; font-weight: bold;">value</span> <span style="color: #008000; font-weight: bold;">null</span><span style="color: #000066;">.</span>
<span style="color: #993399;">77</span> <span style="color: #008000; font-weight: bold;">size</span>                 <span style="color: #008000; font-weight: bold;">pic</span> <span style="color: #993399;">9</span><span style="color: #339933;">&#40;</span><span style="color: #993399;">009</span><span style="color: #339933;">&#41;</span>  comp-<span style="color: #993399;">5</span> <span style="color: #008000; font-weight: bold;">value</span> zeros<span style="color: #000066;">.</span>
<span style="color: #993399;">77</span> indice               <span style="color: #008000; font-weight: bold;">pic</span> <span style="color: #993399;">9</span><span style="color: #339933;">&#40;</span><span style="color: #993399;">009</span><span style="color: #339933;">&#41;</span>  comp-<span style="color: #993399;">5</span> <span style="color: #008000; font-weight: bold;">value</span> zeros<span style="color: #000066;">.</span></pre></div></div>

<p>E ainda na working, um item que merece atenção, o grupo que receberá o nosso registro e que será adicionado a nossa coleção:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;"><span style="color: #993399;">01</span> wlListaMat<span style="color: #000066;">.</span>
  <span style="color: #993399;">05</span> wlFantasia            <span style="color: #008000; font-weight: bold;">pic</span>  x<span style="color: #339933;">&#40;</span><span style="color: #993399;">050</span><span style="color: #339933;">&#41;</span> <span style="color: #008000; font-weight: bold;">value</span> <span style="color: #008000; font-weight: bold;">spaces</span><span style="color: #000066;">.</span>
  <span style="color: #993399;">05</span> wlRazao               <span style="color: #008000; font-weight: bold;">pic</span>  x<span style="color: #339933;">&#40;</span><span style="color: #993399;">150</span><span style="color: #339933;">&#41;</span> <span style="color: #008000; font-weight: bold;">value</span> <span style="color: #008000; font-weight: bold;">spaces</span><span style="color: #000066;">.</span>
  <span style="color: #993399;">05</span> wlCodigo              <span style="color: #008000; font-weight: bold;">pic</span>  <span style="color: #993399;">9</span><span style="color: #339933;">&#40;</span><span style="color: #993399;">008</span><span style="color: #339933;">&#41;</span> <span style="color: #008000; font-weight: bold;">value</span> zeros<span style="color: #000066;">.</span></pre></div></div>

<p>Agora sim, a nossa procedure que irá adicionar os itens na coleção:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">adicionaItens <span style="color: #000080; font-weight: bold;">section</span><span style="color: #000066;">.</span>
&nbsp;
  // Pegamos o tamanho do registro<span style="color: #000066;">,</span> para informar a coleção
  <span style="color: #000000; font-weight: bold;">move</span> <span style="color: #000080;">length</span> <span style="color: #008000; font-weight: bold;">of</span> wlListaMat <span style="color: #000000; font-weight: bold;">to</span> s
&nbsp;
  // Criamos uma instância da coleção<span style="color: #000066;">,</span> com o tamanho correto<span style="color: #000066;">.</span>
  invoke SortedCollection <span style="color: #ff0000;">&quot;ofReferences&quot;</span>
        <span style="color: #008000; font-weight: bold;">using</span> s returning umaListaMat
&nbsp;
  <span style="color: #000000; font-weight: bold;">initialize</span> registro
  <span style="color: #008000; font-weight: bold;">start</span> do registro
  leitura sequencial do registro
  <span style="color: #000000; font-weight: bold;">perform</span> <span style="color: #000000; font-weight: bold;">until</span> fs-<span style="color: #008000; font-weight: bold;">status</span> &amp;gt; <span style="color: #993399;">03</span>
    // Movimentando as variáveis do registro para a lista
    <span style="color: #000000; font-weight: bold;">initialize</span> wlListaMat
    <span style="color: #000000; font-weight: bold;">move</span> reg-codigo    <span style="color: #000000; font-weight: bold;">to</span> wlCodigo
    <span style="color: #000000; font-weight: bold;">move</span> reg-razao     <span style="color: #000000; font-weight: bold;">to</span> wlRazao
    <span style="color: #000000; font-weight: bold;">move</span> reg-fantasia  <span style="color: #000000; font-weight: bold;">to</span> wlFantasia
&nbsp;
    // Criando um objeto <span style="color: #008000; font-weight: bold;">string</span> com os valores da lista para ser adicionado a coleção
    invoke CharacterArray <span style="color: #ff0000;">&quot;withByteLengthValue&quot;</span>
        <span style="color: #008000; font-weight: bold;">using</span> s wlListaMat
        returning umaString
&nbsp;
    // Adicionando o objeto <span style="color: #008000; font-weight: bold;">string</span> na coleção
    invoke umaListaMat <span style="color: #ff0000;">&quot;add&quot;</span> <span style="color: #008000; font-weight: bold;">using</span> umaString
&nbsp;
    leitura sequencial do registro
  end-<span style="color: #000000; font-weight: bold;">perform</span>
<span style="color: #000000; font-weight: bold;">exit</span><span style="color: #000066;">.</span></pre></div></div>

<p>Agora vamos para a leitura da nossa coleção:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">lerColecao <span style="color: #000080; font-weight: bold;">section</span><span style="color: #000066;">.</span>
  // Pegamos o tamanho da coleção
  invoke umaListaMat <span style="color: #ff0000;">&quot;size&quot;</span> returning <span style="color: #008000; font-weight: bold;">size</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">move</span> <span style="color: #993399;">0</span>                  <span style="color: #000000; font-weight: bold;">to</span> indice
  <span style="color: #000000; font-weight: bold;">perform</span> <span style="color: #000000; font-weight: bold;">until</span> indice &amp;gt;<span style="color: #000066;">=</span> <span style="color: #008000; font-weight: bold;">size</span>
    <span style="color: #000000; font-weight: bold;">add</span> <span style="color: #993399;">1</span>              <span style="color: #000000; font-weight: bold;">to</span> indice
&nbsp;
    // Pega o item da coleção <span style="color: #339933;">&#40;</span> retorna um objeto <span style="color: #008000; font-weight: bold;">string</span> <span style="color: #339933;">&#41;</span>
    invoke umaListaMat <span style="color: #ff0000;">&quot;at&quot;</span> <span style="color: #008000; font-weight: bold;">using</span> indice returning umaString
&nbsp;
    // Recupera o texto desse objeto <span style="color: #008000; font-weight: bold;">string</span><span style="color: #000066;">,</span> movendo para a lista
    invoke umaString <span style="color: #ff0000;">&quot;getValue&quot;</span> returning wlListaMat
&nbsp;
    // Pronto<span style="color: #000066;">,</span> aqui as variáveis da lista já estão com os valores ordenados
  end-<span style="color: #000000; font-weight: bold;">perform</span>
&nbsp;
  // Limpando os objetos da memória
  invoke umaListaMat <span style="color: #ff0000;">&quot;finalize&quot;</span> returning umaListaMat
  invoke umaString <span style="color: #ff0000;">&quot;finalize&quot;</span> returning umaString
<span style="color: #000000; font-weight: bold;">exit</span><span style="color: #000066;">.</span></pre></div></div>

<p>Pronto, temos uma coleção carregada, e ordenada corretamente, sem precisar criar nenhum arquivo adicional.</p>
<p>Qualquer dúvida, é só postar nos comentários.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.initialize.com.br/2009/04/registros-em-ordem-alfabetica-com-a-sortedcollection/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

