powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вывод 2-х таблиц в грид, Связь "многие-ко-многим"
1 сообщений из 1, страница 1 из 1
Вывод 2-х таблиц в грид, Связь "многие-ко-многим"
    #34541031
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма, на ней 2 грида. Нужно вывести информацию из 2-х таблиц и чтоб при нажатии на строку в 1-м гриде выбирались записи из другой таблицы, и отображались во 2-м гриде.

Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
BOOL CZakazForm::OnInitDialog() 
{
    
    m_pZVSet = new CZakazViewSet(NULL);
    m_pZVSet->Open();

    CDialog::OnInitDialog();
//--------------------------------------------------------------------- 
    BOOL bFound;

    m_pZVSet->MoveFirst();
    
    while(!m_pZVSet->IsEOF()){
        bFound = FALSE;
        for(int i= 0 ; i<m_arId.GetSize();i++){
            if(m_arId[i].Compare(m_pZVSet->m_id)== 0 )
                bFound = TRUE;
        }
        if(!bFound){
            m_arId.Add(m_pZVSet->m_id);
            m_arBall.Add(m_pZVSet->m_overball);
            m_arSumm.Add(m_pZVSet->m_sum);
        }

/*      bFound = FALSE;
        for(i=0; i<m_arKol.GetSize();i++){
            if(m_arKol[i].Compare(m_pZVSet->m_count)==0)
                bFound = TRUE;
        }
        m_arKol.Add(m_pZVSet->m_count);
        }*/

        bFound = FALSE;
        for(i= 0 ; i<m_arArt.GetSize();i++){
            if(m_arArt[i].Compare(m_pZVSet->m_articul)== 0 )
                bFound = TRUE;
        }
        if(!bFound){
            m_arArt.Add(m_pZVSet->m_articul);
            m_arName.Add(m_pZVSet->m_name);
            m_arPrice.Add(m_pZVSet->m_price);
            m_arNetto.Add(m_pZVSet->m_netto);
        }
    m_pZVSet->MoveNext();
    }
    
    CRect rect;
    int nRowZakaz;
    int nRowProduct;

    GetClientRect(rect);
//  m_ZakazGrid.MoveWindow(rect,TRUE);
    m_ZakazGrid.RedrawWindow(
        NULL, 
        NULL,
        RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
    m_ProductGrid.RedrawWindow(
        NULL, 
        NULL,
        RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

    m_ZakazGrid.SetCols( 3 );
    m_ZakazGrid.SetRows(m_arId.GetSize() +  1 );
    m_ProductGrid.SetCols( 4 );
    m_ProductGrid.SetRows(m_arArt.GetSize() +  1 );

    m_ZakazGrid.SetColWidth(- 1 ,  1440 );
    m_ProductGrid.SetColWidth(- 1 ,  1440 );
    
    m_ZakazGrid.SetRow( 0 );
    m_ZakazGrid.SetCol( 0 );
    m_ZakazGrid.SetText("¹ çàêàçà");
    m_ZakazGrid.SetCol( 1 );
    m_ZakazGrid.SetText("Ñóììà");
    m_ZakazGrid.SetCol( 2 );
    m_ZakazGrid.SetText("Áàëëû");
    m_ProductGrid.SetRow( 0 );
    m_ProductGrid.SetCol( 0 );
    m_ProductGrid.SetText("Àðòèêóë");
    m_ProductGrid.SetCol( 1 );
    m_ProductGrid.SetText("Íàèìåíîâàíèå");
    m_ProductGrid.SetCol( 2 );
    m_ProductGrid.SetText("ÍÅÒÒÎ");
    m_ProductGrid.SetCol( 3 );
    m_ProductGrid.SetText("Öåíà");

    nRowZakaz = m_arId.GetSize();
    for(int i= 0 ; i<nRowZakaz; i++){
        m_ZakazGrid.SetRow(i +  1 );
        
        m_ZakazGrid.SetCol( 0 );
        m_ZakazGrid.SetText(m_arId[i]);

        m_ZakazGrid.SetCol( 1 );
        m_ZakazGrid.SetText(m_arSumm[i]);

        m_ZakazGrid.SetCol( 2 );
        m_ZakazGrid.SetText(m_arBall[i]);
    }
    
    nRowProduct = m_arArt.GetSize();
    for(i= 0 ; i<nRowProduct; i++){
        m_ProductGrid.SetRow(i +  1 );
        
        m_ProductGrid.SetCol( 0 );
        m_ProductGrid.SetText(m_arArt[i]);
        m_ProductGrid.SetCol( 1 );
        m_ProductGrid.SetText(m_arName[i]);
        m_ProductGrid.SetCol( 2 );
        m_ProductGrid.SetText(m_arNetto[i]);
        m_ProductGrid.SetCol( 3 );
        m_ProductGrid.SetText(m_arPrice[i]);
    }
    m_ZakazGrid.SetRow(iRowZakaz);
    m_ZakazGrid.SetCol( 1 );
    m_ProductGrid.SetRow(iRowProduct);
    m_ProductGrid.SetCol( 1 );
//---------------------------------------------------------------------     
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
void CZakazForm::OnClickZakazGrid() 
{ 
    CString buf;
    BOOL bFound;
    if(m_ZakazGrid.GetCol()!= 0 ){
        iRowZakaz = m_ZakazGrid.GetRow();
        m_ZakazGrid.SetRowSel(iRowZakaz);
        buf = m_ZakazGrid.GetText();
        m_ZakazGrid.SetColSel(m_ZakazGrid.GetCols()- 1 );
    }
    m_arArt.RemoveAll();
    m_arName.RemoveAll();
    m_arNetto.RemoveAll();
    m_arPrice.RemoveAll();
    m_pZVSet->MoveFirst();
    while(!m_pZVSet->IsEOF()){
        if(m_pZVSet->m_id.Compare(buf)== 0 ){
            bFound=FALSE;
            for(int i= 0 ;i<m_arArt.GetSize();i++){
                if(m_arArt[i].Compare(m_pZVSet->m_articul)== 0 )
                    bFound=TRUE;
            }
            if(!bFound){
                m_arArt.Add(m_pZVSet->m_articul);
                m_arName.Add(m_pZVSet->m_name);
                m_arNetto.Add(m_pZVSet->m_netto);
                m_arPrice.Add(m_pZVSet->m_price);
            }
        }
        m_pZVSet->MoveNext();
    }
    Invalidate();
}

Что получается. Нажимаю на запись в 1-м (m_ZakazGrid) гриде, а во втором (m_ProductGrid) ничего не происходит. Что это может быть? Как можно решить вопрос другими способами?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вывод 2-х таблиц в грид, Связь "многие-ко-многим"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]