Exemplo n.º 1
0
        // 콜백 함수 내에서 사용되어야 함
        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);
        }
Exemplo n.º 2
0
        /// <summary>
        /// [9]설명 Tran 데이터, 실시간 데이터, 체결잔고 데이터를 반환한다.
        ///입력값<비고>
        ///반환값 요청 데이터
        ///비고
        ///○1 Tran 데이터
        ///sJongmokCode : Tran명
        ///sRealType : 사용안함
        ///sFieldName : 레코드명
        ///nIndex : 반복인덱스
        ///sInnerFieldName: 아이템명
        ///○1 실시간 데이터
        ///sJongmokCode : Key Code
        ///sRealType : Real Type
        ///sFieldName : Item Index
        ///nIndex : 사용안함
        ///sInnerFieldName:사용안함
        ///○1 체결 데이터
        ///sJongmokCode : 체결구분
        ///sRealType : “-1”
        ///sFieldName : 사용안함
        ///nIndex : ItemIndex
        ///sInnerFieldName:사용안함
        ///Ex)
        ///TR정보 요청 - openApi.CommGetData(“OPT00001”, “”, “주식기본정보”, 0, “현재가”);
        ///실시간정보 요청 - openApi.CommGetData(“000660”, “A”, 0);
        ///체결정보 요청 - openApi.CommGetData(“000660”, “-1”, 1);
        /// </summary>
        public String CommGetData(String sJongmokCode, String sRealType, String sFieldName, int nIndex, String sInnerFieldName)
        {
            String ret = axKHOpenAPI.CommGetData(sJongmokCode, sRealType, sFieldName, nIndex, sInnerFieldName);

            FileLog.PrintF("CommGetData(" + sJongmokCode + "," + sRealType + "," + sFieldName + "," + nIndex + "," + sInnerFieldName + "):" + ret);
            return(ret);
        }