public override void DoOnFetch(long rownum, CXLRDataRow row) { var vCols = this.RootGroup.ColDefs; var vDetals = new Object[vCols.Count]; for(var i=0; i<vCols.Count; i++){ Object vCurDT = null; var v_leaveGroupData = this.Owner.Owner.Cfg.leaveGroupData; if (!v_leaveGroupData && vCols[i].IsGroupField) vCurDT = null; else{ if(vCols[i].IsSysField){ if(vCols[i].FieldName.Equals("RNUM")) vCurDT = new Decimal(rownum); }else vCurDT = this.RootGroup.GetData(i, row); } vDetals[i] = vCurDT; } this._detailRows.Add(vDetals); this.DoOnRowsInsert(1); }
public virtual void DoOnFetch(long rownum, CXLRDataRow row) { if(this.FGroupKeyField != null){ if(this.FGroupKeyValue == null){ // первый вход в процедуру объекта this.FGroupKeyValue = row[this.FGroupKeyField] ?? "<пусто>"; } this.doFetch(rownum, row); }else this.GroupDetails(true).DoOnFetch(rownum, row); }
public void doFetch(long rownum, CXLRDataRow row) { Object vCurGroupKey = row[this.FGroupKeyField] ?? "<пусто>"; //if (vCurGroupKey != null) { if (!vCurGroupKey.Equals(this.FGroupKeyValue)) { this.ParentGroup.ChildGroups(true).AddGroup(); this.ParentGroup.LastChildGroup(true).DoOnFetch(rownum, row); } else { CXLRColDef vCol = this.RootGroup.ColDefs.GetByColIndex(this.LeftCol + 1); String[] vChldGrps = vCol.GroupFieldNames; if (vChldGrps.Length > 0) this.LastChildGroup(true).DoOnFetch(rownum, row); else this.GroupDetails(true).DoOnFetch(rownum, row); } //} else // throw new Exception(String.Format("Поле группировки {0} не может быть пустым!", this.FGroupKeyField)); }
CXLRDataRow convertDataRow(DataRow row) { CXLRDataRow rslt = new CXLRDataRow(); foreach (DataColumn col in row.Table.Columns) rslt.Add(col.ColumnName, row[col.ColumnName]); return rslt; }
public override void DoOnFetch(long rownum, CXLRDataRow row) { CXLRColDef vCol = this.ColDefs.GetByColIndex(this.LeftCol+1); String[] vGrps = vCol.GroupFieldNames; if(vGrps.Length == 0) this.GroupDetails(true).DoOnFetch(rownum, row); else this.LastChildGroup(true).DoOnFetch(rownum, row); }
public Object GetData(int indx, CXLRDataRow row) { String vFieldName = this.ColDefs[indx].FieldName; if((vFieldName != null) && (vFieldName.Equals("XLR_FORMULA"))) return this.ColDefs[indx].Formula; else return row[vFieldName]; }