<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130810</guid>
        <pubDate>Mon, 01 Dec 2008 11:40:12 +0000</pubDate>
        <title>Удаление строк шаблона Word</title>
        <link>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130810</link>
        <description><![CDATA[slaventos: Всем спасибо, но сделал по другому :D <br>
<br>
Была функция<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Function FindAndPasteTextDoc(findtext_,pastetext_:string):boolean;</div><div class="code_line">begin</div><div class="code_line">FindAndPasteTextDoc:=true;</div><div class="code_line">try</div><div class="code_line">W.Selection.Find.Forward:=true;</div><div class="code_line">W.Selection.Find.Text:= findtext_;</div><div class="code_line">if W.Selection.Find.Execute then begin</div><div class="code_line">W.Selection.Delete;</div><div class="code_line">W.Selection.InsertAfter (pastetext_);</div><div class="code_line">end else FindAndPasteTextDoc:=false;</div><div class="code_line">except</div><div class="code_line">FindAndPasteTextDoc:=false;</div><div class="code_line">end;</div><div class="code_line">End;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Добавил новую<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Function FindAndPasteTextDoc2(findtext_,pastetext_:string):boolean;</div><div class="code_line">begin</div><div class="code_line">FindAndPasteTextDoc2:=true;</div><div class="code_line">try</div><div class="code_line">W.Selection.Find.Forward:=true;</div><div class="code_line">W.Selection.Find.Text:= findtext_;</div><div class="code_line">if W.Selection.Find.Execute then begin</div><div class="code_line">W.Selection.Delete;</div><div class="code_line">W.Selection.Delete;</div><div class="code_line">end else FindAndPasteTextDoc2:=false;</div><div class="code_line">except</div><div class="code_line">FindAndPasteTextDoc2:=false;</div><div class="code_line">end;</div><div class="code_line">End;</div></ol></div></div></div></div><br>
<br>
И по условию выполняю FindAndPasteTextDoc и FindAndPasteTextDoc2.]]></description>
        <author>slaventos</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130793</guid>
        <pubDate>Mon, 01 Dec 2008 11:25:34 +0000</pubDate>
        <title>Удаление строк шаблона Word</title>
        <link>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130793</link>
        <description><![CDATA[vecs: Для Word-отчетов можно использовать <a class='tag-url' href='http://www.vector-ski.com/reports/arwordreport_index.htm' target='_blank'>ArWordReport</a>.<br>
<br>
В шаблоне пишем:<br>
&lt;#a1&gt;%IF &lt;#checked_a2&gt;%THEN<br>
&lt;#a2&gt;%ELSE%ENDIF<br>
&lt;#a3&gt;<br>
<br>
В коде:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">//Указываем, где брать шаблон</div><div class="code_line">WordReport1.WordReport1.Filename := &#39;c:\мой_шаблон.doc&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">//На вход отчета передаем три параметра</div><div class="code_line">WordReport1.CustTagValues[&#39;a1&#39;] := EditA1.Text;</div><div class="code_line">WordReport1.CustTagValues[&#39;a2&#39;] := EditA2.Text;</div><div class="code_line">WordReport1.CustTagValues[&#39;a3&#39;] := EditA3.Text;</div><div class="code_line">WordReport1.CustTagValues[&#39;checked_a2&#39;] := IntToStr(Ord(CheckBoxA2.Checked));</div><div class="code_line">&nbsp;</div><div class="code_line">//Запускаем отчет</div><div class="code_line">try</div><div class="code_line">&nbsp;&nbsp;WordReport1.Preview;</div><div class="code_line">finally</div><div class="code_line">&nbsp;&nbsp;WordReport1.CloseWord;</div><div class="code_line">end;</div></ol></div></div></div></div>]]></description>
        <author>vecs</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130702</guid>
        <pubDate>Mon, 01 Dec 2008 09:02:05 +0000</pubDate>
        <title>Удаление строк шаблона Word</title>
        <link>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130702</link>
        <description><![CDATA[Игорь Акопян: а ещё в ворде есть Bookmarks или Закладки.<br><br>Не надо никаких поисков и парсеров :)<br><br>Просто значению Закладки присваиваем нужный текст, исключается блок просто - весь блок в шаблоне выделяется и назначается закладка типа &quot;Блок1_есть&quot; и если по условию его не должно быть - присваивается пустая строка.<br><br>Минусы - если надо вставлять какой-то одинаковый текст - там, наверное, удобнее заменить несколько спец символов на нужную последовательность]]></description>
        <author>Игорь Акопян</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130079</guid>
        <pubDate>Sun, 30 Nov 2008 12:34:12 +0000</pubDate>
        <title>Удаление строк шаблона Word</title>
        <link>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130079</link>
        <description><![CDATA[ViktorXP: 1) вставлять пустоту<br>
2) зделать парсер. не делать заменой слова а сначала в какойто масив положить слово = значение. потом пробегатся по доку и если это слово совпадает с именем переменной в масиве то заменяем. нам это даст добавление возможности условий. например в доке ты пишеш <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">###a1!{if ###a2!}</div><div class="code_line">###a2!</div><div class="code_line">{/if}###a3!</div></ol></div></div></div></div> а уже при парсировании смотриш если нашол слово <strong class='tag-b'>{if</strong> значит между им и закрывающей скобкой должна быть обявлена переменная. опань и вправду есть... значит проверяем по масиву... и тут она есть а че в ней лежит... в ней какойто текст, значит смотрим что между закрывающей скобкои и <strong class='tag-b'>{/if}</strong> включаем эту часть тоже в парсирование иначе выключаем этот кусок.<br>
получится чето типа SMARTY но под делфи.]]></description>
        <author>ViktorXP</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130065</guid>
        <pubDate>Sun, 30 Nov 2008 12:20:11 +0000</pubDate>
        <title>Удаление строк шаблона Word</title>
        <link>https://forum.sources.ru/index.php?showtopic=258001&amp;view=findpost&amp;p=2130065</link>
        <description><![CDATA[slaventos: Творю программу для подготовки отчетов в *.doc-формат.<br>
<br>
<br>
Вот кусок кода:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure TForm1.Button1Click(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">...</div><div class="code_line">...</div><div class="code_line">if CreateWord then begin</div><div class="code_line">VisibleWord(true);</div><div class="code_line">If OpenDoc(ExtractFileDir(application.ExeName)+&#39;.doc&#39;) then begin</div><div class="code_line">&nbsp;&nbsp; StartOfDoc; FindAndPasteTextDoc(&#39;###a1!&#39;,a1.text);</div><div class="code_line">&nbsp;&nbsp; StartOfDoc; FindAndPasteTextDoc(&#39;###a2!&#39;,a2.text);</div><div class="code_line">&nbsp;&nbsp; StartOfDoc; FindAndPasteTextDoc(&#39;###a3!&#39;,a1.text);</div></ol></div></div></div></div><br>
<br>
Шаблон документа выглядит так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">###a1!</div><div class="code_line">###a2!</div><div class="code_line">###a3!</div></ol></div></div></div></div><br>
<br>
Как, например, удалить строку в шаблоне ###a2&#33;, если a2.text не трогаю (под &quot;контролем&quot; чекбокса), чтобы не было текста &quot;###2&#33;&quot; между ###1&#33; и ###a3&#33;  :rolleyes: ?<br>
<br>
Сейчас так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">текст из а1</div><div class="code_line">###a2!</div><div class="code_line">текст из а3</div></ol></div></div></div></div><br>
<br>
Хочу так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">текст из а1</div><div class="code_line">текст из а3</div></ol></div></div></div></div>]]></description>
        <author>slaventos</author>
        <category>Delphi: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	