Predchozi Seznam Nasledujici

CaddisII: Zápis ze schùzky 19.05.2003

Pote co jsme minule a predminule nedelali nic jineho nez se dohadovali na formatech poli, nenapadlo nas nic lepsiho nez je zase zmenit. Ale poporade. Cele to zacalo moji nevinnou otazkou jak muzu dostat meze, tedy dotaz na polozky s hodnoutou mezi dvemi mezemi. Byly objeveny dva prakticke priklady: listovani - ktere bylo prideleno formularnikovi - a datum, o ktere se spolu s dalsimi priklady ma starat planovac.
Bylo dohodnuto ze je nesmysl aby po tom co si davame tolik zalezet na obecnosti nema smysl aby mel podobne zalezitosti planovac natvrdo. Proto dostal slibeny vlastni direktorar (stejne jako tester), ve kterem budou umisteny funkce pro zpracovani jednotlivych typu formularu. Kterou z techto funkci ma zavolat zjisti dotazem do databaze (s formID nebo casti formID jako parametrem - uvidime podle toho kolik bude typu formularu).
Mezi typy formitemu odvozene z typu inputu pribyli dva nove - "range", ktery bude delen na dva edity s jmenem name_from a name_to a v planovaci znovu spojovan, a limit, ze ktereho bude obycejny edit, akorat se s nim bude trochu jinak zachazet - jeho pritomnost spusti mechanismus listovani.
A ted tezky kalibr: v ramci podpory ceskeho zemedelstvi pridame dalsi uroven pole v putovnim formatu. Bude mit pouze dve polozky - head a data. Zatimco v datech bude to o cem jsme se zatim bavili, do hlavicky prijde cokoliv co by neslo napasovat do datove struktury.
Nasleduje nekolik po zkusenostech z drivejska radeji obsahlejsich prikladu:
Vyhledavaci dotaz do tabulky autoru (parametr data)
Najdi vsechny pepy narozene v danem rozmezi
Mezi planovacem a databazi
array(
  "head"=>array(
    "limit"=>"30"
  ),
  "data"=>array(
    "jmeno"=>array(
      "name"=>"jmeno",
      "data"=>"pepa"
    ),
    "narozen"=>array(
      "name"=>"narozen",
      "begin"=>"13.7.1980",
      "end"=>"29.2.2000"
    )
  )
)
<caddis>
  <head>
    <limit>30</limit>
  </head>
  <data>
    <jmeno>
      <name>jmeno</name>
      <data>pepa</data>
    </jmeno>
    <narozen>
      <name>narozen</name>
      <begin>13.7.1980</begin>
      <end>29.2.2000</end>
    </narozen>
  </data>
</caddis>
Odpoved na tento dotaz
array(
  "head"=>array(
    "limit"=>"30",
    "lastid"=>"130"
  ),
  "data"=>array(
    "0"=>array(
      "jmeno"=>array(
        "name"=>"jmeno",
        "data"=>"pepa"
      ),
      "prijmeni"=>array(
        "name"=>"prijmeni",
        "data"=>"Novak"
      ),
      "misto"=>array(
        "name"=>"misto",
        "data"=>"Externi"
      ),
      "narozen"=>array(
        "name"=>"narozen",
        "data"=>"29.2.1990"
      ),
      "id"=>array(
        "name"=>"id",
        "data"=>"17"
      )
    ),
    "1"=>array(
      "jmeno"=>array(
        "name"=>"jmeno",
        "data"=>"pepa"
      ),
      "prijmeni"=>array(
        "name"=>"prijmeni",
        "data"=>"Smith"
      ),
      "misto"=>array(
        "name"=>"misto",
        "data"=>"Matfyz"
      ),
      "narozen"=>array(
        "name"=>"narozen",
        "data"=>"13.4.1990"
      ),
      "id"=>array(
        "name"=>"id",
        "data"=>"130"
      )
    )
  )
)
<caddis>
  <head>
    <limit>30</limit>
    <lastid>130</lastid>
  </head>
  <data>
    <anyitem>
      <jmeno>
        <name>jmeno</name>
        <data>pepa</data>
      </jmeno>
      <prijmeni>
        <name>prijmeni</name>
        <data>Novak</data>
      </prijmeni>
      <misto>
        <name>misto</name>
        <data>Externi</data>
      </misto>
      <narozen>
        <name>narozen</name>
        <data>29.2.1990</data>
      </narozen>
      <id>
        <name>id</name>
        <data>17</data>
      </id>
    </anyitem>
    <anyitem>
      <jmeno>
        <name>jmeno</name>
        <data>pepa</data>
      </jmeno>
      <prijmeni>
        <name>prijmeni</name>
        <data>Smith</data>
      </prijmeni>
      <misto>
        <name>misto</name>
        <data>Matfyz</data>
      </misto>
      <narozen>
        <name>narozen</name>
        <data>13.4.1990</data>
      </narozen>
      <id>
        <name>id</name>
        <data>130</data>
      </id>
    </anyitem>
  </data>
</caddis>
Odpoved na jiny dotaz do tabulky bibliografickych zaznamu
Autori tentokrat bez data narozeni
array(
  "head"=>array(
    "limit"=>"30",
    "lastid"=>"12"
  ),
  "data"=>array(
    "0"=>array(
      "jmeno"=>array(
        "name"=>"jmeno",
        "data"=>"Bible"
      ),
      "stranek"=>array(
        "name"=>"stranek",
        "data"=>"az moc"
      ),
      "autori"=>array(
        "name"=>"autori",
        "data"=>array(
          "0"=>array(
            "jmeno"=>array(
              "name"=>"jmeno",
              "data"=>""
            ),
            "prijmeni"=>array(
              "name"=>"prijmeni",
              "data"=>"Mojzis"
            ),
            "misto"=>array(
              "name"=>"misto",
              "data"=>"Externi"
            )
          ),
          "1"=>array(
            "jmeno"=>array(
              "name"=>"jmeno",
              "data"=>""
            ),
            "prijmeni"=>array(
              "name"=>"prijmeni",
              "data"=>"Jan"
            ),
            "misto"=>array(
              "name"=>"misto",
              "data"=>"Externi"
            )
          )
        )
      ),
      "id"=>array(
        "name"=>"id",
        "data"=>"1"
      )
    ),
    "1"=>array(
      "jmeno"=>array(
        "name"=>"jmeno",
        "data"=>"Kouzla pro stredne pokrocile"
      ),
      "stranek"=>array(
        "name"=>"stranek",
        "data"=>"2000"
      ),
      "autori"=>array(
        "name"=>"autori",
        "data"=>array(
          "0"=>array(
            "jmeno"=>array(
              "name"=>"jmeno",
              "data"=>"Simon"
            ),
            "prijmeni"=>array(
              "name"=>"prijmeni",
              "data"=>"the Sorcerer"
            ),
            "misto"=>array(
              "name"=>"misto",
              "data"=>"Externi"
            )
          ),
          "1"=>array(
            "jmeno"=>array(
              "name"=>"jmeno",
              "data"=>"Petr"
            ),
            "prijmeni"=>array(
              "name"=>"prijmeni",
              "data"=>"Simon"
            ),
            "misto"=>array(
              "name"=>"misto",
              "data"=>"Matfyz"
            )
          )
        )
      ),
      "id"=>array(
        "name"=>"id",
        "data"=>"12"
      )
    )
  )
)
<caddis>
  <head>
    <limit>30</limit>
    <lastid>12</lastid>
  </head>
  <data>
    <anyitem>
      <jmeno>
        <name>jmeno</name>
        <data>Bible</data>
      </jmeno>
      <stranek>
        <name>stranek</name>
        <data>az moc</data>
      </stranek>
      <autori>
        <name>autori</name>
        <data>
          <anyitem>
            <jmeno>
              <name>jmeno</name>
              <data></data>
            </jmeno>
            <prijmeni>
              <name>prijmeni</name>
              <data>Mojzis</data>
            </prijmeni>
            <misto>
              <name>misto</name>
              <data>Externi</data>
            </misto>
          </anyitem>
          <anyitem>
            <jmeno>
              <name>jmeno</name>
              <data></data>
            </jmeno>
            <prijmeni>
              <name>prijmeni</name>
              <data>Jan</data>
            </prijmeni>
            <misto>
              <name>misto</name>
              <data>Externi</data>
            </misto>
          </anyitem>
        </data>
      </autori>
      <id>
        <name>id</name>
        <data>1</data>
      </id>
    </anyitem>
    <anyitem>
      <jmeno>
        <name>jmeno</name>
        <data>Kouzla pro stredne pokrocile</data>
      </jmeno>
      <stranek>
        <name>stranek</name>
        <data>2000</data>
      </stranek>
      <autori>
        <name>autori</name>
        <data>
          <anyitem>
            <jmeno>
              <name>jmeno</name>
              <data>Simon</data>
            </jmeno>
            <prijmeni>
              <name>prijmeni</name>
              <data>the Sorcerer</data>
            </prijmeni>
            <misto>
              <name>misto</name>
              <data>Externi</data>
            </misto>
          </anyitem>
          <anyitem>
            <jmeno>
              <name>jmeno</name>
              <data>Petr</data>
            </jmeno>
            <prijmeni>
              <name>prijmeni</name>
              <data>Simon</data>
            </prijmeni>
            <misto>
              <name>misto</name>
              <data>Matfyz</data>
            </misto>
          </anyitem>
        </data>
      </autori>
      <id>
        <name>id</name>
        <data>12</data>
      </id>
    </anyitem>
  </data>
</caddis>
A zde navod ke zobrazeni formulare pro vyhledavani autoru
Jak ho dostane planovac
array(
  "head"=>array(
    "lastid"=>"13"
  ),
  "data"=>array(
    "0"=>array(
      "0"=>array(
        "type"=>"text",
        "size"=>"10",
        "name"=>"jmeno",
        "prelabel"=>"Jmeno: ",
        "postlabel"=>""
      ),
      "1"=>array(
        "type"=>"text",
        "size"=>"10",
        "name"=>"prijmeni",
        "prelabel"=>"Prijmeni: ",
        "postlabel"=>""
      ),
      "2"=>array(
        "type"=>"range",
        "size"=>"10",
        "name"=>"datum",
        "prelabel"=>"Datum od/do: ",
        "postlabel"=>""
      ),
      "3"=>array(
        "type"=>"limit",
        "size"=>"10",
        "name"=>"limit",
        "prelabel"=>"Zaznamu na stranku: ",
        "postlabel"=>""
      ),
      "4"=>array(
        "type"=>"select",
        "size"=>"2",
        "name"=>"misto",
        "prelabel"=>"",
        "postlabel"=>"",
        "options"=>array(
          "0"=>array(
            "hodnota"=>"0",
            "text"=>"Matfyz"
          ),
          "1"=>array(
            "hodnota"=>"1",
            "text"=>"Uplne odjinud"
          )
        )
      )
    )
  )
)
<caddis>
  <head>
    <lastid>13</lastid>
  </head>
  <data>
    <anyitem>
      <anyitem>
        <type>text</type>
        <size>10</size>
        <name>jmeno</name>
        <prelabel>Jmeno: </prelabel>
        <postlabel></postlabel>
      </anyitem>
      <anyitem>
        <type>text</type>
        <size>10</size>
        <name>prijmeni</name>
        <prelabel>Prijmeni: </prelabel>
        <postlabel></postlabel>
      </anyitem>
      <anyitem>
        <type>range</type>
        <size>10</size>
        <name>datum</name>
        <prelabel>Datum od/do: </prelabel>
        <postlabel></postlabel>
      </anyitem>
      <anyitem>
        <type>limit</type>
        <size>10</size>
        <name>limit</name>
        <prelabel>Zaznamu na stranku: </prelabel>
        <postlabel></postlabel>
      </anyitem>
      <anyitem>
        <type>select</type>
        <size>2</size>
        <name>misto</name>
        <prelabel></prelabel>
        <postlabel></postlabel>
        <options>
          <anyitem>
            <hodnota>0</hodnota>
            <text>Matfyz</text>
          </anyitem>
          <anyitem>
            <hodnota>1</hodnota>
            <text>Uplne odjinud</text>
          </anyitem>
        </options>
      </anyitem>
    </anyitem>
  </data>
</caddis>
A na zaver oblibeny draft co vrati planovac po neprilis uspesnem pokusu o editaci
array(
  "head"=>array(
    "lastid"=>"13",
    "error"=>array(
      "type"=>"2",
      "errors"=>"1",
      "warnings"=>"1"
    )
  ),
  "data"=>array(
    "0"=>array(
      "0"=>array(
        "type"=>"text",
        "size"=>"10",
        "name"=>"jmeno",
        "prelabel"=>"Jmeno: ",
        "postlabel"=>"",
        "data"=>"Pavel",
        "error"=>array(
          "type"=>"0"
        )
      ),
      "1"=>array(
        "type"=>"text",
        "size"=>"10",
        "name"=>"prijmeni",
        "prelabel"=>"Prijmeni: ",
        "postlabel"=>"",
        "data"=>"Rada",
        "error"=>array(
          "type"=>"0"
        )
      ),
      "2"=>array(
        "type"=>"text",
        "size"=>"10",
        "name"=>"datum",
        "prelabel"=>"Datum narozeni: ",
        "postlabel"=>"",
        "data"=>"29.2.1990",
        "error"=>array(
          "type"=>"2",
          "text"=>"Neplatne datum"
        )
      ),
      "3"=>array(
        "type"=>"select",
        "size"=>"2",
        "name"=>"misto",
        "prelabel"=>"",
        "postlabel"=>"",
        "options"=>array(
          "0"=>array(
            "hodnota"=>"0",
            "text"=>"Matfyz"
          ),
          "1"=>array(
            "hodnota"=>"1",
            "text"=>"Uplne odjinud"
          )
        ),
        "data"=>"",
        "error"=>array(
          "type"=>"1",
          "text"=>"Chybejici nepovinny udaj"
        )
      )
    )
  )
)
<caddis>
  <head>
    <lastid>13</lastid>
    <error>
      <type>2</type>
      <errors>1</errors>
      <warnings>1</warnings>
    </error>
  </head>
  <data>
    <anyitem>
      <anyitem>
        <type>text</type>
        <size>10</size>
        <name>jmeno</name>
        <prelabel>Jmeno: </prelabel>
        <postlabel></postlabel>
        <data>Pavel</data>
        <error>
          <type>0</type>
        </error>
      </anyitem>
      <anyitem>
        <type>text</type>
        <size>10</size>
        <name>prijmeni</name>
        <prelabel>Prijmeni: </prelabel>
        <postlabel></postlabel>
        <data>Rada</data>
        <error>
          <type>0</type>
        </error>
      </anyitem>
      <anyitem>
        <type>text</type>
        <size>10</size>
        <name>datum</name>
        <prelabel>Datum narozeni: </prelabel>
        <postlabel></postlabel>
        <data>29.2.1990</data>
        <error>
          <type>2</type>
          <text>Neplatne datum</text>
        </error>
      </anyitem>
      <anyitem>
        <type>select</type>
        <size>2</size>
        <name>misto</name>
        <prelabel></prelabel>
        <postlabel></postlabel>
        <options>
          <anyitem>
            <hodnota>0</hodnota>
            <text>Matfyz</text>
          </anyitem>
          <anyitem>
            <hodnota>1</hodnota>
            <text>Uplne odjinud</text>
          </anyitem>
        </options>
        <data></data>
        <error>
          <type>1</type>
          <text>Chybejici nepovinny udaj</text>
        </error>
      </anyitem>
    </anyitem>
  </data>
</caddis>

S trochou stesti tam nemam zadne chyby a nevynechal jsem nic podstatneho.