C# tasarladığımız formdaki verileri Crystal Reports a aktarıp oluşturduğumuz raporumuzda gözükmesini istiyorsak, Crystal Reports un Parameter Fields özelliğinden faydalanabiliriz. Adım adım bu özelliği nasıl kullanacağımızı inceleyelim. Örnek olarak üzerinde bir tane TextBox ve bir tane Button bulunan bir formumuz olsun. Ayrıca projemize Crystal Report ekli olsun. İlk olarak raporumuza Parameter Fields eklememiz gerekecek. Bunun için aşağıda resimdeki gibi eklediğimiz rapor ekranında solda bulunan Field Explorer penceresinde ParameterFields seçeneğinin üzerine sağ tıklayıp açılan menüde New seçeneğini seçiyoruz. Aşağıda resimdeki ekran ile karşılaşacağız.

Burada Name kısmına ParameterField ımızın adını yazıyoruz. Value type kısmında ParameterField ımızın tipini seçiyoruz. Diğer seçeneklerde değişiklik yapmıyoruz ve OK butonuna tıklıyoruz. Sol kısımda ParameterFields kısmının altında ParameterField ımızın oluştuğunu göreceksiniz. Ad isminde ParameterField ımıza tıklayıp sürükleyerek raporumuzun üzerine istediğimiz yere yerleştiriyoruz. Şimdi sıra geldi formdan verileri bu oluşturduğumuz nesneye aktarmaya. İlk olarak raporumuzun görüntülenebilmesi için formumuza bir tane crystalReportViewer nesnesi ekliyoruz. Aşağıdaki kod örneği ile işlemimizi gerçekleştiriyoruz.

//ReportDocument sınıfına erişebilmek için aşağıdaki using kısmını
//projemize ekliyoruz.
using CrystalDecisions.CrystalReports.Engine;
private void button1_Click(object sender, EventArgs e)
{
    //Raporumuza erişebilmek için aşağıdaki gibi rapor adında oluşturuğumuz rapor sınıfından
    //bir nesne oluşturuyoruz. Benim oluşturduğum rapor sınıfının adı CrystalReport1 olduğu için
    //aşağıdaki gibi oluşturdum.
    CrystalReport1 rapor = new CrystalReport1();
    //Raporumuzun üzerindeki nesnelere erişebilmek ve işlem yapabilmek için
    //aşağıdaki gibi raporDoc adında ReportDocuemnt sınıfından bir nesne oluşturuyoruz 
    //ve oluşturduğumuz rapor nesnesi ile ilişkilendiriyoruz.
    ReportDocument raporDoc = rapor;
    //Aşağıdaki gibi raporumundaki ParameterFields lere erişebiliyoruz.
    //ParameterFields[] kısmında köşeli paranter arasında raporumuzdaki ParameterField ın adını
    //yazıyoruz. Sonra CurrentValues özelliğindeki AddValue fonksiyonunu kullanarak raporumuza
    //TextBox ımızdaki veriyi aktarıyoruz.
    raporDoc.ParameterFields["Ad"].CurrentValues.AddValue(textBox1.Text);
    //Son olarak formumuza yerleştirdiğimiz crystalReportViewer ın kaynağını rapor olarak belirterek
    //raporumuzun ekranda görünmesini sağlıyoruz.
    crystalReportViewer1.ReportSource = rapor;
}

Bu şekilde formumuzdaki verileri raporumuza aktarabiliyoruz.

Bunun işlem için raporumuzda ParameterField yerine TextObject de kullanabilirdik. Fakat TextObject nesnesinin MultiLine(CanGrow) özelliğini kullanmak istediğimizde formumuzdan raporumuzdaki TextObject nesnesine birden fazla satır gönderirken TextObject nesnesi bunu desteklememektedir. Gönderdiğimiz satırları alt alta değil yan yana yazmaktadır. Bu sorununun çözümü için ParameterField kullanabiliriz. ParameterField ımıza birden fazla satır gönderdiğimizde böyle bir sorunla karşılaşılmamaktadır.