출처: http://forums.asp.net/t/1442445.aspx/1

크리스탈 리포트를 사용할때 여러개의 테이블을 사용할 경우가 많다.

구글 검색해도 잘 못찾다가 자세히 읽어보니.. 답이 나온다..

영어 대충 읽으면 안될듯..ㅠㅠ


이것이 핵심..ㅠㅠ


report.Database.Tables[0].SetDataSource(ds.Tables[0]);

report.Database.Tables[1].SetDataSource(ds.Tables[1]);



using CrystalDecisions.CrystalReports.Engine;


ReportDocument report = new ReportDocument();

DataSet ds = new DataSet();

ds = FillMyDataset();         //// fill your dataset.


report.Load(Server.MapPath("your_reportFilename_goes_here.rpt"));

report.SetDataSource(ds.Tables[0]);   /// commonly used for single tabled reports...

///  for multiple tables


report.Database.Tables[0].SetDataSource(ds.Tables[0]);

report.Database.Tables[1].SetDataSource(ds.Tables[1]);

report.Database.Tables[2].SetDataSource(ds.Tables[2]);

...

report.Database.Tables[n].SetDataSource(ds.Tables[n]);



<div style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;" id="_mcePaste">report.Subreports[0].SetDataSource(ds.Tables[1]);</div> <div style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;" id="_mcePaste">      //report.Subreports[1].SetDataSource(ds.Tables[2]);</div>

///   In case if you're using sub - reports, try this

report.Subreports[0].SetDataSource(ds.Tables[1]);

report.Subreports[1].SetDataSource(ds.Tables[2]);


Dont forget to mark as answer if this helps you.

Posted by 노을지기

출처: http://www.crystalreportsbook.com/Forum/forum_posts.asp?TID=11249

char(8)으로 된 문자열 날짜를 크리스탈 리포트에서 날짜 포멧으로 변경하기 위해서는 date 타입으로 변경해야 한다.

구글에 검색하니 다음과 같았다.


date(mid(totext({CTCITE.cit_viol_date},0,''),5,2)+'/'+ right(totext({CTCITE.cit_viol_date},0,''),2) + '/' + left(totext({CTCITE.cit_viol_date},0,''),4))


Posted by 노을지기

출처: http://blog.hassantt.com/2007/07/crystal-reports-tip-newline-in-text.html


You can use Chr(10) to add a newline to a text field in Crytal Reports. It's seems obvious but I couldn't find anything in the help file and my initial thought was to use \n.

크리스탈 리포트를 사용하다가 텍스트를 합칠 경우가 있다.

그런데 라인 변경을 하려고하는데, 어떤 것인지 몰라서 검색 중에 찾게 되었다.


CHR(10)


Posted by 노을지기

출처: http://scn.sap.com/thread/1832712

크리스탈 리포트에서 서브리포트를 사용할 경우

서브 리포트에 하이퍼링크가 설정되어 있다.

이것을 제거하기 위해서 CrystalReportViewer에서 EnableDrillDown을 false로 변경하면 된다.

역시 구글..

CrystalReportViewer1

EnableDrillDown = False 


Posted by 노을지기

ASP.NET에서 gridview 데이터를 excel 파일로 출력하는 소스이다.



protected void btnExportToExcel_Click(object sender, EventArgs e)
{
    exportToExcel(gvData);
}

private void exportToExcel(GridView gv)
{
    Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("content-disposition""attachment;filename=MyFiles.xls");
Response.Charset = ""; this.EnableViewState = false; StringWriter writer = new StringWriter(); HtmlTextWriter textWriter = new HtmlTextWriter(writer); gv.RenderControl(textWriter); Response.Write(writer.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { //You have to override this method (even with an empty method) //in order for GridView to be nested inside the Form control. //Otherwise you will receive the following error //Control 'gvData' of type 'GridView' must be placed inside a form tag with runat=server. }


마지막 반드시 VerifyRenderingInServerForm을 넣어주어야 한다.

없을 경우 에러 메시지ㅣ..


출처: http://www.geekcamp.us/articles/exporting_gridview_to_excel.aspx

참고: http://blogs.msdn.com/b/erikaehrli/archive/2009/01/30/how-to-export-data-to-excel-from-an-asp-net-application-avoid-the-file-format-differ-prompt.aspx


Posted by 노을지기