<?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; API</title>
	<atom:link href="http://www.initialize.com.br/category/api/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>Lendo arquivos XML no NetExpress 3.1 com MSXML</title>
		<link>http://www.initialize.com.br/2009/10/lendo-arquivos-xml-no-netexpress-31-com-msxml/</link>
		<comments>http://www.initialize.com.br/2009/10/lendo-arquivos-xml-no-netexpress-31-com-msxml/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 16:56:45 +0000</pubDate>
		<dc:creator>LeX</dc:creator>
		
		<category><![CDATA[API]]></category>

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

		<category><![CDATA[NF-e]]></category>

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

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

		<guid isPermaLink="false">http://www.initialize.com.br/?p=61</guid>
		<description><![CDATA[
Olá companheiros !
Depois de um longo tempo sem atualizações, trouxe mais uma dica bacana para os amigos que como eu, estão sofrendo com a NF-e no NetExpress.
Utilizo o Uninfe para realizar o envio e retorno das notas e sempre tratei os arquivos de retorno no NetExpress com o INSPECT. Hoje porém,  me deparei com um [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.initialize.com.br/wp-content/uploads/2009/10/nfe.jpg"><img class="aligncenter size-medium wp-image-66" title="nfe" src="http://www.initialize.com.br/wp-content/uploads/2009/10/nfe-300x290.jpg" alt="nfe" width="300" height="290" /></a></p>
<p>Olá companheiros !</p>
<p><span style="background-color: #ffffff;">Depois de um longo tempo sem atualizações, trouxe mais uma dica bacana para os amigos que como eu, estão sofrendo com a NF-e no NetExpress.</span></p>
<p><span style="background-color: #ffffff;">Utilizo o <a title="Uninfe" href="http://www.unimake.com.br/uninfe/" target="_blank">Uninfe</a> para realizar o envio e retorno das notas e sempre tratei os arquivos de retorno no NetExpress com o INSPECT. Hoje porém,  me deparei com um problema mais sério, ler um XML de uma NF-e inteira e importar as informações para o meu sistema. Mais de 300 TAGS&#8217;s com INSPECT complicaria um pouco, certo ?</span></p>
<p><span style="background-color: #ffffff;">Já encontrei muitos exemplos de leitura de XML com as novas versões do NetExpress, a partir da versão 4 esse controle é nativo da ferramenta, mas e como fica o meu Net 3.1 ? Encontrei <a title="nesse site" href="http://supportline.microfocus.com/examplesandutilities/nesamp.asp" target="_blank">nesse site</a> um demo de leitura do XML e para a minha surpresa, rodou certinho no Net 3.1, dei uma boa olhada para pegar o conceito  e resolvi criar um demo um pouco mais &#8220;didático&#8221;, para que outros também possam utilizar essa ferramenta.</span></p>
<p>Imagine poder chamar um método, passando para ele somente o nome do arquivo XML e retornando um objeto NFE com todos os dados da nota carregados ?</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">invoke wsrXml <span style="color: #ff0000;">&quot;CarregaNfe&quot;</span> <span style="color: #008000; font-weight: bold;">using</span> wsChave returning umaNFe</pre></div></div>

<p>Esse é o meu objetivo, e com essa rotina ele ficou mais próximo de ser alcançado.  =)</p>
<p>Agora chega falatório, vamos a classe.</p>
<p>Para testar, declare a classe wsrXml no seu programa e simplesmente faça a chamada assim:</p>

<div class="wp_syntax"><div class="code"><pre class="cobol" style="font-family:monospace;">invoke wsrXml <span style="color: #ff0000;">&quot;LeXml&quot;</span></pre></div></div>

<p><span style="background-color: #ffffff;">No método &#8220;LeXml&#8221; eu deixei o caminho absoluto do arquivo XML que será aberto, não esqueça de alterar isso também antes de testar.</span></p>
<p><span style="background-color: #ffffff;">Daí pra frente é só animar e ler os comentários no código fonte. Ele vai imprimir na tela todas as TAG&#8217;s e Valores do arquivo XML. Só gostaria de lembrar que esse exemplo foi feito exclusivamente para um XML que tenha uma TAG principal e as suas &#8220;filhas&#8221;. O correto seria utilizar recursividade para poder ler infinitos níveis e valores no XML. Assim que eu tiver novos métodos, prometo atualizar o exemplo.</span></p>
<p><span style="background-color: #ffffff;"><a href="http://www.initialize.com.br/wp-content/uploads/2009/10/testexml_v1.zip">Fazer download do projeto</a> - Ou você pode acessar a área de <a href="http://www.initialize.com.br/downloads/">downloads</a>.</span></p>
<p><span style="background-color: #ffffff;">O projeto foi útil pra você ? Deixe seu comentário para que eu saiba disso. </span></p>
<p><span style="background-color: #ffffff;">Abraço.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.initialize.com.br/2009/10/lendo-arquivos-xml-no-netexpress-31-com-msxml/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>
	</channel>
</rss>

