[RSS] Tutorial Yahoo Pipe


Description
     may be some of you never heard about Yahoo Pipe. what is Yahoo Pipe ? yahoo pipe is a web application from yahoo that provide Graphical Interface for building data mashups that aggregate web feedsweb pages, and other services, creating Web-based apps from various sources, and publishing those apps. very usefull if you're blogger that need process some RSS (in xml format) because it's very powerfull but it have some minus like slow process. now i want to share how to use yahoo pipe like me use this app in this blog for example to create list of article that i have and order it ascending. 


HowTo
1. Yahoo Account, if you don't have please create one
2. go to http://pipes.yahoo.com and log in
3. click button "create pipes", look the picture below :

Image and video hosting by TinyPic
4. it will open workspace, left pane is menu and on the right is canvas, now look on the menu in the left pane, you will see this.

Image and video hosting by TinyPic

for simple explanation : SOURCE - PROCESS - OUTPUT

* First thing's is SOURCE of feeds , you can find in the "Sources" menu, now drag an object "Fetch Feed" into canvas.

Image and video hosting by TinyPic

now fill the textbox for URL path (RSS). for example
http://mynotework.blogspot.com/atom.xml?redirect=false&start-index=1&max-results=999999.

* Now process data result, you have the source but it doesn't process yet, in this tutorial i will make the data will be ascending (SORT). SORT object located in "operators" section.

Image and video hosting by TinyPic

Sort Field will be populate after you connect SORT Object with SOURCE Object.

*Linking All Object
  now linking all object from SOURCE - SORT - OUTPUT, look this picture below :

Image and video hosting by TinyPic

5. to finish just click save , after that find publish link click that and follow the step from yahoo how to use on your blog or website. good luck :)

[TIPS] How to make a better SEO ??

     

       SEO means a process to make your website visible in web page search with high rank or minimal visible in page one with a certain keyword. the benefit higher rank , the people will more visit to your page. the more visit of visitor, the owner can monetize their web using some advertising like adsense , adfly or watever. but to make web page result always in high rank is difficult because new article always born :). but some people lazy make their content always copy paste from another site, of course it make the original author became lazy too. but don't worry google has algorithm to find which copy paste content or original content, so the original content always on top. here's the tips if you want stay on the top search in google :

1. Content is the king,
   More content then more visitor. if you have 1 article = 1 visitor / day then make 1000 article for 1000 visitor / day hahah.

2. Original Content is The King Too.
   You have 1000 article but all of them is copy paste. google has algorithm to find which article original or copy paste. so don't much hope if your web / article stay in top page.

3. Long Keyword
    Keyword is the main dish, it's what people search for, but short keyword has a big problem. the competition with many website that using that keyword (in the world not regional), my advice use three or more keyword (long keyword) but still include with your title name.

4. Content Quality
     Not always content fill the text only but include some picture (you can upload to another host and call it). when the people know the quality content is good, it will make them back again to your site or it's bookmark to their main dish (voila you're lucky) or maybe some google's agent find your webite and check it the quality of your content, if good and important maybe you can go to page one  (i don't know it's exist or not ahaha). but some people abuse the content quality using illegal content like crack or illegal movie or watever, of course some people like it , i hope you not like something illegal !! hahaha

5. Meta Tag and structure of your site.
    it's not too important now (the first google born it's important, now google has many algorithm we don't know) but it's help crawler to crawling your site.


[Crystal Report] Limit Record on detail section

Description
     Sometime we need limit record on detail section and bring them to another new page. how ?

HowTo
    1. look at the picture below, here's the example :


    2. Right click on the Detail and chose section expert



    3. Check "New Page After" and click button code. look at the picture below



4. fill with this source code, for example i want to limit 5 record, so record 6++ will be on other page
    if Remainder (RecordNumber, 5) = 0
    then true
    else false

[VB.NET] Create Report Using Crystal Report


Description
     this section , i will explain how to create report from Crystal Repot

HowTo
1. Install Crystal Report
2. To include in toolbox, right click on toolbox and select "choose item", click tab "Com Component" and choose Crystal Report Viewer 9 (9 is the version crystal report that i use). it will appear a new icon in toolbox.
3. Make 2 form . the first form is for the input and the second form is for report.
4. Drag crystal viewer object (from toolbox) into form 2.
5. Create rpt file, open crystal report application, FILE>NEW and save it with name myreport.rpt into debug and release folder (the extention is .rpt)
5. Now, passing value from form1(input) to form2(report) there is 2 method, passing using variable or using recordset.

Passing using variable // you can use method form_load() for this example

Dim crtAplication As CRAXDRT.Application
Dim crtReport As CRAXDRT.Report
Dim arrParam(3) As String // this param will be passing to report.

crtAplication = New CRAXDRT.Application
crtReport = New CRAXDRT.Report

crtReport = crtAplication.OpenReport(My.Application.Info.DirectoryPath & "\Report\myreport.rpt")
arrParam(0) = "value 1"
arrParam(1) = "value 2"
arrParam(2) = "value 3"

With crtReport
         .EnableParameterPrompting = False
         .DiscardSavedData()

         For i = 0 To 2 'total parameter = 3 (index started from 0)
                 If arrParam(i) <> "" Then
                        .ParameterFields(i + 1).AddCurrentValue(CStr(arrParam(i)))
                 End If
         Next
 End With

With form2.crystalViewer //crystalViewer is the name of Object in toolbox
                .ReportSource = crtReport
                .DisplayGroupTree = False
                .ViewReport()
End With
frmPrintPreview.crystalViewer.Zoom(100)
me.hide
form2.show

open again your file report (.rpt), on "Field Explore" (Bottom Left) Right Click on Parameter Field and make new 3 paramater, of course the first parameter will be get index = 0. drag the parameter field into design. and then save it. 
now running your form and it will automatic populate the value into the form2. the format will follow the report (.rpt).


Passing using Recordset // you can use method form_load() for this example

Dim crtAplication As CRAXDRT.Application
Dim crtReport As CRAXDRT.Report
 Dim strsql As String
Dim RSORASERVER As ADODB.Recordset

crtAplication = New CRAXDRT.Application
crtReport = New CRAXDRT.Report

RSORASERVER = New ADODB.Recordset
RSORASERVER.CursorLocation = adUseClient
strsql = "select * From xxx"

If RSORASERVER.State <> adStateClosed Then RSORASERVER.Close()
        Try
            RSORASERVER.Open(strsql, ConnectORAServer, adOpenKeyset, adLockOptimistic)
        Catch
            Exit Function
End Try
// to create connection using adodb in VB.NET you can find on google or this blog :).

If RSORASERVER.RecordCount > 0 Then
crtReport = crtAplication.OpenReport(My.Application.Info.DirectoryPath & "\Report\myreport.rpt")
            
            'Buffer(crtReport) get data source from Record Set 
            If RSORASERVER.State = 1 Then
                crtReport.Database.Tables.Item(1).SetPrivateData(3, RSORASERVER)
                crtReport.ReadRecords()
            End If

           With frmPrintPreview.crystalViewer
                .ReportSource = crtReport
                .DisplayGroupTree = False
                .ViewReport()
            End With
            frmPrintPreview.crystalViewer.Zoom(100)
else 
msgbox ("Data Return 0")
end if

now setting file report open file myreport.rpt, because we using database then open menu DATABASE>DATABASE EXPERT , and select New Connection. select the type connection do you want, and fill the data. if connection success you fill find the table on the right side, just click ok to finish.

on "Field Explore" (Bottom Left) you will find database field, if connection success it wil llisting many field in database you just connect. drag that field into design. and then save it. 
now running your form and it will automatic populate the value from database  into the form2. the format will follow the report (.rpt). 

that's all how to create report using crystal report in VB.NET.

this simple code :
Imports System.Threading
Imports ADODB.CursorOptionEnum
Imports ADODB.CursorLocationEnum
Imports ADODB.CommandTypeEnum
Imports ADODB.CursorTypeEnum
Imports ADODB.DataTypeEnum
Imports ADODB.RecordStatusEnum
Imports ADODB.RecordTypeEnum
Imports ADODB.LockTypeEnum
Imports ADODB.ObjectStateEnum

Dim crtAplication As New CRAXDRT.Application      
Dim crtReport As New CRAXDRT.Report      
Dim ConnectORAServer As ADODB.Connection      
Dim RSORASERVER As ADODB.Recordset      
Dim strsql As String
     
ConnectORAServer = New ADODB.Connection      
ConnectORAServer.Open("FILE NAME=" & My.Application.Info.DirectoryPath & "\Gen21Server.udl")      
RSORASERVER = New ADODB.Recordset      
RSORASERVER.CursorLocation = adUseClient      
strsql = "Select * from it_v_QC B where b.PROGRAMNAME LIKE '%" & txtSearchValue.Text & "%'"
     
'Dim ds As New DataSet      
'ds.Tables.Add(datagridQC.DataSource)
     
RSORASERVER.Open(strsql, ConnectORAServer, adOpenKeyset, adLockOptimistic)      
crtReport = crtAplication.OpenReport(My.Application.Info.DirectoryPath & "\Report\beritaAcaraQC.rpt")      
crtReport.EnableParameterPrompting = False      
crtReport.DiscardSavedData()
     
crtReport.Database.Tables(1).SetDataSource(datagridQC.DataSource)      
crtReport.Database.Tables.Item(1).SetPrivateData(3, RSORASERVER)      
crtReport.ReadRecords()
     
frmPrintPreview.crystalViewer.ReportSource = crtReport      
frmPrintPreview.crystalViewer.DisplayGroupTree = False      
frmPrintPreview.crystalViewer.ViewReport()      
frmPrintPreview.crystalViewer.Zoom(100)      
frmPrintPreview.Show()

[Crystal Report] Membuat Fungsi Terbilang

Deskripsi 
     Fungsi terbilang bisa dibilang sangatlah penting bagi pelaporan terutama dalam hal finance seperti giro / cek maupun invoice. berikut adalah tutorial membuat fungsi terbilang menggunakan custom function crystal report bukan dengan tambahan seperti library external (.DLL) maupun passing parameter ke crystal report, tetapi bener" fungsi yg include di dalam crystal report, butuh effort juga untuk membuat fungsi ini di crystal report, karena klo menggunakan bahasa pemrograman lain tentu sangat mudah karena bisa menggunakan recursive tapi untuk bahasa basic sepertinya tidak bisa dan harus dilakukan secara terpisah belum lagi debug bilangannya yg bikin mata saya seakan" menjadi juling @_@.

How To
1. Buka Crystal Report , buka menu Report > Formula Workshop
2. Klik 2 kali "Custom Report Function"
3. Klik Icon "New" (gambarnya Kertas Putih), akan muncul kotak dan berikan nama "terbilang"
4. layar code akan aktif , untuk kali ini saya akan menggunakan bahasa pemrograman "basic", karena crystal report defaultnya menggunakan "crystal syntax" maka kita harus merubah menjadi "Basic Syntax" caranya coba dilihat di bagian kanan atas bagian inner menu bar, itu tinggal di scroll jadikan ke "Basic Syntax"

Image and video hosting by TinyPic

5. Klik kembali Icon "New" (gambarnya Kertas Putih), dan buat fungsi seperti di gambar dibawah ini , jangan lupa semua code di set ke "Basic Syntax"

Image and video hosting by TinyPic

6. Fungsi custom sudah kita buat sekarang tinggal memanggil, gmn caranya ? tinggal buat yg namanya formula atau lebih enaknya kita sebut custom field, caranya coba lihat kembali menu di sebelah kiri (yg tadi jangan di close dulu) pilih folder "Formula Field" klik 2 kali kemudian pilih Icon "New" (gambarnya Kertas Putih), akan muncul kotak dan berikan nama "TerbilangToString", kemudian ketikan :

"## " & terbilang (1000000) & " Rupiah ##"

tutup formula workshop, kembali ke layar laporan, DRAG formula fieldnya ke Design, coba di running.

maka ketika di run akan menghasilkan "## satu juta rupiah ##".

anda dapat mengganti nominal 1 juta tadi dengan field yg anda passing dari database.
contohnya : terbilang ({table.field_database})

berikut adalah contoh punya saya

terbilang pada invoice

*KNOWN BUG :
Bagi yang sudah download harap ubah line ini pada fungsi terbilang()  :

elseif banyakString < 7 then 'untuk ratusan ribu 100.000 - 999.999
            'terbilang = bilanganRatusanRibu(Amount) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan(Amount mod 100) --bug 17 April 2015
 harap diubah menjadi
            terbilang = bilanganRatusanRibu(Amount) & bilanganPuluhanRibu(Amount mod 100000) & bilanganRatusan(Amount mod 1000) & bilanganPuluhan(Amount mod 100)

Download Custom Function Terbilang Crystal Report
Instruction :
1. Download the file by click the button below
2. after download, you see a list of .txt file, that's the function, copy paste into your crystal report
3. call the function : terbilang(your value)
4. if you find the bugs please report to me for fix, thank you.
Jika masih bingung , mungkin anda bisa melihat video yang sudah saya buat