Reframework 훈련중 질문입니다

안녕하세요 reframework 연습중 막히는 부분이 있습니다.
Inked%EC%BA%A1%EC%B2%98_LI

A2 ,B2 , C2의 숫자를 Process 상태부분 에서 더한 뒤 Column4에 저장하고싶습니다.
Get TransactionData 상태에서 Process에 어떤 데이터를 넘겨주어야 하는지 감이 안잡힙니다.

그리고 이 작업을 데이터가 없을때 까지 반복해야 합니다.

참고로 init 상태는 건드리지 않았습니다.

기존의 RE프레임에서는 기본 핸들링 데이터 형태가 QueueItem 을 통하여 이루어 집니다

해당 부분을 숙지하셔서 QueueItem In/Out 값들을 전부 datatable 또는 datarow 형태로 변경해주셨는지

먼저 여쭙고 싶네요 체크 부탁드려요!

2 Likes

네 DataRow 타입으로 이미 변경 했습니다.

그렇다면 해당 DT.rows.item(인덱스값)(헤더인덱스 or “헤더명”)을 형태로 값을 불러와서 처리하시면 될꺼같습니다.

2 Likes

확인차 write Line 에 out_TransactionItem.Rows.Item(엑셀 인덱스)으로 찍어 보았더니 System.Data.DataRow 라고 출력이 됩니다.

엑셀 인덱스라고 하시면 A1 값을 넣으셨단것 같은데

Read Range 로 긁으셨으니 DT 로 아웃풋이 나올테고

그러면 해당DT.Rows.item(row인덱스)(column인덱스 OR “column 명”) 으로 부르시면 값이 나올꺼같습니다.

2 Likes

질문 1번째 입니다.

다시 확인차 DT.Rows.item(0)(0)번째를 출력하니 엑셀에서 A2 위치의 데이터가 나옵니다
왜 A1위치의 데이터가 나오지 않고 A2의 데이터가 출력되는지 궁금합니다.

질문 2번째
결국 A1 B1 C1 의 데이터의 합을 D1 에 저장하는 과정을 Process 상태에서 반복 진행 해야하는데
process 상태에는 어떤작업을 해야 합니까?

A1.엑셀 리드하실때 A1 의 값을 헤더로 가져가도록 체크하셔서 그렇습니다.

Read Ragne 의 속성값을 확인해주세요

A2. 계산한 결과를 Assign 을 통하여 DT.rows.item(0)(3) 에 넣어주시면 될것같습니다.

2 Likes

답변 감사합니다. A1은 해결을 하였습니다

Q1. 각 데이터를 더하기전에 DataTable 타입을 int32 타입으로 변환을 하는방법을 잘 모르겠습니다.
(sum 이라는 int32 타입의 변수에 DT.rows.item(0)(0)+ DT.rows.item(0)(1)+ DT.rows.item(0)(2)을 대입해 보았지만 오류발생하였습니다.)

Q2. DT.rows.item(?)(?) 물음표 안의 값은 데이터의 갯수 만큼 바뀌어야하는데
로직을 어떻게 짜야할지 감이 안잡힙니다…

ex)엑셀의 A1+B1+C1을 D1에 저장하고
A2+B2+C2를 D2에 저장하고 데이터가 없을때까지 반복하는 로직을 뜻합니다…

20190719081854

DT 는 이런식으로 생성해줬구요

Sample_DT.Rows.Item(idx)(“sum”) = Cint(Sample_DT.Rows.Item(idx)(“column1”)) + Cint(Sample_DT.Rows.Item(idx)(“column2”)) + Cint(Sample_DT.Rows.Item(idx)(“column3”))

라고 Assign 을 통해 값을 DT에 넣어줬습니다.

DT에서 String 값을 가져와서 인트형변환을 진행해야하므로 Cint(Sample_DT.Rows.Item(idx)(“column1”))
처럼 Cint() 를 사용하였구요

아이템뒤 첫번째 괄호의 파라미터 idx 는 for each row 를 돌리면서 index값을 전달받은 것 입니다.

2 Likes

답변 감사합니다 덕분에 로직짜는것은 다 해결이 되었습니다.

아마 마지막 질문 일거에요

여태껏 진행한 로직은 REFramework 에 GetTransactionData 상태에서 진행을 했는데 write cell 활동은 Process 상태로 넘겨서 진행 하고싶습니다. 여기서 문제는 GetTransactionData 상태에서 Process 상태로 넘어가지 않습니다. 출력창에는 더이상 데이터가 없다라고 나옵니다.

그리고 GetTransactionData 상태에서 아규먼트는 out_TransactionItem DataTable 타입이고 Prcoess 아규먼트는 In_TransactionItem DataTable 타입으로 되어 있습니다. out_TransactionItem을 어떻게 In_TransactionItem으로 받을수 있습니까?

참고로 out_TransactionItem 에는 엑셀에서 더한 값이 들어 있습니다.

main.xaml에 변수를 하나 생성하신 뒤 out_TransactionItem 을 그 변수에 저장해 두셨다가 In_TransactionItem으로 옮기시면 됩니다.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.