public override OutputData DoAction(IInputData input) { PageStyle style = input.Style.Style; if (input.IsPost) { BasePostObject obj = input.PostObject.Convert<BasePostObject>(); using (ReportDataResolver resolver = new ReportDataResolver(this)) { UpdateKind kind = style == PageStyle.Insert ? UpdateKind.Insert : UpdateKind.Update; DataRow row = resolver.UpdateRow(obj, kind); return OutputData.CreateToolkitObject(new KeyData("Company", row["Company"].ToString())); } } else { ReportObjectData obj = null; switch (style) { case PageStyle.Insert: obj = new ReportObjectData(input.QueryString["Company"], input.QueryString["ReportName"]); break; case PageStyle.Update: using (ReportDataResolver resolver = new ReportDataResolver(this)) { obj = resolver.ReadRow(input); } break; } input.CallerInfo.AddInfo(obj.CallerInfo); return OutputData.CreateObject(obj); } }
public ReportObjectData ReadRow(IInputData input) { DataRow row = Query(input.QueryString); string type = row["ReportName"].ToString(); Object obj = null; switch (type) { case "BalanceSheet": obj = new BalanceSheet(); break; case "CashFlowStatement": obj = new CashFlowStatement(); break; //case "ProfitAppropriation": // obj = new IncomeStatement(); // break; case "IncomeStatement": obj = new IncomeStatement(); break; } ReportObjectData result = new ReportObjectData(row, obj); return result; }