Yupp...pertama saya ucapkan thanks sama Pak Norman info tentang data cuaca dari BMG dan yang kedua saya ucapkan thanks juga buat meidianto karena posting ini hasil reusable-post dari postingan Anda yang berjudul "Tabulasi KPU menggunakan Windows Mobile 6 Professional (Part 2)".
Disini kita mencoba menampilkan data cuaca publikasi dari BMG berupa XML ke dalam data grid pada aplikasi windows mobile.
Langkahnya :
1. Download source project dari postingan Bung Meidianto tentang "Tabulasi KPU menggunakan Windows Mobile 6 Professional (Part 2)".
2. Tambahkan class baru dibawah ini
class CuacaKota
{
string _kota;
string _cuaca;
int _suhuMin;
int _suhuMax;
int _lembabMin;
int _lembabMax;
public string Kota
{
set { _kota=value; }
get { return _kota; }
}
public string Cuaca
{
set { _cuaca = value; }
get { return _cuaca; }
}
public int SuhuMin
{
set { _suhuMin = value; }
get { return _suhuMin; }
}
public int SuhuMax
{
set { _suhuMax = value; }
get { return _suhuMax; }
}
public int LembabMin
{
set { _lembabMin = value; }
get { return _lembabMin; }
}
public int LembabMax
{
set { _lembabMax = value; }
get { return _lembabMax; }
}
}
3. Kemudian buka class data manager ubah dengan code dibawah ini
public class DataManager
{
private string dataPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\DataTabulasi.xml";
public string DataPengambilan;
public DataTable GetDataTabulasi()
{
// Get Data from stored XML
DataTable dt = new DataTable();
dt.Columns.Add("Kota");
dt.Columns.Add("Cuaca");
dt.Columns.Add("Suhu Min");
dt.Columns.Add("Suhu Max");
dt.Columns.Add("Kelembapan Min");
dt.Columns.Add("Kelembapan Max");
List<CuacaKota> cuacaList = KonversiXML(dataPath);
foreach (CuacaKota cl in cuacaList)
{
String[] str = { cl.Kota, cl.Cuaca, cl.SuhuMin.ToString(), cl.SuhuMax.ToString(), cl.LembabMin.ToString(), cl.LembabMax.ToString() };
dt.Rows.Add (str);
}
return dt;
}
private List<CuacaKota> KonversiXML(String Filename)
{
// Read a document
String ElementName = null;
XmlTextReader textReader = null;
textReader = new XmlTextReader(Filename);
// Read until end of file
CuacaKota cls = null;
String StartStr="", EndStr="";
List<CuacaKota> clsLists =new List<CuacaKota>();
if (textReader != null)
{
while (textReader.Read())
{
XmlNodeType nType = textReader.NodeType;
if (nType == XmlNodeType.Element)
{
ElementName = textReader.Name.ToString();
}
// if node type is an element
if (nType == XmlNodeType.Text && ElementName == "Mulai")
{
StartStr = textReader.Value.ToString();
}
if (nType == XmlNodeType.Text && ElementName == "Sampai")
{
EndStr = textReader.Value.ToString();
}
if (nType == XmlNodeType.Element && ElementName == "Row")
{
cls = new CuacaKota();
}
if (nType == XmlNodeType.Text)
{
switch (ElementName)
{
case "Kota":
cls.Kota = textReader.Value.ToString();
break;
case "Cuaca":
cls.Cuaca = textReader.Value.ToString();
break;
case "SuhuMin":
cls.SuhuMin = Convert.ToInt32(textReader.Value);
break;
case "SuhuMax":
cls.SuhuMax = Convert.ToInt32(textReader.Value.ToString());
break;
case "KelembapanMin":
cls.LembabMin = Convert.ToInt32(textReader.Value.ToString());
break;
case "KelembapanMax":
cls.LembabMax = Convert.ToInt32(textReader.Value.ToString());
break;
}
}
if (nType == XmlNodeType.EndElement && textReader.Name.ToString() == "Row")
{
clsLists.Add(cls);
}
}
DataPengambilan = "Berlaku " + StartStr + " - " + EndStr;
}
textReader.Close();
return clsLists;
}
4. Hapus tombol Update dan kode pada event onclick-nya.
5. Ubah property dock pada Data Grid menjadi Top
6. Tambahkan 1 label di bawah data grid.
7. Buka code pada form dan cari method DoBind() dan tambahkan baris kode ini.
this.label1.Text = dm.DataPengambilan;
8. Jangan lupa mengambil data xml dari situs BMG dan merenamenya menjadi datatabulasi.xml simpan dalam 1 direktori binarynya.
9. Selamat mencoba...:D
Oke, sekarang method updatenya belum dibuat..jadi PR aja deh,,,
Hehe, enaknya bikin web servicenya aja dulu...monggo yang mau bantu...
Halo semua,
Oke disini kita coba bikin multi-column sort dengan generic dan non-generic collection.
Nah classnya bisa diunduh dari attachment. contoh penggunaannya bisa dilihat dibawah ini, dengan aplikasi console.
static void Main(string[] args)
{
System.Console.WriteLine("-- Generic Collection --");
System.Console.WriteLine("-- Random Data --");
List<Dodolipet> dodol = new List<Dodolipet>();
Random rnd = new Random(Environment.TickCount);
for (int i = 0; i < 10; i++)
{
Dodolipet a = new Dodolipet();
a.A = rnd.Next(100);
a.B = Convert.ToChar(rnd.Next(5)+(char)'A').ToString ();
dodol.Add(a);
}
foreach (Dodolipet dl in dodol)
{
System.Console.WriteLine(dl.A.ToString () + " - " + dl.B);
}
dodol.Sort (new GenericMultiSorter<Dodolipet>("B = Asc;A = Asc"));
System.Console.WriteLine("-- Sorting Result --");
foreach (Dodolipet dl in dodol)
{
System.Console.WriteLine(dl.A.ToString() + " - " + dl.B);
}
System.Console.WriteLine(" ");
System.Console.WriteLine("-- Non Generic Collection --");
System.Console.WriteLine("-- Random Data --");
System.Collections.ArrayList dodolarr = new System.Collections.ArrayList();
for (int i = 0; i < 10; i++)
{
Dodolipet a = new Dodolipet();
a.A = rnd.Next(100);
a.B = Convert.ToChar(rnd.Next(5) + (char)'A').ToString();
dodolarr.Add(a);
}
foreach (Dodolipet dl in dodolarr)
{
System.Console.WriteLine(dl.A.ToString() + " - " + dl.B);
} /*Disini adalah method sortnya, dua opsi yang bisa digunakan yaitu Asc dan Desc */
dodolarr.Sort(new NonGenericMultiSorter("B = Asc;A = Asc"));
System.Console.WriteLine("-- Sorting Result --");
foreach (Dodolipet dl in dodolarr)
{
System.Console.WriteLine(dl.A.ToString() + " - " + dl.B);
}
System.Console.ReadLine();
}
}
class Dodolipet
{
int a;
public int A
{
set { a = value; }
get { return a; }
}
string b;
public string B
{
set { b = value; }
get { return b; }
}
}
nah hasilnya gimana ? ni dia
