Ausgabe spinnt



  • Ich habe eine Listcontrol die mit Zahlen aus einer Datenbank gefüllt wird,und aus irgendeine Grund wird ein Wert erhöht wenn ein anderer Wert grösser als 65.000 ist.Der Wert ändert sich nur in der Anzeige nicht in der Datenbank.
    Der Code mit dem die Liste gefüllt wird.
    Der Wert ist der sich erhöht ist der Wert an der 4.Stelle(i=3) im Recordsets und der Wert der das auslöst ist der Wert and der 3.Stelle(i=2).

    while(!r->IsEOF())
    {
     COLORREF bc,fc;
     bc = RGB(255,255,255);
     r->GetFieldValue(6,val);
     //Im folgenden Abschnitt wird die Farbe des Listeneintrags bestimmt
     if(!val.boolVal)
     {
      fc = RGB(255,0,0);
     }
     else
     {
      r->GetFieldValue(5,val);
      if(val.intVal==0)
      {
       fc = RGB(255,0,0);
      }
      else
     {
      if(val.intVal  <=100)
      {
       fc = RGB(51,153,51);
      }
      else
      {
       fc = RGB(255,192,0);
      }
     }
     }
     CString a ="";
     r->GetFieldValue(0,val);
     CString in =val.pbVal;
     a = in;
     int q = m_SP.InsertItem(r->GetAbsolutePosition(),in,fc,bc);
     if(m_SP.GetStringWidth(in)>m_SP.GetColumnWidth(0))
     {
      m_SP.SetColumnWidth(0,parent->m_SP.GetStringWidth(in)+10);
     }
     for(int i=1;i <= 5;i++)
     {
       r->GetFieldValue(i,val);
       in = "";
       in.Format("%d",val.intVal);
       if((val.intVal==0&&(i==1||i==2))||(val.intVal==9000&&i==3))
       {
        in ="---";
       }
       if(i< 3)
       {
        in = Format_Preis(in);
       }
       if(i==4)
       {
        idtemp =val.intVal;
       }
       m_SP.SetItemText(q,i,in,fc,bc);
       if(m_SP.GetStringWidth(in)>m_SP.GetColumnWidth(i)&& i!=4)
       {
        m_SP.SetColumnWidth(i,parent->m_SP.GetStringWidth(in)+10);
       }
      }
      r->GetFieldValue(6,val);
      if(val.boolVal)
      {
        m_SP.SetCheckbox(q,7,true);
      }
      else
      {
       m_SP.SetCheckbox(q,7,false);
      }
      sk_pos.InsertAt(m_SPAuswahl.AddString(a),idtemp);//Hier wird noch eine Combobox zusätzlich gefüllt
      pos++;
      r->MoveNext();
    }
    

Anmelden zum Antworten