Passing values from datagrid to CrystalReport


hello again;

i stuck on new issue have been trying work few days now. (i can test few hours day)

i originally asked how pass values data grid text box on different form , guys helped me working. (thanks!) since found out, printing "form" not practical , overall pretty messy. after more reading found out crystal report. read on it, got installed , set .rpt invoice way wanted it. issue same before, how pass values of selected row of datagrid invoice. feel close in every step take, can't seem work. 

so sum up.

i have datagrid using data binding source called"clientinfobindingsource4"

my crystal report using sql database @ "billy-pc\sqlexpress.sampledb.dbo"

ps

  private void button2_click(object sender, eventargs e)         {             if (clientinfobindingsource4.current != null)             {                      datarow dr = ((datarowview)this.clientinfobindingsource4.current).row;                                                                   form4 f4 = new form4();                       f4.setvalues(dr);                       f4.show();


  public void setvalues(datarow dr)         {                           state_txt.text = (dr["state"]).tostring();             name.text = (dr["client name"]).tostring();             addy.text = (dr["address"]).tostring();             city_txt.text = (dr["city"]).tostring();             zip.text = (dr["zip code"]).tostring();             phone_txt.text = (dr["phone number"]).tostring();   }

is how figured out selected row form3, text boxes of form4. if can somehow pull data form4 instead of using sql fine too.




you've presumably built report against table.

probably best backing solution first.

you can either.

----

copy datarow datatable, set name of match datasource.

pass datatable report.

reportdocument rpt = new  crystalreport1(); dt.tablename = "datatable1";   rpt.setdatasource(dt); crystalreportviewer1.reportsource = rpt; crystalreportviewer1.refresh();

----

or

translate datarow custom class.

change report use it's datasource.

define class.

right click report.

database > set datasource location.

in replace box

expand .net objects , find custom class made.

you can pass 1 ( or more ) in list.

for example, person object:

            reportdocument rpt = new  crystalreport1();             person person = new person             {                 jobtitle="director",                 gender="m",                 hiredate = new datetime(2015,1,1)             };             list<person> oneperson = new list<person>();             oneperson.add(person);              rpt.setdatasource(oneperson);             crystalreportviewer1.reportsource = rpt;             crystalreportviewer1.refresh();
got bored defining properties if you're wondering why there's no name etc.


hope helps.

technet articles: wpf: layout lab; technet articles



Visual Studio Languages  ,  .NET Framework  >  Visual C#



Comments

Popular posts from this blog

Azure DocumentDB Owner resource does not exist

job syspolicy_purge_history job fail in sqlserver 2008

Trying to register with public marketplace error with 'Get-AzureStackStampInformation'