public void ExecuteLayoutExpression(EbReportField field) { EbPdfGlobals globals = new EbPdfGlobals { CurrentField = new PdfGReportField(field.LeftPt, field.WidthPt, field.TopPt, field.HeightPt, field.BackColor, field.ForeColor, field.IsHidden, null) }; string[] _dataFieldsUsed = GetDataFieldsUsed(field.LayoutExpression.GetCode()); object value = ExecuteExpression(field.LayoutExpression.GetCode(), 0, globals, _dataFieldsUsed, false); field.SetValuesFromGlobals(globals.CurrentField); }
public void ExecuteHideExpression(EbReportField field) { EbPdfGlobals globals = new EbPdfGlobals(); string[] _dataFieldsUsed = GetDataFieldsUsed(field.HideExpression.GetCode()); object value = ExecuteExpression(field.HideExpression.GetCode(), 0, globals, _dataFieldsUsed, false); if (value != null) { field.IsHidden = (bool)value; } }
public void DrawReportFooter() { RowHeight = 0; MultiRowTop = 0; detailprintingtop = 0; dt_Yposition = ph_Yposition + PageHeaderHeight; //pf_Yposition = dt_Yposition + DT_FillHeight; pf_Yposition = (float)detailEnd /*+ DetailHeight*/ + dt_Yposition; if (RenderReportFooterInBottom) { rf_Yposition = HeightPt - ReportFooterHeight; } else { rf_Yposition = pf_Yposition + PageFooterHeight; } foreach (EbReportFooter r_footer in ReportFooters) { float footer_diffrence = 0; EbReportField[] SortedReportFields = this.ReportFieldsSortedPerRFooter[r_footer]; if (SortedReportFields.Length > 0) { for (int iSortPos = 0; iSortPos < SortedReportFields.Length; iSortPos++) { EbReportField field = SortedReportFields[iSortPos]; // if (HeightPt - rf_Yposition + Margin.Top < field.TopPt) if (HeightPt < field.TopPt + rf_Yposition + field.HeightPt + Margin.Bottom) { AddNewPage(); //footer_diffrence = HeightPt - rf_Yposition - Margin.Bottom; footer_diffrence = field.TopPt; FooterDrawn = true; rf_Yposition = Margin.Top; } field.TopPt -= footer_diffrence; DrawFields(field, rf_Yposition, 0); } } rf_Yposition += r_footer.HeightPt; } }
public void DrawFields(EbReportField field, float section_Yposition, int serialnumber) { if (!field.IsHidden) { List <Param> RowParams = null; if (field is EbDataField) { EbDataField field_org = field as EbDataField; if (GroupSummaryFields.ContainsKey(field.Name) || PageSummaryFields.ContainsKey(field.Name) || ReportSummaryFields.ContainsKey(field.Name)) { CallSummerize(field_org, serialnumber); } if (AppearanceScriptCollection.ContainsKey(field.Name)) { RunAppearanceExpression(field_org, serialnumber); } //if (!string.IsNullOrEmpty(field_org.LinkRefId)) // RowParams = CreateRowParamForLink(field_org, serialnumber); } field.DrawMe(section_Yposition, this, RowParams, serialnumber); } }
public void DoLoopInDetail(int serialnumber) { ph_Yposition = (PageNumber == 1) ? ReportHeaderHeight + this.Margin.Top : this.Margin.Top; dt_Yposition = ph_Yposition + PageHeaderHeight; foreach (EbReportDetail detail in Detail) { string column_val; RowHeight = 0; MultiRowTop = 0; EbDataField[] SortedList = FieldsNotSummaryPerDetail[detail]; EbPdfGlobals globals = new EbPdfGlobals(); for (int iSortPos = 0; iSortPos < SortedList.Length; iSortPos++) { EbDataField field = SortedList[iSortPos]; if (field is EbCalcField) { //globals.CurrentField = field; column_val = (field as EbCalcField).GetCalcFieldValue(globals, DataSet, serialnumber, this); EbDbTypes dbtype = (EbDbTypes)((field as EbCalcField).CalcFieldIntType); if (CalcValInRow.ContainsKey(field.Title)) { CalcValInRow[field.Title] = new PdfNTV { Name = field.Title, Type = (PdfEbDbTypes)(int)dbtype, Value = column_val } } ; else { CalcValInRow.Add(field.Title, new PdfNTV { Name = field.Title, Type = (PdfEbDbTypes)(int)dbtype, Value = column_val }); } AddParamsNCalcsInGlobal(globals); } else { column_val = GetDataFieldValue(field.ColumnName, serialnumber, field.TableIndex); } if (field.RenderInMultiLine) { field.DoRenderInMultiLine(column_val, this); } } EbReportField[] SortedReportFields = this.ReportFieldsSortedPerDetail[detail]; if (SortedReportFields.Length > 0) { for (int iSortPos = 0; iSortPos < SortedReportFields.Length; iSortPos++) { EbReportField field = SortedReportFields[iSortPos]; if (field is EbDataField) { field.HeightPt += RowHeight; } DrawFields(field, dt_Yposition, serialnumber); } detailprintingtop += detail.HeightPt + RowHeight; detailEnd = detailprintingtop; } else { detailEnd = detailprintingtop; IsLastpage = true; Writer.PageEvent.OnEndPage(Writer, Doc); return; } } }