! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

list up 된 FlexGrid의 각 항목 별 값 가져 오기 > Q&A | 토론

본문 바로가기

ComponentOne

Q&A | 토론

WinForms윈폼 list up 된 FlexGrid의 각 항목 별 값 가져 오기

페이지 정보

작성자 궁금이 작성일 2021-11-16 09:04 조회 1,928회 댓글 0건
제품 버전 : ComponentOne WinForms
컨트롤 이름 : FlexGird

본문

안녕하세요. 초보 개발자예요.

엑셀 파일을 불러와 FlexGrid에 list up 해 주고 list up 된 값을 for~next 문을 이용하여 참조값과 비교 후 참일 때 DB에 저장하는 프로그램을 구현하려고 합니다.

예제 프로그램을 활용해서 엑셀 값을 불러와 FlexGrid에 뿌려주는 것은 구현 했습니다.

그런데 클릭 했을 경우 값을 넘기는 경우는 해 봤지만, 어떤 방법으로 해야할지 모르겠어요.

제가 알고 있는 범주는

value=FXGrd1(row, col).ToString or value=FXGrd1.GetData(row,col).ToString

에러가 납니다.

혹시 어떤 방법이 있을까요? 아무리 찾아봐도 없어서요.

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

3 답변

WinForms윈폼 Re: list up 된 FlexGrid의 각 항목 별 값 가져 오기

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK폴 작성일 2021-11-16 13:00 댓글 2건

본문

안녕하세요 그레이프시티입니다. 


먼저 저희 제품의 사용을 시작해 주셔서 감사드립니다.

그러시다면 알고 싶으신 기능은 정확히 어떤 동작을 하는 기능이 필요하신가요?

플렉스그리드를 클릭했을때 해당 열의 특정 값을 반환하는 동작이 필요하신가요?


추가 문의가 있으시면 언제든 알려 주시기 바랍니다.


감사합니다.

그레이프시티 드림  

댓글목록

궁금이님의 댓글

궁금이 작성일

1. [업로드] 버튼을 통해 엑셀을 FlexGrid(이하 FXGrd1)로 읽어온다.
    1) 샘플은 Row 300개, Col 30개
2. [DB저장] 버튼을 누르면 FX값이 DB에 insert 된다.
    아래 샘플

       Dim i As Integer
        If Cmb_upload_name.SelectedItem = "-업로드선택-" Then
            MsgBox("업로드 할 파일 종류를 정확히 선택하셔야 합니다.")
        ElseIf Cmb_upload_name.SelectedItem = "RCMS" Then
            For i = 2 To temp_row_count
                field_chk("t_rcms", "where 사용일자='" & FXGrd1(FXGrd1.Row, 4).ToString() & "' and 등록일시='" & FXGrd1(FXGrd1.Row, 5).ToString() & "' and 이체일시='" & FXGrd1(FXGrd1.Row, 6).ToString() & "' and 예금주명='" & FXGrd1(FXGrd1.Row, 13).ToString() & "'")
                cal_acc_no(FXGrd1(FXGrd1.Row, 5).ToString())
                If temp_field_chk = 0 Then
                    cal_acc_no(FXGrd1(FXGrd1.Row, 12).ToString())
                    encode_bs_no(CDbl(FXGrd1(FXGrd1.Row, 15).ToString()))
                    code_create_temp("t_rcms", "RCM")
                    temp_rcm_code = new_code_temp
                    rcms_insert(temp_rcm_code, FXGrd1(FXGrd1.Row, 1).ToString(), FXGrd1(FXGrd1.Row, 2).ToString(), FXGrd1(FXGrd1.Row, 3).ToString(), FXGrd1(FXGrd1.Row, 4).ToString(), FXGrd1(FXGrd1.Row, 5).ToString(), FXGrd1(FXGrd1.Row, 6).ToString(), FXGrd1(FXGrd1.Row, 7).ToString(), FXGrd1(FXGrd1.Row, 8).ToString(), FXGrd1(FXGrd1.Row, 9).ToString(), FXGrd1(FXGrd1.Row, 10).ToString(), FXGrd1(FXGrd1.Row, 11).ToString(), en_acc_no, FXGrd1(FXGrd1.Row, 13).ToString(), FXGrd1(FXGrd1.Row, 14).ToString(), en_bs_no, FXGrd1(FXGrd1.Row, 16).ToString(), FXGrd1(FXGrd1.Row, 17).ToString(), CDbl(FXGrd1(FXGrd1.Row, 18).ToString()), CDbl(FXGrd1(FXGrd1.Row, 19).ToString()), CDbl(FXGrd1(FXGrd1.Row, 20).ToString()), CDbl(FXGrd1(FXGrd1.Row, 21).ToString()), CDbl(FXGrd1(FXGrd1.Row, 22).ToString()), FXGrd1(FXGrd1.Row, 23).ToString(), temp_acc_info1, temp_acc_info2, temp_acc_info3, FXGrd1(FXGrd1.Row, 24).ToString(), FXGrd1(FXGrd1.Row, 25).ToString(), FXGrd1(FXGrd1.Row, 26).ToString(), FXGrd1(FXGrd1.Row, 27).ToString(), FXGrd1(FXGrd1.Row, 28).ToString(), temp_t_chk)
                    obj_code_insert(temp_rcm_code, "t_rcms")
                End If
            Next
        End If

하늘을날자님의 댓글

하늘을날자 작성일

제 경험상 명확하게 분석되지 않은 업무에 코드 작성하면 100% 다시 만들게 되더군요. 
사실 이 부분이 제일 어렵습니다. (전 코딩이 제일 쉽고 업무 분석과 이해가 제일 어려워요)
업무 실무자가 개발자에게 전달할 수 있는 부분이 한계가 있기 때문입니다.
그래서 개발자가 그 업무를 완벽하게 이해해야 합니다. 
어설프게 이해하면 재 작업의 연속이었습니다.

저는 중간에 업무분석 컨설턴트가 없이 다이렉트로 실무자와 소통했었습니다.
코드 작성은 어떻게든 해결됩니다. 
매뉴얼과 책을 보거나 컴포넌트 엔지니어 도움을 받든 제 3자의 조언을 받아도 되고요. 
내가 하고자 하는 작업을 명확하게 이해하고 어떻게 처리하겠다는 계획이 먼저 세워져야 합니다.
이게 제대로 되지 않으면 100전 100패입니다.(=잘못된 루틴으로 인해 무조건 엎고 새로 코딩해야 한다는 뜻입니다. 업그레이드식의 재작업과는 다른 의미입니다)

코딩하기 전에 무조건 주석으로 어떤 모듈이다라는 것을 다는 게 좋습니다. 업데이트 이력도 달아야 합니다.
유지보수 하다 보면 정말이지 필요합니다. 

제 철학은 이렇습니다. 
[일단 돌아가게 만든다. 좀 코드가 조잡하고 엉성하게 보이지만 일단 전체가 돌아가게 만들어 보자.
(다만 정확하게 이해하고 계획을 세우자.)
전부 새로 만들지언정 완전한 루틴이 되어야 한다. ]
이렇게 되면 새로 엎어도 금방 만듭니다. 

시간이 지나서 다시 쳐다보면 '이게 뭐야? 왜 이렇게 만들었어?'하고 다시 고치게 되는 경우가 많더군요.
자기가 생각하고 자기가 설계하면 새로운 그림을 그리는 것도 쉽습니다.


다른 사람의 의도를 이해한다는 것, 소통한다는 것, 대화한다는 것
제일 중요하다고 생각하지만 완전하게 이해하는 건 쉽지 않습니다.


제 생각을 말씀드렸습니다.

WinForms윈폼 Re: list up 된 FlexGrid의 각 항목 별 값 가져 오기

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 하늘을날자 작성일 2021-11-16 14:12 댓글 0건

본문

안녕하세요?


질문의 내용이 잘 이해가 되지는 않지만...

제가 이해한 대로 적어 보겠습니다. 


위 샘플처럼 엑셀에서 가져온 row 300개가 있는데 어떤 값과 비교해서 참인 것만 선별해서 DB에 INSERT하겠다는 것으로 이해하면 되나요? (참조 테이블은 DB의 테이블이라 가정하겠습니다.)


다양한 방법들이 있겠지만...
하나의 방법으로  현재의 리스트 앞에 체크 박스 컬럼을 하나 추가 하고 DB의 참조 테이블과 비교해서   TRUE이면 체크해서 조건문을 걸어 체크된 row만 INSERT 하면 될 것 같습니다. 


다시 한번 말씀드리면 리스트업 한 데이터를 1차 필터링하는 과정을 거쳐 INSERT한다는 실행 계획입니다. 

일련의 과정을 끊어서 하거나 연속해서 처리 해 볼 수 있겠지요. 

시각화가 필요한 부분이라 판단되면 필터링하는 과정도  입력과정에서 보여주어도 괜찮을 듯 합니다.


아마도 중복 입력을 막기 위한 조치일 것으로 추측해 봅니다.


TRUE, FALSE 조건은 질문자님께서 알고 계실테니 그에 맞게 끔 처리하시면 됩니다.

댓글목록

등록된 댓글이 없습니다.

WinForms윈폼 Re: list up 된 FlexGrid의 각 항목 별 값 가져 오기

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK폴 작성일 2021-11-18 04:45 댓글 0건

본문

안녕하세요 그레이프시티입니다. 


네 코드 공유 감사드립니다.

그런데 코드로만 봐서는 어떤 문제가 있으신지 알기 어렵습니다

우선 저희 다른 회원님께서 답변해주신 것을 기초해서 생각해봐 주시고

그래도 해결이 안되신다면 아래의 정확한 의미를 설명해 주시면 좀더 자세한 안내가 가능할듯 싶습니다.

알고 있는 범주가 무슨 의미이신지 에러는 어떠한 에러가 나는지 설명 부탁 드립니다.


----------------------------------------------------------------------------------------------------

제가 알고 있는 범주는


value=FXGrd1(row, col).ToString or value=FXGrd1.GetData(row,col).ToString


에러가 납니다.

------------------------------------------------------------------------


추가 문의가 있으시면 언제든 알려 주시기 바랍니다.


감사합니다.

그레이프시티 드림  

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.