<div>母회사 | 1차_하청업체 | 2차_하청업체 | 2차_하청업체_관리자 | 관리하는_기계 | 관리_시간</div> <div> A A-01 A-01-01 M_A01_01 M_A_E-01 10</div> <div> A A-01 A-01-01 M_A01_01 M_A_E-02 20</div> <div> A A-01 A-01-02 M_A01_02 M_A_E-01 20</div> <div> A A-01 A-01-02 M_A01_02 M_A_E-03 05</div> <div> A A-02 A-02-01 M_A02_01 M_A_E-05 55</div> <div> A A-02 A-02-02 M_A02_02 M_A_E-01 11 </div> <div> B</div> <div>... (생략)</div> <div>이런식으로 데이터 테이블이 구성되어 있습니다.</div> <div> </div> <div>처음엔 母회사 선택하면 Group by 하여 해당 기계에 대한 관리 시간 총 합계를 구한 후 아래와 같이 데이터를 뿌려주었습니다.</div> <div>母회사 | 관리하는_기계 | 관리_시간</div> <div> A M_A_E-01 44</div> <div> A M_A_E-02 20</div> <div> A M_A_E-03 05</div> <div> A M_A_E-05 55</div> <div> total 124 </div> <div> B</div> <div>... (생략)</div> <div> </div> <div>var results2 = (from J3 in TotalLowDataTable.AsEnumerable().Distinct()<br> group J3 by new { P = J3.Field<string>("母회사"), Equipment = J3.Field<string>("관리하는_기계")} into ss<br> select new<br> {<br> PName = ss.Key.Site,<br> EquipmentName = ss.Key.Equipment,<br> Sum = ss.Sum(r => r.Field<int>("관리_시간"))<br> }).Distinct();</div> <div> </div> <div>for (int i = 0; i < 母회사.Count; i++)<br>{<br> for (int j = 0; j < 관리하는_기계.Count; j++)<br> {<br> foreach (var item in results2)<br> {<br> if (母회사[i] == item.母회사이름)<br> {<br> if (관리하는_기계[j] == item.기계이름)<br> {<br> DataTable.Rows.Add(item.母회사이름, item.기계이름, item.관리시간);<br> Sum = Sum + item.관리시간;<br> } <br> } <br> }<br> DataTable.Rows.Add("Total", "", Suml);<br> Sum = 0;<br> } <br>}</div> <div> </div> <div>세부 내용이 더 필요하다고 판단하여 </div> <div>母회사 | 1차_하청업체 | 2차_하청업체 | 2차_하청업체_관리자 | 관리하는_기계 | 관리_시간</div> <div>다시 이렇게 뿌려주게 되는데... 중간에 total을 넣어야 해서 각각 갯수만큼 for문으로 돌리고 if문으로 일치하는 형식으로 해서 위의 소스와 같은 형식이나</div> <div>for(母회사)</div> <div> {</div> <div> for(1차_하청업체)</div> <div> {</div> <div> for(2차_하청업체)</div> <div> { </div> <div> for(2차_하청업체_관리자)</div> <div> {</div> <div> for(관리하는_기계)</div> <div> {</div> <div> foreach (var item in results2)</div> <div> {</div> <div> if(테이블의 母회사의 이름이 母회사가 같은가?)</div> <div> {</div> <div> if(테이블의 1차하청업체의 이름이 1차하청업체가 같은가?)</div> <div> {</div> <div> if(테이블의 2차하청업체의 이름이 2차하청업체가 같은가?)</div> <div> { </div> <div> if(테이블의 2차합청업체의 관리자 이름이 ...) </div> <div> { </div> <div> if(테이블의 관리하는 기계의 이름이 ...)</div> <div> {</div> <div> 모든 if만족시 DataTable.add</div> <div> }</div> <div> ....</div> <div> }</div> <div> ...</div> <div> total값 DataTable.add</div> <div>} </div> <div> </div> <div>옮겨 적으면서 {,}의 갯수가 맞지 않을 수가 있습니다 괄호 갯수 안맞는건 무시해주시고... </div> <div>이런식으로 너무 많은 for와 if가 들어감에 따라 데이터 테이블에 들어가는 데이터 속도가 많이 저하됩니다.</div> <div>좀 무식한 방법으로 해결을 한거 같은데 ... 다른 방법으로 하려면 어떻게 해야하나요 ?</div> <div>아니면 母회사 1차하청업체 2차하청업체 2차하청업체괸리자 관리하는기계 순으로 정렬을 시킨 후에 각각 중간마자 total값을 넣어줘야 하나요 ? </div> <div> </div> <div> </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.