Another side of my life...

Blogging ? why not...
See also: Other Geeks@INDC

April 2009 - Posts

Display BMG data in windows mobile

 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...

Share this post: | | | |
Posted: Apr 17 2009, 06:57 PM by Mifmasterz | with 1 comment(s)
Filed under:
SubPoint, Generate Sharepoint Lists to Classes

First of all,

Konsep ini bermula dari ide, gimana ya kalau list-list di sharepoint dapat di generate menjadi class-class dan dapat digunakan seperti active record ? Akhirnya coba-coba bikin tools sederhana.

Kemudian apa yang akan dilakukan tools ini ..?

Secara sederhana dia akan membaca list-list yang ada di sharepoint dan men-generatenya menjadi class-class.

Gimana cara pakainya ..?

1. Buka konsole (cmd.exe)

2. Ketik SubPoint [Site Url] [NameSpace] [Target Folder]

Contoh : Subpoint "http://bluemoon:30000" "Subpoint" "c:\generated"

3. Silakan ambil class-class yang sudah digenerate di folder yang dituju.

Apa saja yang bisa dilakukan dengan class hasil generate ?

//Team disini adalah nama contoh class yang digenerate oleh tools
            Team tm1 = new Team();
            tm1.Full_Name = "Asep Sumarsep";
            tm1.Description = "Cakep teunan";
            tm1.Position = "Kiper";
            Boolean hsl = tm1.Save();
            System.Console.WriteLine(hsl.ToString ());
 
             //Untuk narik semua record dari sharepoint list
            Team[] teams = Team.FetchAll();
            foreach (Team it in teams)
            {
                System.Console.WriteLine(it.Full_Name + "-" +         it.Description + "-" + it.Position );
            }
 
            //Untuk narik record dengan CAML Query dari sharepoint list
            String CAMLStr = "<Where><Contains><FieldRef Name=\"Description\"   /><Value Type=\"Text\">Creating</Value></Contains></Where>";
            Team[] tm = Team.FetchByQuery(CAMLStr);
            foreach (Team it in teams)
            {
                System.Console.WriteLine(it.Full_Name + "-" +         it.Description + "-" + it.Position );
            }
 
            //Menghapus item pertama di sharepoint list
            Team dl = tm[0];
            Boolean hsl = dl.Delete();
            System.Console.WriteLine("Delete : "+hsl.ToString());
 
            //Menghapus item di sharepoint list dengan Query CAML
            String CAMLStr = "<Where><Contains><FieldRef Name=\"Description\"   /><Value Type=\"Text\">Creating</Value></Contains></Where>";
            Boolean hsl = dl.DeleteByQuery(CAMLStr);
            System.Console.WriteLine("Delete : "+hsl.ToString());
 
             //Mengupdate nilai kolom baris terbawah di sharepoint list
            Team dl = tm[tm.GetUpperBound(0)];
            dl.Full_Name = "Adiel";
            Boolean hsl = dl.Update();
            System.Console.WriteLine("Update : " + hsl.ToString());

Semoga bermanfaat..

Mohon maav jika masih ada segunung "Bug",

Terbuka saran dan kritik untuk pengembangan selanjutnya..

Share this post: | | | |
Posted: Apr 06 2009, 07:58 PM by Mifmasterz | with 5 comment(s)
Filed under:
Multi-Column Sort Using Generic 'n Non Generic Collection

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

Share this post: | | | |
Posted: Apr 06 2009, 06:57 PM by Mifmasterz | with no comments
Filed under: