// 콜백 함수 내에서 사용되어야 함 internal static IList <T> GetMultiData <T>(this AxKHOpenAPI api) where T : EntityBase { var tAttri = typeof(T).GetCustomAttribute <TransactionAttribute>(true); var properties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty); var cnt = api.GetRepeatCnt(tAttri.TRCode, tAttri.Name); var datacnt = api.GetDataCount(tAttri.Name); var list = new List <T>(); for (int i = 0; i < cnt; i++) { Console.WriteLine("### Loop = " + i); var entity = Activator.CreateInstance <T>(); foreach (var property in properties) { var cAttri = property.GetCustomAttribute <OutputAttribute>(true); if (cAttri == null) { continue; } var result = api.CommGetData(tAttri.TRCode, "", tAttri.Name, i, cAttri.Name).Trim(); property.SetValue(entity, result); Console.WriteLine("{0},{1},{2},{3} : {4}", i, tAttri.TRCode, tAttri.Name, cAttri.Name, result); } list.Add(entity); } return(list); }
/// <summary> ///[22]설명 레코드의 반복개수를 반환한다. ///입력값 strRecordName – 레코드명 ///반환값 레코드 반복개수 ///비고 Ex) openApi.GetDataCount(“주식기본정보”); /// </summary> public int GetDataCount(String strRecordName) { int ret = axKHOpenAPI.GetDataCount(strRecordName); FileLog.PrintF("GetDataCount(" + strRecordName + "):" + ret); return(ret); }
internal static int GetCount <T>(this AxKHOpenAPI api) where T : EntityBase { var tAttri = typeof(T).GetCustomAttribute <TransactionAttribute>(true); Console.WriteLine("[tAttri.TRCode]" + tAttri.TRCode); Console.WriteLine("[tAttri.Name]" + tAttri.Name); var cnt = api.GetRepeatCnt(tAttri.TRCode, tAttri.Name); Console.WriteLine("[cnt]" + cnt); var datacnt = api.GetDataCount(tAttri.Name); return(datacnt); }