문제

상황은,내가 필요로 하는 테이블을 만들기 위한 격자보기에는 다음과 같이보고:

----------| ID---|---름--|--1/2002--|--2/2002--|--1/2003--|........| 2/2009 |
Cust1--|
Cust2--|
:
:
나는 두 테이블에서 db-고객의 주문,축복하 LINQ 을 매핑되는 SQL
ID 와의 이름을 고객에게 아무래도에서 간단한 쿼리

var custInfo = from cust in db.Customers
               select new { ID = cust.Id, 
                            FullName = cust.FirstName + " " + cust.LastName } 


dataGridOrdersPreview.DataSource = custInfo;

고 필요 몇 가지 단서를 생성하는 방법는 열에 형식 t/year t 을 나타내 최초 또는 후반,올해의 할당을 생성되는 열이 각 고객의 주문에서는 세션이 올해의(표시하는 비용만)

[편집]

로 지금,시도하는 무언가 이것을 좋아한다:

var orders = from ord in db.Orders
             group ord by ord.Id_cust into grouped
             let costs = grouped
               .Where( s => s.YearSession == session && s.Year == year)
               .Select(a => new { Costs = a.Cost ) } )

             select new { ID = grouped.Key,
                          Name = custInfo
                             .Where( a => a.ID == grouped.Key)
                             .Select( j => j.Name).Single(),   
                          Cost = ExtensionLibrary.Sum(costs, "\n")
                      };

(비용을 얻기만 합산 비용에는 올해에 대한 세션은 각 고객)

그리고 나는 생각에 대한 반복 throuhgh 년 동안 세션과를 얻 어떻게 든 쿼리 결과를 해당하는 열이

while (year <= DateTime.Today.Year)
        {
            year++;
            while (session < 2)
            {
                session++;
                dataGridOrdersPreview.Columns.Add(session +"/"+ year);
                col.Add((session +"/"+ year), 
                         orders.Select( a => a.Cost ).ToList() );
                /* col is Dictionary<string, List<string> > */

            }
            session = 0;
        }

여기에 내가 생성되는 열이 나는 내가 명령에 사는 핵심은 열 이름과 값 순서에서는 열을,하지만 난 어떤 도움이 필요에 바인딩하는 열이

도움이 되었습니까?

해결책

방법은 내가 그것을 본 적이 수행하는 클래스를 만들고 있는 속성을 원하는,예를 들어,

class CustOrders
{
   public string CustName {get; set;}
   public int Orders2002-1 {get; set;}
   public int Orders2002-2 {get; set;}
   ...
   public int Orders2009-1 {get; set;}
}

그런 다음 이 시스템을 이용하고 있습니다.Windows.Forms.마트 클라이언트,그것을 말 CustOrdsBindingSource 설정 데이터 원본을 이 목록의 새로운 클래스입니다.

List<CustOrders> myListOfCustOrders =  new List<CustOrders>();
/* Code to populate myListOfCustOrders */
CustOrdsBindingSource.DataSource = myListOfCustOrders;

이 경우에 당신은 코드를 작성하고 변화의 결과 쿼리 결과를 인스턴스의 행에 대한 모든 주문 행을 검색할 수고에 저장 myListOfCustOrders.

마지막으로,그리드 뷰의 데이터 소스는 또한 설정해야 한다:

gridView1.DataSource = CustOrdsBindingSource;

큰 문제는 내가 참으로 이 방법을 변경해야 합니다 이 행에 대한 모든 주문 행을 검색할 수 클래스 매년 없는 경우 어떤 부두 몇 가지 제안할 수 있습을 삽입하는 속성 클래스를 수행할 필요는 없습니다.

어느 방법으로,이게 시작입니다.

다른 팁

로 없을 것입 업데이트/추가/삭제 행고 생각 나는 것을 생성하는 격자 수 있습니다.

목록을 가져오기의 고객과의 수가 얼마나 많은 판매에서 무엇을 해/세션이 있습니다.다음 형식을 그 목록을 만들 필요한 열에 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top