<?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=291289&amp;view=findpost&amp;p=2465843</guid>
        <pubDate>Tue, 05 Jan 2010 14:11:43 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465843</link>
        <description><![CDATA[vicis: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=291289&view=findpost&p=2465437'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gabeydulin &#064; <time class="tag-quote__quoted-time" datetime="2010-01-04T21:25:48+03:00">04.01.10, 18:25</time></span><div class='quote '>Просто я хочу написать функцию в Delphi 7,которая возвращает массив record. </div></div><br>
используй массивы<br>
здесь посмотри http://php.su/learnphp/datatypes/]]></description>
        <author>vicis</author>
        <category>Delphi for PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465835</guid>
        <pubDate>Tue, 05 Jan 2010 13:57:16 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465835</link>
        <description><![CDATA[vicis: Есть у нас такой компонент, который работает с компонентом Query.<br>
Если интересует пиши в личку.<br>
<br>
Делали его как раз из соображений полного управления DBGridom в стиле RXDBGrid или UltimateDbGrid из Jedi.<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">Компонент &nbsp;DBGridHTML</div><div class="code_line">для отображения таблицы с помощью простого html</div><div class="code_line">&nbsp;</div><div class="code_line">Версия 1.19</div><div class="code_line">Украина, Киев, 2009</div><div class="code_line">&nbsp;</div><div class="code_line">1) поддерживает через &nbsp;свойство $DataSource связь с компонетом DataSource</div><div class="code_line">&nbsp;</div><div class="code_line">2) корректно работает с Pager</div><div class="code_line">&nbsp;</div><div class="code_line">3) так как унаследован от &nbsp;ExtPanel то имеет все его свойства, а также</div><div class="code_line">&nbsp;&nbsp; &nbsp; свойство $Align которое имеет значения alClient, alTop и др.</div><div class="code_line">&nbsp;</div><div class="code_line">4) имеет редактор свойств колонок в свойстве Columns</div><div class="code_line">&nbsp;&nbsp;(там поддерживается пока:</div><div class="code_line">&nbsp;&nbsp; - Caption</div><div class="code_line">&nbsp;&nbsp; - TitleColor</div><div class="code_line">&nbsp;&nbsp; - Width</div><div class="code_line">&nbsp;&nbsp; - FontColor</div><div class="code_line">&nbsp;&nbsp; - Alignment</div><div class="code_line">&nbsp;&nbsp; - Color</div><div class="code_line">&nbsp;&nbsp; - Fieldname</div><div class="code_line">&nbsp;&nbsp;)</div><div class="code_line">&nbsp;&nbsp;особенность: если width колонок в сумме меньше чем ширина таблицы, то они могут</div><div class="code_line">&nbsp;&nbsp;растягиватся и не отрисовываться с указанным размером</div><div class="code_line">&nbsp;&nbsp;это решается указанием одной из колонок width=100%</div><div class="code_line">&nbsp;&nbsp;тогда она становится авторастягиваемой, а у отальных размер как указано</div><div class="code_line">&nbsp;&nbsp; Примечание:</div><div class="code_line">&nbsp;&nbsp; В режиме дизайна результат применения свойств не отображается,</div><div class="code_line">&nbsp;&nbsp; т.к. в этом режиме не происходит подключание к базе</div><div class="code_line">&nbsp;&nbsp; и, соответственно, данные не доступны.</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; последовательность отображения полей соответствует последовательности в columns</div><div class="code_line">&nbsp;&nbsp; если нет ни одного поля в columns, то отображаются все колонки в соответствии с запросом</div><div class="code_line">&nbsp;</div><div class="code_line">5) имеет ряд общих для таблицы свойств</div><div class="code_line">&nbsp;&nbsp; - $TableBorder</div><div class="code_line">&nbsp;&nbsp; - $TableColor</div><div class="code_line">&nbsp;&nbsp; - $TitleColor</div><div class="code_line">&nbsp;&nbsp; - $TitleFontColor</div><div class="code_line">&nbsp;&nbsp; - $TitleFontSize</div><div class="code_line">&nbsp;&nbsp; - $TitleFontAlign</div><div class="code_line">&nbsp;&nbsp; - $TitleFontBold</div><div class="code_line">&nbsp;&nbsp; - $CellColor</div><div class="code_line">&nbsp;&nbsp; - $CellFontColor</div><div class="code_line">&nbsp;&nbsp; - $CellFontSize</div><div class="code_line">&nbsp;&nbsp; все эти свойства могут быть перекрыты свойствами из Columns или стилем из Style</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; Примечание:</div><div class="code_line">&nbsp;&nbsp; В режиме дизайна свойства отображаются правильно</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; - $AttrTRField &nbsp; &nbsp; // имя поля, значение которого передаётся в событие типа tr по onbeforeshow</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// например, можно определить в событии &nbsp;назначение цвета строке по значению</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// контролируемого поля</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// подробнее смотри пример...</div><div class="code_line">&nbsp;&nbsp; - $InvertFontColor &nbsp;// задумывалось как альтернативный цвет шрифта для случая,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // когда, например, фон строки переназначенный с помощью $AttrTRField и события (см. выше)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // сливается со стандартным цветом шрифта</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // автоматически не применяется, используем вручную</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // подробнее смотри пример...</div><div class="code_line">&nbsp;</div><div class="code_line">6) свойство $Style</div><div class="code_line">&nbsp;&nbsp; подключает к таблице указанный стиль, поддерживает компонент StyleSheet</div><div class="code_line">&nbsp;&nbsp; при этом если стиль в свойстве указан, то другие свойства компонента</div><div class="code_line">&nbsp;&nbsp; влияющие на цвет, фон и т.д. не используются (кроме Columns и вроде ещё TitleFontBold)</div><div class="code_line">&nbsp;&nbsp; в этом случае если указаны свойства в Columns, то они накладываются на указанный стиль</div><div class="code_line">&nbsp;</div><div class="code_line">7) свойство $CellLink - массив с указанием гиперссылки для ячейки</div><div class="code_line">&nbsp;&nbsp;формат: [имя поля, гиперссылка]</div><div class="code_line">&nbsp;&nbsp;в гиперссылке можно задавать как шаблон подстановки (с помощью символов {имя} ):</div><div class="code_line">&nbsp;&nbsp;- имена полей - тогда они будут заменены на значения полей из текущей записи</div><div class="code_line">&nbsp;&nbsp;- {AND} заменяется на символ &amp;</div><div class="code_line">&nbsp;&nbsp;- {TARGET_BLANK} - в ссылке будет удалено, но свойство target в теге href будет установлено как &#39;_blank&#39;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; т.е. обозначает, что ссылку открывать в другом окне</div><div class="code_line">&nbsp;&nbsp;Пример:</div><div class="code_line">&nbsp;&nbsp;пусть в текушей записи поле ID = 34, а поле NAME=&#39;Киев&#39;</div><div class="code_line">&nbsp;&nbsp;а в свойстве компонента CellLink укажем</div><div class="code_line">&nbsp;&nbsp;[ID] &nbsp; &nbsp;[http://ait.org.ua?x={ID}{AND}eee={name_en}{TARGET_BLANK}]</div><div class="code_line">&nbsp;&nbsp;[NAME] &nbsp;[http://ait.org.ua?x={ID}]</div><div class="code_line">&nbsp;&nbsp;[TEST] &nbsp;[javascript:alert(&#39;{ID}&#39;)]</div><div class="code_line">&nbsp;&nbsp;при таких исходных данных в полученной таблице получим:</div><div class="code_line">&nbsp;&nbsp; &nbsp;в колонке поля ID &nbsp; будет ссылка &nbsp; &#60;a href=&quot;http://ait.org.ua?x=34&amp;eee=Киев target=_blank&quot;&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp;в колонке поля NAME будет ссылка &nbsp; &#60;a href=&quot;http://ait.org.ua?x=34&#62;&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;в колонке поля TEST будет ссылка &nbsp; &#60;a href=&quot;javascript:alert(&#39;{34}&#39;)&quot;&#62; (пи нажатии выведет окно с цирой 34)</div><div class="code_line">&nbsp;</div><div class="code_line">8) свойство $CellRule - массив с указанием изменения цвета фона, цвета шрифта и жирность шрифта для ячейки</div><div class="code_line">&nbsp;&nbsp;формат: [имя поля,параметры правила]</div><div class="code_line">&nbsp;&nbsp;формат параметров правила: значение поля(проверка на равно);цвет фона ячейки;цвет шрифта; жирность фона;</div><div class="code_line">&nbsp;&nbsp;если условие не выполнено, то параметры условия не применяются</div><div class="code_line">&nbsp;</div><div class="code_line">9) компонент поддерживает событие onbeforeshow</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;в это событие при отрисовке компонента через $params события передаются:</div><div class="code_line">&nbsp;&nbsp; &nbsp;1. при отрисовке ячейки (td) массив</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;array(&#39;evtype&#39;=&#62;&#39;td&#39;,&#39;fname&#39;=&#62;$nameField, &#39;fvalue&#39;=&#62;$query-&#62;Fields[$nameField],&#39;fields&#39;=&#62;$query-&#62;Fields)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;т.е. &#39;evtype&#39;=&#62;&#39;td&#39; обозначает что событие сработало в ячейке td</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;fname&#39;=&#62;$nameField &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- это имя поля</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;fvalue&#39;=&#62;$query-&#62;Fields[$nameField] - значение ячейки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;fields&#39;=&#62;$query-&#62;Fields - массив значений всех ячеейк строки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;полученный результат заменяет значение в ячейке</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Примеры использования в обработчике события:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;а) выделить значение чёрным цветом если это поле =&#39;CITY_NAME_en&#39;:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function DBGridHTML1BeforeShow($sender, $params)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;evtype&#39;]==&#39;td&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;fname&#39;])</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;fname&#39;] == &#39;CITY_NAME_en&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return &quot;&#60;B&#62;&quot;.$params[&#39;fvalue&#39;].&quot;&#60;/B&#62;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return $params[&#39;fvalue&#39;];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;б) если поле называется ID, то заменить информацию в ячейке на изображение</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; типа img_&quot;значение поля&quot;.jpg и текст из значения в строке с именем поля &#39;make&#39;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function DBGridHTML1BeforeShow($sender, $params)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;evtype&#39;]==&#39;td&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;fname&#39;]==&#39;ID&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$make_val = $this-&#62;DBGridHTML1-&#62;GetArrayValue($params[&#39;fields&#39;],&#39;make&#39;); // здесь мы получили значение нужного нам поля в этой строке</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$id_val = $params[&#39;fvalue&#39;];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &quot; &#60;img src=\&quot;/img/small/img_$make_val.jpg\&quot; align=left&#62; - $make_val&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;в) если поле называется &nbsp;CLIENT_ID, то в ячейку вставить панель со всеми компонентами на ней</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; при этом в режиме редактирования панель находится на форме в любо месте (типа визуально редактируемого шаблона)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; а во время выполнения копируется в нужные ячейки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; делаем так:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; - ставим панель на форму (например с именем PanelNewCode)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; - панели устанавливаем в режиме редактирования :</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&#62;PanelNewCode-&#62;Visible = false;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&#62;PanelNewCode-&#62;Layout-&#62;Type = &#39;REL_XY_LAYOUT&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; - прописываем событие для DBGridHTML1 на</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function DBGridHTML1BeforeShow($sender, $params)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;evtype&#39;]==&#39;td&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;fname&#39;]==&#39;CLIENT_ID&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$tempval = $params[&#39;fvalue&#39;];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ((!$tempval) or ($tempval==&#39;0&#39;))</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return &quot;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return &#39;текущий код: &#39;.$tempval.&#39;&#60;br&#62;&#39;.$this-&#62;PanelNewCode-&#62;show(true);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; - т.к. &nbsp;PanelNewCode невидимая, то есть проблема</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; если на этой панели есть компоненты у которых прописаны обработчики событий (например кнопка)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; то vcl не сгенерирует их в страницу, т.к. родитель не видимый</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; решение здесь такое:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; прописываем сгенерировать код события принудительно</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (например для кнопки Button1, которая находится на невидимой панели и имеет обработчик события)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; function zakazinfoAfterShow($sender, $params)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &quot;&#60;script type=\&quot;text/JavaScript\&quot;&#62;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$this-&#62;Button1-&#62;dumpJsEvents();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &quot;&#60;/script&#62;&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; это событие здесь для формы с названием zakazinfo &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;2. при отрисовке строки (tr) массив</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;array(&#39;evtype&#39;=&#62;&#39;tr&#39;,&#39;fname&#39;=&#62;$this-&#62;AttrTRField , &#39;fvalue&#39;=&#62;$tr_value,&#39;fields&#39;=&#62;$query-&#62;Fields)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;т.е. &#39;evtype&#39;=&#62;&#39;tr&#39; обозначает что событие сработало в строке tr</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;fname&#39;=&#62;$this-&#62;AttrTRField &nbsp; - это имя поля указанное нами в свойстве $AttrTRField компонента</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;fvalue&#39;=&#62;$tr_value - текуще значение поля указанного нами в свойстве $AttrTRField компонента</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;fields&#39;=&#62;$query-&#62;Fields - массив значений всех ячеейк строки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;перед срабатыванием события типа tr сначала формируется строка &#60;td&#62; со значениями полей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;при этом если указано поле в $AttrTRField, то его значение запоминается для передачи в обработчик события</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;кроме этого в обработчике доступны все значения полей этой строки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;полученный результат добавляет дополнительные атрибуты в тег строки &#60;tr ...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Примеры использования в обработчике события:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;а)выделить всю строку если в указанном поле (в $AttrTRField) текущее значение равно &#39;Mukachevo&#39;:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;function DBGridHTML1BeforeShow($sender, $params)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;evtype&#39;]==&#39;tr&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if ($params[&#39;fname&#39;])</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if &nbsp;($params[&#39;fvalue&#39;] == &#39;Mukachevo&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return &quot;bgcolor=\&quot;&quot;.$this-&#62;DBGridHTML1-&#62;InvertFontColor.&quot;\&quot;&quot;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">10) свойство $TableFormat - вид отображаемых данных</div><div class="code_line">имеет следующие предустановленные значения:</div><div class="code_line">tfTable - отображени данных в виде обычной таблицы (заголовки в первой строке, а данные в последующих)</div><div class="code_line">tfList &nbsp;- отображени данных в виде списка с помощью таблицы в две колонки (заголовки в первой колонке, а данные во второй)</div><div class="code_line">по умолчанию используется tfTable</div><div class="code_line">&nbsp;</div><div class="code_line">11) свойство $ListTitleName - выводимый текст над колонкой названий полей в режиме &nbsp;TableFormat = tfList</div><div class="code_line">&nbsp;</div><div class="code_line">12) свойство $ListCellName - выводимый текст над колонкой значений полей в режиме &nbsp;TableFormat = tfList</div><div class="code_line">&nbsp;</div><div class="code_line">13) свойство $TitleVisible = [true,false] - отображать названия полей или нет</div><div class="code_line">&nbsp;</div><div class="code_line">14) свойство $ListRowSeparator - ширина пустой строки под каждой записью для режима TableFormat = tfList</div><div class="code_line">&nbsp;&nbsp; &nbsp;если &#60;1 то строка не формируется</div><div class="code_line">&nbsp;</div><div class="code_line">15) полезные функции:</div><div class="code_line">&nbsp;&nbsp; &nbsp;GetArrayValue($array,&#39;имя поля&#39;) - возвращает значение указанного поля базы данных в текущей строке</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; предполагает использование в обработчике onbeforeshow</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; пример:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // здесь мы получили значение нужного нам поля &#39;make&#39; в текущей строке</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // полный пример см. в справке по обработчику onbeforeshow</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this-&#62;DBGridHTML1-&#62;GetArrayValue($params[&#39;fields&#39;],&#39;make&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">16) устанавливает прокрутку если данные не влазят в указанную область</div><div class="code_line">&nbsp;</div><div class="code_line">17) свойство $FieldPrefixIDforTD - имя поля из которого брать префикс для атрибута ID тега TD с данными записи таблицы</div><div class="code_line">&nbsp;&nbsp; &nbsp;если это свойство установлено, то в результирующей html таблице</div><div class="code_line">&nbsp;&nbsp; &nbsp;в тегах TD с данными будет установлен атрибут ID равный:</div><div class="code_line">&nbsp;&nbsp; &nbsp;текущее(для_записи)_значение_поля_$FieldPrefixIDforTD.имя_поля_в_данном_TD</div><div class="code_line">&nbsp;&nbsp; &nbsp;если FieldPrefixIDforTD не установлено, то атрибут ID в тегах TD не генерируется</div><div class="code_line">&nbsp;&nbsp; &nbsp;это нужно для того, что бы с помощью JavaScript найти нужную ячейку с данными</div><div class="code_line">&nbsp;&nbsp; &nbsp;в тексте полученной на клиенте html страницы</div><div class="code_line">&nbsp;&nbsp; &nbsp;т.е. не перечитывать данные с сервера лишний раз</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; например:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; на форме компонент с именем &nbsp;DBGridHTML1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; запрос &#39;select XID,NAME_CITY,NAME_COUNTRY&#39;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; устанавливаем в инспекторе $this-&#62;DBGridHTML-&#62;TDprefixID=XID &nbsp;// т.е. поле префикса ID</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; при генерации html таблицы получаем:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;html&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;заголовок таблицы &#60;tr&#62;.....&#60;/tr&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;данные таблицы для строки у которой id=12:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;tr&#62;&#60;td id=&quot;12.XID&quot;&#62;12&#60;/td&#62;&#60;td id=&quot;12.NAME_CITY&quot;&#62;Kiev&#60;/td&#62;&#60;td id=&quot;12.NAME_COUNTRY&quot;&#62;Ukraine&#60;/td&#62;&#60;/tr&#62;...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;данные таблицы для строки у которой id=13:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#60;tr&#62;&#60;td id=&quot;13.XID&quot;&#62;13&#60;/td&#62;&#60;td id=&quot;13.NAME_CITY&quot;&#62;Simferopol&#60;/td&#62;&#60;td id=&quot;13.NAME_COUNTRY&quot;&#62;Ukraine&#60;/td&#62;&#60;/tr&#62;...</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;... &nbsp;&#60;/html&#62;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;теперь для того что бы получить значение в JavaScript известных нам полей</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(в данном примере это имя города) по коду какой то записи</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;можно использовать такой код (например, для записи у которой XID=13):</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;recid = 13;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xvalue = document.getElementById(recid+&#39;.NAME_CITY&#39;).innerHTML;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;например, присвоить его html элементу cityName для редактирования</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.getElementById(&#39;cityName&#39;).value=xvalue;</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>vicis</author>
        <category>Delphi for PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465459</guid>
        <pubDate>Mon, 04 Jan 2010 19:21:12 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465459</link>
        <description><![CDATA[ViktorXP: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=291289&view=findpost&p=2465437'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gabeydulin &#064; <time class="tag-quote__quoted-time" datetime="2010-01-04T18:25:48+00:00">04.01.10, 18:25</time></span><div class='quote '>Честно говоря, может, плохо искал, но есть ли возможность заполнять таблицы,представленные стандартными компонентами, из моих массивов?</div></div><br>
Как вариант то можно писнуть DataSet совместимый компонент (или поискать уже готовый который работает с массивом) (хотя можно и через sql массив обработать, но это для ленивых)<br>
<br>
про record в php не слышал. не факт что тут что то подобное есть (хотя все может быть)]]></description>
        <author>ViktorXP</author>
        <category>Delphi for PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465437</guid>
        <pubDate>Mon, 04 Jan 2010 18:25:48 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2465437</link>
        <description><![CDATA[gabeydulin: Спасибо за ответ. Была идея вставить данные в обычную html-таблицу. Но мне потом нужно из некоторых столбцов данные и считывать, и я не знаю, можно ли будет определить содержимое выделенной ячейки. Был вариант использовать DBRepeater и в нем куча Label(по количеству столбцов), и этот способ кажется простым, но хотелось бы данные не прямо из БД совать,а предварительно обработать их, т.е. запись в таблицу производить из массива. Честно говоря, может, плохо искал, но есть ли возможность заполнять таблицы,представленные стандартными компонентами, из моих массивов?<br>Ещё один вопрос, просто хотелось бы уточнить у специалистов напрямую, есть вообще такое понятие в PHP, как записи- record в Delphi, структура в Си? Просто я хочу написать функцию в Delphi 7,которая возвращает массив record. Поля этого record&#39;a строковые и целочисленные: например, один элемент записи содержит строку, второй - логический признак, третий - массив целочисленых. Эта функция будет вызываться в D4PHP. Если резульат работы функции присвоить переменной, то какой переменной PHP будет её считать? Это будет массив? Или это вызовет ошибку? Просто нет возможности поэкспериментировать (всё на работе). Может, очень сумбурно,но это меня волнует, я ведь только-только начинаю работать с Web. Спасибо.]]></description>
        <author>gabeydulin</author>
        <category>Delphi for PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2463552</guid>
        <pubDate>Wed, 30 Dec 2009 20:56:35 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2463552</link>
        <description><![CDATA[ViktorXP: но за глянь <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=280269' target='_blank'>Компоненты для DelphiForPhp</a><br>
может найдешь там то что тебя удовлетворит (вдруг я не так понял)]]></description>
        <author>ViktorXP</author>
        <category>Delphi for PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2463549</guid>
        <pubDate>Wed, 30 Dec 2009 20:53:33 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2463549</link>
        <description><![CDATA[ViktorXP: компонента не видел. но если нужно только для вывода данных. то можно с генерировать обычный &lt;table&gt;&lt;/table&gt;, а уже с помощью css подкрашивать определенные ячейки.]]></description>
        <author>ViktorXP</author>
        <category>Delphi for PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2463188</guid>
        <pubDate>Wed, 30 Dec 2009 10:29:16 +0000</pubDate>
        <title>Раскрашивание ячеек таблицы в зависимости от содержимого</title>
        <link>https://forum.sources.ru/index.php?showtopic=291289&amp;view=findpost&amp;p=2463188</link>
        <description><![CDATA[gabeydulin: Работал на Delphi 7. Месяц назад возникла потребность разработать программу, которой можно будет пользоваться удаленно. Было решено писать интернет-приложение на Delphi for PHP 2.0. Тем более что благодаря php4delphi есть возможность создавать в Delphi 7 PHP-расширения. Поэтому можно использовать уже наработанные процедуры и функции. Но это так, предыстория. <br>Возникла потребность использования таблицы, в которую записываются данные (можно прямиком из БД, можно из массива). Но самое главное - необходимо обеспечить раскрашивание ячейки в зависимости от содержимого. Я не знаю, как это лучше сделать. Подскажите, пожалуйста, есть ли в стандартном DBGrid&#39;e такая возможность? Или может есть какой-то аналог StringGrid&#39;a, и есть ли вообще смысл stringgrida для веб-приложения в плане быстродействия)? Заранее благодарен за все комментарии и отклики&#33;]]></description>
        <author>gabeydulin</author>
        <category>Delphi for PHP</category>
      </item>
	
      </channel>
      </rss>
	