Steps to be followed for the creation of New DevExpress Report ----------------------------------------------------------------------------- 1) Create new Devex Report 2) Import the DevexTemplateLayout from Reports\DevexTemplatelayout\TemplateDevLayout.repx (for Kannada TemplateDevLayoutK.repx ) 3) Design the report as you want and save [Report will be saved in same name as you have given while creating report] 4) set the margins and Paper size as per user requirement 5) Set the fomat of each control Font : Times New Roman Size : 12 Color : Black Number format : suppress if zero (IT WILL DISPLAY BLANK WHEN THE VALUE IS 0 click control property paste this format -> {0:#.00;;""}) 6) GroupTotal should be place at group header in the report not in group footer 7) PageNo place at the top of the report (except for document like bill ,receipt etc) add this to reporting standard 8) Large reports are create in Landscap format Location Parameter names (added in Template) Company Info ------------ CMPMAILNAME CMPADD1 CMPADD2 CMPADD3 CMPPOST CMPMAILNAMEK CMPADD1K CMPADD2K CMPADD3K CMPPOSTK CMPNAME CMPNAMEK CMPMOBILENO CMPEMAIL CMPDOORNO CMPPHONENO CMPPHONECODE CMPTINNO CMPFAXNO CMPCSTNO CMPSHORTNAME CMPKSTNO CMPOTHNO CMPPHONE AMTINWORDS AMTINWORDSK RPTPLACENAME RPTPLACENAMEK RPTTALUKNAME RPTDISTNAME RPTTALUKNAMEK RPTDISTNAMEK JURITITLE JURITITLEK RPTTITLE RPTTITLEK RPTSUBTITLE RPTSUBTITLEK Report Footers -------------- RPTFOOT1 RPTFOOT2 RPTFOOT3 RPTFOOT4 RPTFOOT5 RPTFOOT6 RPTFOOT1K RPTFOOT2K RPTFOOT3K RPTFOOT4K RPTFOOT5K RPTFOOT6K Financial footer in Kan n Eng ----------------------------- RPTFINFOOT1 RPTFINFOOT2 RPTFINFOOT3 RPTFINFOOT4 RPTFINFOOT5 RPTFINFOOTK1 RPTFINFOOTK2 RPTFINFOOTK3 RPTFINFOOTK4 RPTFINFOOTK5 object name start with small letter and after use camelCap format object name : fullclassname use crystalwin\ReportViewer\crystalreportviewer for display report First Set the DataSource and then Set the Parameter Value Otherwise It Ask Parameter Value get the Report name From Billset eg:- repNameDs = billSet.getById(cmbVcSubType.Value.ToString()); Repname = repNameDs.Tables[0].Rows[0]["repname"].ToString(); E.g Notice print Code -------------------------- private void showDevexpressreport(bool isPreview) { User user = new User(); string strRepName; this.setReportName(); if (Application.StartupPath.ToLower().EndsWith("\\bin\\debug") || Application.StartupPath.ToLower().EndsWith("\\bin\\release")) { strRepName = Application.StartupPath + "\\..\\..\\..\\{ReportFolder}\\" + this.strLnNoticeRepName; } else { strRepName = Application.StartupPath + "\\{ReportFolder}\\" + this.strLnNoticeRepName; } if (strLayoutType == 1) { strRepName = strRepName.Replace("{ReportFolder}", "LocalReport"); } else { strRepName = strRepName.Replace("{ReportFolder}", "Reports"); } ReportViewer.BL.RepXHelper.setLocalReportPath(Application.StartupPath, "Loan"); ReportViewer.ReportViewerDev reportViewerDev = new ReportViewer.ReportViewerDev(); reportViewerDev.layoutSaveEvent += new ReportViewer.eventClass.LayoutSaveEvent(updateLocalDevLayout); ReportViewer.ReportViewerDev.phID = Settings.companyInfo.ActivePHID; ReportViewer.ReportViewerDev.isAllowModify = user.hasAdminRole(Settings.userInfo.userId); ReportViewer.ReportViewerDev.layOutPath = strRepName; XtraReport loanNoticeBase = new XtraReport(); if (Convert.ToString(this.cmbTranNo.Value) != string.Empty) { Voucher voucher = new Voucher(); string strNoticeActID = voucher.getNoticeActIdByBillMastId(this.cmbTranNo.Value.ToString()); loanNoticeBase = this.getLoanReportBase(strNoticeActID); } else { MessageBox.Show("Please select Transaction no !"); this.cmbTranNo.Focus(); return; } if (strLayoutType == 1 || strLayoutType == 2) { if (System.IO.File.Exists(strRepName)) { loanNoticeBase.LoadLayout(strRepName); } else { MessageBox.Show("Report file/layout not found ! \n\rPlease set the report layout/file...", "SmartBank"); } } Loc loc = new Loc(); DataSet dsLoc = loc.getByID(strLocID); if (dsLoc.Tables[0].Rows.Count > 0) { string auctTM = this.currencyTIME.Value.ToString()+ " " +this.cmbAMPM.Text; DataRow myRowLoc = dsLoc.Tables[0].Rows[0]; reportViewerDev.setCommonParameters(myRowLoc, loanNoticeBase); reportViewerDev.setParameter(loanNoticeBase, false); if (this.dtPARAM1.Value != null) { reportViewerDev.setParameter(loanNoticeBase, "REPAYDT", dtPARAM1.DateTime.ToShortDateString()); } if (this.dtPARAM2.Value != null) { reportViewerDev.setParameter(loanNoticeBase, "AUCTDT", dtPARAM2.DateTime.ToShortDateString()); } if (this.dtPARAM3.Value != null) { reportViewerDev.setParameter(loanNoticeBase, "ELECTDT", dtPARAM3.DateTime.ToShortDateString()); } reportViewerDev.setParameter(loanNoticeBase, "AUCTTM", auctTM); reportViewerDev.setParameter(loanNoticeBase, "RPTCURDATE", dtIssueDate.DateTime.ToShortDateString()); reportViewerDev.setParameter(loanNoticeBase, "ISSUEDT", dtIssueDate.DateTime.ToShortDateString()); reportViewerDev.setParameter(loanNoticeBase, "GRACEDAYS", this.currencyDAYS.Value.ToString()); } DataSet printingDs = (DataSet)this.gridNoticePrint.DataSource; if (this.checkBoxWITHSURITY.Checked == true) { this.fillSurityDetails(printingDs); } string strFilterString = this.getRepFilterString(); if (!string.IsNullOrEmpty(strFilterString)) { printingDs.Tables[0].DefaultView.RowFilter = strFilterString; } string strRepOrder = this.getNoticeOrder(); printingDs.Tables[0].DefaultView.Sort = strRepOrder; loanNoticeBase.DataSource = printingDs.Tables[0].DefaultView; if (isPreview == false) { loanNoticeBase.PrintDialog(); } else { //loanNoticeBase.ShowPreviewDialog(); reportViewerDev.showReport(loanNoticeBase, true); } } //Once report is modified layout will be updated in notice mast private void updateLocalDevLayout(string strLayoutName) { NoticeMast noticeMast = new NoticeMast(); ReportViewer.ReportViewerDev.layOutPath = strLayoutName; noticeMast.updateLocalDevLayout(strNoticeMastId, strLayoutName); }