<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wikii.int.com.pl/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
		<id>https://wikii.int.com.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Apro</id>
		<title>Motława - Wkład użytkownika [pl]</title>
		<link rel="self" type="application/atom+xml" href="https://wikii.int.com.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Apro"/>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Specjalna:Wk%C5%82ad/Apro"/>
		<updated>2026-06-23T08:09:21Z</updated>
		<subtitle>Wkład użytkownika</subtitle>
		<generator>MediaWiki 1.23.13</generator>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-07-13T09:13:06Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  level  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule -- UWAGA! to jeszcze nie działa!&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
  &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
  &lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
Pole level określa poziom kontroli: 0 - restrykcyjnie (nie pozwala zapisać wartości niepoprawnej), 1 - tylko komunikat, 2 - komunikat z pytaniem czy na pewno zapisać&lt;br /&gt;
(zmiana w wersjach od 2017-07-14)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_rule1','O_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','O_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&lt;br /&gt;
  # wersja pełna wykorzystuje kolejny ruleset z OR&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Kontrola wypełnienia dwu kategorii kolumnowych w towarach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol0_rule1','T_',0,2,'Określ kategorię LED ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol0_rule1_1','T_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol1_rule1','T_',0,2,'Określ kategorię KJB ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol1_rule1_1','T_katcol1_rule1','katcol1',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 5:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-07-13T09:12:20Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: dodanie pola level&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
||-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  level  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule -- UWAGA! to jeszcze nie działa!&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
  &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
  &lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
Pole level określa poziom kontroli: 0 - restrykcyjnie (nie pozwala zapisać wartości niepoprawnej), 1 - tylko komunikat, 2 - komunikat z pytaniem czy na pewno zapisać&lt;br /&gt;
(zmiana w wersjach od 2017-07-14)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_rule1','O_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','O_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&lt;br /&gt;
  # wersja pełna wykorzystuje kolejny ruleset z OR&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Kontrola wypełnienia dwu kategorii kolumnowych w towarach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol0_rule1','T_',0,2,'Określ kategorię LED ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol0_rule1_1','T_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol1_rule1','T_',0,2,'Określ kategorię KJB ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol1_rule1_1','T_katcol1_rule1','katcol1',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 5:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=FK_-_Dekretacja_automatyczna_operacji</id>
		<title>FK - Dekretacja automatyczna operacji</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=FK_-_Dekretacja_automatyczna_operacji"/>
				<updated>2017-06-21T07:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: uzupełnienie wzorców&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
Klucz ''Dekretacja_wg_katcol_z_pozycji_dok'' określa źródło pobierania kategorii kolumnowych (z pozycji lub z nagłówka dokumentu)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Wzorzec konta przy automatycznej dekretacji operacji'''&lt;br /&gt;
&lt;br /&gt;
Przy wyborze &amp;quot;Konto wg wzorca&amp;quot; można posłużyć się następującymi zmiennymi&lt;br /&gt;
&lt;br /&gt;
* '''%mz''' - zmagazynu&lt;br /&gt;
* '''%md''' - domagazynu&lt;br /&gt;
* '''%k''' - kontrahent analityka&lt;br /&gt;
* '''%l''' - kontrahent analityka powiązanych&lt;br /&gt;
* '''%w''' - analityka wydziału (słownik wydziałów)&lt;br /&gt;
* '''%z''' - analityka zlecenia (słownik zleceń kosztowych)&lt;br /&gt;
* '''%zs''' - syntetyka zlecenia (słownik zleceń kosztowych)&lt;br /&gt;
* '''%c0''' do '''%c4''' - idny katcoli z nagłówka&lt;br /&gt;
* '''%c5''' do '''%c9''' - idny katcoli z pozycji (dot. towarów)&lt;br /&gt;
* '''%a0''' do '''%a9''' - konta fk przypisane w słowniku katcoli (pełne bądź ich fragmenty)&lt;br /&gt;
* '''%oc''' - klucz kategorii kolumnowej osoba (pracownik) na podst. osoby przypisanej do dokumentu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
można określić ilość cyfr do jakiej dopełniany jest segment konta - &lt;br /&gt;
szczególnie ważne dla katkoli np:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
np: 501-%c1:5-%c2:2-%z-401-01&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
wartość katcola1 =11 dopełniona do 5 miejsc zerami:&amp;lt;br&amp;gt;&lt;br /&gt;
%c1:5 zamieniane jest na &amp;quot;00011&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
wartość katcola2 =3 dopełniona do 2 miejsc zerami:&amp;lt;br&amp;gt;&lt;br /&gt;
%c2:2 zamieniane jest na &amp;quot;03&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
%z zostanie zastąpione analityką zlecenia&lt;br /&gt;
&lt;br /&gt;
'''Uwaga''' - dekretacja wg kategorii kolumnowych zapisanych w pozycjach wymaga aktywowania klucza ''Dekretacja_wg_katcol_z_pozycji_dok'' w rejestrze IntNet.&lt;br /&gt;
Powyższe zmienne wykorzystywane mogą być również przy dekretacji z określaniem kategorii kolumnowej w zapisach księgowych.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Wzorzec konta przy automatycznej dekretacji płac'''&lt;br /&gt;
&lt;br /&gt;
Przy wyborze &amp;quot;Konto wg wzorca&amp;quot; można posłużyć się następującymi zmiennymi&lt;br /&gt;
&lt;br /&gt;
* '''%p''' - analityka pracownika&lt;br /&gt;
* '''%m''' - analityka MPK&lt;br /&gt;
* '''%za''' - analityka zlecenia (słownik zleceń kosztowych)&lt;br /&gt;
* '''%zs''' - syntetyka zlecenia (słownik zleceń kosztowych)&lt;br /&gt;
* '''%s''' - analityka składnika płacowego&lt;br /&gt;
* '''%k0''' do '''%k2''' - idny katcoli &lt;br /&gt;
* '''%a0''' do '''%a2''' - konta FK przypisane w słowniku katcoli (pełne bądź ich fragmenty)  (włączane przez $DEFINE DEKRETACJA_WG_KATCOL)&lt;br /&gt;
{{ManualFKMenu}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: FK]]&lt;br /&gt;
[[Kategoria: Dokumentacje]]&lt;br /&gt;
[[Kategoria: Motława]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-20T12:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule -- UWAGA! to jeszcze nie działa!&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
  &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
  &lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_rule1','O_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','O_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&lt;br /&gt;
  # wersja pełna wykorzystuje kolejny ruleset z OR&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Kontrola wypełnienia dwu kategorii kolumnowych w towarach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol0_rule1','T_',0,2,'Określ kategorię LED ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol0_rule1_1','T_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol1_rule1','T_',0,2,'Określ kategorię KJB ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol1_rule1_1','T_katcol1_rule1','katcol1',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 5:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-20T12:52:02Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule -- UWAGA! to jeszcze nie działa!&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_rule1','O_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','O_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&lt;br /&gt;
  # wersja pełna wykorzystuje kolejny ruleset z OR&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Kontrola wypełnienia dwu kategorii kolumnowych w towarach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol0_rule1','T_',0,2,'Określ kategorię LED ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol0_rule1_1','T_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol1_rule1','T_',0,2,'Określ kategorię KJB ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol1_rule1_1','T_katcol1_rule1','katcol1',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 5:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-20T12:50:58Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_rule1','O_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','O_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&lt;br /&gt;
  # wersja pełna wykorzystuje kolejny ruleset z OR&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Kontrola wypełnienia dwu kategorii kolumnowych w towarach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol0_rule1','T_',0,2,'Określ kategorię LED ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol0_rule1_1','T_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol1_rule1','T_',0,2,'Określ kategorię KJB ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol1_rule1_1','T_katcol1_rule1','katcol1',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 5:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-20T12:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_rule1','O_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','O_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 wersja pełna wykorzystuje kolejny ruleset z OR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Kontrola dwu kategorii kolumnowych w towarach:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol0_rule1','T_',0,2,'Określ kategorię LED ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol0_rule1_1','T_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&lt;br /&gt;
  INSERT INTO sys_fld_validator_ng VALUES (0,'T_katcol1_rule1','T_',0,2,'Określ kategorię KJB ','');&lt;br /&gt;
  INSERT INTO sys_fld_validator_po VALUES (0,'T_katcol1_rule1_1','T_katcol1_rule1','katcol1',0,0,'NOT_EMPTY','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Przykład 5:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-20T12:32:59Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - AND 1 - OR&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| 0 - cds, 1 - BeforePost, 2 - BeforeApply&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  kolejność sprawdzania&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  jeszcze nie działa&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
  fieldname='rodzaj'&lt;br /&gt;
  validation_rule_type='EQ'&lt;br /&gt;
  validation_rule='10|11|12' - odpowiednik rodzaj in (10,11,12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
 Edycja zamówień (coreid='ZN_n_') od odbiorców i ex (rodzaj in (27,52), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
&lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
 wersja uproszczona wykorzystuje operator |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',0,2,'','');&lt;br /&gt;
INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27|52','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 wersja pełna wykorzystuje kolejny ruleset&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_rule1','ZM_n_',0,2,'Określ handlowca! ','');&lt;br /&gt;
INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_rule1_1','Z_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','','Z_katcol0_cond1','');&lt;br /&gt;
&lt;br /&gt;
INSERT INTO sys_fld_validator_ng VALUES (0,'Z_katcol0_cond1','',1,2,'','');&lt;br /&gt;
INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_1','Z_katcol0_cond1','rodzaj',0,0,'EQ','27','','','');&lt;br /&gt;
INSERT INTO sys_fld_validator_po VALUES (0,'Z_katcol0_cond1_2','Z_katcol0_cond1','rodzaj',0,0,'EQ','52','','','');&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 4:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # UWAGA! to jeszcze nie działa!&lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupaoper=0','','',''),&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-18T09:22:29Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Obsługiwane core_id (miejsca w systemie):&lt;br /&gt;
 nagłówek operacji: 'O_n_'&lt;br /&gt;
 pozycje operacji : 'O_p_'&lt;br /&gt;
 towar 'T_';&lt;br /&gt;
 kontrahent 'K_'&lt;br /&gt;
 nagłówek zamówienia 'ZM_n_'&lt;br /&gt;
 pozycje zamówienia 'ZM_p_'&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupa=0','','',''),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-17T12:43:52Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupa=0','','',''),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-17T12:13:25Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_rule2&amp;quot;,&amp;quot;K_&amp;quot;,1,2,&amp;quot;Pole NIP może mieć długość 10,12 znaków bądź być puste&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,&amp;quot;K_katcol0_rule1_1&amp;quot;,&amp;quot;K_rule1&amp;quot;,&amp;quot;katcol0&amp;quot;,0,0,&amp;quot;NOT_EMPTY&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_1&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_2&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,&amp;quot;K_nip_rule1_3&amp;quot;,&amp;quot;K_rule2&amp;quot;,&amp;quot;nip&amp;quot;,0,0,&amp;quot;LENGTH_EQ&amp;quot;,&amp;quot;12&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupa=0','','',''),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-17T12:11:10Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,&amp;quot;K_rule1&amp;quot;,&amp;quot;K_&amp;quot;,0,2,&amp;quot;Wartosc pierwszej kategorii kolumnowej musi byc okreslona!&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_rule2','K_',1,2,'Pole NIP może mieć długość 10,12 znaków bądź być puste','');&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT_EMPTY','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_1','K_rule2','nip',0,0,'LENGTH_EQ','0','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH_EQ','10','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH_EQ','12','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupa=0','','',''),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-17T12:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'K_rule1','K_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',\'\'),&lt;br /&gt;
  (0,'K_rule2','K_',1,2,'Pole NIP może mieć długość 10,12 znaków bądź być puste','');&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT_EMPTY','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_1','K_rule2','nip',0,0,'LENGTH_EQ','0','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH_EQ','10','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH_EQ','12','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupa=0','','',''),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2017-01-17T11:27:34Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'K_rule1','K_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
  (0,'K_rule2','K_',1,2,'Pole NIP może mieć długość 10,12 znaków bądź być puste','');&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT_EMPTY','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_1','K_rule2','nip',0,0,'LENGTH_EQ','0','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH_EQ','10','','','',''),&lt;br /&gt;
  (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH_EQ','12','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',''),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1','',0,2,'','');&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0','','','','');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! ',''),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY','','grupa=0','','',''),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Czy_pyta%C4%87_o_przeliczenie_cen_i_rabat%C3%B3w</id>
		<title>Czy pytać o przeliczenie cen i rabatów</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Czy_pyta%C4%87_o_przeliczenie_cen_i_rabat%C3%B3w"/>
				<updated>2016-11-16T11:31:46Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{KluczIntNet|nazwa=Czy pytać o przeliczenie cen i rabatów&lt;br /&gt;
|wartosc=wartość liczbowa (0/1)&lt;br /&gt;
|opis=Klucz umożliwia włączenie okna z zapytaniem o przeliczenie cen i rabatów dla kontrahenta - 0; dla wartości 1 nie pojawia się pytanie i nie jest wykonywane przeliczenie&lt;br /&gt;
}}&lt;br /&gt;
== zobacz także: ==&lt;br /&gt;
* [[Edytor kluczy rejestru]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Motława]]&lt;br /&gt;
[[Kategoria: Klucze rejestru IntNetCenter]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV</id>
		<title>Manual Elementy eksploatacji systemu:Import danych tekstowych CSV</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV"/>
				<updated>2015-05-14T12:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nasze aplikacje posiadają wbudowaną funkcjonalność importu danych tekstowych w formacie CSV/TSV.&lt;br /&gt;
&lt;br /&gt;
'''Wymagany format pliku z danymi:'''&lt;br /&gt;
&lt;br /&gt;
* jedna linia nagłówka kolumn - nazwy kolumn mogą zawierać tylko litery (ale nie &amp;quot;polskie&amp;quot;), cyfry i znak podkreślenia (_), muszą zaczynać się od litery, maksymalna długość nazwy to 30 zn.. Nie mogą zawierać innych znaków zwłaszcza spacji. Przykłady prawidłowych nazw: '''data_wystawienia kwota2014 kontrGUID Nazwa_Kontrahenta'''&lt;br /&gt;
* nazwy kolumn muszą być unikalne&lt;br /&gt;
* separator kolumn - znak tabulacji&lt;br /&gt;
* kolumny tekstowe - tekst nie może zawierać:&lt;br /&gt;
** znaków tabulacji&lt;br /&gt;
** cudzysłowów pojedyńczych i podwójnych &lt;br /&gt;
** końca linii (&amp;quot;Enterów&amp;quot;)&lt;br /&gt;
* kolumny liczbowe - nie mogą zawierać separatora tysięcy, separator dziesiętny może być kropką lub przecinkiem np: '''1234567890.234'''&lt;br /&gt;
* kolumny zawierające daty - format RRRR-MM-DD np: '''2013-01-01'''&lt;br /&gt;
* kodowanie znaków - Windows CP1250 (Środkowoeuropejskie Windows 1250) (preferowane) lub Unicode 8-bit (UTF-8)&lt;br /&gt;
&lt;br /&gt;
'''Import pozycji dokumentu.'''&lt;br /&gt;
&lt;br /&gt;
Szczególnym przykładem importu jest import pozycji dokumentu (PPM w edycji pozycji - Importuj pozycje z pliku) w postaci pliku tekstowego separowanego średnikami:&lt;br /&gt;
Kolumny Symbol;Ilość są obowiązkowe, cena jest opcjonalna pozostałe są ignorowane; &lt;br /&gt;
Symbol towaru może być &amp;quot;nasz&amp;quot; lub dostawcy, producenta albo z ofert cenowych (kontrahenta).&lt;br /&gt;
Kolejność kolumn w pliku:&lt;br /&gt;
&lt;br /&gt;
Symbol;Ilość;Cena_Netto;Wartość_Netto&lt;br /&gt;
&lt;br /&gt;
Przykład 1:&lt;br /&gt;
Chleb20;12;&lt;br /&gt;
&lt;br /&gt;
Przykład 2:&lt;br /&gt;
Chleb20;12;2.00;24.00;Chleb oliwski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ManualPlaceMenu}}&lt;br /&gt;
[[Kategoria: Płace]]&lt;br /&gt;
{{ManualHTMenu}}&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
{{ManualElementyEksploatacjiSystemuMenu}}&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV</id>
		<title>Manual Elementy eksploatacji systemu:Import danych tekstowych CSV</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV"/>
				<updated>2015-05-14T12:24:34Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nasze aplikacje posiadają wbudowaną funkcjonalność importu danych tekstowych w formacie CSV/TSV.&lt;br /&gt;
&lt;br /&gt;
'''Wymagany format pliku z danymi:'''&lt;br /&gt;
&lt;br /&gt;
* jedna linia nagłówka kolumn - nazwy kolumn mogą zawierać tylko litery (ale nie &amp;quot;polskie&amp;quot;), cyfry i znak podkreślenia (_), muszą zaczynać się od litery, maksymalna długość nazwy to 30 zn.. Nie mogą zawierać innych znaków zwłaszcza spacji. Przykłady prawidłowych nazw: '''data_wystawienia kwota2014 kontrGUID Nazwa_Kontrahenta'''&lt;br /&gt;
* nazwy kolumn muszą być unikalne&lt;br /&gt;
* separator kolumn - znak tabulacji&lt;br /&gt;
* kolumny tekstowe - tekst nie może zawierać:&lt;br /&gt;
** znaków tabulacji&lt;br /&gt;
** cudzysłowów pojedyńczych i podwójnych &lt;br /&gt;
** końca linii (&amp;quot;Enterów&amp;quot;)&lt;br /&gt;
* kolumny liczbowe - nie mogą zawierać separatora tysięcy, separator dziesiętny może być kropką lub przecinkiem np: '''1234567890.234'''&lt;br /&gt;
* kolumny zawierające daty - format RRRR-MM-DD np: '''2013-01-01'''&lt;br /&gt;
* kodowanie znaków - Windows CP1250 (Środkowoeuropejskie Windows 1250) (preferowane) lub Unicode 8-bit (UTF-8)&lt;br /&gt;
&lt;br /&gt;
Szczególnym przykładem importu jest import pozycji dokumentu (PPM w edycji pozycji - Importuj pozycje z pliku) w postaci pliku tekstowego separowanego średnikami:&lt;br /&gt;
Kolumny Symbol;Ilość są obowiązkowe, cena jest opcjonalna pozostałe są ignorowane; &lt;br /&gt;
Symbol towaru może być &amp;quot;nasz&amp;quot; lub dostawcy, producenta albo z ofert cenowych (kontrahenta).&lt;br /&gt;
Kolejność kolumn w pliku:&lt;br /&gt;
&lt;br /&gt;
Symbol;Ilość;Cena_Netto;Wartość_Netto&lt;br /&gt;
&lt;br /&gt;
Przykład 1:&lt;br /&gt;
Chleb20;12;&lt;br /&gt;
&lt;br /&gt;
Przykład 2:&lt;br /&gt;
Chleb20;12;2.00;24.00;Chleb oliwski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ManualPlaceMenu}}&lt;br /&gt;
[[Kategoria: Płace]]&lt;br /&gt;
{{ManualHTMenu}}&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
{{ManualElementyEksploatacjiSystemuMenu}}&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Spis_tre%C5%9Bci</id>
		<title>MotlawaTech:Spis treści</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Spis_tre%C5%9Bci"/>
				<updated>2015-05-12T12:16:54Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
'''MotlawaTech''' to strefa nazw zarezerwowana do dokumentacji technicznej kodu jako pomoc dla programistów - widzą ją tylko zalogowani użytkownicy.&lt;br /&gt;
== Procedury organizacyjne ==&lt;br /&gt;
* [[MotlawaTech:Instalacja komponentu SecureBlackbox|Instalacja komponentu SecureBlackbox]]&lt;br /&gt;
* [[Proc: Procedury]] czyli Seba próbujący okiełznać to wszystko :/&lt;br /&gt;
* [[MotlawaTech:CVS w praktyce|CVS w praktyce]]&lt;br /&gt;
&lt;br /&gt;
== Tematy ==&lt;br /&gt;
* [[MotlawaTech:Użycie linka do Wiki przy oknie ShowMessage|Użycie linka do Wiki przy oknie ShowMessage]]&lt;br /&gt;
* [[MotlawaTech:Dokowanie okna do projektu|Dokowanie okna do projektu]]&lt;br /&gt;
* [[MotlawaTech:Profile w FDBC i FC|Profile (zapamiętanie profili) w FDBC i FC]]&lt;br /&gt;
** [[MotlawaTech:Profile w FDBC i FC#Filtry|Filtry]]&lt;br /&gt;
** [[MotlawaTech:Profile w FDBC i FC#Całokształt FDBC|Całokształt FDBC]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie pomocy wiki do kartoteki|Dodawanie pomocy wiki do kartoteki]]&lt;br /&gt;
* [[MotlawaTech:Automatyczne otwieranie kartoteki po kliknięciu z menu (z uwzględnieniem filtracji)|Automatyczne otwieranie kartoteki po kliknięciu z menu (z uwzględnieniem filtracji)]]&lt;br /&gt;
* [[MotlawaTech:Jak ukryć kartotekę w menu po lewej|Jak ukryć kartotekę w menu po lewej]]&lt;br /&gt;
* [[MotlawaTech:Funkcjonalność &amp;quot;kosza&amp;quot; w kartotece|Funkcjonalność &amp;quot;kosza&amp;quot; w kartotece]]&lt;br /&gt;
* [[MotlawaTech:Dynamiczne menu wydruków]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie logów do zdarzeń|Używanie AddToLogS w systemie (logi systemowe)]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie podsumowania do kartoteki|Dodawanie podsumowania do kartoteki]]&lt;br /&gt;
* [[MotlawaTech:Uprawnienia i ich powiązania|Uprawnienia i ich powiązania]]&lt;br /&gt;
* [[MotlawaTech:Tabela SQL z licznikami|Liczniki systemowe]]&lt;br /&gt;
* [[MotlawaTech:Lokalizacje|Lokalizacje]]&lt;br /&gt;
* [[MotlawaTech:Konfiguracja programu Płace2003 - klucze IReg]]&lt;br /&gt;
&lt;br /&gt;
== Edycja ==&lt;br /&gt;
* [[MotlawaTech:W oknie edycji &amp;quot;szary&amp;quot; opis rekordu|W edycji &amp;quot;szary&amp;quot; opis rekordu]]&lt;br /&gt;
* [[MotlawaTech:Połączanie Lookup w edycji pozycji|Połączanie Lookup w edycji pozycji]]&lt;br /&gt;
* [[MotlawaTech:Jak trwale wyłączyć daną kolumnę z cds w edycji|Jak trwale wyłączyć daną kolumnę z cds w edycji]]&lt;br /&gt;
&lt;br /&gt;
== Pozostałe ==&lt;br /&gt;
* [[MotlawaTech:Formatowanie Czasu]]&lt;br /&gt;
* [[MotlawaTech:Znaczenie osób|Znaczenie osób]] - tabela opcji zależności&lt;br /&gt;
* [[Code:Plconv2003|Plconv2003]] - opis działania konwersji Płac z DOSa do Windowsa&lt;br /&gt;
* [[Code:Bankowe DLL|Bankowe DLL]] - opis ogólny&lt;br /&gt;
* [[Code:Procedura wysyłki maila po nowemu|Procedura wysyłki maila po nowemu]] - jedynie aktualna wersja wysyłki (stan na listopad 2010)&lt;br /&gt;
* [[MotlawaTech: Widoki dla katcoli - VIEWS/v katcols|Widoki dla katcoli - VIEWS/v katcols]]&lt;br /&gt;
&lt;br /&gt;
== Opisy funkcji ==&lt;br /&gt;
* [[Code:OdejmijLMD|OdejmijLMD]] - 	 Funkcja obliczająca rożnicę pomiędzy dwiema datami / wymiarami czasu &lt;br /&gt;
&lt;br /&gt;
== MySQL - przydatne myki ==&lt;br /&gt;
* [[Code:General_log|General_log]] - 	 Śledzenie wykonywanych przez program zapytań&lt;br /&gt;
&lt;br /&gt;
== Opisy dyrektyw IFDEF ==&lt;br /&gt;
* [[MotlawaTech:IFDEFyPlace2003|IFDEFy - Place2003]]&lt;br /&gt;
&lt;br /&gt;
== 12alarmy ==&lt;br /&gt;
* [[Code: 12alarmy|Konfiguracja i obsługa modułu wysyłki maili z poziomu Linuxa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WebCRM ==&lt;br /&gt;
* [[MotlawaTech:WebCRM|WebCRM]]&lt;br /&gt;
* [[Code:Dodanie kontrahenta do informacji o zmianach w WebCRM|Dodanie kontrahenta do informacji o zmianach w WebCRM]]&lt;br /&gt;
* [[Code:Problemy z WebAplikacjami]]&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
* [[MotlawaTech:Podmiana wersji na serwerze klienta|Podmiana wersji w linuxie u klienta]]&lt;br /&gt;
* [[MotlawaTech:Wirtualizacja|Wirtualizacja]]&lt;br /&gt;
* [[MotlawaTech:Konfiguracja sieci INT|Konfiguracja sieci INT]]&lt;br /&gt;
&lt;br /&gt;
== Aplikacje Webowe ==&lt;br /&gt;
* [[MotlawaTech:Struktura katalogów i plików|Struktura katalogów i plików]]&lt;br /&gt;
* [[MotlawaTech:Podgląd zapytań SQL i ich rezultatów|Podgląd zapytań SQL i ich rezultatów]]&lt;br /&gt;
* [[MotlawaTech:Konfiguracja aplikacji|Konfiguracja aplikacji]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== także zobacz: ==&lt;br /&gt;
* [[Code:Tipsy]]&lt;br /&gt;
* [[MotlawaTech: SQLZmiany i procedury storowane]]&lt;br /&gt;
[[Kategoria: MotlawaTech|0]]&lt;br /&gt;
[[Kategoria: Programowanie|0]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Narz%C4%99dziownia</id>
		<title>Narzędziownia</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Narz%C4%99dziownia"/>
				<updated>2015-04-01T08:56:35Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: Utworzył nową stronę „{{Dopracować}}  Moduł pozwala na prowadzenie ewidencji narzędzi i urządzeń w firmie.  Obejmuje on m.in. funkcjonalności:  * ewidencja narzędzi z ich identyfikacj…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dopracować}}&lt;br /&gt;
&lt;br /&gt;
Moduł pozwala na prowadzenie ewidencji narzędzi i urządzeń w firmie.&lt;br /&gt;
&lt;br /&gt;
Obejmuje on m.in. funkcjonalności:&lt;br /&gt;
&lt;br /&gt;
* ewidencja narzędzi z ich identyfikacją&lt;br /&gt;
* obsługa dokumentów:&lt;br /&gt;
** przyjęć na stan (zakupów)&lt;br /&gt;
** wypożyczeń narzędzi dla pracowników (również przy pomocy kodów kreskowych)&lt;br /&gt;
** zwrotów narzędzi od pracowników (również przy pomocy kodów kreskowych)&lt;br /&gt;
** wydań i przyjęć do i z serwisu (naprawy)&lt;br /&gt;
** likwidacji &lt;br /&gt;
&lt;br /&gt;
* przypomnienia o okresowych przeglądach, certyfikacjach itp.&lt;br /&gt;
* emisja dokumentów obiegowych&lt;br /&gt;
* zestawienia stanu obiektów w narzędziowni i u pracowników&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Motława]]&lt;br /&gt;
[[Kategoria: HT]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Szablon:Mot%C5%82awa</id>
		<title>Szablon:Motława</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Szablon:Mot%C5%82awa"/>
				<updated>2015-04-01T08:49:06Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System informatyczny przeznaczony do obsługi podmiotów gospodarczych tworzony przez firmę [[INT]] od 1999 roku.&lt;br /&gt;
Obejmuje aktualnie następujące [[moduły]]:&lt;br /&gt;
[[image:Ht2003.jpg|thumb|Ikonka programu '''[[HT|HT2003]]''']]&lt;br /&gt;
[[image:Place2003.jpg|thumb|Ikonka programu '''[[Płace|Płace2003]]''']]&lt;br /&gt;
* '''[[HT]]''' - sprzedaż, zakup, magazyn (''[[Manual HT: Spis Treści|Dokumentacja]]'', [[Kartoteki HT|Lista kartotek]])&lt;br /&gt;
** '''[[CRM]]''' - zarządzanie informacją w firmie i relacjami z klientami&lt;br /&gt;
** '''[[FK]]''' - finansowo - księgowy (''[[Manual FK: Spis Treści|Dokumentacja]]'')&lt;br /&gt;
** '''[[ST]]''' - moduł [[Środki trwałe|środków trwałych]]&lt;br /&gt;
** '''[[HT - moduł produkcji|PR]]''' - produkcja (ogólny)&lt;br /&gt;
&lt;br /&gt;
* '''[[Płace|PL]]''' - kadry i [[Płace|płace]] (''[[Manual Płace: Spis Treści|Dokumentacja]]'', [[Kartoteki Płace|Lista kartotek]])&lt;br /&gt;
&lt;br /&gt;
* '''[[SNProd|SNPROD]]''' - produkcja jednostkowa (zorientowany na przemysł konstrukcji stalowych i stoczniowy)&lt;br /&gt;
* '''[[AD]]''' - moduł wielowymiarowej analizy danych ([[PIVOT]]) &lt;br /&gt;
* '''[[Narzędziownia]]''' - moduł ewidencji i obrotu narzędziami i wyposażeniem &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dokumentacja wspólna dla [[HT]], [[Płace]], [[FK]]:&lt;br /&gt;
* [[Manual: Elementy eksploatacji systemu|Elementy wspólne eksploatacji modułów systemu Motława]]&lt;br /&gt;
&lt;br /&gt;
''moduły pomocnicze/narzędziowe: '' &lt;br /&gt;
*[[IntNetCenter]]&lt;br /&gt;
*[[SQBEditor]]&lt;br /&gt;
*[[Dopływ Motławy]]&lt;br /&gt;
*[[IPSDesigner]] - edytor formularzy [[IPS]]&lt;br /&gt;
*[[FREditor]] - edytor szablonów [[FastReport]]&lt;br /&gt;
*[[skrypty|skrypty systemowe]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Konfiguracja_aplikacji</id>
		<title>MotlawaTech:Konfiguracja aplikacji</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Konfiguracja_aplikacji"/>
				<updated>2015-03-27T10:41:58Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfiguracja aplikacji Webowych jest wspólna dla wszystkich aplikacji zainstalowanych na danym serwerze. &amp;lt;br&amp;gt;&lt;br /&gt;
Plik konfiguracyjny to  ''/etc/motlawa/connections/connections''&lt;br /&gt;
&lt;br /&gt;
'''Struktura pliku:'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[Plik:PlikKonfiguracyjnyWEBapp.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opis poszczególnych pól:'''&lt;br /&gt;
            &amp;quot;nazwa&amp;quot;: -&amp;gt; Wyświetlana nazwa klienta &amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;login&amp;quot;: -&amp;gt; nazwa użytkownika używana przy otwieraniu tunelu (klucz użytkownika powinien znaleźć się na serwerze docelowym)&amp;lt;br&amp;gt;&lt;br /&gt;
                        '''Pierwsze otwarcie tunelu musi zostać wykonane poprzez użytkownika ''lighttpd'' z konsoli &amp;quot;sudo -u lighttpd ...&amp;quot;'''&lt;br /&gt;
            &amp;quot;ip_addr&amp;quot;: -&amp;gt; adres ip serwera docelowego&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;ssh_port&amp;quot;: -&amp;gt; port ssh&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;local_host&amp;quot;: -&amp;gt; adres ip po stronie serwera docelowego np. 192.168.0.3 lub 127.0.0.1&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;local_port&amp;quot;: -&amp;gt; port, na którym zostanie otwarty tunel (MUSI BYĆ UNIKALNY)&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;remote_addr&amp;quot;:  -&amp;gt; adres ip po stronie serwera docelowego np. 192.168.0.3 lub 127.0.0.1&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;remote_port&amp;quot;:  -&amp;gt; port serwera MySQL po stronie serwera docelowego&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;db_name&amp;quot;: -&amp;gt; nazwa bazy/ baz danych np &amp;quot;ht_test&amp;quot; lub % (wszystkie) lub ht% (wszystkie zaczynające się na ht) lub [&amp;quot;ht&amp;quot;, &amp;quot;szkolenie&amp;quot;, &amp;quot;motlawa&amp;quot;]&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;db_login&amp;quot;: -&amp;gt; nazwa użytkownika bazy danych&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;db_pass&amp;quot;:  -&amp;gt; hasło do bazy&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;db_owner&amp;quot;: -&amp;gt; właściciel bazy danych&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;quot;db_salt&amp;quot;: -&amp;gt; unikalny ciąg znaków do tworzenia hashy podczas logowania (Można sprawdzić w tabeli _db_globals w bazie docelowej - zmienna _SLT_#: select * from _db_globals d where d.key='_SLT_#')&amp;lt;br&amp;gt;&lt;br /&gt;
            [optional] &amp;quot;architekt_mode&amp;quot;: -&amp;gt; &amp;quot;enabled&amp;quot; lub &amp;quot;disabled&amp;quot; po włączeniu tej opcji administrator będzie widział zaawansowane opcje &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Drugim plikiem koniecznym do prawidłowego działania aplikacji jest:''' ''/etc/motlawa/connections/hosts''. &amp;lt;br&amp;gt;&lt;br /&gt;
Domyślnie plik jest pusty i zapisywane są do niego adresy IP użytkowników, którzy poprawnie zalogowali się do aplikacji.  &amp;lt;br&amp;gt;&lt;br /&gt;
Ewentualna struktura: ''[&amp;quot;83.11.233.55&amp;quot;,&amp;quot;88.13.111.23&amp;quot;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;br /&gt;
[[Kategoria:Aplikacje Webowe]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Rozbie%C5%BCno%C5%9B%C4%87_rozrachunk%C3%B3w_i_zapis%C3%B3w_na_kontach</id>
		<title>Rozbieżność rozrachunków i zapisów na kontach</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Rozbie%C5%BCno%C5%9B%C4%87_rozrachunk%C3%B3w_i_zapis%C3%B3w_na_kontach"/>
				<updated>2015-03-23T12:55:37Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
Problem dotyczy dokumentów, dla których zmieniana była data wpływu z roku bieżącego na rok poprzedni (a potem ponownie na bieżący). Takie rozbieżności powstają gdy data dowodu i data wpływu są różne.&amp;lt;br&amp;gt;&lt;br /&gt;
Istnieją dwa ustawienia sposobu dekretacji : '''po dacie wystawienia''' albo '''po  dacie wpływu''' (IntNetCenter, klucz w rejestrze :'''InicjujDateDowoduZDatyWystawienia)'''. Jeżeli data dekretacji jest ustawiona  '''po dacie wpływu''' i [[data graniczna]] dla rozrachunków jest ustawiona na '''datę wpływu''' (IntNet Center, klucz w rejestrze : '''Rozrach_na_dzień_wg_daty''') rozrachunki i zapisy na kontach zgodne. Natomiast dla dokumentów datą wpływu z roku bieżącego, a księgowanych w roku ubiegłym nie są spełnione te warunki.&lt;br /&gt;
Czyli :&lt;br /&gt;
* dokumenty do rozrachunków trafiają po dacie wpływu (rok bieżący)&lt;br /&gt;
* dekretacja tych dokumentów została zrobiona w roku ubiegłym&lt;br /&gt;
&lt;br /&gt;
stąd różnica.&lt;br /&gt;
&lt;br /&gt;
Sposób rozwiązania problemu :&lt;br /&gt;
* należy zmienić datę wpływu dla tych dokumentów na rok ubiegły (data rozliczeń VAT zostaje w roku bieżącym)- w ten sposób uzyskana zostanie zgodność obu dat.&lt;br /&gt;
&lt;br /&gt;
lepsze rozwiązanie to:&lt;br /&gt;
* należy zmienić sposób określania daty rozrachnku na datę dekretacji (ustawienie klucza w rejestrze '''Rozrach_na_dzien_wg_daty''' na '''datadekretacji''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
[[Kategoria: IntNetCenter]]&lt;br /&gt;
[[Kategoria: Motława]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Plik:HT-ofertycenowe_t.jpg</id>
		<title>Plik:HT-ofertycenowe t.jpg</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Plik:HT-ofertycenowe_t.jpg"/>
				<updated>2015-02-03T10:12:26Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Plik:HT-ofertycenowe_k.jpg</id>
		<title>Plik:HT-ofertycenowe k.jpg</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Plik:HT-ofertycenowe_k.jpg"/>
				<updated>2015-02-03T10:10:09Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Oferty_cenowe</id>
		<title>Oferty cenowe</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Oferty_cenowe"/>
				<updated>2015-02-03T10:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
Oferty cenowe pozwalają na zdefiniowanie cen, symboli i nazw towarów obowiązujących w transakcjach z danym klientem.&lt;br /&gt;
Do edycji ofert można wejść zarówno od strony karty towarowej, jak i karty kontrahenta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-ofertycenowe_k.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-ofertycenowe_t.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Oferty_cenowe</id>
		<title>Oferty cenowe</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Oferty_cenowe"/>
				<updated>2015-02-03T10:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: Utworzył nową stronę „{{PracaWre}}  Oferty cenowe pozwalają na zdefiniowanie cen, symboli i nazw towarów obowiązujących w transakcjach z danym klientem.”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
Oferty cenowe pozwalają na zdefiniowanie cen, symboli i nazw towarów obowiązujących w transakcjach z danym klientem.&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_HT:_Kartoteka_kontrahent%C3%B3w</id>
		<title>Manual HT: Kartoteka kontrahentów</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_HT:_Kartoteka_kontrahent%C3%B3w"/>
				<updated>2015-02-03T10:01:42Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
= '''Kartoteki - wprowadzanie danych''' =&lt;br /&gt;
W punkcie tym przedstawiony zostanie szczegółowy opis występujących w systemie kartotek. Dwie z nich kartoteka Kontrahentów i Towarów zostały już wstępnie omówione w rozdziale pierwsze kroki. Oprócz nich w niniejszym rozdziale omówione zostaną kartoteki związane z ewidencją rozliczeń finansowych – Kasy, Banki i Rozrachunki oraz podstawowa baza dokumentów źródłowych – kartoteka Operacji.&amp;lt;br&amp;gt;&lt;br /&gt;
== Kartoteka kontrahentów ==&lt;br /&gt;
System [[Motława]] dla identyfikacji kontrahentów posługuje się kilkoma kryteriami. W przypadku ewidencji dokumentów źródłowych oraz rozliczeń podstawowymi elementami wyszukiwania kontrahenta są jego symbol, nazwa lub identyfikator NIP. W przypadku opcji związanych z częścią finansowo-księgową podstawowe znaczenie ma oczywiście konto księgowe przypisane do kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podstawowym momentem modyfikacji danych kontrahenta lub wprowadzaniem nowych kart jest oczywiście rejestracja dokumentów źródłowych – sprzedaż, zakup, rozliczenia z kontrahentem. W trakcie wykonywania operacji związanych z rejestracją dokumentów praktycznie w każdym przypadku niezbędne jest określenie danych kontrahenta poprzez uzupełnienie listy kontrahentów lub wybór pozycji z aktualnej kartoteki.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Wywołanie kartoteki kontrahentów'''&lt;br /&gt;
&lt;br /&gt;
Po wywołaniu opcji '''Kartoteki''', '''Teczka kontrahentów''' system automatycznie wywołuje ostatnio prezentowaną kartotekę. W przypadku pierwszego wywołania kartoteki dla nowego użytkownika systemu wyświetlony zostaje filtr umożliwiający określenie domyślnego zakresu prezentacji danych.&lt;br /&gt;
Inicjalny filtr dla kartoteki kontrahentów został przedstawiony na rysunku 61. Możliwości ustawień zakresu dla przeglądania danych kontrahentów podlegają standardowym ustawieniom dla filtracji danych. W zależności od typu pól po których ma się odbywać filtracja możliwe jest określenie zakresu parametrów, wskazanie konkretnego parametru np. kontrahenci z Gdyni lub listy warunków które powinni spełniać kontrahenci np. Odbiorcy z miast których nazwa zaczyna się od liter Gd.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_filtry.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahentów - filtr '''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;Kolorem czerwonym oznaczeni są kontrahenci posiadający blokadę sprzedaży&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Po zatwierdzeniu warunków filtracji pojawia się okno kartoteki kontrahentów. Porządek sortowania możliwy jest do określenia poprzez wskazanie kolumny aktywnej (kliknięcie na jej nagłówku) lub wywołanie opcji zaawansowanego sortowania (Ctrl + F5).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Obsługa kartoteki, pola karty kontrahenta'''&lt;br /&gt;
&lt;br /&gt;
Obsługa kartoteki kontrahentów nie odbiega niczym od obsługi standardowej kartoteki. Z poziomu Menu Podręcznego dostępne są wszystkie typowe opcje. Rozszerzeniem możliwości jest rejestracja Rabatów kontrahenta oraz jego Rachunków bankowych. Opcje te umożliwiają wprowadzenie matrycy rabatów aktywnej dla konkretnego kontrahenta lub określenie jego rachunków bankowych. Obsługa tych opcji nie różni się niczym od obsługi słowników opisanych już wcześniej. Jedyną różnicą jest ograniczenie wyświetlanych pozycji słowników – w przypadku odwołania do słowników z poziomu karty kontrahenta zostają wyświetlone wyłącznie wpisy dotyczące wybranej karty.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wprowadzanie nowej karty kontrahenta lub edycja istniejących danych podzielona została na kilka zakładek. Poniżej na kolejnych rysunkach przedstawione zostały kolejne zakładki umożliwiające edycję danych na karcie kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dane ogólne ===&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_ogolne.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, dane ogólne'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Nazwa, symbol'''&lt;br /&gt;
&lt;br /&gt;
Podstawowe elementy identyfikacji kontrahenta z punktu widzenia dokumentu źródłowego. Doradzamy stosowanie symboli pochodnych od nazwy np. symbol dla firmy „Przedsiębiorstwo Handlowo - Usługowe IKAR” mógłby brzmieć IKAR lub PHU IKAR. Należy pamiętać o ograniczeniu do 10 znaków. Nadawanie identyfikatorów liczbowych np. 0090 bez opracowanych dokładnych zasad symboliki może bardzo szybko skończyć się niemożnością odszukania kontrahenta w bazie.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na nazwę kontrahenta przeznaczone jest pole o długości 250 znaków co powinno w zupełności wystarczyć do określenia dowolnej nazwy kontrahenta. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Numer NIP'''&lt;br /&gt;
&lt;br /&gt;
Numer NIP musi być wypełniony w przypadku, gdy kontrahent jest podatnikiem Vat. Numer wprowadzamy bez myślników. Podczas wyświetlania NIP lub drukowania, program zakłada standardowy podział XXX-XXX-XX-XX (kod podziału 3322 - trzy cyfry + trzy cyfry + dwie cyfry + dwie cyfry). Jeżeli kontrahent charakteryzuje się innym podziałem, należy w polu numer NIP wywołać listę dostępnych podziałów i wprowadzić inny kod podziału. Pole to jest dostępne także na kolejnej zakładce.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Forma prawna'''&lt;br /&gt;
&lt;br /&gt;
Możliwość określenia formy prawnej dla kontrahenta. Pole to nie podlega wprost edycji – możliwe elementy określające formę prawną zostały udostępnione w postaci listy.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Adres'''&lt;br /&gt;
&lt;br /&gt;
Adres kontrahenta jest rozbity na kilka pól takich jak: ulica, miasto, kod pocztowy. Pole miasto jest dostępne jako pozycja słownika miast. Ograniczenie możliwości wprowadzania skutkuje zapewnieniem poprawności wpisywania zawartości tego pola a co za tym idzie pewności wykonywania późniejszych zestawień dla kontrahentów z wybranej lokalizacji.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Typ kontrahenta'''&lt;br /&gt;
&lt;br /&gt;
Kontrahent może przynależeć do jednego z pięciu typów. Podstawowe i najczęściej stosowane to dostawca i odbiorca. Typy spedytor i akwizytor wykorzystywane są w przypadku wersji z rozbudowanym obrotem towarowym i umożliwiają określenie definicji parametrów wysyłkowych  towarów oraz zaawansowanych zestawień z podziałem na osoby odpowiedzialne za wielkość obrotów handlowych. &lt;br /&gt;
Ostatnim dostępnym typem jest grupa. Typ ten umożliwia utworzenie bazowej karty wiążącej kilka innych kart kontrahentów (np. sklepy jednej sieci handlowej).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kategoria'''&lt;br /&gt;
&lt;br /&gt;
Kategoria służy do zaszeregowania kontrahenta do szczegółowej grupy. Struktura kategorii może być dowolnie rozbudowana. Dla jednego kontrahenta można określić przynależność do wielu różnych kategorii.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Grupa'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Branże'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kategorie kolumnowe'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zgłoszenia'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Oferty'''&lt;br /&gt;
&lt;br /&gt;
Lista ofert otwierająca się po przyciśnięciu tego klawisza pozwala na wprowadzenie:&lt;br /&gt;
- ceny uzgodnionej z danym kontrahentem&lt;br /&gt;
- symbolu i nazwy towaru obowiązujących u danego kontrahenta (mogą one pojawić się na dokumentach przy wyborze opcji &amp;quot;symbol kontrahenta&amp;quot;)&lt;br /&gt;
Więcej informacji: [[Oferty cenowe]]&lt;br /&gt;
&lt;br /&gt;
=== Identyfikacja kontrahenta ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_kontr.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, identyfikacja'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NIP, Regon, Pesel'''&lt;br /&gt;
&lt;br /&gt;
Numer NIP może być określony zarówno za pomocą tej zakładki jak i poprzedniej. Jak już wspomniano powyżej numer wprowadzamy bez myślników zaś jego podział ustawiany jest automatycznie. W przypadku wyboru błędnego podziału  należy w polu numer NIP wywołać listę dostępnych podziałów i wprowadzić inny kod podziału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Regon i pesel są wykorzystywane wyłącznie  w przypadku nie określenia NIP-u dla kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Upoważnienie, data upoważnienia'''&lt;br /&gt;
&lt;br /&gt;
Pola te umożliwiają wprowadzenie informacji o posiadaniu upoważnienia do wystawiania faktur Vat bez podpisu odbiorcy. W przypadku posiadania upoważnienia czasowego możliwe jest określenie terminu ważności upoważnienia. Określenia numeru upoważnienia różnego od 0 umożliwia automatyczne umieszczenie stosownej informacji na wydruku faktury VAT.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Konta FK'''&lt;br /&gt;
&lt;br /&gt;
Są to oczywiście konta identyfikujące kontrahenta w planie kont. W wariancie uproszczonym dla kontrahenta określone mogą być wyłącznie dwa konta. Pierwsze konto jest związane z operacjami dotyczącymi kontrahenta jako odbiorcy (np. sprzedaż lub zapłata za nią), drugie konto – dostawcy (zakup, koszty, spłaty zobowiązań). Wypełniając te pola można odwołać się do uprzednio zdefiniowanego planu kont lub dokonać nowego wpisu rozszerzającego dotychczasowy plan.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dla wariantu rozszerzonego możliwe jest przypisanie dowolnej liczby kont dla karty kontrahenta. W takim wypadku niezbędne jest wywołanie z poziomu zakładki opcji Konta kontrahenta. Ekran edycji umożliwiający zarządzanie kontami kontrahenta w zaawansowanej formie przedstawiony został na rysunku poniżej.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_kont_fk.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, konta FK'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zasada przypisania kont dla kontrahenta lub uzupełnienia planu kont w trakcie operacji edycji danych kontrahenta jest analogiczna jak w przypadku wariantu uproszczonego.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rozliczenia ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sposób płatności'''&lt;br /&gt;
&lt;br /&gt;
To pole określa domyślny sposób płatności dla kontrahenta. Możliwe jest wyłącznie posłużenie się listą uprzednio zdefiniowanych sposobów płatności. W przypadku wyboru kontrahenta podczas rejestracji dokumentów źródłowych to właśnie ten sposób płatności jest przepisywany do dokumentu. Późniejsza zmiana sposobu rozliczenia możliwa jest bezpośrednio w trakcie edycji dokumentu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Klasa cenowa, Klasa rabatowa'''&lt;br /&gt;
&lt;br /&gt;
Podobnie jak w przypadku określania sposobu płatności dla pól tych możliwe jest wyłącznie posłużenie się wyłącznie wcześniej zdefiniowanymi słownikami. Domyślne parametry mogą być oczywiście zmieniane bezpośrednio podczas rejestracji dokumentów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rabat'''&lt;br /&gt;
&lt;br /&gt;
Pole umożliwia przypisanie domyślnego rabatu w formie procentowej dla przypadku kiedy nie jest wykorzystywane przypisanie kontrahenta do grup rabatowych.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_rozlicz.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, rozliczenia'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kredyt, dni opóźnienia'''&lt;br /&gt;
&lt;br /&gt;
W polach tych możliwe jest określenie trybu rozliczeń dla dokumentów z opóźnionym terminem płatności. Pole kredyt określa limit kwotowy do którego możliwe jest wystawianie dokumentów dla odbiorcy. Po przekroczeniu tego limitu możliwość rejestracji nowych dokumentów zostaje zablokowana. Ewentualne zarejestrowanie dokumentów po przekroczeniu limitu jest możliwe wyłącznie po zatwierdzeniu takiej operacji przez osobę z podwyższonym poziomem uprawnień użytkownika. Pole dni opóźnienia działa równolegle z polem kredyt i umożliwia blokadę sprzedaży po przekroczeniu przez użytkownika uzgodnionego limitu opóźnienia płatności.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Blokada sprzedaży, uzasadnienie'''&lt;br /&gt;
&lt;br /&gt;
Pola te umożliwiają całkowite zablokowanie możliwości obsługi sprzedaży dla określonego kontrahenta. Zastosowanie przełącznika blokady jest nadrzędne w stosunku do opisanych powyżej opcji związanych z limitem kredytu i czasem opóźnienia spłat. W polu uzasadnienie możliwe jest określenie dodatkowego opisu który zostanie wyświetlony w trakcie próby rejestracji dokumentu dla kontrahenta ze statusem blokady sprzedaży.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Płatnik'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za pomocą tego klawisza możliwe jest wywołanie listy kontrahentów i określenie płatnika dla kontrahenta. Pole to musi być określone wyłącznie w przypadku kiedy dane określone na karcie nie są zbieżne z danymi płatnika dla dokumentu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pozostałe dane i uwagi ===&lt;br /&gt;
&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_inne.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, pozostałe dane i uwagi'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Uwagi na fakturach i rachunkach'''&lt;br /&gt;
&lt;br /&gt;
Pole to określa domyślne uwagi umieszczane dla dokumentów wystawianych dla kontrahenta. Uwagi te zostają umieszczone na dokumencie niezależnie od uwag globalnych określonych w konfiguracji dla wszystkich wystawianych dokumentów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Uwagi inne''' i '''Uwagi dotyczące działalności''' &lt;br /&gt;
&lt;br /&gt;
W polach tym można wprowadzić dowolne uwagi o kontrahencie. Zawartość tych pól, po uaktywnieniu w konfiguracji systemu może pojawiać się na ekranie w momencie rejestracji dokumentu. W odróżnieniu od poprzednich uwag wpisy te nie są jednak umieszczane na wydrukach dokumentów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Domyślna liczba kopii dokumentów'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pole to umożliwiają określenie domyślnej liczby kopii dla drukowanych dokumentów. Możliwe jest odrębne określenie liczby kopii dokumentów finansowych i magazynowych.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Dokumenty finansowe'''&lt;br /&gt;
&lt;br /&gt;
'''Grupa uprawnionych'''&lt;br /&gt;
&lt;br /&gt;
'''Język'''&lt;br /&gt;
=== Spedycja - dostarczanie przesyłek ===&lt;br /&gt;
&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:Spedycja.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, spedycja'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Odbierający, adres'''&lt;br /&gt;
&lt;br /&gt;
'''Spedycja'''&lt;br /&gt;
&lt;br /&gt;
'''Akwizytorzy, magazyn akwizytora'''&lt;br /&gt;
&lt;br /&gt;
'''Numer na trasie, odległość, czas dostawy''''&lt;br /&gt;
=== Kontakty ===&lt;br /&gt;
&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:Kontakty.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, kontakty'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Osoby, kontakty'''&lt;br /&gt;
&lt;br /&gt;
Pole te umożliwiają wywołanie list za pomocą których można zdefiniować dodatkową informację o sposobie kontaktu z kontrahentem.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Daty kontaktu, założenia karty''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pole te umożliwiają uproszczone śledzenie historii kontaktu z kontrahentem. Pole data założenia jest tworzone w momencie wpisu karty do bazy kontrahentów. Pole data ostatniego kontaktu jest automatycznie uaktualniane na podstawie rejestrowanych w systemie zapisów powiązanych z wybraną karta kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
=== CRM ===&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:CRM.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, CRM'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Dokumenty'''&lt;br /&gt;
&lt;br /&gt;
'''Stan rozliczeń'''&lt;br /&gt;
&lt;br /&gt;
'''Zdarzenia kontrahenta'''&lt;br /&gt;
=== Osoby ===&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:Osoby.jpg|520px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, osoby'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cechy kontrahenta ===&lt;br /&gt;
&lt;br /&gt;
Wyświetlanie oraz operacje edycyjne (dodawanie, usuwanie, zmiana wartości) zestawu cech kontrahenta są dostępne z poziomu kartoteki kontrahentów, w kontekstowym menu wyświetlanym po naciśnięciu prawego przycisku myszy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Plik:PPM_kontrah_cechy.jpg]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Dostęp do cech kontrahenta'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli okno z zestawem cech kontrahenta jest puste, to należy sprawdzić, czy uzupełniono listę cech dla danej klasy cech.&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_HT:_Kartoteka_kontrahent%C3%B3w</id>
		<title>Manual HT: Kartoteka kontrahentów</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_HT:_Kartoteka_kontrahent%C3%B3w"/>
				<updated>2015-02-03T09:59:49Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
= '''Kartoteki - wprowadzanie danych''' =&lt;br /&gt;
W punkcie tym przedstawiony zostanie szczegółowy opis występujących w systemie kartotek. Dwie z nich kartoteka Kontrahentów i Towarów zostały już wstępnie omówione w rozdziale pierwsze kroki. Oprócz nich w niniejszym rozdziale omówione zostaną kartoteki związane z ewidencją rozliczeń finansowych – Kasy, Banki i Rozrachunki oraz podstawowa baza dokumentów źródłowych – kartoteka Operacji.&amp;lt;br&amp;gt;&lt;br /&gt;
== Kartoteka kontrahentów ==&lt;br /&gt;
System [[Motława]] dla identyfikacji kontrahentów posługuje się kilkoma kryteriami. W przypadku ewidencji dokumentów źródłowych oraz rozliczeń podstawowymi elementami wyszukiwania kontrahenta są jego symbol, nazwa lub identyfikator NIP. W przypadku opcji związanych z częścią finansowo-księgową podstawowe znaczenie ma oczywiście konto księgowe przypisane do kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podstawowym momentem modyfikacji danych kontrahenta lub wprowadzaniem nowych kart jest oczywiście rejestracja dokumentów źródłowych – sprzedaż, zakup, rozliczenia z kontrahentem. W trakcie wykonywania operacji związanych z rejestracją dokumentów praktycznie w każdym przypadku niezbędne jest określenie danych kontrahenta poprzez uzupełnienie listy kontrahentów lub wybór pozycji z aktualnej kartoteki.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Wywołanie kartoteki kontrahentów'''&lt;br /&gt;
&lt;br /&gt;
Po wywołaniu opcji '''Kartoteki''', '''Teczka kontrahentów''' system automatycznie wywołuje ostatnio prezentowaną kartotekę. W przypadku pierwszego wywołania kartoteki dla nowego użytkownika systemu wyświetlony zostaje filtr umożliwiający określenie domyślnego zakresu prezentacji danych.&lt;br /&gt;
Inicjalny filtr dla kartoteki kontrahentów został przedstawiony na rysunku 61. Możliwości ustawień zakresu dla przeglądania danych kontrahentów podlegają standardowym ustawieniom dla filtracji danych. W zależności od typu pól po których ma się odbywać filtracja możliwe jest określenie zakresu parametrów, wskazanie konkretnego parametru np. kontrahenci z Gdyni lub listy warunków które powinni spełniać kontrahenci np. Odbiorcy z miast których nazwa zaczyna się od liter Gd.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_filtry.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahentów - filtr '''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;Kolorem czerwonym oznaczeni są kontrahenci posiadający blokadę sprzedaży&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Po zatwierdzeniu warunków filtracji pojawia się okno kartoteki kontrahentów. Porządek sortowania możliwy jest do określenia poprzez wskazanie kolumny aktywnej (kliknięcie na jej nagłówku) lub wywołanie opcji zaawansowanego sortowania (Ctrl + F5).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Obsługa kartoteki, pola karty kontrahenta'''&lt;br /&gt;
&lt;br /&gt;
Obsługa kartoteki kontrahentów nie odbiega niczym od obsługi standardowej kartoteki. Z poziomu Menu Podręcznego dostępne są wszystkie typowe opcje. Rozszerzeniem możliwości jest rejestracja Rabatów kontrahenta oraz jego Rachunków bankowych. Opcje te umożliwiają wprowadzenie matrycy rabatów aktywnej dla konkretnego kontrahenta lub określenie jego rachunków bankowych. Obsługa tych opcji nie różni się niczym od obsługi słowników opisanych już wcześniej. Jedyną różnicą jest ograniczenie wyświetlanych pozycji słowników – w przypadku odwołania do słowników z poziomu karty kontrahenta zostają wyświetlone wyłącznie wpisy dotyczące wybranej karty.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wprowadzanie nowej karty kontrahenta lub edycja istniejących danych podzielona została na kilka zakładek. Poniżej na kolejnych rysunkach przedstawione zostały kolejne zakładki umożliwiające edycję danych na karcie kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dane ogólne ===&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_ogolne.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, dane ogólne'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Nazwa, symbol'''&lt;br /&gt;
&lt;br /&gt;
Podstawowe elementy identyfikacji kontrahenta z punktu widzenia dokumentu źródłowego. Doradzamy stosowanie symboli pochodnych od nazwy np. symbol dla firmy „Przedsiębiorstwo Handlowo - Usługowe IKAR” mógłby brzmieć IKAR lub PHU IKAR. Należy pamiętać o ograniczeniu do 10 znaków. Nadawanie identyfikatorów liczbowych np. 0090 bez opracowanych dokładnych zasad symboliki może bardzo szybko skończyć się niemożnością odszukania kontrahenta w bazie.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na nazwę kontrahenta przeznaczone jest pole o długości 250 znaków co powinno w zupełności wystarczyć do określenia dowolnej nazwy kontrahenta. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Numer NIP'''&lt;br /&gt;
&lt;br /&gt;
Numer NIP musi być wypełniony w przypadku, gdy kontrahent jest podatnikiem Vat. Numer wprowadzamy bez myślników. Podczas wyświetlania NIP lub drukowania, program zakłada standardowy podział XXX-XXX-XX-XX (kod podziału 3322 - trzy cyfry + trzy cyfry + dwie cyfry + dwie cyfry). Jeżeli kontrahent charakteryzuje się innym podziałem, należy w polu numer NIP wywołać listę dostępnych podziałów i wprowadzić inny kod podziału. Pole to jest dostępne także na kolejnej zakładce.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Forma prawna'''&lt;br /&gt;
&lt;br /&gt;
Możliwość określenia formy prawnej dla kontrahenta. Pole to nie podlega wprost edycji – możliwe elementy określające formę prawną zostały udostępnione w postaci listy.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Adres'''&lt;br /&gt;
&lt;br /&gt;
Adres kontrahenta jest rozbity na kilka pól takich jak: ulica, miasto, kod pocztowy. Pole miasto jest dostępne jako pozycja słownika miast. Ograniczenie możliwości wprowadzania skutkuje zapewnieniem poprawności wpisywania zawartości tego pola a co za tym idzie pewności wykonywania późniejszych zestawień dla kontrahentów z wybranej lokalizacji.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Typ kontrahenta'''&lt;br /&gt;
&lt;br /&gt;
Kontrahent może przynależeć do jednego z pięciu typów. Podstawowe i najczęściej stosowane to dostawca i odbiorca. Typy spedytor i akwizytor wykorzystywane są w przypadku wersji z rozbudowanym obrotem towarowym i umożliwiają określenie definicji parametrów wysyłkowych  towarów oraz zaawansowanych zestawień z podziałem na osoby odpowiedzialne za wielkość obrotów handlowych. &lt;br /&gt;
Ostatnim dostępnym typem jest grupa. Typ ten umożliwia utworzenie bazowej karty wiążącej kilka innych kart kontrahentów (np. sklepy jednej sieci handlowej).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kategoria'''&lt;br /&gt;
&lt;br /&gt;
Kategoria służy do zaszeregowania kontrahenta do szczegółowej grupy. Struktura kategorii może być dowolnie rozbudowana. Dla jednego kontrahenta można określić przynależność do wielu różnych kategorii.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Grupa'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Branże'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kategorie kolumnowe'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zgłoszenia'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Oferty'''&lt;br /&gt;
&lt;br /&gt;
Lista ofert otwierająca się po przyciśnięciu tego klawisza pozwala na wprowadzenie:&lt;br /&gt;
- ceny uzgodnionej z danym kontrahentem&lt;br /&gt;
- symbolu i nazwy towaru obowiązujących u danego kontrahenta (mogą one pojawić się na dokumentach przy wyborze opcji &amp;quot;symbol kontrahenta&amp;quot;)&lt;br /&gt;
Więcej informacji: [[[Oferty cenowe]]]&lt;br /&gt;
&lt;br /&gt;
=== Identyfikacja kontrahenta ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_kontr.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, identyfikacja'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''NIP, Regon, Pesel'''&lt;br /&gt;
&lt;br /&gt;
Numer NIP może być określony zarówno za pomocą tej zakładki jak i poprzedniej. Jak już wspomniano powyżej numer wprowadzamy bez myślników zaś jego podział ustawiany jest automatycznie. W przypadku wyboru błędnego podziału  należy w polu numer NIP wywołać listę dostępnych podziałów i wprowadzić inny kod podziału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Regon i pesel są wykorzystywane wyłącznie  w przypadku nie określenia NIP-u dla kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Upoważnienie, data upoważnienia'''&lt;br /&gt;
&lt;br /&gt;
Pola te umożliwiają wprowadzenie informacji o posiadaniu upoważnienia do wystawiania faktur Vat bez podpisu odbiorcy. W przypadku posiadania upoważnienia czasowego możliwe jest określenie terminu ważności upoważnienia. Określenia numeru upoważnienia różnego od 0 umożliwia automatyczne umieszczenie stosownej informacji na wydruku faktury VAT.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Konta FK'''&lt;br /&gt;
&lt;br /&gt;
Są to oczywiście konta identyfikujące kontrahenta w planie kont. W wariancie uproszczonym dla kontrahenta określone mogą być wyłącznie dwa konta. Pierwsze konto jest związane z operacjami dotyczącymi kontrahenta jako odbiorcy (np. sprzedaż lub zapłata za nią), drugie konto – dostawcy (zakup, koszty, spłaty zobowiązań). Wypełniając te pola można odwołać się do uprzednio zdefiniowanego planu kont lub dokonać nowego wpisu rozszerzającego dotychczasowy plan.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dla wariantu rozszerzonego możliwe jest przypisanie dowolnej liczby kont dla karty kontrahenta. W takim wypadku niezbędne jest wywołanie z poziomu zakładki opcji Konta kontrahenta. Ekran edycji umożliwiający zarządzanie kontami kontrahenta w zaawansowanej formie przedstawiony został na rysunku poniżej.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_kont_fk.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, konta FK'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zasada przypisania kont dla kontrahenta lub uzupełnienia planu kont w trakcie operacji edycji danych kontrahenta jest analogiczna jak w przypadku wariantu uproszczonego.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rozliczenia ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sposób płatności'''&lt;br /&gt;
&lt;br /&gt;
To pole określa domyślny sposób płatności dla kontrahenta. Możliwe jest wyłącznie posłużenie się listą uprzednio zdefiniowanych sposobów płatności. W przypadku wyboru kontrahenta podczas rejestracji dokumentów źródłowych to właśnie ten sposób płatności jest przepisywany do dokumentu. Późniejsza zmiana sposobu rozliczenia możliwa jest bezpośrednio w trakcie edycji dokumentu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Klasa cenowa, Klasa rabatowa'''&lt;br /&gt;
&lt;br /&gt;
Podobnie jak w przypadku określania sposobu płatności dla pól tych możliwe jest wyłącznie posłużenie się wyłącznie wcześniej zdefiniowanymi słownikami. Domyślne parametry mogą być oczywiście zmieniane bezpośrednio podczas rejestracji dokumentów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rabat'''&lt;br /&gt;
&lt;br /&gt;
Pole umożliwia przypisanie domyślnego rabatu w formie procentowej dla przypadku kiedy nie jest wykorzystywane przypisanie kontrahenta do grup rabatowych.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_rozlicz.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, rozliczenia'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Kredyt, dni opóźnienia'''&lt;br /&gt;
&lt;br /&gt;
W polach tych możliwe jest określenie trybu rozliczeń dla dokumentów z opóźnionym terminem płatności. Pole kredyt określa limit kwotowy do którego możliwe jest wystawianie dokumentów dla odbiorcy. Po przekroczeniu tego limitu możliwość rejestracji nowych dokumentów zostaje zablokowana. Ewentualne zarejestrowanie dokumentów po przekroczeniu limitu jest możliwe wyłącznie po zatwierdzeniu takiej operacji przez osobę z podwyższonym poziomem uprawnień użytkownika. Pole dni opóźnienia działa równolegle z polem kredyt i umożliwia blokadę sprzedaży po przekroczeniu przez użytkownika uzgodnionego limitu opóźnienia płatności.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Blokada sprzedaży, uzasadnienie'''&lt;br /&gt;
&lt;br /&gt;
Pola te umożliwiają całkowite zablokowanie możliwości obsługi sprzedaży dla określonego kontrahenta. Zastosowanie przełącznika blokady jest nadrzędne w stosunku do opisanych powyżej opcji związanych z limitem kredytu i czasem opóźnienia spłat. W polu uzasadnienie możliwe jest określenie dodatkowego opisu który zostanie wyświetlony w trakcie próby rejestracji dokumentu dla kontrahenta ze statusem blokady sprzedaży.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Płatnik'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Za pomocą tego klawisza możliwe jest wywołanie listy kontrahentów i określenie płatnika dla kontrahenta. Pole to musi być określone wyłącznie w przypadku kiedy dane określone na karcie nie są zbieżne z danymi płatnika dla dokumentu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pozostałe dane i uwagi ===&lt;br /&gt;
&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:HT-kart_kontr_inne.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, pozostałe dane i uwagi'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Uwagi na fakturach i rachunkach'''&lt;br /&gt;
&lt;br /&gt;
Pole to określa domyślne uwagi umieszczane dla dokumentów wystawianych dla kontrahenta. Uwagi te zostają umieszczone na dokumencie niezależnie od uwag globalnych określonych w konfiguracji dla wszystkich wystawianych dokumentów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Uwagi inne''' i '''Uwagi dotyczące działalności''' &lt;br /&gt;
&lt;br /&gt;
W polach tym można wprowadzić dowolne uwagi o kontrahencie. Zawartość tych pól, po uaktywnieniu w konfiguracji systemu może pojawiać się na ekranie w momencie rejestracji dokumentu. W odróżnieniu od poprzednich uwag wpisy te nie są jednak umieszczane na wydrukach dokumentów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Domyślna liczba kopii dokumentów'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pole to umożliwiają określenie domyślnej liczby kopii dla drukowanych dokumentów. Możliwe jest odrębne określenie liczby kopii dokumentów finansowych i magazynowych.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Dokumenty finansowe'''&lt;br /&gt;
&lt;br /&gt;
'''Grupa uprawnionych'''&lt;br /&gt;
&lt;br /&gt;
'''Język'''&lt;br /&gt;
=== Spedycja - dostarczanie przesyłek ===&lt;br /&gt;
&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:Spedycja.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, spedycja'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Odbierający, adres'''&lt;br /&gt;
&lt;br /&gt;
'''Spedycja'''&lt;br /&gt;
&lt;br /&gt;
'''Akwizytorzy, magazyn akwizytora'''&lt;br /&gt;
&lt;br /&gt;
'''Numer na trasie, odległość, czas dostawy''''&lt;br /&gt;
=== Kontakty ===&lt;br /&gt;
&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:Kontakty.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, kontakty'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Osoby, kontakty'''&lt;br /&gt;
&lt;br /&gt;
Pole te umożliwiają wywołanie list za pomocą których można zdefiniować dodatkową informację o sposobie kontaktu z kontrahentem.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Daty kontaktu, założenia karty''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pole te umożliwiają uproszczone śledzenie historii kontaktu z kontrahentem. Pole data założenia jest tworzone w momencie wpisu karty do bazy kontrahentów. Pole data ostatniego kontaktu jest automatycznie uaktualniane na podstawie rejestrowanych w systemie zapisów powiązanych z wybraną karta kontrahenta.&amp;lt;br&amp;gt;&lt;br /&gt;
=== CRM ===&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:CRM.jpg|640px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, CRM'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Dokumenty'''&lt;br /&gt;
&lt;br /&gt;
'''Stan rozliczeń'''&lt;br /&gt;
&lt;br /&gt;
'''Zdarzenia kontrahenta'''&lt;br /&gt;
=== Osoby ===&lt;br /&gt;
{{Zaktualizować}}&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:Osoby.jpg|520px]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Rysunek: Kartoteka kontrahenta, osoby'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cechy kontrahenta ===&lt;br /&gt;
&lt;br /&gt;
Wyświetlanie oraz operacje edycyjne (dodawanie, usuwanie, zmiana wartości) zestawu cech kontrahenta są dostępne z poziomu kartoteki kontrahentów, w kontekstowym menu wyświetlanym po naciśnięciu prawego przycisku myszy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Plik:PPM_kontrah_cechy.jpg]]&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;'''Dostęp do cech kontrahenta'''&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli okno z zestawem cech kontrahenta jest puste, to należy sprawdzić, czy uzupełniono listę cech dla danej klasy cech.&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Browser</id>
		<title>Browser</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Browser"/>
				<updated>2015-01-15T13:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Browser''' - aplikacja webowa umożliwiająca przeglądanie zestawień danych utworzonych przez Aplikację [[Edytor Browserów]]&lt;br /&gt;
&lt;br /&gt;
== Tematy związane: ==&lt;br /&gt;
* [[Logowanie do Aplikacji Webowych]]&lt;br /&gt;
* [[Blokowanie stanowiska]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* [[Opis ekranu głównego w Browserze | Opis elementów ekranu głównego]]&lt;br /&gt;
* [[Selekcja danych w Browserze|Selekcja danych]]&lt;br /&gt;
* [[Dostosowanie sposobu prezentacji danych w Browserze | Dostosowanie sposobu prezentacji danych]]&lt;br /&gt;
* [[Edycja danych w Browserze | Edycja danych]]&lt;br /&gt;
* [[Podgląd zapytania SQL w Browserze| Podgląd zapytania SQL]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Motława]]&lt;br /&gt;
[[Kategoria: Browser]]&lt;br /&gt;
[[Kategoria: Aplikacje Webowe]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Blokowanie_stanowiska_w_aplikacjach_Webowych</id>
		<title>Blokowanie stanowiska w aplikacjach Webowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Blokowanie_stanowiska_w_aplikacjach_Webowych"/>
				<updated>2015-01-15T13:49:06Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;W aplikacjach Webowych istnieje możliwość zablokowania stanowiska na czas nieobecności przy komputerze.&lt;br /&gt;
&lt;br /&gt;
Aby zablokować stanowisko wystarczy kliknąć na przycisk '''Zablokuj''' w prawym górnym rogu.&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:AppWeb_lock1.jpg|500px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Efekt:&lt;br /&gt;
&amp;lt;center&amp;gt;[[image:AppWeb_lock.jpg|500px]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ZobaczTakze|&lt;br /&gt;
* [[Prezentacja aplikacji]]&lt;br /&gt;
* [[Logowanie do Aplikacji Webowych]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Motława]]&lt;br /&gt;
[[Kategoria: IntNetCenter Web]]&lt;br /&gt;
[[Kategoria: Aplikacje Webowe]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV</id>
		<title>Manual Elementy eksploatacji systemu:Import danych tekstowych CSV</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV"/>
				<updated>2014-03-19T18:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nasze aplikacje posiadają wbudowaną funkcjonalność importu danych tekstowych w formacie CSV/TSV.&lt;br /&gt;
&lt;br /&gt;
'''Wymagany format pliku z danymi:'''&lt;br /&gt;
&lt;br /&gt;
* jedna linia nagłówka kolumn - nazwy kolumn mogą zawierać tylko litery (ale nie &amp;quot;polskie&amp;quot;), cyfry i znak podkreślenia (_), muszą zaczynać się od litery, maksymalna długość nazwy to 30 zn.. Nie mogą zawierać innych znaków zwłaszcza spacji. Przykłady prawidłowych nazw: '''data_wystawienia kwota2014 kontrGUID Nazwa_Kontrahenta'''&lt;br /&gt;
* nazwy kolumn muszą być unikalne&lt;br /&gt;
* separator kolumn - znak tabulacji&lt;br /&gt;
* kolumny tekstowe - tekst nie może zawierać:&lt;br /&gt;
** znaków tabulacji&lt;br /&gt;
** cudzysłowów pojedyńczych i podwójnych &lt;br /&gt;
** końca linii (&amp;quot;Enterów&amp;quot;)&lt;br /&gt;
* kolumny liczbowe - nie mogą zawierać separatora tysięcy, separator dziesiętny może być kropką lub przecinkiem np: '''1234567890.234'''&lt;br /&gt;
* kolumny zawierające daty - format RRRR-MM-DD np: '''2013-01-01'''&lt;br /&gt;
* kodowanie znaków - Windows CP1250 (Środkowoeuropejskie Windows 1250) (preferowane) lub Unicode 8-bit (UTF-8)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ManualPlaceMenu}}&lt;br /&gt;
[[Kategoria: Płace]]&lt;br /&gt;
{{ManualHTMenu}}&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
{{ManualElementyEksploatacjiSystemuMenu}}&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV</id>
		<title>Manual Elementy eksploatacji systemu:Import danych tekstowych CSV</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV"/>
				<updated>2014-03-19T18:29:13Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nasze aplikacje posiadają wbudowaną funkcjonalność importu danych tekstowych w formacie CSV/TSV.&lt;br /&gt;
&lt;br /&gt;
'''Wymagany format pliku z danymi:'''&lt;br /&gt;
&lt;br /&gt;
* jedna linia nagłówka kolumn - nazwy kolumn mogą zawierać tylko litery (ale nie &amp;quot;polskie&amp;quot;), cyfry i znak podkreślenia (_), muszą zaczynać się od litery. Nie mogą zawierać innych znaków zwłaszcza spacji.&lt;br /&gt;
* nazwy kolumn muszą być unikalne&lt;br /&gt;
* separator kolumn - znak tabulacji&lt;br /&gt;
* kolumny tekstowe - tekst nie może zawierać:&lt;br /&gt;
** znaków tabulacji&lt;br /&gt;
** cudzysłowów pojedyńczych i podwójnych &lt;br /&gt;
** końca linii (&amp;quot;Enterów&amp;quot;)&lt;br /&gt;
* kolumny liczbowe - nie mogą zawierać separatora tysięcy, separator dziesiętny może być kropką lub przecinkiem np: '''1234567890.234'''&lt;br /&gt;
* kolumny zawierające daty - format RRRR-MM-DD np: '''2013-01-01'''&lt;br /&gt;
* kodowanie znaków - Windows CP1250 (Środkowoeuropejskie Windows 1250) (preferowane) lub Unicode 8-bit (UTF-8)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ManualPlaceMenu}}&lt;br /&gt;
[[Kategoria: Płace]]&lt;br /&gt;
{{ManualHTMenu}}&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
{{ManualElementyEksploatacjiSystemuMenu}}&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV</id>
		<title>Manual Elementy eksploatacji systemu:Import danych tekstowych CSV</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Manual_Elementy_eksploatacji_systemu:Import_danych_tekstowych_CSV"/>
				<updated>2014-03-19T18:24:50Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
Nasze aplikacje posiadają wbudowaną funkcjonalność importu danych tekstowych w formacie CSV/TSV.&lt;br /&gt;
&lt;br /&gt;
Wymagany format pliku z danymi:&lt;br /&gt;
&lt;br /&gt;
* jedna linia nagłówka kolumn - nazwy kolumn mogą zawierać tylko litery (ale nie &amp;quot;polskie&amp;quot;), cyfry i znak podkreślenia (_), muszą zaczynać się od litery. Nie mogą zawierać innych znaków zwłaszcza spacji.&lt;br /&gt;
* nazwy kolumn muszą być unikalne&lt;br /&gt;
* separator kolumn - znak tabulacji&lt;br /&gt;
* kolumny tekstowe - tekst nie może zawierać:&lt;br /&gt;
** znaków tabulacji&lt;br /&gt;
** cudzysłowów pojedyńczych i podwójnych &lt;br /&gt;
** końca linii (&amp;quot;Enterów&amp;quot;)&lt;br /&gt;
* kolumny liczbowe - nie mogą zawierać separatora tysięcy, separator dziesiętny może być kropką lub przecinkiem: &lt;br /&gt;
* kodowanie znaków - Windows CP1250 (Środkowoeuropejskie Windows) (preferowane) lub Unicode 8-bit (UTF-8)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ManualPlaceMenu}}&lt;br /&gt;
[[Kategoria: Płace]]&lt;br /&gt;
{{ManualHTMenu}}&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
{{ManualElementyEksploatacjiSystemuMenu}}&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Dbexpmda.dll</id>
		<title>Dbexpmda.dll</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Dbexpmda.dll"/>
				<updated>2014-02-26T11:57:20Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{{ShowError|Komunikat=Bad handshake}}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Bad handshake&amp;quot; - oznacza zbyt starą wersję biblioteki '''Dbexpmda.dll''' przy próbie logowania się do bazy.&lt;br /&gt;
Powinna być to wersja minimum 6.0.1.0.&lt;br /&gt;
&lt;br /&gt;
[http://motlawa.int.com.pl/motlawa/system/motlawa_libs_dbx.zip aktualne biblioteki dll do pobrania]&lt;br /&gt;
&lt;br /&gt;
{{ZobaczTakze|&lt;br /&gt;
* [[Unable to load dbexpmda.dll]]&lt;br /&gt;
* [[Dbxdrivers.ini]]&lt;br /&gt;
* [[Dbexpmda.dll]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Uprawnienia_-_Teczka_kontrahent%C3%B3w</id>
		<title>Uprawnienia - Teczka kontrahentów</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Uprawnienia_-_Teczka_kontrahent%C3%B3w"/>
				<updated>2013-10-16T06:23:40Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
&lt;br /&gt;
[[uprawnienia|Uprawnienie]] powodujące włączanie/wyłącznie widoczności kartoteki kontrahentów.&lt;br /&gt;
&lt;br /&gt;
* '''K_BROWSER''' - teczka kontrahentów&lt;br /&gt;
* '''K_''' - teczka kontrahentów&lt;br /&gt;
* '''kontrah|poziom'''- teczka kontrahentów&lt;br /&gt;
* '''EdycjaDanychAktywnychKontr'''- edycja danych adresowych dla aktywnych kontrahentów&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=='''GRUPA: KARTOTEKA KONTRAHENTÓW'''==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*'''K_''' - Teczka kontrahentów&lt;br /&gt;
*'''K_BROWSER''' - Teczka kontrahentów&lt;br /&gt;
*'''K_DOK_KONTRAHENTA''' - Dokumenty kontrahenta&lt;br /&gt;
*'''Przekroczenie_limitu_kredytu''' - Przekroczenie limitu kredytu kontrahenta o podaną kwotę (''w PLN'')&lt;br /&gt;
*'''Definicja_KatCol_modyfi''' - Modyfikacje definicji kategorii kolumnowych&lt;br /&gt;
*'''Dolnypanel|Visible''' - Widoczny dolny panel&lt;br /&gt;
*'''EdycjaDanychAktywnychKontr''' - Edycja danych adresowych dla aktywnych kontrahentów&lt;br /&gt;
*'''Edycja_Tabeli_Rabatow''' - Edycja tabeli rabatów&lt;br /&gt;
*'''[[Edycja_Warunkow_Handlowych_kontrahenta]]''' - Edycja warunków handlowych kontrahenta (''uprawnienie umożliwia edycję zakładki nr 3 na karcie kontrahenta - np. kwoty kredytu'')&lt;br /&gt;
*'''Kontrahent-definicja_kategorii_kolumnowych''' - Edycja definicji kategorii kolumnowych.&lt;br /&gt;
*'''Kontrahent-modyfikacja_kategorii_kolumnowych''' - Modyfikacja kategorii kolumnowych.&lt;br /&gt;
*'''kontrah|poziom''' - Teczka kontrahenta!!!&lt;br /&gt;
*'''K_POKARZ_ZDARZENIE_Z_KONTRAHENETEM''' - Pokaż zdarzenia związane z kontrahentem&lt;br /&gt;
*'''K_RABATY_KONTRAHENTA''' - Pokaż rabaty dla kontrahenta&lt;br /&gt;
*'''matrab|poziom''' - Matryca rabatów&lt;br /&gt;
*'''Obroty_Kontrahenta'''- Obroty kontrahenta widoczne&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''UWAGA'''&lt;br /&gt;
Następujące rozszerzenia w opisie uprawnień odpowiadają odpowiednio za:&lt;br /&gt;
&lt;br /&gt;
*'''NDE''' - edycję, zapis, usuwanie danych zawartych w poszczególnych kartotekach&lt;br /&gt;
*'''BROWSER''' - możliwość przeglądania danych zawartych w poszczególnych kartotekach.&lt;br /&gt;
&lt;br /&gt;
== zobacz także: ==&lt;br /&gt;
* [[Uprawnienia]]&lt;br /&gt;
* [[Ustawianie uprawnień]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Motława]]&lt;br /&gt;
[[Kategoria: HT]]&lt;br /&gt;
[[Kategoria: FK]]&lt;br /&gt;
[[Kategoria: IntNetCenter]]&lt;br /&gt;
[[Kategoria: Uprawnienia]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T12:27:01Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Struktura przechowywania lokalizacji =&lt;br /&gt;
&lt;br /&gt;
tabela:&lt;br /&gt;
&lt;br /&gt;
erp_area_nodes&lt;br /&gt;
  IDN int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  Type varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc. patrz lista',&lt;br /&gt;
  Symbol varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  Nazwa varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  ParentGUID varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.-&amp;gt; erp_area_nodes.guid',&lt;br /&gt;
  KontrGUID varchar(38) NOT NULL DEFAULT '', COMMENT 'Jeśli lokalizacja związana jest z kontrahentem, to link do niego -&amp;gt; kontrah.guid',&lt;br /&gt;
  Dzial varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar. -&amp;gt; erp_division_schema.guid', &lt;br /&gt;
  AddrGUID varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli -&amp;gt;geo_int_addr_link.guid', - należy wykonać przegląd kudu pod względem wiązania w drugą stronę (geo_int_addr_link.objguid-&amp;gt;erp_area_nodes.guid i &lt;br /&gt;
  IsRes int(11) DEFAULT '0', - do usunięcia&lt;br /&gt;
  adres varchar(255) NOT NULL DEFAULT '', - tymczasowe pole dla CDG, docelowo do usunięcia - dokonać przeglądu zapytań i usunąć &lt;br /&gt;
  kontekst int(11) NOT NULL DEFAULT '0', do usunięcia - j.w.&lt;br /&gt;
  deleted int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  status int(11) NOT NULL DEFAULT '0', - nie wykorzystywane? do zastanowienia&lt;br /&gt;
  lp int(11) NOT NULL DEFAULT '0', - kolejność prezentacji na liście (Security?)&lt;br /&gt;
  obsluga int(11) NOT NULL DEFAULT '0', (Security?)&lt;br /&gt;
  premia double(16,4) NOT NULL DEFAULT '0.0000',(Security?)&lt;br /&gt;
  info varchar(250) NOT NULL DEFAULT '', &lt;br /&gt;
  alocaltime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  UGrpGUID varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  Path varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  PathNeedUpdate int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
&lt;br /&gt;
=== wartości pola 'Type' ===&lt;br /&gt;
systemowe:&lt;br /&gt;
* LOC - lokalizacja posiadająca adres zdefiniowany w geo_int_addr_link&lt;br /&gt;
* MAG - magazyn&lt;br /&gt;
* MAG-REG - regał w magazynie&lt;br /&gt;
* MAG-REG-SEG - sekcja regału&lt;br /&gt;
* MAG-REG-SEG-MSC - półka na regale (piętro)&lt;br /&gt;
&lt;br /&gt;
specyficzne dla klientów:&lt;br /&gt;
&lt;br /&gt;
* REWIR - dla wyjazdów&lt;br /&gt;
&lt;br /&gt;
* W - wydział (SN_PROD)&lt;br /&gt;
* N - nawa (SN_PROD)&lt;br /&gt;
* G - gniazdo (SN_PROD)&lt;br /&gt;
* M - magazyn (SN_PROD) - kolie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== geo_int_adr_link ==&lt;br /&gt;
&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '',&lt;br /&gt;
  IDCountry varchar(8) NOT NULL DEFAULT 'PL' COMMENT 'ID kraju',&lt;br /&gt;
  geo_int_miejsca_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
  geo_int_adresy_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'Adres z tabeli `geo_int_adresy`',&lt;br /&gt;
  objGUID varchar(38) NOT NULL DEFAULT '' COMMENT 'GUID kontrahenta, osoby, lokalizacji (erp_area_nodes) itp wg pola poniżej', &lt;br /&gt;
  objTable varchar(38) NOT NULL DEFAULT '' COMMENT 'kontrah, osoby, crm_commisions, erp_area_nodes etc.',&lt;br /&gt;
  ulica_not_GUS` varchar(200) DEFAULT NULL COMMENT 'gdy nie jest to adres polski tu wpisujemy ulice',&lt;br /&gt;
  NrPos varchar(20) NOT NULL DEFAULT '' COMMENT 'posesja, dom, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
  NrLoc varchar(20) NOT NULL DEFAULT '' COMMENT 'lokal, mieszkanie, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
  longitude decimal(16,6) DEFAULT NULL COMMENT 'centrum miejscowosci',&lt;br /&gt;
  latitude decimal(16,6) DEFAULT NULL,&lt;br /&gt;
  AdrTyp varchar(100) NOT NULL DEFAULT '' COMMENT 'MZK M - adres firmowy (KRS, dzia³. gosp itp)/zameldowania, Z - adres zamieszkania / oddzia³, (fizyczna lokalizacja); K - adres korespondencyjny, ? - inne do   dogadania', - uzupełnić w CDG przy lokalizacjach&lt;br /&gt;
  AdrDescr varchar(100) DEFAULT '' COMMENT 'opis dodatkowy np nazwa oddzialu',&lt;br /&gt;
  Adres varchar(250) DEFAULT NULL COMMENT 'pełen skonkatenowany adres - np. ul. Pomorska 23b/34 80-555 Gdañsk', - do zastanowienia, czy nie dodać możliwości ustalania formatu adresu dla różnych kontkstów - np dla   osoby z województwem, dla kontrahentów bez&lt;br /&gt;
  ZipCode varchar(20) DEFAULT NULL COMMENT 'raczej zbedny',&lt;br /&gt;
  Status int(11) DEFAULT '0' COMMENT '0 - normalny adres, 1 - nieaktualny, -1 - usunięty',&lt;br /&gt;
  Warning int(11) DEFAULT '0' COMMENT 'Ostrzezenie 0 - nic, 1- do uzupelnienia, itd',&lt;br /&gt;
  Post_ID varchar(38) DEFAULT NULL COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
  OldAdresStr varchar(255) DEFAULT NULL COMMENT 'adres opisowy z importu',&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nowy sposób zapisu adresów kontrahenta ==&lt;br /&gt;
&lt;br /&gt;
Dla każdej karty kontrahenta tworzymy zapis w geo_int_adr_link &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T09:33:06Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Struktura przechowywania lokalizacji =&lt;br /&gt;
&lt;br /&gt;
tabela:&lt;br /&gt;
&lt;br /&gt;
erp_area_nodes&lt;br /&gt;
  IDN int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  Type varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc. patrz lista',&lt;br /&gt;
  Symbol varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  Nazwa varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  ParentGUID varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.-&amp;gt; erp_area_nodes.guid',&lt;br /&gt;
  KontrGUID varchar(38) NOT NULL DEFAULT '', COMMENT 'Jeśli lokalizacja związana jest z kontrahentem, to link do niego -&amp;gt; kontrah.guid',&lt;br /&gt;
  Dzial varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar. -&amp;gt; erp_division_schema.guid', &lt;br /&gt;
  AddrGUID varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli -&amp;gt;geo_int_addr_link.guid', - należy wykonać przegląd kudu pod względem wiązania w drugą stronę (geo_int_addr_link.objguid-&amp;gt;erp_area_nodes.guid i &lt;br /&gt;
  IsRes int(11) DEFAULT '0', - do usunięcia&lt;br /&gt;
  adres varchar(255) NOT NULL DEFAULT '', - tymczasowe pole dla CDG, docelowo do usunięcia - dokonać przeglądu zapytań i usunąć &lt;br /&gt;
  kontekst int(11) NOT NULL DEFAULT '0', do usunięcia - j.w.&lt;br /&gt;
  deleted int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  status int(11) NOT NULL DEFAULT '0', - nie wykorzystywane? do zastanowienia&lt;br /&gt;
  lp int(11) NOT NULL DEFAULT '0', - kolejność prezentacji na liście (Security?)&lt;br /&gt;
  obsluga int(11) NOT NULL DEFAULT '0', (Security?)&lt;br /&gt;
  premia double(16,4) NOT NULL DEFAULT '0.0000',(Security?)&lt;br /&gt;
  info varchar(250) NOT NULL DEFAULT '', &lt;br /&gt;
  alocaltime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  UGrpGUID varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  Path varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  PathNeedUpdate int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
&lt;br /&gt;
=== wartości pola 'Type' ===&lt;br /&gt;
systemowe:&lt;br /&gt;
* LOC - lokalizacja posiadająca adres zdefiniowany w geo_int_addr_link&lt;br /&gt;
* MAG - magazyn&lt;br /&gt;
* MAG-REG - regał w magazynie&lt;br /&gt;
* MAG-REG-SEG - sekcja regału&lt;br /&gt;
* MAG-REG-SEG-MSC - półka na regale (piętro)&lt;br /&gt;
&lt;br /&gt;
specyficzne dla klientów:&lt;br /&gt;
&lt;br /&gt;
* REWIR - dla wyjazdów&lt;br /&gt;
&lt;br /&gt;
* W - wydział (SN_PROD)&lt;br /&gt;
* N - nawa (SN_PROD)&lt;br /&gt;
* G - gniazdo (SN_PROD)&lt;br /&gt;
* M - magazyn (SN_PROD) - kolie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== geo_int_adr_link ==&lt;br /&gt;
&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '',&lt;br /&gt;
  IDCountry varchar(8) NOT NULL DEFAULT 'PL' COMMENT 'ID kraju',&lt;br /&gt;
  geo_int_miejsca_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
  geo_int_adresy_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'Adres z tabeli `geo_int_adresy`',&lt;br /&gt;
  objGUID varchar(38) NOT NULL DEFAULT '' COMMENT 'GUID kontrahenta, osoby, lokalizacji (erp_area_nodes) itp wg pola poniżej', &lt;br /&gt;
  objTable varchar(38) NOT NULL DEFAULT '' COMMENT 'kontrah, osoby, crm_commisions, erp_area_nodes etc.',&lt;br /&gt;
  ulica_not_GUS` varchar(200) DEFAULT NULL COMMENT 'gdy nie jest to adres polski tu wpisujemy ulice',&lt;br /&gt;
  NrPos varchar(20) NOT NULL DEFAULT '' COMMENT 'posesja, dom, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
  NrLoc varchar(20) NOT NULL DEFAULT '' COMMENT 'lokal, mieszkanie, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
  longitude decimal(16,6) DEFAULT NULL COMMENT 'centrum miejscowosci',&lt;br /&gt;
  latitude decimal(16,6) DEFAULT NULL,&lt;br /&gt;
  AdrTyp varchar(100) NOT NULL DEFAULT '' COMMENT 'MZK M - adres firmowy (KRS, dzia³. gosp itp)/zameldowania, Z - adres zamieszkania / oddzia³, (fizyczna lokalizacja); K - adres korespondencyjny, ? - inne do   dogadania', - uzupełnić w CDG przy lokalizacjach&lt;br /&gt;
  AdrDescr varchar(100) DEFAULT '' COMMENT 'opis dodatkowy np nazwa oddzialu',&lt;br /&gt;
  Adres varchar(250) DEFAULT NULL COMMENT 'pełen skonkatenowany adres - np. ul. Pomorska 23b/34 80-555 Gdañsk', - do zastanowienia, czy nie dodać możliwości ustalania formatu adresu dla różnych kontkstów - np dla   osoby z województwem, dla kontrahentów bez&lt;br /&gt;
  ZipCode varchar(20) DEFAULT NULL COMMENT 'raczej zbedny',&lt;br /&gt;
  Status int(11) DEFAULT '0' COMMENT '0 - normalny adres, 1 - nieaktualny, -1 - usunięty',&lt;br /&gt;
  Warning int(11) DEFAULT '0' COMMENT 'Ostrzezenie 0 - nic, 1- do uzupelnienia, itd',&lt;br /&gt;
  Post_ID varchar(38) DEFAULT NULL COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
  OldAdresStr varchar(255) DEFAULT NULL COMMENT 'adres opisowy z importu',&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T09:31:47Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Struktura przechowywania lokalizacji =&lt;br /&gt;
&lt;br /&gt;
tabela:&lt;br /&gt;
&lt;br /&gt;
erp_area_nodes&lt;br /&gt;
  IDN int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  Type varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc. patrz lista',&lt;br /&gt;
  Symbol varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  Nazwa varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  ParentGUID varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.-&amp;gt; erp_area_nodes.guid',&lt;br /&gt;
  KontrGUID varchar(38) NOT NULL DEFAULT '', COMMENT 'Jeśli lokalizacja związana jest z kontrahentem, to link do niego -&amp;gt; kontrah.guid',&lt;br /&gt;
  Dzial varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar. -&amp;gt; erp_division_schema.guid', &lt;br /&gt;
  AddrGUID varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli -&amp;gt;geo_int_addr_link.guid', - należy wykonać przegląd kudu pod względem wiązania w drugą stronę (geo_int_addr_link.objguid-&amp;gt;erp_area_nodes.guid i &lt;br /&gt;
  IsRes int(11) DEFAULT '0', - do usunięcia&lt;br /&gt;
  adres varchar(255) NOT NULL DEFAULT '', - tymczasowe pole dla CDG, docelowo do usunięcia - dokonać przeglądu zapytań i usunąć &lt;br /&gt;
  kontekst int(11) NOT NULL DEFAULT '0', do usunięcia - j.w.&lt;br /&gt;
  deleted int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  status int(11) NOT NULL DEFAULT '0', - nie wykorzystywane? do zastanowienia&lt;br /&gt;
  lp int(11) NOT NULL DEFAULT '0', - kolejność prezentacji na liście (Security?)&lt;br /&gt;
  obsluga int(11) NOT NULL DEFAULT '0', (Security?)&lt;br /&gt;
  premia double(16,4) NOT NULL DEFAULT '0.0000',(Security?)&lt;br /&gt;
  info varchar(250) NOT NULL DEFAULT '', &lt;br /&gt;
  alocaltime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  UGrpGUID varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  Path varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  PathNeedUpdate int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
&lt;br /&gt;
=== wartości pola 'Type' ===&lt;br /&gt;
systemowe:&lt;br /&gt;
* LOC - lokalizacja posiadająca adres zdefiniowany w geo_int_addr_link&lt;br /&gt;
* MAG - magazyn&lt;br /&gt;
* MAG-REG - regał w magazynie&lt;br /&gt;
* MAG-REG-SEG - sekcja regału&lt;br /&gt;
* MAG-REG-SEG-MSC - półka na regale (piętro)&lt;br /&gt;
&lt;br /&gt;
specyficzne dla klientów:&lt;br /&gt;
&lt;br /&gt;
* REWIR - dla wyjazdów&lt;br /&gt;
&lt;br /&gt;
* W - wydział (SN_PROD)&lt;br /&gt;
* N - nawa (SN_PROD)&lt;br /&gt;
* G - gniazdo (SN_PROD)&lt;br /&gt;
* M - magazyn (SN_PROD) - kolie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== geo_int_adr_link ==&lt;br /&gt;
&lt;br /&gt;
GUID varchar(38) NOT NULL DEFAULT '',&lt;br /&gt;
IDCountry varchar(8) NOT NULL DEFAULT 'PL' COMMENT 'ID kraju',&lt;br /&gt;
geo_int_miejsca_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
geo_int_adresy_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'Adres z tabeli `geo_int_adresy`',&lt;br /&gt;
objGUID varchar(38) NOT NULL DEFAULT '' COMMENT 'GUID kontrahenta, osoby, lokalizacji (erp_area_nodes) itp wg pola poniżej', &lt;br /&gt;
objTable varchar(38) NOT NULL DEFAULT '' COMMENT 'kontrah, osoby, crm_commisions, erp_area_nodes etc.',&lt;br /&gt;
ulica_not_GUS` varchar(200) DEFAULT NULL COMMENT 'gdy nie jest to adres polski tu wpisujemy ulice',&lt;br /&gt;
NrPos varchar(20) NOT NULL DEFAULT '' COMMENT 'posesja, dom, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
NrLoc varchar(20) NOT NULL DEFAULT '' COMMENT 'lokal, mieszkanie, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
longitude decimal(16,6) DEFAULT NULL COMMENT 'centrum miejscowosci',&lt;br /&gt;
latitude decimal(16,6) DEFAULT NULL,&lt;br /&gt;
AdrTyp varchar(100) NOT NULL DEFAULT '' COMMENT 'MZK M - adres firmowy (KRS, dzia³. gosp itp)/zameldowania, Z - adres zamieszkania / oddzia³, (fizyczna lokalizacja); K - adres korespondencyjny, ? - inne do dogadania', - uzupełnić w CDG przy lokalizacjach&lt;br /&gt;
AdrDescr varchar(100) DEFAULT '' COMMENT 'opis dodatkowy np nazwa oddzialu',&lt;br /&gt;
Adres varchar(250) DEFAULT NULL COMMENT 'pełen skonkatenowany adres - np. ul. Pomorska 23b/34 80-555 Gdañsk', - do zastanowienia, czy nie dodać możliwości ustalania formatu adresu dla różnych kontkstów - np dla osoby z województwem, dla kontrahentów bez&lt;br /&gt;
ZipCode varchar(20) DEFAULT NULL COMMENT 'raczej zbedny',&lt;br /&gt;
Status int(11) DEFAULT '0' COMMENT '0 - normalny adres, 1 - nieaktualny, -1 - usunięty',&lt;br /&gt;
Warning int(11) DEFAULT '0' COMMENT 'Ostrzezenie 0 - nic, 1- do uzupelnienia, itd',&lt;br /&gt;
Post_ID varchar(38) DEFAULT NULL COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
OldAdresStr varchar(255) DEFAULT NULL COMMENT 'adres opisowy z importu',&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T09:31:18Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Struktura przechowywania lokalizacji =&lt;br /&gt;
&lt;br /&gt;
tabela:&lt;br /&gt;
&lt;br /&gt;
erp_area_nodes&lt;br /&gt;
  IDN int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  Type varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc. patrz lista',&lt;br /&gt;
  Symbol varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  Nazwa varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  ParentGUID varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.-&amp;gt; erp_area_nodes.guid',&lt;br /&gt;
  KontrGUID varchar(38) NOT NULL DEFAULT '', COMMENT 'Jeśli lokalizacja związana jest z kontrahentem, to link do niego -&amp;gt; kontrah.guid',&lt;br /&gt;
  Dzial varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar. -&amp;gt; erp_division_schema.guid', &lt;br /&gt;
  AddrGUID varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli -&amp;gt;geo_int_addr_link.guid', - należy wykonać przegląd kudu pod względem wiązania w drugą stronę (geo_int_addr_link.objguid-&amp;gt;erp_area_nodes.guid i &lt;br /&gt;
#  IsRes int(11) DEFAULT '0', - do usunięcia&lt;br /&gt;
#  adres varchar(255) NOT NULL DEFAULT '', - tymczasowe pole dla CDG, docelowo do usunięcia - dokonać przeglądu zapytań i usunąć &lt;br /&gt;
#  kontekst int(11) NOT NULL DEFAULT '0', do usunięcia - j.w.&lt;br /&gt;
  deleted int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  status int(11) NOT NULL DEFAULT '0', - nie wykorzystywane? do zastanowienia&lt;br /&gt;
  lp int(11) NOT NULL DEFAULT '0', - kolejność prezentacji na liście (Security?)&lt;br /&gt;
  obsluga int(11) NOT NULL DEFAULT '0', (Security?)&lt;br /&gt;
  premia double(16,4) NOT NULL DEFAULT '0.0000',(Security?)&lt;br /&gt;
  info varchar(250) NOT NULL DEFAULT '', &lt;br /&gt;
  alocaltime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  UGrpGUID varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  Path varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  PathNeedUpdate int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
&lt;br /&gt;
=== wartości pola 'Type' ===&lt;br /&gt;
systemowe:&lt;br /&gt;
* LOC - lokalizacja posiadająca adres zdefiniowany w geo_int_addr_link&lt;br /&gt;
* MAG - magazyn&lt;br /&gt;
* MAG-REG - regał w magazynie&lt;br /&gt;
* MAG-REG-SEG - sekcja regału&lt;br /&gt;
* MAG-REG-SEG-MSC - półka na regale (piętro)&lt;br /&gt;
&lt;br /&gt;
specyficzne dla klientów:&lt;br /&gt;
&lt;br /&gt;
* REWIR - dla wyjazdów&lt;br /&gt;
&lt;br /&gt;
* W - wydział (SN_PROD)&lt;br /&gt;
* N - nawa (SN_PROD)&lt;br /&gt;
* G - gniazdo (SN_PROD)&lt;br /&gt;
* M - magazyn (SN_PROD) - kolie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== geo_int_adr_link ==&lt;br /&gt;
&lt;br /&gt;
GUID varchar(38) NOT NULL DEFAULT '',&lt;br /&gt;
IDCountry varchar(8) NOT NULL DEFAULT 'PL' COMMENT 'ID kraju',&lt;br /&gt;
geo_int_miejsca_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
geo_int_adresy_ID varchar(38) NOT NULL DEFAULT '' COMMENT 'Adres z tabeli `geo_int_adresy`',&lt;br /&gt;
objGUID varchar(38) NOT NULL DEFAULT '' COMMENT 'GUID kontrahenta, osoby, lokalizacji (erp_area_nodes) itp wg pola poniżej', &lt;br /&gt;
objTable varchar(38) NOT NULL DEFAULT '' COMMENT 'kontrah, osoby, crm_commisions, erp_area_nodes etc.',&lt;br /&gt;
ulica_not_GUS` varchar(200) DEFAULT NULL COMMENT 'gdy nie jest to adres polski tu wpisujemy ulice',&lt;br /&gt;
NrPos varchar(20) NOT NULL DEFAULT '' COMMENT 'posesja, dom, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
NrLoc varchar(20) NOT NULL DEFAULT '' COMMENT 'lokal, mieszkanie, dowolne inne roszerzenie ('' oznacza brak takowej numeracji)',&lt;br /&gt;
longitude decimal(16,6) DEFAULT NULL COMMENT 'centrum miejscowosci',&lt;br /&gt;
latitude decimal(16,6) DEFAULT NULL,&lt;br /&gt;
AdrTyp varchar(100) NOT NULL DEFAULT '' COMMENT 'MZK M - adres firmowy (KRS, dzia³. gosp itp)/zameldowania, Z - adres zamieszkania / oddzia³, (fizyczna lokalizacja); K - adres korespondencyjny, ? - inne do dogadania', - uzupełnić w CDG przy lokalizacjach&lt;br /&gt;
AdrDescr varchar(100) DEFAULT '' COMMENT 'opis dodatkowy np nazwa oddzialu',&lt;br /&gt;
Adres varchar(250) DEFAULT NULL COMMENT 'pełen skonkatenowany adres - np. ul. Pomorska 23b/34 80-555 Gdañsk', - do zastanowienia, czy nie dodać możliwości ustalania formatu adresu dla różnych kontkstów - np dla osoby z województwem, dla kontrahentów bez&lt;br /&gt;
ZipCode varchar(20) DEFAULT NULL COMMENT 'raczej zbedny',&lt;br /&gt;
Status int(11) DEFAULT '0' COMMENT '0 - normalny adres, 1 - nieaktualny, -1 - usunięty',&lt;br /&gt;
Warning int(11) DEFAULT '0' COMMENT 'Ostrzezenie 0 - nic, 1- do uzupelnienia, itd',&lt;br /&gt;
Post_ID varchar(38) DEFAULT NULL COMMENT 'ID miejscowosci z tabeli `geo_int_miejsca`',&lt;br /&gt;
OldAdresStr varchar(255) DEFAULT NULL COMMENT 'adres opisowy z importu',&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T08:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Struktura przechowywania lokalizacji =&lt;br /&gt;
&lt;br /&gt;
tabela:&lt;br /&gt;
&lt;br /&gt;
erp_area_nodes&lt;br /&gt;
  IDN int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  GUID varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  Type varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc. patrz lista',&lt;br /&gt;
  Symbol varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  Nazwa varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  ParentGUID varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.',&lt;br /&gt;
  KontrGUID varchar(38) NOT NULL DEFAULT '', COMMENT 'Jeśli lokalizacja związana jest z kontrahentem, to link do niego',&lt;br /&gt;
  Dzial varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar.',&lt;br /&gt;
  AddrGUID varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli &amp;quot;geo_int_addr_link&amp;quot;', !! zmienić komentarz&lt;br /&gt;
  IsRes int(11) DEFAULT '0',&lt;br /&gt;
  adres varchar(255) NOT NULL DEFAULT '',&lt;br /&gt;
  kontekst int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  deleted int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  status int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  lp int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  obsluga int(11) NOT NULL DEFAULT '0', &lt;br /&gt;
  premia double(16,4) NOT NULL DEFAULT '0.0000',&lt;br /&gt;
  info varchar(250) NOT NULL DEFAULT '',&lt;br /&gt;
  alocaltime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  UGrpGUID varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  Path varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  PathNeedUpdate int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
&lt;br /&gt;
==wartości pola 'Type':==&lt;br /&gt;
systemowe:&lt;br /&gt;
* LOC - lokalizacja posiadająca adres zdefiniowany w geo_int_addr_link&lt;br /&gt;
* MAG - magazyn&lt;br /&gt;
* MAG-REG - regał w magazynie&lt;br /&gt;
* MAG-REG-SEG - sekcja regału&lt;br /&gt;
* MAG-REG-SEG-MSC - półka na regale (piętro)&lt;br /&gt;
&lt;br /&gt;
specyficzne dla klientów:&lt;br /&gt;
&lt;br /&gt;
* REWIR - dla wyjazdów&lt;br /&gt;
&lt;br /&gt;
* W - wydział (SN_PROD)&lt;br /&gt;
* N - nawa (SN_PROD)&lt;br /&gt;
* G - gniazdo (SN_PROD)&lt;br /&gt;
* M - magazyn (SN_PROD) - kolie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T07:55:55Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Struktura przechowywania lokalizacji =&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `erp_area_nodes` (&lt;br /&gt;
  `IDN` int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `GUID` varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  `Type` varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc.',&lt;br /&gt;
  `Symbol` varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  `Nazwa` varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  `ParentGUID` varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.',&lt;br /&gt;
  `KontrGUID` varchar(38) NOT NULL DEFAULT '',&lt;br /&gt;
  `Dzial` varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar.',&lt;br /&gt;
  `AddrGUID` varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli &amp;quot;erp_addresses&amp;quot;',&lt;br /&gt;
  `IsRes` int(11) DEFAULT '0',&lt;br /&gt;
  `adres` varchar(255) NOT NULL DEFAULT '',&lt;br /&gt;
  `kontekst` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `deleted` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `status` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `lp` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `obsluga` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `premia` double(16,4) NOT NULL DEFAULT '0.0000',&lt;br /&gt;
  `info` varchar(250) NOT NULL DEFAULT '',&lt;br /&gt;
  `alocaltime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  `UGrpGUID` varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  `Path` varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  `PathNeedUpdate` int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
  PRIMARY KEY (`IDN`),&lt;br /&gt;
  UNIQUE KEY `guid` (`GUID`),&lt;br /&gt;
  KEY `ParentGuid` (`ParentGUID`),&lt;br /&gt;
  KEY `kontr_kontekst` (`KontrGUID`,`kontekst`),&lt;br /&gt;
  KEY `type` (`Type`),&lt;br /&gt;
  KEY `Path` (`Path`),&lt;br /&gt;
  KEY `PathNeedUpdate` (`PathNeedUpdate`)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje</id>
		<title>MotlawaTech:Lokalizacje</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Lokalizacje"/>
				<updated>2013-06-11T07:52:11Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: Utworzył nową stronę „    CREATE TABLE `erp_area_nodes` (   `IDN` int(11) NOT NULL AUTO_INCREMENT,   `GUID` varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',   `…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `erp_area_nodes` (&lt;br /&gt;
  `IDN` int(11) NOT NULL AUTO_INCREMENT,&lt;br /&gt;
  `GUID` varchar(38) NOT NULL DEFAULT '' COMMENT 'ID miejsca/obszaru - klucz główny',&lt;br /&gt;
  `Type` varchar(50) NOT NULL DEFAULT '' COMMENT 'Wskazuje na typ miejsca - pokój, magazyn, nawa, gniazdo robocze, etc.',&lt;br /&gt;
  `Symbol` varchar(50) NOT NULL DEFAULT '' COMMENT 'Symbol miejsca/obszaru',&lt;br /&gt;
  `Nazwa` varchar(150) DEFAULT NULL COMMENT 'Nazwa miejsca/obszaru',&lt;br /&gt;
  `ParentGUID` varchar(38) NOT NULL DEFAULT 'ALL' COMMENT 'Wskazuje na miejsce nadrzędne np. budynek dla pokoju lub nazwa dla gniazda.',&lt;br /&gt;
  `KontrGUID` varchar(38) NOT NULL DEFAULT '',&lt;br /&gt;
  `Dzial` varchar(38) DEFAULT NULL COMMENT 'Wydział/dział etc. na którym zdefiniowano miejsce/obszar.',&lt;br /&gt;
  `AddrGUID` varchar(38) DEFAULT NULL COMMENT 'ID adresu z tabeli &amp;quot;erp_addresses&amp;quot;',&lt;br /&gt;
  `IsRes` int(11) DEFAULT '0',&lt;br /&gt;
  `adres` varchar(255) NOT NULL DEFAULT '',&lt;br /&gt;
  `kontekst` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `deleted` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `status` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `lp` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `obsluga` int(11) NOT NULL DEFAULT '0',&lt;br /&gt;
  `premia` double(16,4) NOT NULL DEFAULT '0.0000',&lt;br /&gt;
  `info` varchar(250) NOT NULL DEFAULT '',&lt;br /&gt;
  `alocaltime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,&lt;br /&gt;
  `UGrpGUID` varchar(38) NOT NULL DEFAULT 'ALL',&lt;br /&gt;
  `Path` varchar(250) NOT NULL DEFAULT '' COMMENT 'sciezka szukania oddzielona przecinkiem - od roota po liscie',&lt;br /&gt;
  `PathNeedUpdate` int(11) NOT NULL DEFAULT '0' COMMENT 'Gdy 1 oznacza ze nalezy naliczyc sciezke w polu Path',&lt;br /&gt;
  PRIMARY KEY (`IDN`),&lt;br /&gt;
  UNIQUE KEY `guid` (`GUID`),&lt;br /&gt;
  KEY `ParentGuid` (`ParentGUID`),&lt;br /&gt;
  KEY `kontr_kontekst` (`KontrGUID`,`kontekst`),&lt;br /&gt;
  KEY `type` (`Type`),&lt;br /&gt;
  KEY `Path` (`Path`),&lt;br /&gt;
  KEY `PathNeedUpdate` (`PathNeedUpdate`)&lt;br /&gt;
);&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Spis_tre%C5%9Bci</id>
		<title>MotlawaTech:Spis treści</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Spis_tre%C5%9Bci"/>
				<updated>2013-06-11T07:43:57Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
'''MotlawaTech''' to strefa nazw zarezerwowana do dokumentacji technicznej kodu jako pomoc dla programistów - widzą ją tylko zalogowani użytkownicy.&lt;br /&gt;
== Procedury organizacyjne ==&lt;br /&gt;
* [[MotlawaTech:Instalacja komponentu SecureBlackbox|Instalacja komponentu SecureBlackbox]]&lt;br /&gt;
* [[Proc: Procedury]] czyli Seba próbujący okiełznać to wszystko :/&lt;br /&gt;
* [[MotlawaTech:CVS w praktyce|CVS w praktyce]]&lt;br /&gt;
&lt;br /&gt;
== Tematy ==&lt;br /&gt;
* [[MotlawaTech:Użycie linka do Wiki przy oknie ShowMessage|Użycie linka do Wiki przy oknie ShowMessage]]&lt;br /&gt;
* [[MotlawaTech:Dokowanie okna do projektu|Dokowanie okna do projektu]]&lt;br /&gt;
* [[MotlawaTech:Profile w FDBC i FC|Profile (zapamiętanie profili) w FDBC i FC]]&lt;br /&gt;
** [[MotlawaTech:Profile w FDBC i FC#Filtry|Filtry]]&lt;br /&gt;
** [[MotlawaTech:Profile w FDBC i FC#Całokształt FDBC|Całokształt FDBC]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie pomocy wiki do kartoteki|Dodawanie pomocy wiki do kartoteki]]&lt;br /&gt;
* [[MotlawaTech:Automatyczne otwieranie kartoteki po kliknięciu z menu (z uwzględnieniem filtracji)|Automatyczne otwieranie kartoteki po kliknięciu z menu (z uwzględnieniem filtracji)]]&lt;br /&gt;
* [[MotlawaTech:Jak ukryć kartotekę w menu po lewej|Jak ukryć kartotekę w menu po lewej]]&lt;br /&gt;
* [[MotlawaTech:Funkcjonalność &amp;quot;kosza&amp;quot; w kartotece|Funkcjonalność &amp;quot;kosza&amp;quot; w kartotece]]&lt;br /&gt;
* [[MotlawaTech:Dynamiczne menu wydruków]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie logów do zdarzeń|Używanie AddToLogS w systemie (logi systemowe)]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie podsumowania do kartoteki|Dodawanie podsumowania do kartoteki]]&lt;br /&gt;
* [[MotlawaTech:Uprawnienia i ich powiązania|Uprawnienia i ich powiązania]]&lt;br /&gt;
* [[MotlawaTech:Tabela SQL z licznikami|Liczniki systemowe]]&lt;br /&gt;
* [[MotlawaTech:Lokalizacje|Lokalizacje]]&lt;br /&gt;
&lt;br /&gt;
== Edycja ==&lt;br /&gt;
* [[MotlawaTech:W oknie edycji &amp;quot;szary&amp;quot; opis rekordu|W edycji &amp;quot;szary&amp;quot; opis rekordu]]&lt;br /&gt;
* [[MotlawaTech:Połączanie Lookup w edycji pozycji|Połączanie Lookup w edycji pozycji]]&lt;br /&gt;
* [[MotlawaTech:Jak trwale wyłączyć daną kolumnę z cds w edycji|Jak trwale wyłączyć daną kolumnę z cds w edycji]]&lt;br /&gt;
&lt;br /&gt;
== Pozostałe ==&lt;br /&gt;
* [[MotlawaTech:Formatowanie Czasu]]&lt;br /&gt;
* [[MotlawaTech:Znaczenie osób|Znaczenie osób]] - tabela opcji zależności&lt;br /&gt;
* [[Code:Plconv2003|Plconv2003]] - opis działania konwersji Płac z DOSa do Windowsa&lt;br /&gt;
* [[Code:Bankowe DLL|Bankowe DLL]] - opis ogólny&lt;br /&gt;
* [[Code:Procedura wysyłki maila po nowemu|Procedura wysyłki maila po nowemu]] - jedynie aktualna wersja wysyłki (stan na listopad 2010)&lt;br /&gt;
* [[MotlawaTech: Widoki dla katcoli - VIEWS/v katcols|Widoki dla katcoli - VIEWS/v katcols]]&lt;br /&gt;
&lt;br /&gt;
== Opisy funkcji ==&lt;br /&gt;
* [[Code:OdejmijLMD|OdejmijLMD]] - 	 Funkcja obliczająca rożnicę pomiędzy dwiema datami / wymiarami czasu &lt;br /&gt;
&lt;br /&gt;
== MySQL - przydatne myki ==&lt;br /&gt;
* [[Code:General_log|General_log]] - 	 Śledzenie wykonywanych przez program zapytań&lt;br /&gt;
&lt;br /&gt;
== Opisy dyrektyw IFDEF ==&lt;br /&gt;
* [[MotlawaTech:IFDEFyPlace2003|IFDEFy - Place2003]]&lt;br /&gt;
&lt;br /&gt;
== 12alarmy ==&lt;br /&gt;
* [[Code: 12alarmy|Konfiguracja i obsługa modułu wysyłki maili z poziomu Linuxa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WebCRM ==&lt;br /&gt;
* [[MotlawaTech:WebCRM|WebCRM]]&lt;br /&gt;
* [[Code:Dodanie kontrahenta do informacji o zmianach w WebCRM|Dodanie kontrahenta do informacji o zmianach w WebCRM]]&lt;br /&gt;
&lt;br /&gt;
== także zobacz: ==&lt;br /&gt;
* [[Code:Tipsy]]&lt;br /&gt;
* [[MotlawaTech: SQLZmiany i procedury storowane]]&lt;br /&gt;
[[Kategoria: MotlawaTech|0]]&lt;br /&gt;
[[Kategoria: Programowanie|0]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MotlawaTech:Spis_tre%C5%9Bci</id>
		<title>MotlawaTech:Spis treści</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MotlawaTech:Spis_tre%C5%9Bci"/>
				<updated>2013-06-11T07:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{PracaWre}}&lt;br /&gt;
'''MotlawaTech''' to strefa nazw zarezerwowana do dokumentacji technicznej kodu jako pomoc dla programistów - widzą ją tylko zalogowani użytkownicy.&lt;br /&gt;
== Procedury organizacyjne ==&lt;br /&gt;
* [[MotlawaTech:Instalacja komponentu SecureBlackbox|Instalacja komponentu SecureBlackbox]]&lt;br /&gt;
* [[Proc: Procedury]] czyli Seba próbujący okiełznać to wszystko :/&lt;br /&gt;
* [[MotlawaTech:CVS w praktyce|CVS w praktyce]]&lt;br /&gt;
&lt;br /&gt;
== Tematy ==&lt;br /&gt;
* [[MotlawaTech:Użycie linka do Wiki przy oknie ShowMessage|Użycie linka do Wiki przy oknie ShowMessage]]&lt;br /&gt;
* [[MotlawaTech:Dokowanie okna do projektu|Dokowanie okna do projektu]]&lt;br /&gt;
* [[MotlawaTech:Profile w FDBC i FC|Profile (zapamiętanie profili) w FDBC i FC]]&lt;br /&gt;
** [[MotlawaTech:Profile w FDBC i FC#Filtry|Filtry]]&lt;br /&gt;
** [[MotlawaTech:Profile w FDBC i FC#Całokształt FDBC|Całokształt FDBC]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie pomocy wiki do kartoteki|Dodawanie pomocy wiki do kartoteki]]&lt;br /&gt;
* [[MotlawaTech:Automatyczne otwieranie kartoteki po kliknięciu z menu (z uwzględnieniem filtracji)|Automatyczne otwieranie kartoteki po kliknięciu z menu (z uwzględnieniem filtracji)]]&lt;br /&gt;
* [[MotlawaTech:Jak ukryć kartotekę w menu po lewej|Jak ukryć kartotekę w menu po lewej]]&lt;br /&gt;
* [[MotlawaTech:Funkcjonalność &amp;quot;kosza&amp;quot; w kartotece|Funkcjonalność &amp;quot;kosza&amp;quot; w kartotece]]&lt;br /&gt;
* [[MotlawaTech:Dynamiczne menu wydruków]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie logów do zdarzeń|Używanie AddToLogS w systemie (logi systemowe)]]&lt;br /&gt;
* [[MotlawaTech:Dodawanie podsumowania do kartoteki|Dodawanie podsumowania do kartoteki]]&lt;br /&gt;
* [[MotlawaTech:Uprawnienia i ich powiązania|Uprawnienia i ich powiązania]]&lt;br /&gt;
* [[MotlawaTech:Tabela SQL z licznikami|Liczniki systemowe]]&lt;br /&gt;
* [[MotlawaTech:Lokalizacje]]&lt;br /&gt;
&lt;br /&gt;
== Edycja ==&lt;br /&gt;
* [[MotlawaTech:W oknie edycji &amp;quot;szary&amp;quot; opis rekordu|W edycji &amp;quot;szary&amp;quot; opis rekordu]]&lt;br /&gt;
* [[MotlawaTech:Połączanie Lookup w edycji pozycji|Połączanie Lookup w edycji pozycji]]&lt;br /&gt;
* [[MotlawaTech:Jak trwale wyłączyć daną kolumnę z cds w edycji|Jak trwale wyłączyć daną kolumnę z cds w edycji]]&lt;br /&gt;
&lt;br /&gt;
== Pozostałe ==&lt;br /&gt;
* [[MotlawaTech:Formatowanie Czasu]]&lt;br /&gt;
* [[MotlawaTech:Znaczenie osób|Znaczenie osób]] - tabela opcji zależności&lt;br /&gt;
* [[Code:Plconv2003|Plconv2003]] - opis działania konwersji Płac z DOSa do Windowsa&lt;br /&gt;
* [[Code:Bankowe DLL|Bankowe DLL]] - opis ogólny&lt;br /&gt;
* [[Code:Procedura wysyłki maila po nowemu|Procedura wysyłki maila po nowemu]] - jedynie aktualna wersja wysyłki (stan na listopad 2010)&lt;br /&gt;
* [[MotlawaTech: Widoki dla katcoli - VIEWS/v katcols|Widoki dla katcoli - VIEWS/v katcols]]&lt;br /&gt;
&lt;br /&gt;
== Opisy funkcji ==&lt;br /&gt;
* [[Code:OdejmijLMD|OdejmijLMD]] - 	 Funkcja obliczająca rożnicę pomiędzy dwiema datami / wymiarami czasu &lt;br /&gt;
&lt;br /&gt;
== MySQL - przydatne myki ==&lt;br /&gt;
* [[Code:General_log|General_log]] - 	 Śledzenie wykonywanych przez program zapytań&lt;br /&gt;
&lt;br /&gt;
== Opisy dyrektyw IFDEF ==&lt;br /&gt;
* [[MotlawaTech:IFDEFyPlace2003|IFDEFy - Place2003]]&lt;br /&gt;
&lt;br /&gt;
== 12alarmy ==&lt;br /&gt;
* [[Code: 12alarmy|Konfiguracja i obsługa modułu wysyłki maili z poziomu Linuxa]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== WebCRM ==&lt;br /&gt;
* [[MotlawaTech:WebCRM|WebCRM]]&lt;br /&gt;
* [[Code:Dodanie kontrahenta do informacji o zmianach w WebCRM|Dodanie kontrahenta do informacji o zmianach w WebCRM]]&lt;br /&gt;
&lt;br /&gt;
== także zobacz: ==&lt;br /&gt;
* [[Code:Tipsy]]&lt;br /&gt;
* [[MotlawaTech: SQLZmiany i procedury storowane]]&lt;br /&gt;
[[Kategoria: MotlawaTech|0]]&lt;br /&gt;
[[Kategoria: Programowanie|0]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2013-03-25T09:46:15Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'K_rule1','K_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '),&lt;br /&gt;
  (0,'K_rule2','K_',1,2,'Pole NIP może mieć długość 10,12 znaków bądź być puste');&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_nip_rule1_1','K_rule2','nip',0,0,'LENGTH_EQ','0',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH_EQ','10',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH_EQ','12',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',&amp;quot;&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1',&amp;quot;&amp;quot;,0,2,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,'grupa=0',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MotlawaTech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych</id>
		<title>Code: Definicja regul pol obowiazkowych</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=Code:_Definicja_regul_pol_obowiazkowych"/>
				<updated>2013-03-25T09:37:52Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Algorytm walidacji pól'''&lt;br /&gt;
&lt;br /&gt;
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w [[Edytor_kluczy_rejestru|Rejestrze systemowym]] o nazwie '''walidacja_pol_aktywna'''.&lt;br /&gt;
&lt;br /&gt;
Procedura walidacji pobiera definicje z tabel '''sys_fld_validator_ng''' i '''sys_fld_validator_po''' dla danego coreid i przetwarza wszystkie reguły.&lt;br /&gt;
&lt;br /&gt;
Struktury tabel odpowiadających za definicje walidacji pól:&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_ng''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3 style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Field&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Type&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Null&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Key&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Default&lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; | Comment&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[idn]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| PRI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NULL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[GUID]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| UNI&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| [[coreid]]&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| varchar(38)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| MUL&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_operator&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| rule_mode&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| int(11)&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| NO&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  comment  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;| uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Tabela sys_fld_validator_po''&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; cellspacing=1 cellpadding=3  style=&amp;quot;border: 1px solid #888888; border-collapse: collapse; padding: 5px;&amp;quot;  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Field  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Type  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Null  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Key  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Default  &lt;br /&gt;
! style=&amp;quot;text-align:left; border: 1px solid #888888; background: #eeeeee;&amp;quot; |  Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[idn]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  PRI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  [[GUID]]  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  UNI  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  GUID_NG  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  fieldname  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  rule_order  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  admin  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  int(11)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  0  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule_type  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(20)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  validation_rule  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(200)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_expr  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(250)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |    &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  condition_ruleset_guid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  varchar(38)  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NO  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  MUL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  message_if_not_valid  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  text  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  YES  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888;&amp;quot; |  NULL  &lt;br /&gt;
| style=&amp;quot;text-align:left; border: 1px solid #888888; &amp;quot;|  uzupełnić&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reguła może mieć wiele pozycji - np kontrolować wiele pól lub zakładać różne warunki na jedno pole.&lt;br /&gt;
Poszczególne reguły w danym zestawie mogą być łączone operatorem AND (rule_operator=0) - czyli wymagają spełnienia wszystkich warunków, lub operatorem OR (rule_operator=1) - czyli wystarczy spełnienie jednego z warunków.&lt;br /&gt;
&lt;br /&gt;
Rule_mode określa metodę walidacji:&lt;br /&gt;
 0 - na poziomie cds (czyli wykonywana w czasie edycji pola)&lt;br /&gt;
 1 - Before Post&lt;br /&gt;
 2 - Before Apply&lt;br /&gt;
&lt;br /&gt;
Reguła definiowana jest przez typ reguły i wartość kontrolowaną:&lt;br /&gt;
&lt;br /&gt;
Pole validation_rule_type przyjmuje wartości:&lt;br /&gt;
 NOT_NULL, - dla wszystkich typów&lt;br /&gt;
 NOT_EMPTY, - dla stringów: &amp;lt;&amp;gt;&amp;quot;&amp;quot;, dla liczb &amp;lt;&amp;gt;0, dla dat &amp;lt;&amp;gt;'0000-00-00'&lt;br /&gt;
 LENGTH_EQ, LENGTH_MAX, LENGTH_MIN - dotyczy pól stringowych - w validation_rule określona jest długość&lt;br /&gt;
 EQ, NOT_EQ, LESS, LESS_EQ, GREATER, GREATER_EQ, - porównanie z polem validation_rule&lt;br /&gt;
 DEFAULT - wartość domyślna pola określona w validation_rule&lt;br /&gt;
&lt;br /&gt;
 Przykłady:&lt;br /&gt;
  fieldname='datawystaw'&lt;br /&gt;
  validation_rule_type='GREATER_EQ'&lt;br /&gt;
  validation_rule='2009-01-01'&lt;br /&gt;
 &lt;br /&gt;
  fieldname='opis'&lt;br /&gt;
  validation_rule_type='LENGTH_MIN'&lt;br /&gt;
  validation_rule='10'&lt;br /&gt;
&lt;br /&gt;
Reguły mogą być warunkowe - patrz ''Przykład 2''.&lt;br /&gt;
W przypadku nie spełnienia warunków zawartych w regule powinien zostać wyświetlony komunikat złożony z zawartości pól &lt;br /&gt;
message_if_not_valid dla nagłówka i tych pozycji reguły, które nie zostały spełnione.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykładowe definicje walidacji:'''&lt;br /&gt;
&lt;br /&gt;
'''Przykład 1:'''&lt;br /&gt;
&lt;br /&gt;
 Karta kontrahenta (coreid='K_'), pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 &lt;br /&gt;
 (rule_operator=1 (OR) oznacza, że  wystarczy, by jeden z warunków był spełniony).&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'K_rule1','K_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '),&lt;br /&gt;
  (0,'K_rule2','K_',1,2,'Pole NIP może mieć długość 10,12 znaków bądź być puste');&lt;br /&gt;
 &lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_nip_rule1_1','K_rule2','nip',0,0,'LENGTH_EQ','0',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH_EQ','10',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
  (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH_EQ','12',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.&lt;br /&gt;
&lt;br /&gt;
'''Przykład 2:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji - nagłówek (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w regule 'O_katcol0_cond1'&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,'O_katcol0_cond1',&amp;quot;&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
  # reguła warunku walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_cond1',&amp;quot;&amp;quot;,0,2,&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Przykład 3:'''&lt;br /&gt;
&lt;br /&gt;
 Edycja operacji (coreid='O_n_') sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0.&lt;br /&gt;
 Definicja z wykorzystaniem dodatkowego warunku zdefiniowanego w polu condition_expr&lt;br /&gt;
 &lt;br /&gt;
 Definicja:&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt; &lt;br /&gt;
  # reguła walidacji&lt;br /&gt;
  insert into sys_fld_validator_ng values &lt;br /&gt;
  (0,'O_katcol0_rule1','O_n_',0,2,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '),&lt;br /&gt;
&lt;br /&gt;
  insert into sys_fld_validator_po values &lt;br /&gt;
  (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT_EMPTY',&amp;quot;&amp;quot;,'grupa=0',&amp;quot;&amp;quot;,&amp;quot;&amp;quot;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: Administracja|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Motlawa Tech|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: MySQL|Definicja regul pol obowiazkowych]]&lt;br /&gt;
[[Kategoria: Programowanie|Definicja regul pol obowiazkowych]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MHDroid</id>
		<title>MHDroid</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MHDroid"/>
				<updated>2013-03-01T07:28:58Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dopracować}} &lt;br /&gt;
&lt;br /&gt;
'''System Mobilny Handlowiec''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
tabela definicji ankiet:&lt;br /&gt;
&lt;br /&gt;
'droid_ankiety_def_po'&lt;br /&gt;
&lt;br /&gt;
znaczenie pól:&lt;br /&gt;
* '''form''' - symbol formularza (&amp;quot;okna&amp;quot;) na którym ma się znaleźć kontrolka&lt;br /&gt;
* '''lp''' - liczba porządkowa - określa kolejność pól/kontrolek na formularzu - musi być ciągła (od 1...) i kompletna - bez dziur!&lt;br /&gt;
* '''componentName''' - typ kontrolki: &lt;br /&gt;
** '''menu''' - pozycja menu (przycisk) - bez zapisu wyboru&lt;br /&gt;
** '''button''' - przycisk - z zapisem wyboru do logu&lt;br /&gt;
** '''edittext''' - wprowadzanie tekstu &lt;br /&gt;
** '''edittext_number''' - wprowadzanie tekstu (z klawiaturą numeryczną)&lt;br /&gt;
** '''edittext_phone''' -  wprowadzanie numeru telefonu (z klawiaturą telefoniczną)&lt;br /&gt;
** '''date''' -  wprowadzanie daty (kalendarz)&lt;br /&gt;
** '''textview''' - etykieta - stały napis&lt;br /&gt;
** '''list''' - combobox - lista wyboru z danymi pobieranymi z 'datasource'&lt;br /&gt;
** '''ok_cancel''' - dialog ok anuluj (ok - dotaje akcje post - anuluj - back);&lt;br /&gt;
&lt;br /&gt;
''Uwaga: Do tekstu dodanany jest zawsze labelek z opisem !''&lt;br /&gt;
&lt;br /&gt;
* '''label''' - etykieta pola - tekst na przycisku lub opis pola edycyjnego&lt;br /&gt;
* '''activity''' - nazwa activity, które ma być wywołane wskutek wyboru opcji (dotyczy tylko menu i button) - domyślnie ''main'' - do przyszłych zastosowań&lt;br /&gt;
&lt;br /&gt;
* '''action''' - akcja wykonywana przy wyborze  i przekazywana jako parametr do 'activity'&lt;br /&gt;
** '''menu''' - uruchamia nowe okno&lt;br /&gt;
** '''post''' - zapisuje i uruchamia nowe okno &lt;br /&gt;
** '''back''' - zamyka istniejące okno&lt;br /&gt;
** '''logout''' - na razie tak jak back - &lt;br /&gt;
** '''edit''' - nic nie robi&lt;br /&gt;
** '''pause''' - nic nie robi&lt;br /&gt;
** '''exec''' - nic nie robi a chodzilo o okno dialogu&lt;br /&gt;
&lt;br /&gt;
* '''nextform''' - jaki następny formularz ma być wywołany po wyborze opcji (dotyczy componenttype '''menu''' i '''button''')&lt;br /&gt;
* '''datasource''' - nazwa słownika, z którego mają być pobierane dane dla listy - dotyczy componenttype '''list'''&lt;br /&gt;
* '''ds_filter''' - wyrażenie filtracji słownika w zależności od innego pola - &lt;br /&gt;
** ''ValueDescr like %@guid_pola_szukania@%'' - wtedy zamiast @guid_pola_szukania@ podstawiany jest ValueDescr, &lt;br /&gt;
** analogicznie dla przykładu z ofertami klienta: ''FilterKey2=#guid_pola_szukania&amp;quot;'' podstawiany jest ValueKey z odpowiedniego pola - tu guid kontrahenta&lt;br /&gt;
** ''ValueKey''=*zmienna*&lt;br /&gt;
* '''paramExtra''' - dodatkowe parametry dla pola np: ''header=ala ma kota'', ''post_toast=Zapisano'', ''var=zmienna''&lt;br /&gt;
* '''isunique''' - 0 oznacza, że w wynikach danej ankiety to pole może wystąpić wielokrotnie (np start, pauza, stop pracy itp), 1 - tylko raz (ostatnio wybrana wartość) &lt;br /&gt;
* '''descr''' - opis zawartości kontrolki&lt;br /&gt;
* '''status''' - 0 - kontrolka aktywna, 1 - ukryta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tematy związane: ==&lt;br /&gt;
* [[Ustawienie definicji operacji]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: MHDroid]]&lt;br /&gt;
[[Kategoria: System]]&lt;br /&gt;
[[Kategoria: MySQL]]&lt;br /&gt;
[[Kategoria: MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MHDroid</id>
		<title>MHDroid</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MHDroid"/>
				<updated>2013-03-01T07:27:43Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dopracować}} &lt;br /&gt;
&lt;br /&gt;
'''System Mobilny Handlowiec''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
tabela definicji ankiet:&lt;br /&gt;
&lt;br /&gt;
'droid_ankiety_def_po'&lt;br /&gt;
&lt;br /&gt;
znaczenie pól:&lt;br /&gt;
* '''form''' - symbol formularza (&amp;quot;okna&amp;quot;) na którym ma się znaleźć kontrolka&lt;br /&gt;
* '''lp''' - liczba porządkowa - określa kolejność pól/kontrolek na formularzu - musi być ciągła (od 1...) i kompletna - bez dziur!&lt;br /&gt;
* '''componentName''' - typ kontrolki: &lt;br /&gt;
** '''menu''' - pozycja menu (przycisk) - bez zapisu wyboru&lt;br /&gt;
** '''button''' - przycisk - z zapisem wyboru do logu&lt;br /&gt;
** '''edittext''' - wprowadzanie tekstu &lt;br /&gt;
** '''edittext_number''' - wprowadzanie tekstu (z klawiaturą numeryczną)&lt;br /&gt;
** '''edittext_phone''' -  wprowadzanie numeru telefonu (z klawiaturą telefoniczną)&lt;br /&gt;
** '''date''' -  wprowadzanie daty (kalendarz)&lt;br /&gt;
** '''textview''' - etykieta - stały napis&lt;br /&gt;
** '''list''' - combobox - lista wyboru z danymi pobieranymi z 'datasource'&lt;br /&gt;
** '''ok_cancel''' - dialog ok anuluj (ok - dotaje akcje post - anuluj - back);&lt;br /&gt;
&lt;br /&gt;
''Uwaga: Do tekstu dodanany jest zawsze labelek z opisem !''&lt;br /&gt;
&lt;br /&gt;
* '''label''' - etykieta pola - tekst na przycisku lub opis pola edycyjnego&lt;br /&gt;
* '''activity''' - nazwa activity, które ma być wywołane wskutek wyboru opcji (dotyczy tylko menu i button) - domyślnie ''main'' - do przyszłych zastosowań&lt;br /&gt;
&lt;br /&gt;
* '''action''' - akcja wykonywana przy wyborze  i przekazywana jako parametr do 'activity'&lt;br /&gt;
** '''menu''' - uruchamia nowe okno&lt;br /&gt;
** '''post''' - zapisuje i uruchamia nowe okno &lt;br /&gt;
** '''back''' - zamyka istniejące okno&lt;br /&gt;
** '''logout''' - na razie tak jak back - &lt;br /&gt;
** '''edit''' - nic nie robi&lt;br /&gt;
** '''pause''' - nic nie robi&lt;br /&gt;
** '''exec''' - nic nie robi a chodzilo o okno dialogu&lt;br /&gt;
&lt;br /&gt;
* '''nextform''' - jaki następny formularz ma być wywołany po wyborze opcji (dotyczy componenttype '''menu''' i '''button''')&lt;br /&gt;
* '''datasource''' - nazwa słownika, z którego mają być pobierane dane dla listy - dotyczy componenttype '''list'''&lt;br /&gt;
* '''ds_filter''' - wyrażenie filtracji słownika w zależności od innego pola - &lt;br /&gt;
** ''ValueDescr like &amp;quot;%@guid_pola_szukania@%&amp;quot;'' - wtedy zamiast @guid_pola_szukania@ podstawiany jest ValueDescr, &lt;br /&gt;
** analogicznie dla przykładu z ofertami klienta: ''FilterKey2=&amp;quot;#guid_pola_szukania#&amp;quot;'' podstawiany jest ValueKey z odpowiedniego pola - tu guid kontrahenta&lt;br /&gt;
** ''ValueKey''=*zmienna*&lt;br /&gt;
* '''paramExtra''' - dodatkowe parametry dla pola np: ''header=ala ma kota'', ''post_toast=Zapisano'', ''var=zmienna''&lt;br /&gt;
* '''isunique''' - 0 oznacza, że w wynikach danej ankiety to pole może wystąpić wielokrotnie (np start, pauza, stop pracy itp), 1 - tylko raz (ostatnio wybrana wartość) &lt;br /&gt;
* '''descr''' - opis zawartości kontrolki&lt;br /&gt;
* '''status''' - 0 - kontrolka aktywna, 1 - ukryta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tematy związane: ==&lt;br /&gt;
* [[Ustawienie definicji operacji]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: MHDroid]]&lt;br /&gt;
[[Kategoria: System]]&lt;br /&gt;
[[Kategoria: MySQL]]&lt;br /&gt;
[[Kategoria: MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MHDroid</id>
		<title>MHDroid</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MHDroid"/>
				<updated>2013-01-09T08:32:18Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dopracować}} &lt;br /&gt;
&lt;br /&gt;
'''System Mobilny Handlowiec''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
tabela definicji ankiet:&lt;br /&gt;
&lt;br /&gt;
'droid_ankiety_def_po'&lt;br /&gt;
&lt;br /&gt;
znaczenie pól:&lt;br /&gt;
* '''form''' - symbol formularza (&amp;quot;okna&amp;quot;) na którym ma się znaleźć kontrolka&lt;br /&gt;
* '''lp''' - liczba porządkowa - określa kolejność pól/kontrolek na formularzu - musi być ciągła (od 1...) i kompletna - bez dziur!&lt;br /&gt;
* '''componentName''' - typ kontrolki: &lt;br /&gt;
** '''menu''' - pozycja menu (przycisk) - bez zapisu wyboru&lt;br /&gt;
** '''button''' - przycisk - z zapisem wyboru do logu&lt;br /&gt;
** '''edittext''' - wprowadzanie tekstu &lt;br /&gt;
** '''edittext_number''' - wprowadzanie tekstu (z klawiaturą numeryczną)&lt;br /&gt;
** '''edittext_phone''' -  wprowadzanie numeru telefonu (z klawiaturą telefoniczną)&lt;br /&gt;
** '''date''' -  wprowadzanie daty (kalendarz)&lt;br /&gt;
** '''textview''' - etykieta - stały napis&lt;br /&gt;
** '''list''' - combobox - lista wyboru z danymi pobieranymi z 'datasource'&lt;br /&gt;
** '''ok_cancel''' - dialog ok anuluj (ok - dotaje akcje post - anuluj - back);&lt;br /&gt;
&lt;br /&gt;
''Uwaga: Do tekstu dodanany jest zawsze labelek z opisem !''&lt;br /&gt;
&lt;br /&gt;
* '''label''' - etykieta pola - tekst na przycisku lub opis pola edycyjnego&lt;br /&gt;
* '''activity''' - nazwa activity, które ma być wywołane wskutek wyboru opcji (dotyczy tylko menu i button) - domyślnie ''main'' - do przyszłych zastosowań&lt;br /&gt;
&lt;br /&gt;
* '''action''' - akcja wykonywana przy wyborze  i przekazywana jako parametr do 'activity'&lt;br /&gt;
** '''menu''' - uruchamia nowe okno&lt;br /&gt;
** '''post''' - zapisuje i uruchamia nowe okno &lt;br /&gt;
** '''back''' - zamyka istniejące okno&lt;br /&gt;
** '''logout''' - na razie tak jak back - &lt;br /&gt;
** '''edit''' - nic nie robi&lt;br /&gt;
** '''pause''' - nic nie robi&lt;br /&gt;
** '''exec''' - nic nie robi a chodzilo o okno dialogu&lt;br /&gt;
&lt;br /&gt;
* '''nextform''' - jaki następny formularz ma być wywołany po wyborze opcji (dotyczy componenttype '''menu''' i '''button''')&lt;br /&gt;
* '''datasource''' - nazwa słownika, z którego mają być pobierane dane dla listy - dotyczy componenttype '''list'''&lt;br /&gt;
* '''ds_filter''' - wyrażenie filtracji słownika w zależności od innego pola - np ''ValueDescr like &amp;quot;%@guid_pola_szukania@%&amp;quot;'' - wtedy zamiast @guid_pola_szukania@ podstawiany jest ValueDescr, analogicznie dla przykładu z ofertami klienta: ''FilterKey2=&amp;quot;#guid_pola_szukania#&amp;quot;'' podstawiany jest ValueKey z odpowiedniego pola - tu guid kontrahenta&lt;br /&gt;
* '''paramExtra''' - dodatkowe parametry dla pola np: ''header=&amp;quot;ala ma kota&amp;quot;''&lt;br /&gt;
* '''isunique''' - 0 oznacza, że w wynikach danej ankiety to pole może wystąpić wielokrotnie (np start, pauza, stop pracy itp), 1 - tylko raz (ostatnio wybrana wartość) &lt;br /&gt;
* '''descr''' - opis zawartości kontrolki&lt;br /&gt;
* '''status''' - 0 - kontrolka aktywna, 1 - ukryta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tematy związane: ==&lt;br /&gt;
* [[Ustawienie definicji operacji]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: MHDroid]]&lt;br /&gt;
[[Kategoria: System]]&lt;br /&gt;
[[Kategoria: MySQL]]&lt;br /&gt;
[[Kategoria: MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	<entry>
		<id>https://wikii.int.com.pl/index.php?title=MHDroid</id>
		<title>MHDroid</title>
		<link rel="alternate" type="text/html" href="https://wikii.int.com.pl/index.php?title=MHDroid"/>
				<updated>2013-01-08T08:34:59Z</updated>
		
		<summary type="html">&lt;p&gt;Apro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dopracować}} &lt;br /&gt;
&lt;br /&gt;
'''System Mobilny Handlowiec''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
tabela definicji ankiet:&lt;br /&gt;
&lt;br /&gt;
'droid_ankiety_def_po'&lt;br /&gt;
&lt;br /&gt;
znaczenie pól:&lt;br /&gt;
* '''form''' - symbol formularza (&amp;quot;okna&amp;quot;) na którym ma się znaleźć kontrolka&lt;br /&gt;
* '''lp''' - liczba porządkowa - określa kolejność pól/kontrolek na formularzu - musi być ciągła (od 1...) i kompletna - bez dziur!&lt;br /&gt;
* '''componentName''' - typ kontrolki: &lt;br /&gt;
** '''menu''' - pozycja menu (przycisk) - bez zapisu wyboru&lt;br /&gt;
** '''button''' - przycisk - z zapisem wyboru do logu&lt;br /&gt;
** '''edittext''' - wprowadzanie tekstu &lt;br /&gt;
** '''edittext_number''' - wprowadzanie tekstu (z klawiaturą numeryczną)&lt;br /&gt;
** '''edittext_datetime''' -  wprowadzanie daty &lt;br /&gt;
** '''edittext_phone''' -  wprowadzanie numeru telefonu (z klawiaturą telefoniczną)&lt;br /&gt;
** '''textview''' - etykieta - stały napis&lt;br /&gt;
** '''list''' - combobox - lista wyboru z danymi pobieranymi z 'datasource'&lt;br /&gt;
** '''ok_cancel''' - dialog ok anuluj (ok - dotaje akcje post - anuluj - back);&lt;br /&gt;
&lt;br /&gt;
''Uwaga: Do tekstu dodanany jest zawsze labelek z opisem !''&lt;br /&gt;
&lt;br /&gt;
* '''label''' - etykieta pola - tekst na przycisku lub opis pola edycyjnego&lt;br /&gt;
* '''activity''' - nazwa activity, które ma być wywołane wskutek wyboru opcji (dotyczy tylko menu i button) - domyślnie ''main'' - do przyszłych zastosowań&lt;br /&gt;
&lt;br /&gt;
* '''action''' - akcja wykonywana przy wyborze  i przekazywana jako parametr do 'activity'&lt;br /&gt;
** '''menu''' - uruchamia nowe okno&lt;br /&gt;
** '''post''' - zapisuje i uruchamia nowe okno &lt;br /&gt;
** '''back''' - zamyka istniejące okno&lt;br /&gt;
** '''logout''' - na razie tak jak back - &lt;br /&gt;
** '''edit''' - nic nie robi&lt;br /&gt;
** '''pause''' - nic nie robi&lt;br /&gt;
** '''exec''' - nic nie robi a chodzilo o okno dialogu&lt;br /&gt;
&lt;br /&gt;
* '''nextform''' - jaki następny formularz ma być wywołany po wyborze opcji (dotyczy componenttype '''menu''' i '''button''')&lt;br /&gt;
* '''datasource''' - nazwa słownika, z którego mają być pobierane dane dla listy - dotyczy componenttype '''list'''&lt;br /&gt;
* '''ds_filter''' - wyrażenie filtracji słownika w zależności od innego pola - np ''ValueDescr like &amp;quot;%@guid_pola_szukania@%&amp;quot;'' - wtedy zamiast @guid_pola_szukania@ podstawiany jest ValueDescr, analogicznie dla przykładu z ofertami klienta: ''FilterKey2=&amp;quot;#guid_pola_szukania#&amp;quot;'' podstawiany jest ValueKey z odpowiedniego pola - tu guid kontrahenta&lt;br /&gt;
* '''paramExtra''' - dodatkowe parametry dla pola np: ''header=&amp;quot;ala ma kota&amp;quot;''&lt;br /&gt;
* '''isunique''' - 0 oznacza, że w wynikach danej ankiety to pole może wystąpić wielokrotnie (np start, pauza, stop pracy itp), 1 - tylko raz (ostatnio wybrana wartość) &lt;br /&gt;
* '''descr''' - opis zawartości kontrolki&lt;br /&gt;
* '''status''' - 0 - kontrolka aktywna, 1 - ukryta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== tematy związane: ==&lt;br /&gt;
* [[Ustawienie definicji operacji]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria: MHDroid]]&lt;br /&gt;
[[Kategoria: System]]&lt;br /&gt;
[[Kategoria: MySQL]]&lt;br /&gt;
[[Kategoria: MotlawaTech]]&lt;/div&gt;</summary>
		<author><name>Apro</name></author>	</entry>

	</feed>