Tuesday, March 22, 2016

Regional setting dan SQL Script


Saya pernah mengalami masalah dengan regional setting  ketika membuat aplikasi dengan .NET dan ternyata masalah ini juga terjadi dengan programmer lain dan aplikasi lain yang kami beli dari software house.
Masalahnya yaitu jika komputer user regional settingnya indonesia maka format penulisan tanggal menjadi dd/mm/yy dan penulisan desimal menggunakan koma (,).  Ketika diaplikasi terdapat script SQL yang memasukkan data tanggal atau nilai desimal maka akan terjadi error.
Hal ini yang pernah saya alami dan solusi termudah adalah dengan merubah regional setting dikomputer user ke english (United state). Dan hal ini yang selama ini saya lakukan.
Belum lama ketika saya membuat aplikasi hal ini terjadi kembali dan tidak mungkin meminta user merubah regional settingnya ke English (united state).
Setelah melakuka percobaan berkali-kali akhirnya saya mendapatkan solusinya. Yaitu dengan melakukan pengecekan regional setting yang berlaku dan merubahnya ke regional setting English (united state) dengan cara sebagai berikut:
Langkah pertama:
Tuliskan script ini di form  onload
If Microsoft.VisualBasic.Left(Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString, 1) <> "m" Then
            My.Application.ChangeCulture("en-US")
            Me.Regsetting.Text = "Ind"
Else
            My.Application.ChangeCulture("en-US")
End If
Skrip itu melakukan cek apakah datetimeformat-nya tidak diawali oleh huruf “m”  jika iya maka rubah regional settingnya ke English (United State) dengan skrip            My.Application.ChangeCulture("en-US")
Dan memberi tanda bahwa regional  setting sebelumnya adalah Indonesia dengan menuliskan “Ind” ke textbox “Regstting”
Langkah kedua yaitu:
Menuliskan skrip ini di form onclose
If Me.Regsetting.Text = "Ind" Then
            My.Application.ChangeCulture("id-ID")
End If
Skrip ini mengembalikan regional setting komputer ke “Indonesia”

Selain cara ini mungkin masih ada cara lain. Silahkan dishare bagi yang memiliki cara-cara lainnya.


Thursday, February 25, 2016

Custome-papersize pada crystal report dengan VB.NET

Ketika saya sedang membuat sebuah system aplikasi untuk seorang client. Pada system ini terdapat print out yang menggunakan kertas custom. Ukuran kertasnya width=21.49 cm, height:14cm dan saya beri nama kertas ini “wo”.

Report yang digunakan adalah crystal report dan ketika ditest dikomputer saya semua ok, hasil print out sesuai dengan keinginan. Tetapi ketika aplikasi dipasang dikomputer client, hasil print out selalu menggunakan kertas default yaitu ukuran “letter”. Hal ini bisa berubah ke ukuran kertas “wo” jika saya compile ulang aplikasinya dikomputer yang terhubung dengan printer client.

Setelah melakukan study literatur selama kurang lebih satu minggu akhirnya ditemukan solusi yang sangat bagus.

Ternyata Crystal report  menyimpan informasi format kertas yang digunakan oleh report dengan cara yang tidak portable. Dia menyimpan ID dari format kertas tersebut bukan namanya. Jadi jika dilihat dari kasus saya maka crystal report menyimpan ID dari format “wo”, bukan namanya. Masalahnya ID ini di windows tergantung dari komputernya, jadi format kertas “wo” akan memiliki ID yang berbeda dikomputer yang berbeda.

Solusinya cukup sederhana:
11. Cari pada sistem printer yang ingin Anda gunakan. Dalam kasus ini, saya menggunakan default printer.
22.  Cari ID format yang dimaksud berdasarkan nama format. Dalam hal ini saya mencari ID untuk format “wo”
33.  Setelah mendapatkan ID, tentukan PaperSize property dari report. Diarahkan ke ID format tadi.

Berikut contoh script yang dapat saya gunakan.

Mencari printer default:
       Dim objSettings As New PrinterSettings
        Dim strPrinter As String
        Try
            For Each strPrinter In PrinterSettings.InstalledPrinters
                objSettings.PrinterName = strPrinter
                If objSettings.IsDefaultPrinter Then
                    Me.T_printer.Text = strPrinter
                End If
            Next
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

Mencari ID kertas dengan nama  “wo”
       Dim doctoprint As New System.Drawing.Printing.PrintDocument()
        doctoprint.PrinterSettings.PrinterName = Me.T_printer.Text
        For i = 0 To doctoprint.PrinterSettings.PaperSizes.Count - 1
            Dim rawKind As Integer
            If doctoprint.PrinterSettings.PaperSizes(i).PaperName = "WO" Then
                rawKind = CInt(doctoprint.PrinterSettings.PaperSizes(i).GetType().GetField("kind", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic).GetValue(doctoprint.PrinterSettings.PaperSizes(i)))
                Me.T_rawkind.Text = rawKind
                Exit For
            End If
        Next

Menentukan ukuran kertas yang akan digunakan oleh report (crystal report)
mReport = New ReportDocument()

mReport.PrintOptions.PaperSize = T_rawkind.Text

Tuesday, February 16, 2016

Textbox yang read only (vb.net serial)

Beberapa waktu lalu saya membuat aplikasi dengan menggunakan vb.net dan ketika aplikasi di test oleh user. User menginginkan agar warna angka pada textbox yang readonly diberi warna merah.
Dan saya sampaikan ok… tidak masalah.

Kemudian saya merubah properti textbox tersebut, yaitu merubah forecolor menjadi warna merah. Dan ketika ditest ternyata forecolor tidak berubah ketika textbox sedang dalam kondisi readonly.  Saya menambahkan script merubah forecolor ketika textbox diset readonly. Tetapi hasilnya warna angka tidak berubah.

Akhirnya saya searching dan menemukan kenyataan bahwa banyak programmer menghadapi masalah yang sama. Penjelasannya kenapa hal ini terjadi adalah secara default, jika kita tidak menentukan BackColor, dan mengatur kontrol untuk readonly, itu menggunakan "Enabled == false" untuk menggambar ulang kontrol. Secara pribadi, saya pikir ini adalah bug.

Jadi solusi untuk masalah ini adalah kita harus tentukan backcolor secara script kemudian tentukan forecolor secara script. Hal ini akan menyebabkan properti kontrol yang di-readonly-kan akan di gambar ulang.

Contoh scripnya:
Me.TextBox8.ForeColor = Color.Red
Me.TextBox8.BackColor = Color.White



Selamat Mencoba

Friday, February 12, 2016

Sorting Data On The Client

Katakanlah Anda menggunakan Dot Net untuk berinteraksi dengan database SQL Anda. Anda ingin mendapatkan data yang sudah diurutkan dari database Anda. Tapi, Anda ingin beban pekerjaannya terjadi tingkat menengah Anda, dengan maksud untuk mengurangi beban pada server database Anda. apa pilihan yang tersedia untuk Anda pada saat ini?

Ada banyak cara yang berbeda untuk berbicara dengan SQL Server di Dot Net. Mereka semua didasarkan pada protokol komunikasi Dot Net seperti ODBC, atau ADO.Net menggunakan System.Data.SqlClient. Terlepas dari protokol komunikasi, data dikembalikan ke kode Anda dalam bentuk System.DataTable, atau, jika lebih dari satu tabel, itu dikembalikan dalam System.DataSet (Catatan: Anda dapat memiliki dataset dengan hanya satu tabel) .

Kelas DataTable sudah memiliki cara melakukan filter dan sort (pengurutan). Lihat metode DataTable.Select (). Hal ini memungkinkan Anda untuk memberikan dua string sebagai parameter dalam memilih metode. Parameter pertama adalah filter, dan yang kedua adalah sort. Filter teks terlihat sangat banyak seperti klausa WHERE untuk sintaks SQL, Dalam metode ini tanpa kata WHERE. Dalam cara yang sama, seperti ORDER BY klausa untuk SQL dan tanpa kunci frase ORDER BY dalam kelas DataTable .

Sorting dengan cara ini mengembalikan array System.Data.DataRow, disaring, dan diurutkan sesuai dengan kebutuhan Anda. Tergantung pada ukuran set Anda, ini dapat bekerja untuk Anda.

Lebih menarik lagi, dan lebih modern, metode lain adalah dengan menggunakan Linq dalam bentuk Linq To SQL atau Entity Framework. Kerangka entitas ini lebih disukai karena bekerja dengan Kelas Dot Net. Semua ini untuk mengumpulkan data dari database dan dibangun ke Entity Framework. Kita hanya mendapatkan satu set. Kemudian, dengan set tersebut, kita bisa mengurutkan menggunakan Linq .OrderBy atau .OrderByDescending metode. Apa yang baik tentang menggunakan Linq adalah bahwa hal itu akan melakukan sort  melalui SQL Server jika itu adalah tempat yang lebih baik.

Jika kita menggunakan Transfer Data Objects (DTO) yang terdiri dari kelas sederhana yang hanya berisi properti, yang dapat dengan mudah diubah menjadi objek JSON untuk transportasi dalam layanan RESTful, kita bisa menggabungkan kode untuk menghasilkan DTO dan mengurutkan data ke dalam satu pernyataan LINQ.

Kedua pilihan ini mengambil beban dari database server Anda dan memindahkannya ke tingkat lain. Hal ini menguntungkan di lingkungan-lingkungan di mana aplikasi Anda mungkin perlu dikembangkan segera, atau untuk masa depan. Database Anda tidak dapat dikembangkan dengan mudah. Tapi, konsumen Anda lebih siap untuk dilakukan perubahan. Jadi, kita menempatkan beban di sana. Menggunakan alat bantu seperti Linq, itu adalah jauh lebih mudah untuk menyortir pada klien, terutama menggunakan kriteria berbeda.

Disadur dari http://www.sswug.org/bentaylor/editorials/sorting-data-on-the-client/ February 3, 2016 12:00 am, penulis Ben Taylor

Tuesday, October 20, 2015

Rumah Kita Daycare


Adalah tempat penitipan anak plus bimbingan/pembelajaran bagi bayi dan balita yang tepat untuk dijadikan mitra terbaik bagi orang tua dalam meletakkan  pendidikan awal bagi putra putrinya.
Bertujuan untuk membantu orangtua pekerja dalam rangka memberikan pelayanan pengasuhan dan pendidikan bagi bayi dan balita serta mengembangkan kemampuan fisik motorik, kognitif, bahasa, sosial, emosional, disiplin, kemandirian, seni, moral dan nilai nilai agama.
Rumah Kita Daycare


Arthi Komputer














Arthi Komputer adalah penyedia layanan IT meliputi:

A. Konsultasi IT
B. Implementasi/pemasangan software (program)
C. Pembuatan aplikasi (program)
D. Pelatihan:
       1. Paket office (MS-Excel dan MS-Word)
       2. Pemprograman (VB.NET, ASP, PHP dan Android)
       3. Administrasi database
       4. Administrasi server

Monday, October 12, 2015

eDoc-HaKI

Ketika mendengar HaKI (Hak atas Kekayaan Intelektual) yang terlintas pada benak kebanyakan orang adalah harga yang lebih mahal yang harus dikeluarkan untuk memiliki atau menikmati sesuatu.
Dan hal ini tidak salah, memang salah satu konsekuensi penerapan aturan HaKI adalah harga jual yang menjadi lebih mahal.
 HaKI (Hak atas Kekayaan Intelektual) sudah lama diberlakukan di Indonesia tetapi masih banyak masyarakat yang tidak memahami bahkan tidak tahu apa itu HaKI.

Melalui eDoc-HaKI ini penulis mencoba menceritakan hal-hal terkait dengan HaKI, mulai dari konsep perlindungan HaKI, Sejarah perkembangan HaKI di dunia dan di Indonesia serta definisi 8 rezim HaKI yang ada di indonesia.

Semoga setelah membaca eDoc-HaKI ini pembaca mengetahui dan memahami hal-hal yang sederhana terkait dengan HaKI.
 Silahkan hubungi 0856-9515-2891 untuk mendapatkan eDoc-HaKI.


 Salam,
Penulis