M$ Tabular Data Control (TDC)
14 Jun 1999 by Laacz
Tabulārais Datu Kontrolis (:), jeb latviski - SDK, ir tāds ActiveX objektiņš, kontrolītis, etc, kura priekus, diemžēl, var baudīt tikai MSIE4+ lietotāji. Tas ļauj attēlot kādā eksternālā failā noglabātus datus iekš kādas HTML lapas.
Šamais kontrols nāk kopā ar MSIE4 instalāciju (kā arī, protams, ar visiem descendentiem) un dislocējās datnē tdc.ocx (uz manas miskastes tas ir iekš c:\winnt\system32\tdc.ocx :). Pirms dosimies pie piemēriem, no sākuma aprakstīšu visus 13 propertijus un visu 1 metodi, kuras šamais suportē. Tātad:
POPERTIJS | APRAKSTS |
Charset |
Apraksta, kādu čaraktersetu lietot tabulai. Parasti to norādīt nav jēgas, jo tas tiek noteikts lapā. Defaultā vērtība ir "latin1". Ja nav šamais tiek atstāts par defaulto vai norādīts kā "", tad tiek uzskatīts, ka ienākošā datne ir unicodē. |
DataURL |
Norāda URLi uz failu, kurš satur datus. Tiek azīts standarta URĻu formāts - http:, ftp:, file:. Piemēram - http://www.data.lv/data.txt. Parasti DataURL tiek nodefinēts pašā object elementā kā parametrs, taču, to var mainīt arī ar skriptu. To darot, tiek ieloadots jaunais datasets, kuru tu esi laipni norādījis. To parasti arīdzan izmanto, lai refrešotu datus, piešķirot šamajam parametram vēlreiz jau esošo DataURL. |
EscapeChar |
Norāda simbolu, kurš tiks likts priekšā pirms speciālajiem simboliem. Speciālie simboli var būt tie, kas nodefinēti parametros FieldDelim, RowDelim un TextQualifier. Ka tas ir uzsetots uz tukšu stringu (""), nestandarta simboli nav pieļaujami lauku saturā (by default tā tas arī ir). Piemēram, ja TextQualifier ir nodefinēts kā vienkāršās pēdiņas ("), bet daži no laukiem satur šīs pašas pēdiņas, nodefinē EscapeChar kaut vai kā backlašu (\). Tad notiks tā, ka rakstot "This is \"really\" cool", pēdiņas aiz \ nenozīmēs atdalītus laukus, bet gan to, ka sekojošais simbols ir jādrukā un tiks izdrukāts This is "really" cool |
FieldDelim |
Norāda, kurš simbols nozīmēs lauka beigas. Defaultais simbols ir komats (,). Lai arī parasti tiek izmantots viens simbols, var arī izmantot to virkni (piemēram, <param name=FieldDelim value="kakainis">). Vari arī izmantot speciālos simbolus. Piemēram, lai noteiktu, ka lauki tiks atdalīti ar tabulāciju, raksti: <param name=FieldDelim value=="	"> |
FilterColumn |
Norāda, pēc kuras datu kolonnas ta tiks veikta filtrācija. By default šamais mainīgais ir tukšs. Ja nav kolonnu nosaukumi, tad tiem tiek doti nosaukumu Cloumn1 .. ColumnN. Ja šis propertijs ir tukšs, tad nekas netiks filtrēts, neskatoties uz FilterCriterion un/vai FilterValue vērtībām. |
FilterCriterion |
Norāda filtru. Iespējamās vērtības ir:
= (ekvivalents; defaultā vērtība),
<> (nav vienāds),
> (lielāks),
>= (lielāks vai vienāds),
< (mazāks),
<= (mazāks vai vienāds)
Šamais parametrs ir saistīts ar FilterValue un FilterColumn parametriem. Filtrēšana notiek, kad tiek izsaukta metode Reset.
|
FilterValue |
Norāda vērtību, kuru salīdzināt ar kolonnas FilterColumn datiem pēc FilterCriterion kritērija. Ja dati iekš šās vērtības neatbilst datiem iekš filtrējamās kolonnas, tad nekas netiek filtrēts. Notiek, kad tiek izsaukta Reset. Sekojošais piemērs atfiltrēs no piezīmju grāmatiņas visus ierakstus, kuriem ir ierakstīts telefona numurs:
...
<param name=FilterColumn value="PhoneNum">
<param name=FilterCriterion value="<>">
<param name=FilterValue value="">
...
|
Language |
Norāda kādā valodā ir datu fails. Izmantoti tiek HTML standarta saīsinājumi (ISO 369). Defaultā vērtība ir "eng-us". Šamais ietekmē komatu processingu datos ar pledošo pixeli. |
RowDelim |
Pasaka, ar kādu ta nu simbolu (vai to virkni) mēs atdalīsim rindas (rows). Defaultā vērtība ir jaunas rindas sākums (angliski to sauc newline). |
SortAscending |
Nosaka kārtošanas secību. Booleans. True ir defaultā vērtība. Sortē pēc kolonnas, kura norādīta parametrā SortColumn, pamatojoties uz sekojošiem noteikumiem:
- SortAscending = True
- Texc: "a" "b" "c" ... "z"
Skaitļi: ... -1 0 1 ...
Datumi: 1/1/1950 1/1/1990 1/1/2000
Booleani: False False ... True True
- SortAscending = False
- Texc: "z" "y" "x" ... "a"
Skaitļi: ... 1 0 -1 ...
Datumi: 1/1/2000 1/1/1990 1/1/1950
Booleani: True True ... False False
Teksts vienmēr tiek sortēts neņemot vērā lielos/mazos burtus. Piemēram, "ab" vienmēr būs mazāks par "Bb" un "Aa" būs lielāks par "aa".
|
SortColumn |
Norāda kolonnu, pēc kuras sortēsim. By default šamais mainīgais ir tukšs. Ja nav kolonnu nosaukumi, tad tiem tiek doti nosaukumu Cloumn1 .. ColumnN. Ja šis propertijs ir tukšs, tad nekas netiks sortēts, neskatoties uz SortAscending vērtību. |
TextQualifier |
Norāda (neobligāto) čarakteri, kurš ierobežos vienu lauku. Tas ir noderīgs gadījumiem, kad iekš lauka ir kaudze (vai arī viens) ar speciālajiem simboliem - pārejas uz nākamo rindu, tabulācijas vai komati. Defaultā vērtība ir pēdiņas ("). Piemērs:
Lielais Naidnieks, "42 kaut kādā ielā, kaut kādā pilsētā, kaut kur karoče", 777-7777
Smukā Meitene, "Tā nu es te tev tagad teikšu...", 900-5656
Vēl viens pielietojums ir tad, kad tabulas lauks satur HTMLu, kuramajā, protams, ir kaudze ar visvisādiem enteriem, etc.
|
UseHeader |
True, ja pirmajā rindā (faila) atrodās lauku nosaukumi un to tipu apraksti. Pierakstās tas viss tā:
lauka_nosaukums:tips,lauka_nosaukums:tips...
lauks,lauks,...
Tipi var būt sekojoši:
- String
- Strings (simbolu virkne) (defaultā vērtība)
- Date
- Datums (skati tālāk formātu)
- Boolean
- Booleans (Yes/No, True/False, 0/ne 0)
- Int
- Vesels skaitlis (-3, 1, 0)
- Float
- Decimāldaļskaitlis (3.141, 2.77, 0)
Datumam var sekot tā formāta apraksts. Tas notiek tā - lauka_nosaukums:Date DMY, kur D - datums, M - mēnesis, Y - gads. D, M un Y var būt jebkurā tev labpatīkošajā izvietojumā. Datums tiek saprasts kā trīs skaitļi, kuri ir atdalīti ar vienalga kādu neciparisku simbolu, līdz ar ko - atdalītājs nav svarīgs.
Tips Boolean tiek saprasts šādi:
True = {Yes, True, 1, -1, jebkurš_skaitlis_kurš_nav_nulle}
False = {No, False, 0 (nulle)}
Decimālatdalītājs tiek nodefinēts caur parametru Language.
Sekojošais elementārais piemērs (neaizmirsti, ka UseHeader jābūt uz True):
Ēdiens,Cena:Float,Nopirkts:Date Apmaksāts:Boolean,Skaits:Int
Maize,0.18,10/10/1998,Yes,666
Zelta Alus,0.32,10-10-1998,Yes,12345
|
METODE | APRAKSTS |
Reset |
Pārsortē vai pārfiltrē datus, pamatojoties uz jaunajiem settingiem, kurus tu, protams, esi salicis. Tas neapdeito failu, savācot to no servera, bet gan iehavo to no TDC objekta, kuramajā tas jau glabājās. Kad Reset metode tiek izsaukta, browseris, ja nepieciešams, pārzīmēs lapu. |
Un tagad, beidzot, pastīsimies, kā tas viss strādā. Pirmām kārtām mums nepieciešams fails. Fails, kuru tad nu TDC sapratīs kā datasourci. Failam jābūt TXT (ne paplašinājumam, bet semantiski). Pieņemsim, ka mums ir šāds (dziesmas.txt):
grupa,dziesma,garums
Nine Inch Nails,Ruiner,6:52
Agony Koris,Maziņā neziņā,3:43
Alanis Morissette,Joining You,4:24
Blondie,Maria,4:06
burzum,Det Som En Gang Var,11:15
Depeche Mode,But Not Tonight,4:17
Dzeltenie Pastnieki,Milžu Cīņa,4:57
Emilia,Big Big World,3:21
Gorky Park,Stare,4:56
Hole,Celebrity Skin,2:42
Korn,A.D.I.D.A.S.,2:32
Laibach,Message From The Black Star,5:50
Ministry,Psalm 69 (live),5:06
Ministry,Psalm 69,4:53
Nada Surf,Popular
Silverchair,Anthem For The Year 2000,4:00
Rammstein,Das Modell,4:45
Un tu to gripi visu parādīt jūzerim iekš tabuliņas nevis plaintekstā. Pirmām kārtām tev jāieembeddo viens objekts, kurš tā arī subjīgi saucās - TDC. Tas darās šādi:
<object id=dziesmas classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name="DataURL" value="dziesmas.txt">
<param name="UseHeader" value="True">
</object>
Značit, parametros mēs nodefinējām, ka mums dati atrodās failā dziesmas.txt, un tam ir headeris, kurš mūsu gadījumā apraksta lauku nosaukumus. Visi lauku tipi ir string (jo tas tā ir by default, ja nav norādīts tips).
Nu lūk, tagad mēs taisām tabulu, kas attēlos to visu marazmu:
<table datasrc=#dziesmas>
<thead>
<tr>
<td>Grupa</td>
<td>Dziesma</td>
<td>Garums</td>
</thead>
<tbody bgcolor=silver>
<td><span datafld="grupa"></span></td>
<td><span datafld="dziesma"></span></td>
<td><span datafld="garums"></span></td>
</tr>
</tbody>
</table>
Te nu mēs pasakām browserim, ka gribām tabulu, kurā būtu iekšā lauki grupa, dziesma un garums no faila dziesmas.txt. Vari aplūkot kā tas izskatās dabā (exploreris 4+ nepieciešams).
Vēlies mājas uzdevumuiņu? Iebraukt filtrēšanā un sortēšanā? Ņem piemēru un uz priekšu :) Tas arī viss šai reizei, mans mazais draudziņ. Ar labu nakti.
|