ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
916
916
EMPFEHLEN
-
Hallo zusammen,
da ich berufsmäßig wieder mit VB2008 EE zu tun habe und gleich vor einigen Problemen stehe, bitte ich hiermit um Hilfe.
Ich möchte ein Programm erstellen, welches mir Aufträge aufzeigt. (siehe Anhang)
Ich habe bereits die Daten von Access hinzugefügt. Nun möchte ich gerne das
die Zellen von Aufträgen, bei denen das Datum (Vorgangstart) hinter dem aktuellen Datum liegt, rosa dargestellt sind.
Gerne möchte ich auch, dass wenn ich auf einen Button klicke, nur bestimmte Maschinen angezeigt werden. (z.B. CHDVSH) Also ein Filter...
Ist dies überhaupt möglich ? Wenn ja wie komplex und wie und wo fange ich am Besten an ? Habe zwar bereits einige Stunden Internetrecherche hinter mir, jedoch ohne richtigen Erfolg.
Danke im Voraus,
Benjamin
-
26.09.10 20:00 #2
das ist ne coole sache, diese Zeilen zu färben =)
das ganze schaut so aus....
Inm folgenden code wird NACH DEM sortieren meine Paint methode aufgerufen...
dort frage ich nach warenausgang unf färbe diese zeilen rot und dann suche ich nach wareneingang und färbe diese zeilen rot.
du würdest nach datum größer oder kleiner heute fragen =)
private void dataGridView1_Sorted(object sender, EventArgs e)
{
PaintRows();
}
private void PaintRows()
{
for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (dataGridView1.Rows[i].Cells["Vorgang"].Value.ToString() == "Wareneingang")
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Green;
}
else if (dataGridView1.Rows[i].Cells["Vorgang"].Value.ToString() == "Warenausgang")
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
}
-
Statt das ganze mit einer For-Schleife zu machen kann man diese auch einfach durch eine foreach-schleife ersetzen, also:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells["Vorgang"].Value.ToString() == "Wareneingang")
{
row.DefaultCellStyle.BackColor = Color.Green;
}
else if (row.Cells["Vorgang"].Value.ToString() == "Warenausgang")
{
row.DefaultCellStyle.BackColor = Color.Red;
}
}
Bringt nicht so viel, aber man spart sich Etwas Quellcode und kann sich dann später, wenn man sich das ganze nochmal anguckt noch genau was man da eigentlich macht.
Nur so eine Idee.
-
31.08.11 21:22 #4
- Registriert seit
- Feb 2008
- Ort
- Salzhemmendorf(Nds)
- Beiträge
- 51
Doch wohl hoffentlich über eine BindingSource!? Das vereinfacht nämlich die Filterung:
Im Codebeispiel gehe ich vereinfacht davon aus, dass das zu filternde Feld in der Tabelle 'Maschine' heisst...Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
private void buttonFilter_Click(object sender, EventArgs e) { var bs = dgvAnzeige.DataSource as BindingSource; if (String.IsNullOrEmpty(bs.Filter)) { bs.Filter = String.Format("Maschine='{0}'", "CHDVSH"); //--oder vereinfacht: //bs.Filter = "Maschine='CHDVSH'"; } else //--Filer wieder aufheben { bs.Filter = String.Empty; } }
Nun zum bedingten Einfärben von Zellen (bzw auch ganzen Zeilen):
Wir lassen das DGV sich seine Zellen quasi selbst zeichnen
Da das CellPainting-Event bei JEDER Zelle gefeuert wird, reicht es aus, bei erfüllter Bedingung nur die Zelle entsprechend einzufärben. Da die Bedingung unabhängig der gerade zu zeichnenden Zelle immer abgefragt wird, ist als Endergebnis dann die ganze Datenzeile schweinchenrosa (oder wie auch immer) eingefärbtCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14
private void dgvAnzeige_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { DataGridView dgv = (DataGridView)sender; if (e.RowIndex < 0) return; var rwCurrent = ((System.Data.DataRowView)dgv.Rows[e.RowIndex].DataBoundItem).Row; if (Convert.ToDateTime(rwCurrent["VorgangStart"]) < DateTime.Today) { e.CellStyle.BackColor = Color.LightCoral; } }
Es ist erstaunlich, was man alles findet, wenn man etwas sucht...
Ähnliche Themen
-
Wegfindung bei Gebiet aus Zellen => alle Zellen durchlaufen
Von amArsch2 im Forum .NET CaféAntworten: 2Letzter Beitrag: 25.03.10, 12:52 -
Zellen verbinden in DataGridView
Von tomkruse im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 28.09.09, 13:46 -
[C#] DataGridView, Zellen wie bei Excel formatieren
Von chris_de_luxe im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 12.01.09, 15:14 -
[c#] DataGridView Zellen editieren / Reihen löschen
Von BeaTBoxX im Forum .NET Windows FormsAntworten: 10Letzter Beitrag: 27.09.07, 20:52 -
[ORACLE] innerhalb einer Spalte mehrere Sortierungen
Von crazyPower im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 05.07.05, 22:59





Zitieren

Login




