<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6844937</id><updated>2012-02-16T04:13:47.683-04:00</updated><title type='text'>&amp;#9733 Delphi at Corpore RM &amp;#9733</title><subtitle type='html'>Este blog foi aberto no intuito de trazer informções, dicas e, na medida do possível, material pra todos que desenvolvem no Delphi rotinas para customizações no Corpore RM da RM Sistemas. Portanto, seja bem vindo. A casa é sua.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6844937.post-1784285845102780392</id><published>2009-03-20T08:57:00.000-04:00</published><updated>2009-03-20T08:58:24.738-04:00</updated><title type='text'>Rotínas no RM de manipulação de material no estoque.</title><content type='html'>Se voce usa o RM Núcleus para armazenar notas fiscais e ordens de saída, devolução e entrada de material, eu uso muito estas sentenças aqui para levantar os dados do estoque periódicamente:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;VALOR DO ESTOQUE NO ULTIMO DIA DO MÊS&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;SELECT SUM (ISNULL(R.TOTALMOV,0)) as VALORESTOQUE&lt;br /&gt;from TPRD as P &lt;br /&gt;left outer join TPRDLOC as L ON (P.IDPRD = L.IDPRD)&lt;br /&gt;left outer join TRELSLD as R ON (R.IDPRD = P.IDPRD) &lt;br /&gt;AND R.SALDO = 2  AND R.CODLOC in ('1.001','1.017') &lt;br /&gt;AND R.CODFILIAL = 18 AND R.CODLOC = L.CODLOC &lt;br /&gt;AND R.CODFILIAL = L.CODFILIAL &lt;br /&gt;AND R.DATAMOVIMENTO = (SELECT MAX(DATAMOVIMENTO) FROM TRELSLD A WHERE A.CODFILIAL = R.CODFILIAL &lt;br /&gt;AND A.CODLOC = R.CODLOC AND A.IDPRD = R.IDPRD AND  A.DATAMOVIMENTO &lt;= '02/28/2008' &lt;br /&gt;AND R.SALDO = A.SALDO)AND R.SEQUENCIAL = (SELECT MAX(SEQUENCIAL) FROM TRELSLD B &lt;br /&gt;WHERE B.CODFILIAL = R.CODFILIAL AND B.CODLOC = R.CODLOC AND B.IDPRD = R.IDPRD &lt;br /&gt;AND B.DATAMOVIMENTO = R.DATAMOVIMENTO)&lt;br /&gt;WHERE P.CODTB1FAT =  '0001'&lt;br /&gt;AND P.CODCOLIGADA = 2 &lt;br /&gt;AND P.IDPRD = L.IDPRD&lt;br /&gt;AND L.CODLOC in ('1.001','1.017')&lt;br /&gt;AND L.CODFILIAL =  18&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;VALOR DO MATERIAL MOVIMENTADO NO MES&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;SELECT A.CODTMV, A.STATUS, A.SERIE, A.CODFILIAL, SUM(ISNULL(D.QUANTIDADE,0) * ISNULL(D.PRECOUNITARIO,0)) TOTAL&lt;br /&gt;FROM TMOV A, TITMMOV D, TPRD B &lt;br /&gt;WHERE A.CODCOLIGADA = 2 AND A.DATACANCELAMENTOMOV IS NULL&lt;br /&gt;AND A.CODTMV IN ('2.1.05', '4.1.09') &lt;br /&gt;AND A.DATAEMISSAO &gt;= '02/01/2009' AND A.DATAEMISSAO &lt;= '02/28/2009'&lt;br /&gt;AND D.CODCOLIGADA = A.CODCOLIGADA &lt;br /&gt;AND A.CODLOC in ('1.001','1.017')&lt;br /&gt;AND D.IDMOV = A.IDMOV &lt;br /&gt;AND D.CODCOLIGADA = B.CODCOLIGADA &lt;br /&gt;AND D.IDPRD = B.IDPRD&lt;br /&gt;--AND A.STATUS = 'A'&lt;br /&gt;AND B.TIPO = 'P'&lt;br /&gt;AND A.CODFILIAL = 18&lt;br /&gt;GROUP BY A.CODTMV, A.STATUS, A.SERIE,A.CODFILIAL&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;QUANTIDADE DE MATERIAIS ENTREGUES NO MES&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;SELECT SUM(I.QUANTIDADE) AS MATERIAISENTREGUESNOMES&lt;br /&gt;FROM TMOV M&lt;br /&gt;LEFT OUTER JOIN TITMMOV I ON I.IDMOV = M.IDMOV&lt;br /&gt;LEFT OUTER JOIN TITMMOVRELAC R ON R.IDMOVDESTINO = I.IDMOV AND R.NSEQITMMOVDESTINO = I.NSEQITMMOV&lt;br /&gt;LEFT OUTER JOIN TITMMOV I1 ON I1.IDMOV = R.IDMOVORIGEM AND I1.NSEQITMMOV = R.NSEQITMMOVORIGEM&lt;br /&gt;LEFT OUTER JOIN TMOV O ON O.IDMOV = I1.IDMOV&lt;br /&gt;WHERE M.CODFILIAL = 18 AND M.CODTMV = '1.2.01' &lt;br /&gt;AND M.DATASAIDA &gt;= '2009/03/01'&lt;br /&gt;AND M.DATASAIDA &lt;= '2009/03/30'&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;QUANTIDADE DE MATERIAIS ENTREGUES NO PRAZO MES&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;SELECT SUM(I.QUANTIDADE) AS MATERIAISENTREGUESNOPRAZONOMES&lt;br /&gt;FROM TMOV M&lt;br /&gt;LEFT OUTER JOIN TITMMOV I ON I.IDMOV = M.IDMOV&lt;br /&gt;LEFT OUTER JOIN TITMMOVRELAC R ON R.IDMOVDESTINO = I.IDMOV AND R.NSEQITMMOVDESTINO = I.NSEQITMMOV&lt;br /&gt;LEFT OUTER JOIN TITMMOV I1 ON I1.IDMOV = R.IDMOVORIGEM AND I1.NSEQITMMOV = R.NSEQITMMOVORIGEM&lt;br /&gt;LEFT OUTER JOIN TMOV O ON O.IDMOV = I1.IDMOV&lt;br /&gt;WHERE M.CODFILIAL = 18 AND M.CODTMV = '1.2.01'&lt;br /&gt;AND M.DATASAIDA &gt;= I1.DATAENTREGA&lt;br /&gt;AND I1.DATAENTREGA BETWEEN '06/01/2008' AND '06/30/2008'&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;QUANTIDADE DE MATERIAIS EM ATRAZO&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;SELECT SUM(I.QUANTIDADE) AS MATERIAISENTREGUESEMATRAZO&lt;br /&gt;FROM TMOV M&lt;br /&gt;LEFT OUTER JOIN TITMMOV I ON I.IDMOV = M.IDMOV&lt;br /&gt;LEFT OUTER JOIN TITMMOVRELAC R ON R.IDMOVDESTINO = I.IDMOV AND R.NSEQITMMOVDESTINO = I.NSEQITMMOV&lt;br /&gt;LEFT OUTER JOIN TITMMOV I1 ON I1.IDMOV = R.IDMOVORIGEM AND I1.NSEQITMMOV = R.NSEQITMMOVORIGEM&lt;br /&gt;LEFT OUTER JOIN TMOV O ON O.IDMOV = I1.IDMOV&lt;br /&gt;WHERE M.CODFILIAL = 18 AND M.CODTMV = '1.2.01'&lt;br /&gt;AND M.DATASAIDA &gt;= I1.DATAENTREGA&lt;br /&gt;AND I1.DATAENTREGA BETWEEN '07/01/2008' AND '07/31/2008'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-1784285845102780392?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/1784285845102780392/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=1784285845102780392' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/1784285845102780392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/1784285845102780392'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2009/03/rotinas-no-rm-de-manipulacao-de.html' title='Rotínas no RM de manipulação de material no estoque.'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-1181821933919674809</id><published>2009-03-20T08:43:00.002-04:00</published><updated>2009-03-20T08:44:12.586-04:00</updated><title type='text'>Breve voltarei...</title><content type='html'>Olá pessoal, como eu estou afastado dos projetos do Delphi com o RM, este blog está hibernando. Mas breve trarei novidades..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-1181821933919674809?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/1181821933919674809/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=1181821933919674809' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/1181821933919674809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/1181821933919674809'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2009/03/breve-voltarei.html' title='Breve voltarei...'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-2006676512696228404</id><published>2008-03-24T08:05:00.003-05:00</published><updated>2008-03-24T08:17:50.971-05:00</updated><title type='text'>Inserindo campos de tabelas customizadas no gerador de relatórios do RM</title><content type='html'>&lt;a href="http://bp0.blogger.com/_wwkaXh-0PEU/R-ep9H_LpkI/AAAAAAAAAAo/p-LGQ840aqo/s1600-h/imagem2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_wwkaXh-0PEU/R-ep9H_LpkI/AAAAAAAAAAo/p-LGQ840aqo/s320/imagem2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5181296763894212162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;O Gerador de relatórios do RM, é proprio. Um de seus recursos é você adicionar campos diretamente no relatório no método Arrastar e soltar.&lt;br /&gt;&lt;br /&gt;Os campos das tabelas do RM já estão disponiveis por padrão, mas para inserir tabelas customizadas, não há um local no RM aonde você possa fazer isto. Sendo assim, teremos que fazer tal processo manualmente via sentença SQL. A tabela aonde iremos inserir os dados é a GCAMPOS do RM. e seus campos são os seguintes:&lt;br /&gt;&lt;br /&gt;TABELA&lt;br /&gt;COLUNA&lt;br /&gt;DESCRICAO&lt;br /&gt;RELATORIO&lt;br /&gt;APLICACOES&lt;br /&gt;&lt;br /&gt;O Campo TABELA, o proprio nome já diz tudo: Recebe o nome da tabela que você deseja cadastrar&lt;br /&gt;&lt;br /&gt;COLUNA: É o nome da coluna, caso você coloque um sinal "#" neste campo, o RM interpreta que você quer informar na listagem&lt;br /&gt;dos campos dispóníveis, o nome da tabela&lt;br /&gt;&lt;br /&gt;DESCRICAO: É a descrição do campo. O texto que você colocar aí, vai ser o texto que vai ser exibido lá. Então seja criterioso neste campo&lt;br /&gt;&lt;br /&gt;RELATORIO: Se vai ou não estar disponível para o gerador de relatórios&lt;br /&gt;&lt;br /&gt;APLICACOES: Para quais programas do RM este campo estará disponível para uso. Use as letras referentes a cada programa separadas por ";"&lt;br /&gt;&lt;br /&gt;Agora vamos supor que você tenha uma tabela criada para uma customização sua chamada ZFTLMPARAM que são parametros de uma customização no RM&lt;br /&gt;Fluxus:&lt;br /&gt;&lt;br /&gt;Execute a seguinte sentença:&lt;br /&gt;&lt;br /&gt;insert into GCAMPOS values ('ZFTLMPARAM','SELENCARGO','Seleção de encargos',1,'G;F;T;')&lt;br /&gt;&lt;br /&gt;esta sentença, você insere o campo SELENCARGO da tabela ZFTLMPARAM diponível para relatórios nas aplicações Bis (G) Labore (F), Nucleus (T) &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-2006676512696228404?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/2006676512696228404/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=2006676512696228404' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/2006676512696228404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/2006676512696228404'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2008/03/inserindo-campos-de-tabelas.html' title='Inserindo campos de tabelas customizadas no gerador de relatórios do RM'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_wwkaXh-0PEU/R-ep9H_LpkI/AAAAAAAAAAo/p-LGQ840aqo/s72-c/imagem2.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-8956298159849298076</id><published>2008-01-13T15:53:00.000-05:00</published><updated>2008-01-13T15:55:47.258-05:00</updated><title type='text'>Alterando uma nota fiscal com lançamentos no Fluxus e no Saldus</title><content type='html'>Eu uso este script:&lt;br /&gt;&lt;br /&gt;DECLARE @iIDMOV INT;&lt;br /&gt;DECLARE @fVALOR FLOAT;&lt;br /&gt;DECLARE @iCODFILIAL INT;&lt;br /&gt;DECLARE @iALIQUOTA FLOAT;&lt;br /&gt;DECLARE @dDATAEMISSAO DATETIME;&lt;br /&gt;DECLARE @iPRECOUNITARIO FLOAT;&lt;br /&gt; &lt;br /&gt;SET @fVALOR = 580.3900&lt;br /&gt;SET @iCODFILIAL = 17;&lt;br /&gt;SET @dDATAEMISSAO = '05/18/2007'&lt;br /&gt;SET @iIDMOV = (select IDMOV from TMOV where numeromov = '027856' and codfilial = @iCODFILIAL and codtmv = '2.1.16');&lt;br /&gt;SET @iALIQUOTA = 2;&lt;br /&gt;SET @iPRECOUNITARIO = 22.2568;&lt;br /&gt;&lt;br /&gt;update TMOV set VALORBRUTO = @fVALOR, VALORLIQUIDO = @fVALOR, VALOROUTROS = @fVALOR, VALORBRUTOINTERNO = @fVALOR where codfilial = @iCODFILIAL and idmov = @iIDMOV&lt;br /&gt;update TMOV set CAMPOLIVRE1 = substring(campolivre1, 1, 13) + substring(replace(convert(varchar(10), @iALIQUOTA), '.', ','), 1, 4) + '%' + substring(campolivre1, 17, 20) where IDMOV = @iIDMOV and campolivre1 like '%ISS%' &lt;br /&gt;update TTRBMOV set BASEDECALCULO = @fVALOR, BASEDECALCULOCALCULADA = @fVALOR, ALIQUOTA = @iALIQUOTA, VALOR = (@fVALOR * (ALIQUOTA / 100)) where IDMOV = @iIDMOV&lt;br /&gt;update TITMMOV set VALORTOTALITEM = @fVALOR, PRECOUNITARIO = @iPRECOUNITARIO  where IDMOV = @iIDMOV AND NSEQITMMOV = 1&lt;br /&gt;update TMOVRATDEP set VALOR = @fVALOR where CODFILIAL = @iCODFILIAL and IDMOV = @iIDMOV&lt;br /&gt;update TMOVRESUMOTRBIT set VALOR = @fVALOR WHERE IDMOV = @iIDMOV&lt;br /&gt;update FLAN set VALORORIGINAL = @fVALOR, VALORCHEQUE = @fVALOR, VALOROP3 = (@fVALOR * (ALIQUOTA / 100)) where IDMOV = @iIDMOV&lt;br /&gt;update FLAN set VALOROP2 = (@fVALOR * .055) Where IDMOV = @iIDMOV&lt;br /&gt;update FLANCONT set VALOR = @fVALOR  where IDLAN in (Select IDLAN from FLAN where IDMOV = @iIDMOV)&lt;br /&gt;update FLANRATCCU set VALOR = @fVALOR  where IDLAN in (Select 7DLAN from FLAN where IDMOV = @iIDMOV)&lt;br /&gt;update FLANRATDEP set VALOR = @fVALOR  where IDLAN in (Select IDLAN from FLAN where IDMOV = @iIDMOV)&lt;br /&gt;update CLCTLOTE set VALOR = @fVALOR WHERE LCTREF IN (SELECT LCTREF FROM TMOVCONT WHERE IDMOV = @iIDMOV)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Para alterar um valor de um ítem de uma nota com vários itens, modifique a sentença do Update Titmmov.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-8956298159849298076?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/8956298159849298076/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=8956298159849298076' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/8956298159849298076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/8956298159849298076'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2008/01/alterando-uma-nota-fiscal-com.html' title='Alterando uma nota fiscal com lançamentos no Fluxus e no Saldus'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-3271727581224805279</id><published>2008-01-04T11:33:00.000-05:00</published><updated>2008-01-04T11:45:58.296-05:00</updated><title type='text'>Entendendo as Tabelas do RM</title><content type='html'>As tabelas do RM tem uma caracterísitica que é a primeira letra referente ao código do sistema ao qual ela abastece seguida da função da tabela:&lt;br /&gt;&lt;br /&gt;TMOV -&gt; T de Tabela do Núcleus + MOV que significa Movimentos.&lt;br /&gt;&lt;br /&gt;FLAN -&gt; F de Tabela do Fluxus + LAN que significa Lançamentos Contábeis.&lt;br /&gt;&lt;br /&gt;PFUNC -&gt; P de Tabela do Labore + FUNC que significa Funcionarios.&lt;br /&gt;&lt;br /&gt;MPRJ  -&gt; M de Tablea do Solum  + PRJ que significa Projetos.&lt;br /&gt;&lt;br /&gt;Como o Z não é utilizado como código de sistema, você pode usá-lo como um código de customização. Então ficaria assim:&lt;br /&gt;&lt;br /&gt;ZTB2PRD -&gt; Z de Tabela de uma customização + TB2PRD que significa um vínculo entre a tabela de localidades (TTB2) com a de Produtos (TPRD).&lt;br /&gt;&lt;br /&gt;Relação de código dos sistemas que componhem o Corpore RM:&lt;br /&gt;&lt;br /&gt;RM Chronus      A&lt;br /&gt;RM Testis       B&lt;br /&gt;RM Saldus       C&lt;br /&gt;RM Liber        D&lt;br /&gt;RM Classis - E  E&lt;br /&gt;RM Fluxus       F&lt;br /&gt;RM Bis          G&lt;br /&gt;RM AGILIS       H&lt;br /&gt;RM Bonum        I&lt;br /&gt;RM PLANOS       J&lt;br /&gt;RM Factor       K&lt;br /&gt;RM Biblios      L&lt;br /&gt;RM Solum        M&lt;br /&gt;RM Officina     N&lt;br /&gt;RM SAÚDE/JANUS  O&lt;br /&gt;RM Labore       P&lt;br /&gt;RM Classis Net  S&lt;br /&gt;RM Nucleus      T&lt;br /&gt;RM Classis - U  U&lt;br /&gt;RM Vitae        V&lt;br /&gt;RM PORTAL       W&lt;br /&gt;RM SGI          X&lt;br /&gt;RM Acesso       Y&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-3271727581224805279?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/3271727581224805279/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=3271727581224805279' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/3271727581224805279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/3271727581224805279'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2008/01/entendendo-as-tabelas-do-rm.html' title='Entendendo as Tabelas do RM'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-4781169570243168777</id><published>2007-12-21T13:14:00.001-05:00</published><updated>2007-12-21T13:14:44.930-05:00</updated><title type='text'>Criando uma rotina customizada de autoincremento de ID´s no RM</title><content type='html'>Coloque duas Queries no Datamodule.&lt;br /&gt;&lt;br /&gt;Uma vamos chamar de qUpdAutoInc e a outra de qGetAutoInc. Estas queries, uma vai obter o valor da chave na tabela GAUTOINC e a outra gravar o novo valor lá.&lt;br /&gt;&lt;br /&gt;Na query qGetAutoInc, vamos colocar a seguinte senteça:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT VALAUTOINC FROM GAUTOINC&lt;br /&gt;WHERE CODCOLIGADA = :CODCOLIGADA AND&lt;br /&gt;CODSISTEMA = :CODSISTEMA AND CODAUTOINC = :CODAUTOINC&lt;br /&gt;&lt;br /&gt;Esta sentença traz o valor atual do campo informado em CODAUTOINC (que na verdade é o nome do campo chave de uma tabela)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Na qUpdAutoInc, vamos colocar a sentença:&lt;br /&gt;&lt;br /&gt;UPDATE GAUTOINC SET VALAUTOINC = :VALAUTOINC&lt;br /&gt;WHERE CODCOLIGADA = :CODCOLIGADA AND&lt;br /&gt;CODSISTEMA = :CODSISTEMA AND CODAUTOINC = :CODAUTOINC&lt;br /&gt;&lt;br /&gt;Agora para você fazer o autoincremento, basta fazer:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function TDMFat.GenIDMov: integer;&lt;br /&gt;begin&lt;br /&gt;  qGetAutoInc.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;&lt;br /&gt;  qGetAutoInc.ParamByName('CODSISTEMA').AsString := 'T';&lt;br /&gt;  qGetAutoInc.ParamByName('CODAUTOINC').AsString := 'IDMOV';&lt;br /&gt;  qGetAutoInc.Open;&lt;br /&gt;  Result := qGetAutoInc.fieldbyname('VALAUTOINC').AsInteger + 1;&lt;br /&gt;  qGetAutoInc.Close;&lt;br /&gt;  qUpdAutoInc.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;&lt;br /&gt;  qUpdAutoInc.ParamByName('CODSISTEMA').AsString := 'T';&lt;br /&gt;  qUpdAutoInc.ParamByName('CODAUTOINC').AsString := 'IDMOV';&lt;br /&gt;  qUpdAutoInc.ParamByName('VALAUTOINC').AsInteger := Result;&lt;br /&gt;  qUpdAutoInc.ExecSQL;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;No caso acima, esta rotina incrementa o campo IDMOV da Tabela TMOV do RM Nucleus. Muitos aqui vão me questionar porque eu não uso o Succ para incrementar o valor do campo. Eu explico: O uso de funções e procedimentos, só se torna conveniente quando a rotina é de complexidade considerável e que não é viável codificar diretamente na estrutura do programa. Para quem não sabe o que acontece com seu programa, quando ele esta sendo executado e encontra uma função o procedimento, ele para de executar, vai ser empilhado e então será executada a rotina (procedimento ou função) em questão. Então ficar usando em demasia, funções como Inc, Succ, dentre outras, irá promover uma relativa lentidão no seu sistema. Eu, particularmente, evito estas funções. Ao invés de usar Inc(i), eu prefiro usar i := i + 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-4781169570243168777?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/4781169570243168777/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=4781169570243168777' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/4781169570243168777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/4781169570243168777'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/12/criando-uma-rotina-customizada-de.html' title='Criando uma rotina customizada de autoincremento de ID´s no RM'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-9046041578543783303</id><published>2007-12-19T09:15:00.000-05:00</published><updated>2007-12-20T06:02:03.890-05:00</updated><title type='text'>Parametrizando um projeto no RM Solum</title><content type='html'>&lt;span style="font-size:85%;"&gt;O RM Solum cria os parametros do projeto na tabela MPARAMETRO. Caso você queira fazer uma importação de um projeto pra dentro dele, não dá pra você montar uma rotina que dê cerca de 200 inserts sequenciados mudando apenas o nome do parametro e ainda por cima testando valor por valor.&lt;br /&gt;&lt;br /&gt;Para resolvermos isto, eu criei um metodo baseado em um arquivo XML que pode ser perfeitamente importado para dentro de um ClientDataset e, de lá, lermos cada campo e inserir os dados conforme o valor do campo.&lt;br /&gt;&lt;br /&gt;Passo 1) Crie o arquivo .XML com base no modelo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;sXMLHead := TempDir +&lt;br /&gt;format('%d.xml',[iIDPrj]);&lt;br /&gt;AssignFile(fXmlDataPacket, sXMLHead);&lt;br /&gt;Rewrite(fXmlDataPacket);&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;?xml version="1.0" standalone="yes"?&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;DATAPACKET Version="2.0"&amp;gt;&amp;lt;METADATA&amp;gt;&amp;lt;FIELDS&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="BDIPRJSOBRETOTAL" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="BDIPRJATIVO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="BDITRFATIVO" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="BDIGRPISMATIVO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CONSIDERARQUANTOBRAS" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CONSIDERARCASASDEC" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CASASDECQUANTIDADES" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CASASDECTAXAS" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CASASDECMONETARIOS" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CASASDECPERCENTUAIS" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CASASDECCOEFICIENTES" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CALCULARAOABRIRPRJ" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="EXIBIRVALORTRF" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="EXIBIRVALORCMP" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="ACUMSERVMESMOCODCMP" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="LEISOBRECUSTOUNITISM" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="DATAINICIOPDOS" fieldtype="dateTime"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="TIPOPDO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="NUMDIASPDO" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="NUMPDOSCRONOG"&lt;br /&gt;fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CAMPOLIVRE1CNT" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CAMPOLIVRE2CNT" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="MASCARATAREFA" fieldtype="string" WIDTH="60"/&amp;gt;&amp;lt;FIELD attrname="MOEDASECUNDARIA" fieldtype="string" WIDTH="4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="NUCLEUSTIPOMOVREQ" fieldtype="string" WIDTH="10"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="DESCTAREFA" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE1OBRA" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE2OBRA" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE3OBRA" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE4OBRA" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR1OBRA" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR2OBRA" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="BDIPRJ" fieldtype="fixed" DECIMALS="4" WIDTH="32"/&amp;gt;&amp;lt;FIELD attrname="FATORLEISOCIAL1" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="32"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="FATORLEISOCIAL2" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="32"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR1PAR" fieldtype="fixed" DECIMALS="4" WIDTH="13"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR2PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="13"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR3PAR" fieldtype="fixed" DECIMALS="4" WIDTH="13"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR4PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="13"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR5PAR" fieldtype="fixed" DECIMALS="4" WIDTH="13"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR6PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="13"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR7PAR" fieldtype="fixed" DECIMALS="4" WIDTH="13"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR8PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="13"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR9PAR" fieldtype="fixed" DECIMALS="4" WIDTH="13"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR1PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR2PARDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR3PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR4PARDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR5PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR6PARDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR7PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR8PARDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR9PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR1ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR2ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR3ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR4ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR5ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR6ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR7ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR8ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR9ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CASASDECESPECIAIS" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="MASCARAINSUMO" fieldtype="string" WIDTH="25"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="MASCARACOMPOSICAO" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="USARFILTROINSUMO" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="USARFILTROCOMPOSICAO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="ATUALIZARVISAOINSUMOS" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="ATUALIZARVISAOCOMPOSICOES" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="VTRFCOROBRA" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="VTRFCORETAPA" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="VTRFCORSERVICOCOTADO" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="VTRFCORSERVICOCOMCMP" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="VTRFCORSERVICOCOMISM" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CMPPRODUCAO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="INTEGRADONUCLEUS" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="PERTSABADOS"&lt;br /&gt;fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="PERTFERIADOS" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="PERTCALENDARIO" fieldtype="string" WIDTH="16"/&amp;gt;&amp;lt;FIELD attrname="DESCINSUMO"&lt;br /&gt;fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="DESCCOMPOSICAO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="NUCLEUSTIPOCONTROLE" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="NUCLEUSTIPOMOVREQ" fieldtype="string" WIDTH="10"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE1ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE2ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE3ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE4ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE5ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR10ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR11ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR12ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR13ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR14ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE1CMP" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE2CMP" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE3CMP"&lt;br /&gt;fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE4CMP" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CLIVRE5CMP" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR1CMP" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR2CMP" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR3CMP" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR4CMP" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR5CMP" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE1TRF" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE2TRF" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVRE3TRF" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVRE4TRF" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CLIVRE5TRF" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR1TRF" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR2TRF" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR3TRF" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR4TRF" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR5TRF" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="PERTDOMINGOS" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="INTEGRADOFLUXUS" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="FLUXUSTIPODOCLAN" fieldtype="string" WIDTH="10"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="USARFATORK" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="REPETIRCODAUXPLAN" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="IGUALARRECURSOTAREFA" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="INTEGRADOOFICINA" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR15ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR16ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR17ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR18ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR19ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR20ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR21ISMDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR22ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR23ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR24ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR25ISMDESC" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR10PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR11PARDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR12PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR13PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR14PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR15PARDESC" fieldtype="string"&lt;br /&gt;WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR16PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR17PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR18PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR19PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR20PARDESC" fieldtype="string" WIDTH="20"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR10PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="15"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR11PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="15"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR12PAR" fieldtype="fixed" DECIMALS="4" WIDTH="15"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR13PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="15"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR14PAR" fieldtype="fixed" DECIMALS="4" WIDTH="15"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR15PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="15"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR16PAR" fieldtype="fixed" DECIMALS="4" WIDTH="15"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR17PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="15"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR18PAR" fieldtype="fixed" DECIMALS="4" WIDTH="15"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CLIVREVALOR19PAR" fieldtype="fixed" DECIMALS="4"&lt;br /&gt;WIDTH="15"/&amp;gt;&amp;lt;FIELD attrname="CLIVREVALOR20PAR" fieldtype="fixed" DECIMALS="4" WIDTH="15"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="LOGUSRMENU" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="LOGUSRISM" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="LOGUSRISMPRC" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="LOGUSRISMAPROP" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="LOGUSRCMP" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="LOGUSRTRF" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="LOGUSRCRON" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="ENTERASTAB" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="VERPROJECT" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CASASDECCALC" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="INTEGRALABORE" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="INTEGRAVITAE" fieldtype="i2"/&amp;gt;'); WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CELCALCBDI" fieldtype="string" WIDTH="4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CELCALCLEISOCIAL" fieldtype="string" WIDTH="4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="FLUXUSTIPODOCLANCCRONOG" fieldtype="string" WIDTH="10"/&amp;gt;&amp;lt;FIELD attrname="COEFIMPRODZERO" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="IDPLANLEI" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="IDPLANBDI" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="IDPLANLEI2" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="UTILIZAFATORKCMP" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="CELCALCLEISOCIAL2" fieldtype="string" WIDTH="4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CODCPG" fieldtype="string" WIDTH="5"/&amp;gt;&amp;lt;FIELD attrname="INTEGRADOBONUM" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="JORNADA" fieldtype="fixed" DECIMALS="2" WIDTH="15"/&amp;gt;&amp;lt;FIELD attrname="MOEDASECUNDARIA" fieldtype="string" WIDTH="10"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="VINCPROJECT" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="ARQPROJECT" fieldtype="string" WIDTH="250"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="NUCLEUSTIPOMOVAPROP" fieldtype="string" WIDTH="10"/&amp;gt;&amp;lt;FIELD attrname="CNTPERMITASSOCSUPCEM" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="ARREDONDAISM" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="ARREDONDAQTDECASASDECNUCLEUS" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="AUTODIMISMASSOC" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="CORINDIRETA" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="UTILIZARATEIOCC" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="DATABASECONVERSAO" fieldtype="dateTime"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="UTILIZAVIGENCIA" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="TIPOMOVNUCLEUSCOTACAO" fieldtype="string" WIDTH="10"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CNTMEDICAOACIMADECEM" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="PERMITEASSOCTRFCNTSUPVLRORCADO" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="LOGUSRMEDICAO" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="AVISARCRONPREVMENOR100" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="DIVIDECOEFPELAPRODUCAO" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="TIPOTRATAMENTOVALOR" fieldtype="i2"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="EDITAPRCUNITARIOLABOREAPROP" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="APLICALEISPRCUNITLABOREAPROP" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="INDEXAR" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="DATABASEINDEXACAO" &lt;/span&gt;&lt;span style="font-size:85%;"&gt;fieldtype="dateTime"/&amp;gt;&amp;lt;FIELD attrname="UTILIZARATEIODEPTO"&lt;br /&gt;fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CRONOGDESTINOAPROPRIACAO" fieldtype="string" WIDTH="1"/&amp;gt;&amp;lt;FIELD attrname="PERMALTERACAOREQMAT" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="LOGUSRREQMAT" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="ORIGEMPRECOMAOOBRAAPROPRIADA" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="CAMPOAPROPRIACAONUCLEUS" fieldtype="string" WIDTH="30"/&amp;gt;&amp;lt;FIELD attrname="UTILIZATRAVAMENTOCRONOGPLAN"&lt;br /&gt;fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="PDOINICIALALTERCRONPLAN" fieldtype="i4"/&amp;gt;&amp;lt;FIELD attrname="PDOFINALALTERCRONPLAN" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="UTILIZATRAVAMENTOCRONOGREAL" fieldtype="i2"/&amp;gt;&amp;lt;FIELD attrname="PDOINICIALALTERCRONREAL" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="PDOFINALALTERCRONREAL" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="UTILIZATRAVAMENTOCRONOGMED" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="PDOINICIALALTERCRONMED" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="PDOFINALALTERCRONMED" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="TIPOMOVESTOQUE" fieldtype="string" WIDTH="10"/&amp;gt;&amp;lt;FIELD attrname="HABILITAMOVESTOQUE" fieldtype="i2"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="AUTOINCCOMPOSICAO" fieldtype="i4"/&amp;gt;&amp;lt;FIELD&lt;br /&gt;attrname="VALINITAUTOINCCOMPOSICAO" fieldtype="i4"/&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;FIELD attrname="APLICAFATORKINSUMOCURVAABC"&lt;br /&gt;fieldtype="i2"/&amp;gt;&amp;lt;/FIELDS&amp;gt;&amp;lt;PARAMS CHANGE_LOG="1 0 4"/&amp;gt;&amp;lt;/METADATA&amp;gt;');&lt;br /&gt;WriteLn(fXmlDataPacket, '&amp;lt;ROWDATA&amp;gt;&amp;lt;ROW RowState="4" CBDIPRJSOBRETOTAL="1" BDIPRJATIVO="1" BDITRFATIVO="1"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'BDIGRPISMATIVO="1"&lt;br /&gt;CONSIDERARQUANTOBRAS="1" CONSIDERARCASASDEC="1" CASASDECQUANTIDADES="2"&lt;br /&gt;CASASDECTAXAS="4" CASASDECMONETARIOS="4" CASASDECPERCENTUAIS="3"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'CASASDECCOEFICIENTES="2" CALCULARAOABRIRPRJ="0" EXIBIRVALORTRF="1" EXIBIRVALORCMP="1" ACUMSERVMESMOCODCMP="1" LEISOBRECUSTOUNITISM="1" DATAINICIOPDOS ="' + sDataInicio + '" TIPOPDO="30" NUMDIASPDO="30"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'NUMPDOSCRONOG="' + IntToStr(iNumPeriodos)+ '" ASCARATAREFA="###.####" MOEDASECUNDARIA="'+ sMoedaCotada + '" NUCLEUSTIPOMOVREQ="2.1.08" DESCTAREFA="1"&lt;br /&gt;BDIPRJ="1.0000" FATORLEISOCIAL1="1.0000" FATORLEISOCIAL2="1.0000" CASASDECESPECIAIS="2"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'MASCARACOMPOSICAO="##.####" USARFILTROINSUMO="0" USARFILTROCOMPOSICAO="0" ATUALIZARVISAOINSUMOS="1" ATUALIZARVISAOCOMPOSICOES="1" VTRFCOROBRA="0" VTRFCORETAPA="0" VTRFCORSERVICOCOTADO=""');&lt;br /&gt;WriteLn(fXmlDataPacket, 'VTRFCORSERVICOCOMCMP="0" VTRFCORSERVICOCOMISM="0" CMPPRODUCAO="1" INTEGRADONUCLEUS="1" PERTSABADOS="0" PERTFERIADOS="1" DESCINSUMO="1" DESCCOMPOSICAO="1" NUCLEUSTIPOMOVREC="2.1.08"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'NUCLEUSTIPOCONTROLE="0" PERTDOMINGOS="0" INTEGRADOFLUXUS="0" USARFATORK="0" REPETIRCODAUXPLAN="0" IGUALARRECURSOTAREFA="1" INTEGRADOOFICINA="0"&lt;br /&gt;LOGUSRMENU="0" LOGUSRISM="0"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'LOGUSRISMPRC="0" LOGUSRISMAPROP="0" LOGUSRCMP="0" LOGUSRTRF="0" LOGUSRCRON="0" ENTERASTAB="0" VERPROJECT="0" CASASDECCALC="0" INTEGRALABORE="0"&lt;br /&gt;INTEGRAVITAE="0"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'CELCALCBDI="0" CELCALCLEISOCIAL="0" COEFIMPRODZERO="0" UTILIZAFATORKCMP="0" INTEGRADOBONUM="0" CNTPERMITASSOCSUPCEM="0" ARREDONDAISM="0" AUTODIMISMASSOC="0" UTILIZARATEIOCC="0"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'UTILIZAVIGENCIA="0" CNTMEDICAOACIMADECEM="0" PERMITEASSOCTRFCNTSUPVLRORCADO="0" LOGUSRMEDICAO="0" AVISARCRONPREVMENOR100="1" DIVIDECOEFPELAPRODUCAO="0" TIPOTRATAMENTOVALOR="1"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'EDITAPRCUNITARIOLABOREAPROP="0" PLICALEISPRCUNITLABOREAPROP="0" INDEXAR="1" UTILIZARATEIODEPTO="0" ARREDONDAQTDECASASDECNUCLEUS="4"&lt;br /&gt;CRONOGDESTINOAPROPRIACAO="R"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'PERMALTERACAOREQMAT="2" LOGUSRREQMAT="0" ORIGEMPRECOMAOOBRAAPROPRIADA="0" CAMPOAPROPRIACAONUCLEUS="DATAEMISSAO" UTILIZATRAVAMENTOCRONOGPLAN="0" UTILIZATRAVAMENTOCRONOGREAL="0"');&lt;br /&gt;WriteLn(fXmlDataPacket, 'UTILIZATRAVAMENTOCRONOGMED="0" TIPOMOVESTOQUE="2.1.08" HABILITAMOVESTOQUE="1" AUTOINCCOMPOSICAO="0" VALINITAUTOINCCOMPOSICAO="1"&lt;br /&gt;APLICAFATORKINSUMOCURVAABC="0"/&amp;gt;&amp;lt;/ROWDATA&amp;gt;&amp;lt;/DATAPACKET&amp;gt;');&lt;br /&gt;CloseFile(fXmlDataPacket);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Passo 2) Em seguida, vamos abrir e atribuir este XML a um ClientDataset:&lt;br /&gt;&lt;br /&gt;cdsParamProjeto.FileName := sXMLHead;&lt;br /&gt;cdsParamProjeto.Open;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Caso tudo dê certo, o CDS será aberto. Caso ele não consiga ser aberto e gere uma exception, verifique qual a rezão do erro ocorrido. Muito provavelmente há um erro no .xml&lt;br /&gt;&lt;br /&gt;Passo 3) Bom, com o CDS aberto, bastará então criarmos uma rotina de loop que irá ler cada coluna do CDS e dar um insert na tabela MPARAMETRO:&lt;br /&gt;&lt;br /&gt;for i := 0 to DMProj.cdsParamProjeto.fields.Count-1 do begin&lt;br /&gt;qParamsProjeto.Close;&lt;br /&gt;qParamsProjeto.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;&lt;br /&gt;qParamsProjeto.ParamByName('IDPRJ').AsInteger := iIDPrj;&lt;br /&gt;qParamsProjeto.ParamByname('PARAMETRO').AsString := DMProj.cdsParamProjeto.Fields[i].FieldName;&lt;br /&gt;qParamsProjeto.Open;&lt;br /&gt;if qParamsProjeto.Eof then&lt;br /&gt;begin&lt;br /&gt;qParamsProjeto.Insert;&lt;br /&gt;qParamsProjeto.FieldByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;&lt;br /&gt;qParamsProjeto.FieldByName('IDPRJ').AsInteger := iIDPrj;&lt;br /&gt;qParamsProjeto.FieldByname('PARAMETRO').AsString := DMProj.cdsParamProjeto.Fields[i].FieldName;&lt;br /&gt;case DMProj.cdsParamProjeto.Fields[i].DataType of&lt;br /&gt;ftInteger: qParamsProjeto.FieldByname('VALORINT').AsInteger := cdsParamProjeto.FieldByName(DMProj.cdsParamProjeto.Fields[i].FieldName).AsInteger;&lt;br /&gt;ftSmallint: qParamsProjeto.FieldByname('VALORINT').AsInteger := cdsParamProjeto.FieldByName(DMProj.cdsParamProjeto.Fields[i].FieldName).AsInteger;&lt;br /&gt;ftFloat: qParamsProjeto.FieldByname('VALORFLOAT').AsFloat := cdsParamProjeto.FieldByName(DMProj.cdsParamProjeto.Fields[i].FieldName).AsFloat;&lt;br /&gt;ftDateTime: qParamsProjeto.FieldByname('VALORDATA').AsDateTime := cdsParamProjeto.FieldByName(DMProj.cdsParamProjeto.Fields[i].FieldName).AsDateTime;&lt;br /&gt;ftString: qParamsProjeto.FieldByname('VALORSTR').AsString := cdsParamProjeto.FieldByName(DMProj.cdsParamProjeto.Fields[i].FieldName).AsString;&lt;br /&gt;end;&lt;br /&gt;//&lt;br /&gt;qParamsProjeto.Post;&lt;br /&gt;end;&lt;br /&gt;end;&lt;br /&gt;DMProj.cdsParamProjeto.Close;&lt;br /&gt;DeleteFile(sXMLHead);&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;A sentença que irá alimentar a query qParamsProjeto deverá ser:&lt;br /&gt;&lt;br /&gt;select CODCOLIGADA, IDPRJ, PARAMETRO, VALORINT, VALORFLOAT, VALORDATA, VALORSTR from MPARAMETRO where CODCOLIGADA = :CODCOLIGADA and IDPRJ = :IDPRJ AND PARAMETRO = :PARAMETRO&lt;br /&gt;&lt;br /&gt;Dar um insert diretamente, irá acarretar erros ao você tentar passar um valor NULL para os valores de parametros que não serão preenchidos. Melhor deixar isto por conta do BDE.&lt;br /&gt;&lt;br /&gt;Você pode criar a query em Run-Time mesmo. Depois de gravados os dados na tabela MPARAMETRO, ela não será mais necesária.]&lt;br /&gt;&lt;br /&gt;qParamsProjeto := TQuery.Create(nil);&lt;br /&gt;qParamsProjeto.DatabaseName := CorporeRM.DatabaseName;&lt;br /&gt;qParamsProjeto.RequestLive := True;&lt;br /&gt;qParamsProjeto.SQL.Add('select CODCOLIGADA, IDPRJ, PARAMETRO, VALORINT, VALORFLOAT, VALORDATA, VALORSTR from MPARAMETRO');&lt;br /&gt;qParamsProjeto.SQL.Add('where CODCOLIGADA = :CODCOLIGADA and IDPRJ = :IDPRJ AND PARAMETRO = :PARAMETRO');&lt;br /&gt;qParamsProjeto.Prepare;&lt;br /&gt;//&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-9046041578543783303?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/9046041578543783303/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=9046041578543783303' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/9046041578543783303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/9046041578543783303'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/12/parametrizando-um-projeto-no-rm-solum.html' title='Parametrizando um projeto no RM Solum'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-9161797427639188136</id><published>2007-12-18T11:46:00.000-05:00</published><updated>2007-12-20T05:52:25.398-05:00</updated><title type='text'>RM 10</title><content type='html'>&lt;span style="font-size:85%;"&gt;As mudanças que detectei no Corpore RM 10 até agora:&lt;br /&gt;&lt;br /&gt;1) A tabela FCFO (De fornecedores) agora tem um campo que é obrigatório: PESSOAFISOUJUR. Se o fornecedor for pessoa física, coloque "F" e se jurídica "J"&lt;br /&gt;&lt;br /&gt;2) O RM Solum mudou um monte de coisa. Agora, caso você faça o projeto via customização e não cadastrando-o diretamente, você não precisa mais criar o datapacket para que o Solum importe-o para dentro da tabela MPARAMETRO. Você terá que preenchê-la automáticamente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Tabelas/Campos EXCLUÍDOS da base de dados:&lt;br /&gt;&lt;br /&gt;DFILIAL.OPTANTEREGSIMPLIFICADOFEDERAL&lt;br /&gt;DFILIAL.RAMOATIVIDADE&lt;br /&gt;DFILIAL.CAIXAPOSTAL&lt;br /&gt;DFILIAL.CEPCAIXAPOSTAL&lt;br /&gt;DFILIAL.CODATIVFED&lt;br /&gt;DFILIAL.CODATIVIDPRINC&lt;br /&gt;DFILIAL.CODMUNICIPIO&lt;br /&gt;DFILIAL.CONTABIL&lt;br /&gt;DFILIAL.DATAREGJUNTA&lt;br /&gt;DFILIAL.DESCATIVIDPRINC&lt;br /&gt;DFILIAL.FILIALSALDUS&lt;br /&gt;DFILIAL.INSCMUN&lt;br /&gt;DFILIAL.NUMREGJUNTA&lt;br /&gt;DFILIAL.SUFRAMA&lt;br /&gt;DLAF.CLASSECONSUMO&lt;br /&gt;DLAF.CODETDPLACA02&lt;br /&gt;DLAF.CODETDPLACA03&lt;br /&gt;DLAF.FASE&lt;br /&gt;DLAF.GRUPOTENSAO&lt;br /&gt;DLAF.PLACA02&lt;br /&gt;DLAF.PLACA03&lt;br /&gt;DLAF.TIPOUTILIZACAO&lt;br /&gt;DPARAMETROS.AGRUPALANCPARC&lt;br /&gt;DPARAMETROS.CONSISTEPERIODO&lt;br /&gt;DPARAMETROS.CONTABILIZACAOONLINE&lt;br /&gt;DPARAMETROS.CONTROLAATIVO&lt;br /&gt;DPARAMETROS.CONTROLADISPOSITIVOSEGURANCA&lt;br /&gt;DPARAMETROS.DATAINICIOCIAP&lt;br /&gt;DPARAMETROS.DEDUZMATERIAIS&lt;br /&gt;DPARAMETROS.DEDUZSUBEMPREITADA&lt;br /&gt;DPARAMETROS.EDITACGCCF&lt;br /&gt;DPARAMETROS.EDITASOMENTESECFAZ&lt;br /&gt;DPARAMETROS.EMITELIVROCONSTCIVIL&lt;br /&gt;DPARAMETROS.EXPORTARSERIE&lt;br /&gt;DPARAMETROS.INTEGRADOFLUXUS&lt;br /&gt;DPARAMETROS.INTEGRADONUCLEUS&lt;br /&gt;DPARAMETROS.MODELOCIAP&lt;br /&gt;DPARAMETROS.TIPOLIVRO&lt;br /&gt;DPARAMETROS.USAALIQDAPILFOUPRODUTO&lt;br /&gt;DPARAMETROSFILIAL&lt;br /&gt;EPARAMWEB.MOSTRARENDERECOCORRESPONDENCIA&lt;br /&gt;FCFO.CODREDE&lt;br /&gt;FCFO.IDENDENTREGA&lt;br /&gt;FCFO.IDENDERECO&lt;br /&gt;FCFO.IDENDPGTO&lt;br /&gt;FCFO.PAGCAMARACOMPENSACAO&lt;br /&gt;FCFO.PAGCEPAGENCIA&lt;br /&gt;FCFO.PAGCODIGOAGENCIA&lt;br /&gt;FCFO.PAGCONTACORRENTE&lt;br /&gt;FCFO.PAGDIGITOAGENCIA&lt;br /&gt;FCFO.PAGDIGITOAGENCIACONTA&lt;br /&gt;FCFO.PAGFORMAPAGAMENTO&lt;br /&gt;FCFO.PAGNOMEAGENCIA&lt;br /&gt;FCFO.PAGNUMEROBANCO&lt;br /&gt;FCFO.PAGTPCONTA&lt;br /&gt;FCFO.RAMOATIVIDADE&lt;br /&gt;FCFO.SENHA&lt;br /&gt;FCFO.VALOREMABERTO&lt;br /&gt;FPIMPRESSO.IDREL&lt;br /&gt;FPIMPRESSO.ULTNUMGERADO&lt;br /&gt;FPREGIMPRESSAO&lt;br /&gt;GHELP&lt;br /&gt;LEMPRESTIMOS.MULTAPAGA&lt;br /&gt;MPARPRJ&lt;br /&gt;NAGENDA.CODCOLIGADA&lt;br /&gt;NALBUMVERSAO.CODCOLIGADA&lt;br /&gt;NARQUIVONOTICIA.CODCOLIGADA&lt;br /&gt;NCLASSIFICADOS.CODCOLIGADA&lt;br /&gt;NCLASSIFICADOSLOCALIDADE.CODCOLIGADA&lt;br /&gt;NCONTROLEVERSAO.CODCOLIGADA&lt;br /&gt;NEMPREGO.CODCOLIGADA&lt;br /&gt;NEMPREGOFILIAL&lt;br /&gt;NENQUETE.CODCOLIGADA&lt;br /&gt;NENQUETELOCALIDADE.CODCOLIGADA&lt;br /&gt;NENQUETEPERFILPERMIS.CODCOLIGADA&lt;br /&gt;NENQUETEETURMA&lt;br /&gt;NENQUETEUCURSO&lt;br /&gt;NENQUETEUSUARIO.CODCOLIGADA&lt;br /&gt;NENQUETEUSUARIOPERMIS.CODCOLIGADA&lt;br /&gt;NEVENTOLOGIN&lt;br /&gt;NFORUM.CODCOLIGADA&lt;br /&gt;NFORUMDEPARTAMENTO&lt;br /&gt;NFORUMRESPOSTA.CODCOLIGADA&lt;br /&gt;NLOCALIDADE.CODCOLIGADA&lt;br /&gt;NLOGLOGIN&lt;br /&gt;NLOGNOTICIA&lt;br /&gt;NLOGPORTAL.CODCOLIGADA&lt;br /&gt;NMENU.CODCOLIGADA&lt;br /&gt;NNOTICIA.CODCOLIGADA&lt;br /&gt;NNOTICIALOCALIDADE.CODCOLIGADA&lt;br /&gt;NOPCAOENQT.CODCOLIGADA&lt;br /&gt;NPARAMETROS.CODCOLIGADA&lt;br /&gt;NPARAMETROS.IDPARAM&lt;br /&gt;NPARAMETROS.NOMEPARAM&lt;br /&gt;NPARAMETROS.TIPOPARAM&lt;br /&gt;NPARAMSERVEMAIL&lt;br /&gt;NPARAMSERVICOS&lt;br /&gt;NPERFIL.CODCOLIGADA&lt;br /&gt;NPERFILMENU.CODCOLIGADA&lt;br /&gt;NPERFILUSUARIO.CODCOLIGADA&lt;br /&gt;NPERGUNTAENQT.CODCOLIGADA&lt;br /&gt;NPERMISMENUCONTEUDO.CODCOLIGADA&lt;br /&gt;NRESPOSTAENQT.CODCOLIGADA&lt;br /&gt;NUSUARIOLOCALIDADE.CODCOLIGADA&lt;br /&gt;NUSUARIOMENU.CODCOLIGADA&lt;br /&gt;NUSUARIOOPCAOENQT.CODCOLIGADA&lt;br /&gt;NVERSAOCONTEUDO.CODCOLIGADA&lt;br /&gt;NWEBPARTCONFIG.CODCOLIGADA&lt;br /&gt;OFINDICE.PERIODOAVALIACAO&lt;br /&gt;PFUNCPT.REFORMADO&lt;br /&gt;SZAMOSTRAS.CODATENDIMENTO&lt;br /&gt;SZAMOSTRAS.CODPACIENTE&lt;br /&gt;SZAMOSTRAS.DESCEXAMES&lt;br /&gt;SZAMOSTRAS.QTDEXAMES&lt;br /&gt;SZAPRPAESTOQUE.CODESTOQUE&lt;br /&gt;SZAPRPAESTOQUE.GRPESTOQUE&lt;br /&gt;SZATENDIMENTOREC.BAIRRORESPATEND&lt;br /&gt;SZATENDIMENTOREC.CEPRESPATEND&lt;br /&gt;SZATENDIMENTOREC.CIDADERESPATEND&lt;br /&gt;SZATENDIMENTOREC.COMPLRESPATEND&lt;br /&gt;SZATENDIMENTOREC.CPFCGCNF&lt;br /&gt;SZATENDIMENTOREC.DDDTELEFONECOM&lt;br /&gt;SZATENDIMENTOREC.DDDTELEFONERES&lt;br /&gt;SZATENDIMENTOREC.ENDERECORESPATEND&lt;br /&gt;SZATENDIMENTOREC.NOMEACOMPANHANTE&lt;br /&gt;SZATENDIMENTOREC.NOMERESPATEND&lt;br /&gt;SZATENDIMENTOREC.NUMERORESPATEND&lt;br /&gt;SZATENDIMENTOREC.RAMAL&lt;br /&gt;SZATENDIMENTOREC.TELEFONECOM&lt;br /&gt;SZATENDIMENTOREC.TELEFONERES&lt;br /&gt;SZATENDIMENTOREC.TIPORESPONSAVEL&lt;br /&gt;SZATENDIMENTOREC.UFRESPATEND&lt;br /&gt;SZINDICADORPROHOSP&lt;br /&gt;SZITEMPRESCRICAO.CODESTOQUE&lt;br /&gt;SZITEMPRESCRICAO.GRPESTOQUE&lt;br /&gt;SZMAPAAMOSTRA.QTDEAMOSTRA&lt;br /&gt;SZPERFILCCUSTO&lt;br /&gt;SZPRESCRICAO.CODALMOXARIFADO&lt;br /&gt;TMOV.CODETDPLACA02&lt;br /&gt;TMOV.CODETDPLACA03&lt;br /&gt;TMOV.PLACA02&lt;br /&gt;TMOV.PLACA03&lt;br /&gt;TMOVCFO.TIPOLOGRADOURO&lt;br /&gt;TPAR.CAMPOCOMPLEMENTARVISAOPRODUTO&lt;br /&gt;TPARAM&lt;br /&gt;TTMV.CODNAT&lt;br /&gt;TTMV.CODNAT2&lt;br /&gt;TTMVCABECALHO&lt;br /&gt;TTMVEXT.CODNATFORAESTADO&lt;br /&gt;TTMVEXT.CODNATFORAESTADO2&lt;br /&gt;TTMVPARAM&lt;br /&gt;VCONTROLESISTEMA.GERARHABTREINFECHTURMAITEMCURR&lt;br /&gt;VREQUISICAOADMISSAOCOMPL&lt;br /&gt;VREQUISICAOPESSOALCOMPL&lt;br /&gt;VREQUISICAOTREINAMENTOCOMPL&lt;br /&gt;XPARAMETROSCOLIGADA.UTILIZAINTEGRACAOFLPAGTOCOMIS&lt;br /&gt;XTIPORECEITA.CODCOLIGADA&lt;br /&gt;XTIPORECEITA.CODTBFLX&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-9161797427639188136?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/9161797427639188136/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=9161797427639188136' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/9161797427639188136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/9161797427639188136'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/12/rm-10.html' title='RM 10'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-6841821421515307318</id><published>2007-09-28T07:55:00.000-05:00</published><updated>2007-09-28T08:50:57.099-05:00</updated><title type='text'>Criando uma rotina de envio de cotação para fornecedores no RM Nucleus</title><content type='html'>&lt;span style="font-size:85%;"&gt;O processo de envio de uma cotação para os seus fornecedores via RM Nucleus, é um processo meio que deficiente pois é enviado um documento texto para o mesmo que é preenchido a mão e retornado em um E-mail aonde então o cotador terá que entrar no RM e preencher isto tudo na mão onerando tempo&lt;br /&gt;desnecessário. Se for uma cotação de 10 itens, até que vai, mas se forem aquelas megacotações de 1000 a 2000 itens?&lt;br /&gt;&lt;br /&gt;Eu fiz uma rotina que dispensa o método usado pelo RM e o faz diretamente via uma customização direta aonde geramos uma planilha para cada fornecedor, enviamos por E-mail para ele preencher e depois ficamos apenas por conta de importarmos a supra-citada pra dentro do RM. Processo bem mais agil que pode&lt;br /&gt;automatizar cotações de infinitas quantidades de intens.&lt;br /&gt;&lt;br /&gt;Os passos a serem adotados serão: Montar a lista dos intens cotados, montar a lista dos fornecesdores destino, montar a planilha a ser preenchida pelo fornecedor e depois importar a planilha e gravar na tabela de cotação.&lt;br /&gt;&lt;br /&gt;O primeiro passo a ser adotado é montarmos uma sentença SQL que irá buscar os dados da cotação em questão. Para isto a tabela alvo do Nucleus vai ser a TCITMORCAMENTO aonde estão os itens a serem orçados e seus respectivos fornecedores vinculados.&lt;br /&gt;&lt;br /&gt;Para este processo funcionar, seus fornecedores deverão estar todos cadastrados na tabela FCFO e com seus respectivos E-Mails vigentes.&lt;br /&gt;&lt;br /&gt;Na Unit do Plugin, iremos adicionar os dois itens do menu da customização:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;MenuInfo : array [0..MAXMENU-1] of TPlugMenuInfo =&lt;br /&gt;(&lt;br /&gt;(Caption: '&amp;amp;Enviar orçamentos para fornecedores'; Hint: 'Envia itens orçados&lt;br /&gt;na cotação para os fornecedores cadastrados';&lt;br /&gt;Tag: 999992; Event: nil; Process: false; Bitmap: ''),&lt;br /&gt;(Caption: '&amp;amp;Importar orçamentos cotados'; Hint: 'Importa itens orçados pelos&lt;br /&gt;fornecedores cadastrados para a cotação';&lt;br /&gt;Tag: 999992; Event: nil; Process: false; Bitmap: ''),&lt;br /&gt;(Caption: '-'; Hint: '';&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;No Initialize do plugin, iremos declará-las:&lt;br /&gt;&lt;br /&gt;i := 0; MenuInfo[i].Event := mnuEnviaCotacaoOrcadaClick;&lt;br /&gt;inc(i); MenuInfo[i].Event := mnuImportaCotacaoOrcadaClick;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;br /&gt;Feito isto, você deverá montar uma tela aonde colocaremos dois&lt;br /&gt;DBLookUpComboBox, um progressbar e dois buttons.&lt;br /&gt;&lt;br /&gt;Um DBLookup irá receber a lista de cotações em aberto (Todas diferentes do&lt;br /&gt;flag 7 (Cancelado)). A sentença a ser usada na query, deve ser algo parecido&lt;br /&gt;com:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier;color:#0000ff;"&gt;&lt;strong&gt;select I.CODCOMPRADOR, I.CODCOTACAO, I.DATLIMRESPTA, P.EMAIL, P.NOME&lt;br /&gt;from TCCOTACAO as I, PPESSOA as P where I.CODCOMPRADOR = P.CODIGO and I.STSCOTACAO&lt;br /&gt;= 1 and I.CODCOLIGADA = 2 &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Um dos Buttons é para fechar o form o outro irémos inserir as rotinas de montagem da planilha e envio. Nesta rotina, você precisará primeiro criar uma query que busque a relação de fornecedores da cotação e seus&lt;br /&gt;respectívos itens a serem orçados. Lembrando pela ordem que o registro mestre será o fornecedor, e os filhos serão seus itens. Sendo assim, a sentença SQL para listar os fornecedores será a seguinte:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;&lt;span style="font-family:Courier;color:#0000ff;"&gt;select DISTINCT F.CODCFO, F.NOME, F.EMAIL from TCITMORCAMENTO AS C,&lt;br /&gt;FCFO AS F WHERE F.CODCFO = C.CODCFO AND F.CODCOLIGADA = :CODCOLIGADA AND C.CODCOTACAO&lt;br /&gt;= :CODCOTACAO and F.EMAIL is not null&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;A lista dos itens destinadas a cada fornecedor, será constituída da seguinte&lt;br /&gt;sentença SQL:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;strong&gt;&lt;span style="font-family:Courier;color:#0000ff;"&gt;select C.CODCFO,P.CODIGOPRD, P.DESCRICAO, &lt;span style="color:#3366ff;"&gt;&lt;span style="color:#3333ff;"&gt;C.CODUND,&lt;/span&gt; &lt;/span&gt;SUM(I.QUANTIDADE)&lt;br /&gt;QUANTIDADE from TCITMORCAMENTO as C left outer join TPRD as P on P.IDPRD = C.IDPRD,&lt;br /&gt;TMOV as M, TITMMOV as I Where C.CODCFO = :CODCFO AND C.CODCOTACAO = :CODCOTACAO&lt;br /&gt;AND M.IDMOV = C.IDMOV&lt;br /&gt;&lt;br /&gt;AND I.IDMOV = M.IDMOV&lt;br /&gt;AND I.IDPRD = C.IDPRD&lt;br /&gt;AND M.STATUS &amp;lt;&amp;gt; 'C'&lt;br /&gt;GROUP BY C.CODCFO,P.CODIGOPRD, P.DESCRICAO, C.CODUND&lt;br /&gt;ORDER BY P.DESCRICAO &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Os códigos de status das cotações são:&lt;br /&gt;&lt;br /&gt;1 - Composição (Ainda não foi enviado o orçamento para o fornecedor)&lt;br /&gt;2 - Aguardando Resposta dos fornecedores&lt;br /&gt;3 - Ordem de compra Parcialmente gerada&lt;br /&gt;4 - Não usado&lt;br /&gt;5 - Em negociação&lt;br /&gt;6 - Composição&lt;br /&gt;7 - Cancelada&lt;br /&gt;&lt;br /&gt;Bom. De posse então dos dados para prepararmos a planilha, você monta uma rotina de escrita em uma planilha excel e mande salvá-la em disco (A Web tá cheia de exemplos de como gravar dados em uma planilha excel). Então criariamos uma rotina que iriia lendo fornecedor por fornecedor, gera a planilha, envia para o destinatrio e, em seguida, apaga a planilha do disco&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier;"&gt;&lt;b&gt;FOR&lt;/b&gt; i := 0 &lt;b&gt;TO&lt;/b&gt; DadosFornecedor.Count - 1 &lt;b&gt;DO&lt;/b&gt;&lt;br /&gt;&lt;b&gt;BEGIN&lt;/b&gt;&lt;br /&gt;DadosFornecedor.items[i];&lt;br /&gt;&lt;b&gt;IF&lt;/b&gt; CreateCotacaoSheet(DadosFornecedor,i,Cotacao,DadosItemCotacao, sNameFile) &lt;b&gt;THEN&lt;/b&gt;&lt;br /&gt;&lt;b&gt;BEGIN&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IF&lt;/b&gt; DadosFornecedor.Items[i].EMailUsuario &amp;lt;&amp;gt; &lt;span style="color:#900090;"&gt;''&lt;/span&gt; &lt;b&gt;THEN&lt;/b&gt;&lt;br /&gt;&lt;b&gt;BEGIN&lt;/b&gt;&lt;br /&gt;SendSMTPMail(PChar(Cotacao.Operador), PChar(Cotacao.EMailOperador), PChar(DadosFornecedor.Items[i].Nome), PChar(DadosFornecedor.Items[i].EMailUsuario),&lt;b&gt;NIL&lt;/b&gt;,&lt;b&gt;NIL&lt;/b&gt;,pChar(&lt;span style="color:#900090;"&gt;'PEDIDO DE ORÇAMENTO Nº '&lt;/span&gt; + Cotacao.CodCotacao + &lt;span style="color:#900090;"&gt;'-'&lt;/span&gt; + DadosFornecedor.Items[i].CodFornecedor),PChar(BodyMessage),[PChar(sNameFile)]);&lt;br /&gt;DeleteFile(sNameFile);&lt;br /&gt;&lt;b&gt;END&lt;/b&gt;&lt;br /&gt;&lt;b&gt;ELSE&lt;/b&gt;&lt;br /&gt;MessageDlg(&lt;span style="color:#900090;"&gt;'Fornecedor '&lt;/span&gt; + DadosFornecedor.Items[i].Nome + &lt;span style="color:#900090;"&gt;' Não possui conta de E-Mail. A planilha será salva no disco!'&lt;/span&gt;, mtWarning, [mbOk], 0);&lt;br /&gt;&lt;b&gt;END&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;END&lt;/b&gt;;&lt;br /&gt;MessageDlg(&lt;span style="color:#900090;"&gt;'Processo de envio de orçamentos para os fornecedores processado com sucesso!'&lt;/span&gt;, mtInformation, [mbOk], 0);&lt;br /&gt;SetStatusCotacao(Cotacao.CodCotacao,2);&lt;br /&gt;FreeAndNil(DadosFornecedor);&lt;br /&gt;FreeAndNil(DadosItemCotacao);&lt;br /&gt;&lt;span style="color:#202090;"&gt;//&lt;/span&gt;&lt;br /&gt;&lt;b&gt;END&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Note você que esta rotina somente apaga a planilha do disco, se o fornecedor&lt;br /&gt;tiver E-mail. Caso não o tenha ele não apaga pois você pode pegar esta&lt;br /&gt;planilha, imprimir e enviar ela por Fax pro cara.&lt;br /&gt;&lt;br /&gt;Depois disto, você deverá mudar o status da cotação para "Aguardando resposta&lt;br /&gt;dos fornecedores". Para isto, você cria uma rotina usando a seguinte sentença&lt;br /&gt;SQL:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;color:#3366ff;"&gt;&lt;span style="color:#3333ff;"&gt;UPDATE TCCOTACAO SET STSCOTACAO = :STSCOTACAO WHERE CODCOTACAO = :CODCOTACAO&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Para mudar o status para "Aguardando resposta dos fornecedores" use o código 2&lt;br /&gt;no parametro CODCOTACAO&lt;br /&gt;&lt;br /&gt;Importando os dados.&lt;br /&gt;&lt;br /&gt;Quanto a questão da importação desta planilha, é mais simples ainda.&lt;br /&gt;Geralmente eu salvo a planilha como Texto separado por tabulações e uso a&lt;br /&gt;rotina abaixo para importar os dados para o RM:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;&lt;span style="font-family:Courier New;color:#000000;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;procedure &lt;/b&gt;TfImpOrcamento.btnImportClick(Sender: TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;var&lt;br /&gt;&lt;/b&gt;fi : textfile;&lt;br /&gt;BackupName, line, CodCotacao, CodPrd, ValFrete, CodCfo, ValPrazoEntrega,ValPrazoValidade,&lt;br /&gt;NumeroParcelas, ValLimiteResposta, CondicoesPagto, CodCpg, FreteCIFouFob,&lt;br /&gt;Preco, Unitario, IPI, Desconto, ValorDescontado, ValorFinal,&lt;br /&gt;Quantidade, Total, ValTrb, ValCotacao, ValICMS: &lt;b&gt;String&lt;/b&gt;;&lt;br /&gt;LimiteResposta, DataEmissao: TDateTime;&lt;br /&gt;Frete, ICMS: Extended;&lt;br /&gt;i, k: integer;&lt;br /&gt;done, decimal : boolean;&lt;br /&gt;iCount, PrazoEntrega, PrazoValidade: integer;&lt;br /&gt;Orcamento : TOrcamento;&lt;br /&gt;DadosOrcamento : TDadosOrcamento;&lt;br /&gt;Item : TItem;&lt;br /&gt;DadosItem : TDadosItem;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;if &lt;/b&gt;eFileName.Text = '' &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;MessageDlg('Você deverá selecionar um arquivo para proceder com a importação', mtError, [mbOk], 0);&lt;br /&gt;eFileName.Setfocus;&lt;br /&gt;Exit;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;end&lt;br /&gt;else if &lt;/b&gt;IsFileInUse(eFileName.text) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;MessageDlg('Erro ao abrir o arquivo ' + ExtractFileName(eFileName.text)&lt;br /&gt;+ '. O arquivo está sendo usadado por outro processo', mtError, [mbOk], 0);&lt;br /&gt;eFileName.Setfocus;&lt;br /&gt;exit;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;"&gt;try&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;assignfile(fi, eFileName.text);&lt;br /&gt;&lt;i&gt;{$i-} &lt;/i&gt;Reset(fi); &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;{$i+}&lt;br /&gt;//&lt;br /&gt;&lt;/i&gt;pBar.Max := 40;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;if &lt;/b&gt;ioresult &amp;lt;&amp;gt; 0 &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;MessageDlg('Erro ao abrir arquivo ' +&lt;br /&gt;eFileName.text, mtInformation, [mbOk], 0);&lt;br /&gt;exit;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;done := False;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;"&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;DadosOrcamento := TDadosOrcamento.Create;&lt;br /&gt;DadosItem := TDadosItem.Create;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1,10)=&lt;br /&gt;'Fornecedor');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 12, length(line));&lt;br /&gt;line := RetiraCaracteres(#$09, line);&lt;br /&gt;CodCfo := copy(Line,1,6);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1,19)= 'Pedido de Orçamento');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 21, length(line));&lt;br /&gt;CodCotacao := LTrim(RetiraPalavra(line, #$09));&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 14)= 'Data Lim. Resp');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 16, length(line));&lt;br /&gt;ValLimiteResposta := RetiraCaracteres(#$09, line);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 22)= 'Condições de Pagamento');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 24, length(line));&lt;br /&gt;CondicoesPagto := RetiraPalavra(line, #$09);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 18)= 'Número de parcelas');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 20, length(line));&lt;br /&gt;line := RetiraPalavra(line, #$09);&lt;br /&gt;NumeroParcelas := SomenteDigitos(line,2);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 16)= 'Prazo de entrega');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 18, length(line));&lt;br /&gt;ValPrazoEntrega := RetiraPalavra(line, #$09);&lt;br /&gt;ValPrazoEntrega := SomenteDigitos(ValPrazoEntrega,2);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 21)= 'Alíquota ICMS Inclusa');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 23, length(line));&lt;br /&gt;line := RetiraPalavra(line, #$09);&lt;br /&gt;ValICMS := SomenteDigitos(line,2);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 21)= 'Validade do Orçamento');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 23, length(line));&lt;br /&gt;ValPrazoValidade := RetiraPalavra(line, #$09);&lt;br /&gt;ValPrazoValidade := SomenteDigitos(ValPrazoValidade,2);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 14)= 'Valor do Frete');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 16, length(line));&lt;br /&gt;ValFrete := RetiraPalavra(line, #$09);&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;repeat&lt;br /&gt;if not &lt;/b&gt;eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;&lt;b&gt;until &lt;/b&gt;eof(fi) &lt;b&gt;or &lt;/b&gt;(copy(line, 1, 13)= 'Tipo de Frete');&lt;br /&gt;pBar.StepIt;&lt;br /&gt;line := copy(line, 15, length(line));&lt;br /&gt;FreteCIFouFob := RetiraPalavra(line, #$09);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;if not &lt;/b&gt;DadosOrcamento.Locate(CodCfo)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;Orcamento := DadosOrcamento.Add;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;Orcamento.CodCfo := CodCfo;&lt;br /&gt;Orcamento.CodCotacao := CodCotacao;&lt;br /&gt;Orcamento.CondicoesPagto := CondicoesPagto;&lt;br /&gt;Orcamento.FreteCIFouFob := FreteCIFouFob;&lt;br /&gt;Orcamento.PrazoEntrega := PrazoEntrega;&lt;br /&gt;Orcamento.PrazoValidade := PrazoValidade;&lt;br /&gt;Orcamento.NumeroParcelas := StrToInt(NumeroParcelas);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;LimiteResposta := StrToDate(ValLimiteResposta);&lt;br /&gt;Orcamento.LimiteResposta := LimiteResposta;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;end&lt;/b&gt;;&lt;br /&gt;Orcamento.DataEmissao := DataEmissao;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;ICMS := StrToFloat(ValICMS);&lt;br /&gt;Orcamento.ICMS := ICMS;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;Frete := StrToFloat(ValFrete);&lt;br /&gt;Orcamento.Frete := Frete;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;readln(fi, line);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;while not &lt;/b&gt;Eof(fi) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;readln(fi, line);&lt;br /&gt;CodPrd := '';&lt;br /&gt;i := 1;&lt;br /&gt;k := 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;= length(line))&lt;br /&gt;&lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;CodPrd := CodPrd + line[i];&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;if &lt;/b&gt;Copy(CodPrd,1,11) = 'Observações' &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;Break;&lt;br /&gt;&lt;b&gt;if &lt;/b&gt;CodPrd &amp;lt;&amp;gt; '' &lt;/span&gt;&lt;b&gt;&lt;span style="font-size:85%;"&gt;then&lt;br /&gt;begin&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;Unitario := '';&lt;br /&gt;Quantidade := '';&lt;br /&gt;IPI := '';&lt;br /&gt;Desconto := '';&lt;br /&gt;ValorDescontado := '';&lt;br /&gt;ValorFinal := '';&lt;br /&gt;decimal := false;&lt;br /&gt;k := 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;= length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;&lt;/b&gt;inc(i);&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;= length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;case &lt;/b&gt;line[i] &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;of&lt;br /&gt;&lt;/b&gt;'0'..'9':&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;&lt;/b&gt;inc(k);&lt;br /&gt;&lt;b&gt;if not &lt;/b&gt;decimal &lt;b&gt;or &lt;/b&gt;(k &amp;lt;= 4) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;Quantidade := Quantidade + line[i];&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;',':&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;&lt;/b&gt;Quantidade := Quantidade + ',';&lt;br /&gt;decimal := true;&lt;br /&gt;k := 0;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;StrToFloat(Quantidade);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;Quantidade := '0';&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;=&lt;br /&gt;length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;&lt;/b&gt;inc(i);&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;= length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;case &lt;/b&gt;line[i] &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;of&lt;br /&gt;&lt;/b&gt;'0'..'9':&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;&lt;/b&gt;inc(k);&lt;br /&gt;&lt;b&gt;if not &lt;/b&gt;decimal &lt;b&gt;or &lt;/b&gt;(k &amp;lt;= 4) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;Unitario := Unitario + line[i];&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;',':&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;&lt;/b&gt;Unitario := Unitario + ',';&lt;br /&gt;decimal := true;&lt;br /&gt;k := 0;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;StrToFloat(Unitario);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;Unitario := '0';&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;= length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;IPI := IPI + line[i];&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;StrToFloat(IPI);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;IPI := '0';&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;= length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;case &lt;/b&gt;&lt;br /&gt;line[i] &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;of&lt;br /&gt;&lt;/b&gt;'0'..'9':&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;&lt;/b&gt;inc(k);&lt;br /&gt;&lt;b&gt;if not &lt;/b&gt;decimal &lt;b&gt;or &lt;/b&gt;(k &amp;lt;= 4) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;Desconto := Desconto + line[i];&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;',':&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;begin&lt;br /&gt;&lt;/b&gt;Desconto := Desconto + ',';&lt;br /&gt;decimal := true;&lt;br /&gt;k := 0;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;StrToFloat(Desconto);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;Desconto := '0';&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;=length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;ValorDescontado := ValorDescontado + line[i];&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;StrToFloat(ValorDescontado);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;ValorDescontado := '0';&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;while &lt;/b&gt;(i &amp;lt;=length(line)) &lt;b&gt;and &lt;/b&gt;(line[i] &amp;lt;&amp;gt; #$09) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;ValorFinal := ValorFinal + line[i];&lt;br /&gt;inc(i);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;StrToFloat(ValorFinal);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;ValorFinal := '0';&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;inc(i);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;Item := DadosItem.Add;&lt;br /&gt;Item.CodCfo := CodCfo;&lt;br /&gt;Item.CodPrd := CodPrd;&lt;br /&gt;&lt;b&gt;if &lt;/b&gt;Unitario &amp;lt;&amp;gt; '0'&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;&lt;/b&gt;Item.Status := 0&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;else&lt;br /&gt;&lt;/b&gt;Item.Status := 1;&lt;br /&gt;Item.Unitario := StrToFloat(Unitario);&lt;br /&gt;Item.Quantidade := StrToFloat(Quantidade);&lt;br /&gt;Item.IPI := StrTofloat(IPI);&lt;br /&gt;Item.Desconto := StrToFloat(Desconto);&lt;br /&gt;Item.ValorDescontado := StrToFloat(ValorDescontado);&lt;br /&gt;Item.Valortotal := StrToFloat(ValorFinal);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size:85%;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;&lt;/b&gt;qryGravaCotacao.ParamByName('VALPRAZOENTREGA').AsInteger := Orcamento.PrazoEntrega;&lt;br /&gt;qryGravaCotacao.ParamByName('DATENTREGA').AsDateTime := Date;&lt;br /&gt;qryGravaCotacao.ParamByName('CODCPG').AsString := BuscaPrazoPagamento(Orcamento.CondicoesPagto, Orcamento.NumeroParcelas);&lt;br /&gt;qryGravaCotacao.ParamByName('VALFRETE').AsFloat := Orcamento.Frete;&lt;br /&gt;qryGravaCotacao.ParamByName('FRETECIFOUFOB').AsInteger := BuscaTipoFrete(Orcamento.FreteCIFouFob);&lt;br /&gt;qryGravaCotacao.ParamByName('VALTRB').AsFloat := Orcamento.ICMS;&lt;br /&gt;qryGravaCotacao.ParamByName('CODCOTACAO').AsString := Orcamento.CodCotacao;&lt;br /&gt;qryGravaCotacao.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;&lt;br /&gt;qryGravaCotacao.ParamByName('CODCFO').AsString := Orcamento.CodCfo;&lt;br /&gt;qryGravaCotacao.ExecSQL;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;try&lt;br /&gt;for &lt;/b&gt;k := 0 &lt;b&gt;to &lt;/b&gt;DadosItem.Count-1 &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;do&lt;br /&gt;begin&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;DadosItem.Items[k];&lt;br /&gt;&lt;b&gt;if &lt;/b&gt;&lt;br /&gt;(DadosItem.Items[k].CodCfo = Orcamento.CodCfo) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;begin&lt;br /&gt;try&lt;br /&gt;&lt;/b&gt;CodCpg := BuscaPrazoPagamento(Orcamento.CondicoesPagto, Orcamento.NumeroParcelas);&lt;br /&gt;qryGravaItemCotacao.ParamByName('IDPRD').AsInteger := BuscaIDProduto(DadosItem.Items[k].CodPrd);&lt;br /&gt;qryGravaItemCotacao.ParamByName('CODCFO').AsString := DadosItem.Items[k].CodCfo;&lt;br /&gt;qryGravaItemCotacao.ParamByName('VALCOTACAO').AsFloat := DadosItem.Items[k].Unitario;&lt;br /&gt;qryGravaItemCotacao.ParamByName('VALNEGOCIADO').AsFloat := DadosItem.Items[k].Unitario;&lt;br /&gt;qryGravaItemCotacao.ParamByName('VALTRB').AsFloat := DadosItem.Items[k].IPI;&lt;br /&gt;qryGravaItemCotacao.ParamByName('DESCONTO').AsFloat := DadosItem.Items[k].ValorDescontado;&lt;br /&gt;qryGravaItemCotacao.ParamByName('PERCDESCONTO').AsFloat := DadosItem.Items[k].Desconto;&lt;br /&gt;qryGravaItemCotacao.ParamByName('VALTOTCOTACAONEG').AsFloat := 0;&lt;br /&gt;qryGravaItemCotacao.ParamByName('CODCOTACAO').AsString := Orcamento.CodCotacao;&lt;br /&gt;qryGravaItemCotacao.ParamByName('CODCOLIGADA').AsInteger := CorporeRM.Coligada;&lt;br /&gt;qryGravaItemCotacao.ParamByName('STSITEM').AsInteger := DadosItem.Items[k].Status;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;qryGravaItemCotacao.ParamByName('CFOVENCEDOR').AsFloat := DadosItem.Items[k].Quantidade;&lt;br /&gt;&lt;/i&gt;qryGravaItemCotacao.ParamByName('VALTOTCOTACAO').AsFloat := 0; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;(DadosItem.Items[k].Unitario * DadosItem.Items[k].Quantidade);&lt;br /&gt;&lt;/i&gt;qryGravaItemCotacao.ParamByName('CODCPGNEGOCIADA').AsString := CodCpg;&lt;br /&gt;qryGravaItemCotacao.ParamByName('CODCPG').AsString := CodCpg;&lt;br /&gt;qryGravaItemCotacao.ExecSQL;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;MessageDlg('Erro ao tentar gravar o item "' + IntToStr(K) + '" desta&lt;br /&gt;Cotação: '+ Exception(exceptobject).&lt;b&gt;message&lt;/b&gt;, mtError, [mbOk], 0);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;end&lt;br /&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;MessageDlg('Erro ao tentar gravar os dados nesta Cotação: '+ Exception(exceptobject).&lt;b&gt;message&lt;/b&gt;, mtError, [mbOk], 0);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;except&lt;br /&gt;&lt;/b&gt;MessageDlg('Erro ao tentar ler os dados para esta Cotação: '+ Exception(exceptobject).&lt;b&gt;message&lt;/b&gt;, mtError, [mbOk], 0);&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;finally&lt;br /&gt;&lt;/b&gt;MessageDlg('Importação realizada com sucesso!', mtInformation, [mbOk], 0);&lt;br /&gt;CloseFile(fi);&lt;br /&gt;SetStatusCotacao(Orcamento.CodCotacao,5);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;BackupName := ExtractFileName(eFileName.text);&lt;br /&gt;BackupName := ChangeFileExt(BackupName, '.old');&lt;br /&gt;&lt;b&gt;if not &lt;/b&gt;RenameFile(eFileName.text, BackupName) &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;then&lt;br /&gt;raise &lt;/b&gt;Exception.Create('Não foi possível renomear o arquivo já importado!');&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;//&lt;br /&gt;&lt;/i&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;b&gt;end&lt;/b&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;color:#000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;Feita a rotina para lermos os dados da planilha, vamos atualizar os itens da&lt;br /&gt;cotação. Para isto iremos mexer em duas tabelas: TCORCAMENTO e TCITMORCAMENTO.&lt;br /&gt;&lt;br /&gt;Você deve usar a seguinte sentença SQL para gravar os dados na TCORCAMENTO:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;update TCORCAMENTO SET VALPRAZOENTREGA = :VALPRAZOENTREGA, DATENTREGA = :DATENTREGA, CODCPG = :CODCPG, VALFRETE = :VALFRETE, FRETECIFOUFOB = :FRETECIFOUFOB, VALTRB = :VALTRB where CODCOTACAO = :CODCOTACAO and CODCOLIGADA = :CODCOLIGADA and CODCFO = :CODCFO&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;E, para gravar na TCITMORCAMENTO:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;update TCITMORCAMENTO set VALCOTACAO = :VALCOTACAO,VALNEGOCIADO = :VALNEGOCIADO, VALTRB = :VALTRB,DESCONTO = :DESCONTO, PERCDESCONTO = :PERCDESCONTO, VALTOTCOTACAONEG =:VALTOTCOTACAONEG, CODMOEDA = 'R$', CODCPG = :CODCPG, CODCPGNEGOCIADA = :CODCPGNEGOCIADA, STSITEM = 0, VALTOTCOTACAO = :VALTOTCOTACAO where CODCOTACAO = :CODCOTACAO and CODCOLIGADA = :CODCOLIGADA and CODCFO = :CODCFO and IDPRD = :IDPRD&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Atente para o campo STSITEM da Tabela. Você pode gravar o valor 0 para ele ser atualizado na cotação ou então usar uma regra conforme o que você importar na planilha.&lt;br /&gt;&lt;br /&gt;0 = Cotado&lt;br /&gt;1 = Não fornece&lt;br /&gt;2 = Não cotou&lt;br /&gt;4 = Desqualificado&lt;br /&gt;&lt;br /&gt;Depois você deve usar aquela mesma rotina de mudança de status da cotação e muda para o status 5 (Em negociação). E pronto!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;É isso aí. Peixe mais bem pescado que este não vão encontrar em lugar algum :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-6841821421515307318?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/6841821421515307318/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=6841821421515307318' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/6841821421515307318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/6841821421515307318'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/09/criando-uma-rotina-de-envio-de-cotao.html' title='Criando uma rotina de envio de cotação para fornecedores no RM Nucleus'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-185298657980644511</id><published>2007-09-25T13:36:00.000-05:00</published><updated>2007-09-25T13:51:25.302-05:00</updated><title type='text'>Alterar o número de uma Nota fiscal no RM Núcleus</title><content type='html'>&lt;span style="font-family:courier new;font-size:78%;"&gt;Utilize este Script:&lt;br /&gt;&lt;br /&gt;DECLARE @iIDMOV INT&lt;br /&gt;DECLARE @fVALOR FLOAT&lt;br /&gt;DECLARE @iCODFILIAL INT&lt;br /&gt;DECLARE @fNOVANOTA VARCHAR(8)&lt;br /&gt;DECLARE @dDATAEMISSAO DATETIME&lt;br /&gt;&lt;br /&gt;SET @fNOVANOTA = '005819'&lt;br /&gt;SET @iCODFILIAL = 16;&lt;br /&gt;SET @dDATAEMISSAO = '06/13/2007'&lt;br /&gt;SET @iIDMOV = (select IDMOV from TMOV where numeromov = '005819' and codfilial = @iCODFILIAL and codtmv = '2.2.01');&lt;br /&gt;update TMOV set NUMEROMOV = @fNOVANOTA, DATAEMISSAO = @dDATAEMISSAO, DATASAIDA = @dDATAEMISSAO, DATACONTABILIZACAO = @dDATAEMISSAO where idmov = @iIDMOV&lt;br /&gt;update FLAN set NUMERODOCUMENTO = @fNOVANOTA + '-A' where IDMOV = @iIDMOV&lt;br /&gt;update CLCTLOTE set DOCUMENTO = @fNOVANOTA, COMPLEMENTO = @fNOVANOTA + SUBSTRING(COMPLEMENTO,7,40) where CODFILIAL = @iCODFILIAL and LCTREF in (select LCTREF from TMOVCONT where idmov = @iIDMOV)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-185298657980644511?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/185298657980644511/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=185298657980644511' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/185298657980644511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/185298657980644511'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/09/utilize-este-script-declare-iidmov-int.html' title='Alterar o número de uma Nota fiscal no RM Núcleus'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-1324482546807157509</id><published>2007-08-31T09:34:00.000-05:00</published><updated>2007-09-25T13:49:31.970-05:00</updated><title type='text'>Exclui um funcionario cadastrado no RM Labore</title><content type='html'>&lt;span style="font-family:courier new;font-size:78%;"&gt;Execute esta Stored Procedure&lt;br /&gt;&lt;br /&gt;EXCLUIRFUNCIONARIO '025874'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE EXCLUIRFUNCIONARIO (&lt;br /&gt;@sCHAPA VARCHAR(6)&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;DECLARE @iCODCOLIGADA INT;&lt;br /&gt;&lt;br /&gt;SET @iCODCOLIGADA = 2;&lt;br /&gt;&lt;br /&gt;DELETE FROM AABONFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AAFHTFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AATUALFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ABANCOHORFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ABATFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ABATREFFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ABATVIS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ACOMPFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AEAUTFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AEESPFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AFOLGFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AINTEXTRA WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AIREFFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AJUSTFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AMOVFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AOCORREN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM APERFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM APERMFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AREFFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AREFVIS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ARELBANCOHOR WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ARELFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM ASECVIS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM AUSOPROV WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPAFUNC = @sCHAPA&lt;br /&gt;DELETE FROM APARFUN WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM FCFO WHERE CODCOLCHAVESESTRANG = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM IBEMFUNC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;-- DELETE FROM KAPONTAFUNCIONARIO WHERE CODCOLCHAPA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PDADQUIOSQUE WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFAAS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFADICFER WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFAVISO WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFCODFIX WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFCOMPL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFDEPEVENTOS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFDEPMOV WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFDEPENDCOMPL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFDEPEND WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFEMPRT WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;-- DELETE FROM PFENCAR WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFFERIAS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFPERFER WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFFERPROG WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFFINANC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFMOVCC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFMOVCCCOMPL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFPERFF WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFFINANCCOMPL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFPERFFCOMPL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTAFT WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTCSD WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTFCO WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTFER WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTHOR WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTNDP WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTPROV WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTSAL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTSEC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFHSTSIT WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFMOVTOMADOR WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFRATEIOFIXO WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFRATEIOTOMADOR WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFSALCMP WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFSUBSTITUICAO WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFUNCVAL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFVALETR WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFVERBAS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFVERBASCOMPL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PPARDIRF WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPAFUNC = @sCHAPA&lt;br /&gt;DELETE FROM PSUBSTCHEFE WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPASUBST = @sCHAPA&lt;br /&gt;DELETE FROM TITMMOV WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VADVERTENCIA WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VBENEFFUNC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VCURSOSPESSOAIS WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VDISTRVERBATREINA WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VFUNCIONARIO WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VMOVFUNC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VOCORRENCIA WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VRANKFUNCIONAL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VTAREFAPESSOAL WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM VHISTPOSTOPFUNC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFENCARGO WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PHSTOCORRENCIA WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;DELETE FROM PFUNC WHERE CODCOLIGADA = @iCODCOLIGADA AND CHAPA = @sCHAPA&lt;br /&gt;&lt;br /&gt;END&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-1324482546807157509?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/1324482546807157509/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=1324482546807157509' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/1324482546807157509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/1324482546807157509'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/08/exclui-um-funcionario-cadastrado-no-rm.html' title='Exclui um funcionario cadastrado no RM Labore'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-912453705842146932</id><published>2007-08-31T09:15:00.000-05:00</published><updated>2007-09-25T13:48:41.930-05:00</updated><title type='text'>Exclui lançamentos duplicados no Saldus gerados pelo Nucleus</title><content type='html'>&lt;span style="font-family:courier new;font-size:78%;"&gt;Use este script:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DECLARE @iIDMOV INT&lt;br /&gt;DECLARE @fVALOR FLOAT&lt;br /&gt;DECLARE @iCODFILIAL INT&lt;br /&gt;DECLARE @sCODCONTA VARCHAR(20)&lt;br /&gt;DECLARE @iLCTREF INT&lt;br /&gt;DECLARE @sNUMEROMOV VARCHAR(6)&lt;br /&gt;&lt;br /&gt;SET @iCODFILIAL = 4;&lt;br /&gt;SET @sCODCONTA = '3.1.1.010.0004'&lt;br /&gt;SET @sNUMEROMOV = '023053'&lt;br /&gt;&lt;br /&gt;SET @iIDMOV = (select IDMOV from TMOV where numeromov = @sNUMEROMOV and codfilial = @iCODFILIAL and codtmv = '2.2.01');&lt;br /&gt;SET @iLCTREF = (select LCTREF from TMOVCONT where idmov = @iIDMOV and CODCONTA = @sCODCONTA)&lt;br /&gt;&lt;br /&gt;delete from TMOVCONT where IDMOV in (select idmov FROM TMOV where codlote is null and DATAEMISSAO &gt;= '2006-04-01 00:00:00.000' and codcoligada = 2 and codfilial = 4 and codtmv = '2.2.01')&lt;br /&gt;delete from CLCTLOTE WHERE CODFILIAL = 4 and DOCUMENTO in (select numeromov FROM TMOV where codlote is null and DATAEMISSAO &gt;= '2006-04-01 00:00:00.000' and codcoligada = 2 and codfilial = 4 and codtmv = '2.2.01')&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-912453705842146932?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/912453705842146932/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=912453705842146932' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/912453705842146932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/912453705842146932'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/08/exclui-lanamentos-duplicados-no-saldus.html' title='Exclui lançamentos duplicados no Saldus gerados pelo Nucleus'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-5086709644165697644</id><published>2007-08-31T09:13:00.000-05:00</published><updated>2007-09-25T13:42:08.466-05:00</updated><title type='text'>Excluindo um lançamento no RM Fluxus</title><content type='html'>&lt;span style="font-family:courier new;font-size:78%;"&gt;Use esta procedure:&lt;br /&gt;&lt;br /&gt;EXCLUIRMOVIMENTOFLUXUS 158547, 0,2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE EXCLUIRMOVIMENTOFLUXUS (&lt;br /&gt;@iIDLAN INT,&lt;br /&gt;@STATUSMOVIMENTO VARCHAR(1),&lt;br /&gt;@iCODFILIAL INT&lt;br /&gt;)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;DECLARE @iCODCOLIGADA INT;&lt;br /&gt;&lt;br /&gt;SET @iCODCOLIGADA = 2;&lt;br /&gt;&lt;br /&gt;DELETE FROM FLANRATCCU WHERE IDLAN = @iIDLAN&lt;br /&gt;DELETE FROM FLANCONT WHERE codcoligada = @iCODCOLIGADA and codfilial = @iCODFILIAL and IDLAN = @iIDLAN&lt;br /&gt;DELETE FROM FLANRATDEP WHERE codfilial = @iCODFILIAL and IDLAN = @iIDLAN&lt;br /&gt;DELETE FROM FLAN WHERE codfilial = @iCODFILIAL and IDLAN = @iIDLAN&lt;br /&gt;&lt;br /&gt;END&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-5086709644165697644?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/5086709644165697644/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=5086709644165697644' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/5086709644165697644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/5086709644165697644'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/08/excluindo-um-lanamento-no-rm-fluxus.html' title='Excluindo um lançamento no RM Fluxus'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6844937.post-88342912714622454</id><published>2007-08-31T08:23:00.000-05:00</published><updated>2007-09-25T13:41:11.652-05:00</updated><title type='text'>Excluindo um movimento no Núcleus que tenha vínculo com outros módulos do RM</title><content type='html'>&lt;span style="font-family:courier new;font-size:78%;"&gt;Carregue esta Stored Procedure no SQL Server.&lt;br /&gt;&lt;br /&gt;Para executá-la use a seguinte sintaxe no Query Analyxer:&lt;br /&gt;&lt;br /&gt;EXCLUIRMOVIMENTOMANUALMENTE '002547', '2.2.01', 'Q', 4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE EXCLUIRMOVIMENTOMANUALMENTE (&lt;br /&gt;@NUMEROMOVIMENTO VARCHAR(6),&lt;br /&gt;@TIPOMOVIMENTO VARCHAR(6),&lt;br /&gt;@STATUSMOVIMENTO VARCHAR(1),&lt;br /&gt;@CODIGOFILIAL INTEGER&lt;br /&gt;)&lt;br /&gt;/*Excluir movimento manualmente*/&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;DECLARE @IDMOVIMENTO INTEGER;&lt;br /&gt;&lt;br /&gt;SET @IDMOVIMENTO = (SELECT IDMOV FROM TMOV WHERE CODFILIAL = @CODIGOFILIAL AND CODTMV = @TIPOMOVIMENTO&lt;br /&gt;AND STATUS = @STATUSMOVIMENTO AND NUMEROMOV = @NUMEROMOVIMENTO);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DELETE FLANRATCCU WHERE IDLAN in (SELECT IDLAN FROM FLAN WHERE IDMOV in(SELECT IDMOV FROM TMOV&lt;br /&gt;WHERE IDMOV IN (@IDMOVIMENTO)))&lt;br /&gt;DELETE FLANRATDEP WHERE IDLAN in (SELECT IDLAN FROM FLAN WHERE IDMOV in(SELECT IDMOV FROM TMOV&lt;br /&gt;WHERE IDMOV IN (@IDMOVIMENTO)))&lt;br /&gt;DELETE FLANCONT WHERE IDLAN in (SELECT IDLAN FROM FLAN WHERE IDMOV in(SELECT IDMOV FROM TMOV&lt;br /&gt;WHERE IDMOV IN (@IDMOVIMENTO)))&lt;br /&gt;DELETE FLAN WHERE IDLAN in (SELECT IDLAN FROM FLAN WHERE IDMOV in(SELECT IDMOV FROM TMOV&lt;br /&gt;WHERE IDMOV IN (@IDMOVIMENTO)))&lt;br /&gt;&lt;br /&gt;DELETE TMOVRATDEP WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVRATCCU WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TTRBMOV WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TITMMOVCOMPL WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TITMMOV WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVRELAC WHERE IDMOVDESTINO IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVHISTORICO WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVCOMPL WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TITMMOVRELAC WHERE IDMOVDESTINO IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVFISCAL WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVRESUMOTRBIT WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;DELETE TMOVCONT WHERE IDMOV IN (@IDMOVIMENTO)&lt;br /&gt;&lt;br /&gt;/*Retira relacionamento*/&lt;br /&gt;UPDATE TMOV SET IDMOVRELAC = NULL WHERE IDMOVRELAC IN (@IDMOVIMENTO)&lt;br /&gt;/*'Atualiza OC com status A Faturar' e 'Atualiza OC com Quantidade Original'*/&lt;br /&gt;UPDATE TMOV SET status = 'A' WHERE CODTMV = '2.1.09' AND IDMOVRELAC IN (@IDMOVIMENTO)&lt;br /&gt;/*'Exclusao especial'*/&lt;br /&gt;DELETE CLCTLOTE WHERE INTEGRACHAVE IN (SELECT RTRIM(LTRIM(STR(IDMOV))) FROM TMOV&lt;br /&gt;WHERE CODFILIAL = @CODIGOFILIAL AND CODTMV = @TIPOMOVIMENTO AND NUMEROMOV = @NUMEROMOVIMENTO)&lt;br /&gt;&lt;br /&gt;DELETE CLANCA WHERE LCTREF IN (@IDMOVIMENTO)&lt;br /&gt;&lt;br /&gt;DELETE TMOV WHERE IDMOV IN(@IDMOVIMENTO)&lt;br /&gt;&lt;br /&gt;END&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6844937-88342912714622454?l=delphitocorporerm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://delphitocorporerm.blogspot.com/feeds/88342912714622454/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6844937&amp;postID=88342912714622454' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/88342912714622454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6844937/posts/default/88342912714622454'/><link rel='alternate' type='text/html' href='http://delphitocorporerm.blogspot.com/2007/08/excluindo-um-movimento-no-ncleus-que.html' title='Excluindo um movimento no Núcleus que tenha vínculo com outros módulos do RM'/><author><name>Walter Chagas Jr.</name><uri>http://www.blogger.com/profile/14600897684903711878</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://bp2.blogger.com/_wwkaXh-0PEU/R4p7n4O_glI/AAAAAAAAAAU/aKtwnfq4k1g/S220/wchagas23.jpg'/></author><thr:total>0</thr:total></entry></feed>
