Benutzer mit den meisten Antworten
DatagridView-Dataset-Automatisches Einfügen, selektieren, löschen

Frage
-
Hallo,
folgendes Ziel:Ich scanne einen Code ein.Dieser wird in eine Liste übernommen.
Bei Druck auf ArbeitsPos wird der Zähler um 1 heruntergezählt.FirstIn FirstOut
Im Beispiel.Die letzte Zeile / die dritte Zeile markieren, Zähler um 1 herunterzählen.Wenn 0 Zeile löschen
Problem.Automatisches selektieren DataGridView.Wie geht das?
Danke für Tipps.
Grüße Andreas
VS2008, C#
private void btnTakeOverScan_Click(object sender, EventArgs e) { DataTable dt = dataSetMaterialSettings.tblMaterial; DataRow dr = dt.NewRow(); dr["Charge"] = txtInputHandheldscanner.Text; dr["Count"] = 33; dt.Rows.Add(dr); // die letze Zeile muss selektiert sein. } private void btnPanelAtWorkingPos_Click(object sender, EventArgs e) { dGVMaterial.Rows[1].Selected = true; // wie bekomme ich den Counter heraus, max. Anzahl. // über Dataset oder dataGridView? DataRow[] editRow = dataSetMaterialSettings.Tables["tblMaterial"].Select("Charge='2222'"); if (editRow.Length == 1) { editRow[0].BeginEdit(); editRow[0]["Count"] = 22; editRow[0].EndEdit(); }
Nice to have.Geht so etwas?Aktuelle Eingabe selektiert Farbe gelbAktuelle Ararbeitung selektiert Farbe grün- Bearbeitet Robert BreitenhoferModerator Mittwoch, 8. September 2010 14:41 Formatierung
Antworten
-
Hallo Andreas,
bzgl. Herunterzählen ist das doch ok, vielleicht noch so abändern.
// Folgendes ist unsauber:
// string count = drv["Count"].ToString();
// Int32 newCount = Convert.ToInt32(count) - 1;
// besser:
int newCount = ((int)drv["Count"]) - 1;
drv.BeginEdit();
drv["Count"] = newCount;
drv.EndEdit();
> Tag <-> Text
Also die Tag-Eigenschaft ist doch nur ein möglicher zusätzlicher Container, der bei einem Control eben Daten enthalten (speichern) kann. Aber das Binding ist hier bei Dir über die Text-Eigenschaft auszuführen und ja auch schon richtig umgesetzt. Die Tag-Eigenschaft brauchst Du nicht.
Ansonsten müsstest Du noch mal die Frage präzise stellen, wozu Du die Belegung der Tag-Eigenschaft benötigst, aber wie gesagt, lass sie weg, die wäre in den meisten Fällen nur ein Notnagel.
ciao Frank- Als Antwort markiert Andreas Bauer2 Freitag, 10. September 2010 19:06
-
Hallo Andreas, :-)
so nach vielen Kartons - wenig Intenet - und viel bei der Arbeit zu tun jetzt ein paar Dinge zu Deiner nächsten Frage, die ggf alle separat in neuen Fragen gestellt werden sollten.
Ich nehme mal an, die Frage von Dir ist:
- Wie kann ich es schaffen, dass die gelbe Zeile auch nach
mehrmaligem Drücken der „TakeOver“ Taste immer zusammen
mit der aktuellen angezeigt wird?
Oder allgemeiner für die anderen: wie kann ich es schaffen, dass trotz
Zufügung von beliebig vielen Zeilen im Grid immer sichtbar und gefärbt sind?
Ich habe in Deinem Projekt folgendes eingefügt:private void btnTakeOverScan_Click(object sender, EventArgs e) { if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = false; // . . . Dein vorheriger Quellcode if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = true; }
vielleicht nicht die beste Möglichkeit, aber da Dir die Zeit drängt, vielleicht schon mal ein Rettungsanker :-)
btw: Bin jetzt ein paar Stunden weg.
ciao Frank- Als Antwort markiert Andreas Bauer2 Montag, 11. Oktober 2010 21:23
Alle Antworten
-
Hallo,Anmerkung noch.Ich will das DataGridview nicht als Eingabe sondern 'nur' als Anzeige benutzen.Kein Bedienereingriff möglich.
Wie setze ich die akt. Zeile?Wo filtere ich am besten?Wie macht man es richtig?
Dataset?DataGridView?
Danke für Tipps.
Grüße Andreas
private void btnTakeOverScan_Click(object sender, EventArgs e) { for (int i = 0; i < dGVMaterial.Rows.Count; i++) { dGVMaterial.Rows[i].Selected = false; } DataTable dt = dataSetMaterialSettings.tblMaterial; DataRow dr = dt.NewRow(); dr["Charge"] = txtInputHandheldscanner.Text; dr["Count"] = 33; dt.Rows.InsertAt(dr, 0); int nNewCount = dGVMaterial.Rows.Count; dGVMaterial.Rows[nNewCount-2].Selected = true; } private void btnPanelAtWorkingPos_Click(object sender, EventArgs e) { // dGVMaterial.Rows[1].Selected = true; DataRow[] editRow = dataSetMaterialSettings.Tables["tblMaterial"].Select("Charge='2222'"); //DataRow[] editRow = dataSetMaterialSettings.Tables["tblMaterial"].Select(; if (editRow.Length == 1) { editRow[0].BeginEdit(); editRow[0]["Count"] = 22; editRow[0].EndEdit(); } foreach (DataRow row in dataSetMaterialSettings.Tables["tblMaterial"].Rows) Console.WriteLine("{0,-10}{1}", row[0], row[1]); dGVMaterial.FirstDisplayedScrollingRowIndex = dGVMaterial.CurrentRow.Index; // string chargeActive = dGVMaterial.CurrentRow["Charge"]; // Int32 countActive = dGVMaterial.CurrentRow.Cells["Count"]; // ### ich muss hier jetzt 1 zurückzählen, bei 0 Zeile löschen }
-
Hallo Andreas,
ich vermute, Du möchtest zum einen die Zeilen-Position setzen und gleichzeitig diese markieren (selektieren).
Hier ein Ansatz über den internen CurrencyManager:private void btnPanelAtWorkingPos_Click(object sender, EventArgs e) { for (int i = 0; i < dGVMaterial.Rows.Count; i++) { DataGridViewRow row = dGVMaterial.Rows[i]; if (row.Cells[0].Value != null && row.Cells[0].Value.Equals("2222")) { dGVMaterial.BindingContext[dGVMaterial.DataSource].Position = i; return; } } }
ciao Frank -
private void btnPanelAtWorkingPos_Click(object sender, EventArgs e) { for (int i = 0; i < dGVMaterial.Rows.Count; i++) { DataGridViewRow row = dGVMaterial.Rows[i]; if (row.Cells[0].Value != null && row.Cells[0].Value.Equals("2222")) { dGVMaterial.BindingContext[dGVMaterial.DataSource].Position = i; return; } } }
Hallo Frank,
jein!
Das was ich als erstes einscanne liegt unten und wird weiterverarbeitet.
D.h. Bearbeitungszeile selektieren. Danach muss ich den aktuellen Wert auslesen, um 1 zurückzählen. Da hänge ich noch. Ist dieser dann 0, Zeile löschen, obere Zeile markieren, abarbeiten etc.
Was mir jetzt unklar ist.
Wo zähle ich herunter, im Dataset? Im DataGridView?
>row.Cells[0].Value.Equals("2222"))
Das muss nicht so sein, suchte nur was die Zeile zu markieren. Ich weiß ja nicht was ich einscanne.Das DataGridView soll nur als Anzeige dienen, keine Einageb soll möglich sein, nicht editierbar.
Danke für weitere Tipps.
Ciao Andreas
-
Hallo Andreas,
ich denke, Du hast mein Quellcode nicht so richtig verstanden/interpretiert.
Der ist nur als Beispiel, wie man eine Zeile selektiert/markiert - "2222" ist doch nur ein Beispiel.
Was Du dann letztlich für die aktuelle Zeile wählst, ist Dir überlassen.
Die Selektion solltest Du schon über den internen CurrencyManager des DataGridView machen, denn das Grid könnte zum Beispiel sortiert sein. Das Grid verwendet einen internen View - und den musst Du eben ansprechen - sprich, die Reihenfolge im DataSource hat ggf. nicht mit der in der Ansicht zu tun.
CurrencyManager cm = dGVMaterial.BindingContext[dGVMaterial.DataSource] as CurrencyManager;
ist dieser CurrencyManager, der auch eine List-Eigenschaft hat, der diese quasi in der richtigen Reihenfolge hat.In Deinem Fall kann man diese List auch in BindingSource casten:
BindingSource bs = cm.List as BindingSource;
bs.Position = i;
ciao Frank -
Hallo Frank,
wie bekomme ich über die akt. BindingSource die TabellenwerteChargeValue?
Wie mache ich das Update. Herunterzählen, aktualisieren?
siehe Bildhttp://www1.minpic.de/bild_anzeigen.php?id=123100&key=80227159&ende
siehe Projekt.http://www.materialordner.de/Kqf6c8AFSKubuQpktyBZ9kGIHY78REIr.html
Danke für die Antwort.
Viele Grüße Andreas -
> wie bekomme ich über die akt. BindingSource die Tabellenwerte Charge Value
CurrencyManager cm = dGVMaterial.BindingContext[dGVMaterial.DataSource]
as CurrencyManager;
BindingSource bs = cm.List as BindingSource;
DataRowView drv = bs.Current as DataRowView;
MessageBox.Show("Charge = " + drv["Charge"]);MessageBox.Show("Count = " + drv["Count"]);
zu den anderer Fragen ggf. später.
ciao Frank -
MessageBox .Show("Charge = " + drv["Charge"]);
MessageBox .Show("Count = " + drv["Count"]);
zu den anderer Fragen ggf. später.Hallo Frank,
drv["Charge"].ToString() war noch unklar, wenn ich das Auslesen möchte. Da scheint zunächst alles ein String zu sein.
Dank Deiner Hilfe bin ich jedoch weitergekommen.
Nicht desto trotz, ganz optimal habe ich es nicht gelöst,
so dass ich Deinen Rat / Dein Angebot gerne nochmals heranziehe.
Wäre nett bis morgen eine Antwort zu erhalten.http://www.materialordner.de/xS7rZrH4cCbR5l8II2O2pBrv2zJT8bGv.html
A) Wie würdest du das lösen.
Prinzipiell geht es.
B) Unterschied, falls ich ein Textfeld nehmen müsste mal, Tag,Text?
http://www1.minpic.de/bild_anzeigen.php?id=123111&key=56085334&endeGrüße
Andreas- Bearbeitet Andreas Bauer2 Donnerstag, 9. September 2010 20:19 Formatierung
-
Hallo Andreas,
bzgl. Herunterzählen ist das doch ok, vielleicht noch so abändern.
// Folgendes ist unsauber:
// string count = drv["Count"].ToString();
// Int32 newCount = Convert.ToInt32(count) - 1;
// besser:
int newCount = ((int)drv["Count"]) - 1;
drv.BeginEdit();
drv["Count"] = newCount;
drv.EndEdit();
> Tag <-> Text
Also die Tag-Eigenschaft ist doch nur ein möglicher zusätzlicher Container, der bei einem Control eben Daten enthalten (speichern) kann. Aber das Binding ist hier bei Dir über die Text-Eigenschaft auszuführen und ja auch schon richtig umgesetzt. Die Tag-Eigenschaft brauchst Du nicht.
Ansonsten müsstest Du noch mal die Frage präzise stellen, wozu Du die Belegung der Tag-Eigenschaft benötigst, aber wie gesagt, lass sie weg, die wäre in den meisten Fällen nur ein Notnagel.
ciao Frank- Als Antwort markiert Andreas Bauer2 Freitag, 10. September 2010 19:06
-
bzgl. Herunterzählen ist das doch ok, vielleicht noch so abändern.
Hallo Frank,ok. Danke für den Tipp.
Abschließende Frage zu diesem Thread.
Wie könnte man folgendes realsieren?siehe Bild. http://www1.minpic.de/bild_anzeigen.php?id=123274&key=74407704&ende
Aktive Zeile, Bearbeitung soll grün sein.
Das wird eingescannt wird, aufgelegt wird gelb.
Liste durchlaufen siehe #####Grüße Andreas
private void btnDecrease_Click(object sender, EventArgs e) { DataRowView drv = BS.Current as DataRowView; if ( drv == null ) return; //MessageBox.Show("Charge = " + drv["Charge"]); //MessageBox.Show("Count = " + drv["Count"]); string charge = drv["Charge"].ToString(); string count = drv["Count"].ToString(); //Int32 newCount = Convert.ToInt32(count) - 1; //drv.BeginEdit(); //drv["Count"] = newCount.ToString(); //drv.EndEdit(); int newCount = ((int)drv["Count"]) - 1; drv.BeginEdit(); drv["Count"] = newCount; drv.EndEdit(); if ( newCount == 0 ) { drv.Delete(); // ** Zeile selektieren BS.Position = dGVMaterial.Rows.Count; if ( dGVMaterial.Rows.Count > 1 ) dGVMaterial.Rows[dGVMaterial.Rows.Count - 2].Selected = true; } for (int i = 0; i < dGVMaterial.Rows.Count; i++) { ###### ?
-
Hallo Andreas,
siehe u.a.:
dGVMaterial.Rows[0].DefaultCellStyle.BackColor = Color.Yellow;
dGVMaterial.Rows[BS.Position].DefaultCellStyle.
SelectionBackColor = Color.LightGreen;hängt davon ab, wie "bleibend" die Farben je nach Wechsel der Bindungs-Position sein sollen. Oder ob generell die SelectionBackColor grün sein soll.
Im letzteren Fall etwa:
dGVMaterial.DefaultCellStyle.SelectionBackColor = Color.LightGreen;
ciao Frank -
dGVMaterial.DefaultCellStyle.SelectionBackColor = Color .LightGreen;
Hallo Frank,
passt soweit alles.
Kleinigkeit, wie erreiche ich dass das DataGridView automatisch scrollt.
Sprich der erste gescannte Eintrag sichtbar ist. Das ist ja die Arbeitsposition.
Grüße Andreashttp://www1.minpic.de/bild_anzeigen.php?id=123573&key=81664352&ende
public frmMaterialSettings() { InitializeComponent(); CM = dGVMaterial.BindingContext[dGVMaterial.DataSource] as CurrencyManager; BS = CM.List as BindingSource; //dGVMaterial.Rows[0].DefaultCellStyle.BackColor = Color.Yellow; //dGVMaterial.Rows[BS.Position].DefaultCellStyle.SelectionBackColor = Color.LightGreen; //hängt davon ab, wie "bleibend" die Farben je nach Wechsel der Bindungs-Position sein sollen. //Oder ob generell die SelectionBackColor grün sein soll. //Im letzteren Fall etwa: dGVMaterial.DefaultCellStyle.SelectionBackColor = Color.LightGreen; } private void btnTakeOverScan_Click(object sender, EventArgs e) { //for (int i = 0; i < dGVMaterial.Rows.Count; i++) //{ // dGVMaterial.Rows[i].Selected = false; //} DataTable dt = dataSetMaterialSettings.tblMaterial; DataRow dr = dt.NewRow(); dr["Charge"] = txtInputHandheldscanner.Text; dr["Count"] = 10; dt.Rows.InsertAt(dr, 0); int nNewCount = dGVMaterial.Rows.Count; // dGVMaterial.Rows[nNewCount-2].Selected = true; BS.Position = nNewCount; dGVMaterial.Rows[BS.Position].DefaultCellStyle.SelectionBackColor = Color.LightGreen; for (int i = 0; i < dGVMaterial.Rows.Count; i++) { if (i == 0) dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.Yellow; else if (i != BS.Position) dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.White; } } private void btnDecrease_Click(object sender, EventArgs e) { DataRowView drv = BS.Current as DataRowView; if ( drv == null ) return; //MessageBox.Show("Charge = " + drv["Charge"]); //MessageBox.Show("Count = " + drv["Count"]); string charge = drv["Charge"].ToString(); string count = drv["Count"].ToString(); //Int32 newCount = Convert.ToInt32(count) - 1; //drv.BeginEdit(); //drv["Count"] = newCount.ToString(); //drv.EndEdit(); int newCount = ((int)drv["Count"]) - 1; drv.BeginEdit(); drv["Count"] = newCount; drv.EndEdit(); if ( newCount == 0 ) { drv.Delete(); // ** Zeile selektieren BS.Position = dGVMaterial.Rows.Count; if ( dGVMaterial.Rows.Count > 1 ) dGVMaterial.Rows[dGVMaterial.Rows.Count - 2].Selected = true; }
-
Hallo Andreas,
es gibt zum Beispiel die Möglichkeit eine DataGridViewRow (/Band) auf Frozen=true zu setzen.
Ansonsten DataGridView.FirstDisplayedScrollingRowIndex-Eigenschaft auf die gewünschte Zeile setzen.
ciao FrankHallo Frank, ich hab den RowIndex gewählt und geht.
/Band Frozen was meinst du damit?
Das ist nicht klar, vielleicht brauch ich es ja nicht.
MUSS Kriterium Nicht editierbar -- Enable Eigenschaft.
Grüße Andreas
- Bearbeitet Andreas Bauer2 Freitag, 17. September 2010 10:36 vertippt
-
Hallo Andreas,
> /Band Frozen was meinst Du damit?
damit ist folgendes gemeint:
if (dGVMaterial.Rows.Count > 0)
dGVMaterial.Rows[0].Frozen = true;Damit kann eine Zeile beim Scrollen an ihrem Platz verbleiben, was mir ggf. vorteilhaft erschien, da Du ja ein gelbes und grüne Hintergrundfarbe so gleichzeitig immer im Blick halten kannst.
[DataGridViewRow.Frozen-Eigenschaft (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewrow.frozen.aspxMit Band ist DataGridViewBand gemeint, denn DataGridViewRow ist ja nur davon abgeleitet.
ciao Frank -
> /Band Frozen was meinst Du damit?
damit ist folgendes gemeint:
if (dGVMaterial.Rows.Count > 0)
dGVMaterial.Rows[0].Frozen = true;Damit kann eine Zeile beim Scrollen an ihrem Platz verbleiben, was mir ggf. vorteilhaft erschien, da Du ja ein gelbes und grüne Hintergrundfarbe so gleichzeitig immer im Blick halten kannst.
Hallo Frank,
ja du hast Recht. Suppertipp. Wußte ich auch nicht.
So habe ich den aktuellen Scan und die Abarbeitung im Blickfeld.
Grüße Andreas
-
Hallo Frank,
ich kann es fast nicht glauben.
Doch noch eine Frage.
Es geht wieder nicht, wie es benötige.
http://www1.minpic.de/bild_anzeigen.php?id=124317&key=43956841&ende
Siehe void btnTakeOverScan_Click
Frozen Eigenschaft, DataGridView richtig einsetzen.
Wie?
Oben aktuelle Daten.
Unten, letzte Zeile à Abarbeitung.
Wäre nochmals nett. Danke im voraus!
Grüße Andreas
//Die Idee ist gut. //Wenn die Liste > Einträge hat, bis die Scrollbar kommt, sollte die erste Zeile stehen bleiben. //Immer sichtbar sein. private void frmMaterialSettings_Load(object sender, EventArgs e) { if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = true; } Wo ist der richtige Platz für den Code? private void btnDecrease_Click(object sender, EventArgs e) { private void btnTakeOverScan_Click(object sender, EventArgs e) { DataGridViewBand band; DataGridViewCellStyle style; if (BS.Position > 0) { band = dGVMaterial.Rows[BS.Position]; band.Frozen = false; style = new DataGridViewCellStyle(); style.BackColor = Color.White; band.DefaultCellStyle = style; } //for (int i = 0; i < dGVMaterial.Rows.Count; i++) //{ // dGVMaterial.Rows[i].Selected = false; //} DataTable dt = dataSetMaterialSettings.tblMaterial; DataRow dr = dt.NewRow(); dr["Charge"] = txtInputHandheldscanner.Text; dr["Count"] = 10; dt.Rows.InsertAt(dr, 0); int nNewCount = dGVMaterial.Rows.Count; // dGVMaterial.Rows[nNewCount-2].Selected = true; BS.Position = nNewCount; dGVMaterial.FirstDisplayedScrollingRowIndex = nNewCount-1; dGVMaterial.Rows[BS.Position].DefaultCellStyle.SelectionBackColor = Color.LightGreen; for (int i = 0; i < dGVMaterial.Rows.Count; i++) { if (i == 0) dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.Yellow; else if (i != BS.Position) dGVMaterial.Rows[i].DefaultCellStyle.BackColor = Color.White; //if (dGVMaterial.Rows.Count > 0) // dGVMaterial.Rows[0].Frozen = true; } band = dGVMaterial.Rows[BS.Position]; band.Frozen = true; style = new DataGridViewCellStyle(); style.BackColor = Color.WhiteSmoke; band.DefaultCellStyle = style; } Hier gibt es keinen C# Code http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewrow.frozen(v=VS.90).aspx Da habe ich noch geschaut. http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridviewband(v=VS.90).aspx
-
Hallo Andreas,
im Zweifelsfall schick mir mal das Projekt. Post(add)FranksSeite.de.
Wahrscheinlich steht folgende Zeile zu früh und eher an eine spätere Stelle verschoben werden:
if (dGVMaterial.Rows.Count > 0)
dGVMaterial.Rows[0].Frozen = true;
ciao Frank -
Im Zweifelsfall schick mir mal das Projekt. Post(add)FranksSeite.de.
Wahrscheinlich steht folgende Zeile zu früh und eher an eine spätere Stelle verschoben werden:
if (dGVMaterial.Rows.Count > 0)
dGVMaterial.Rows[0].Frozen = true;
ciao FrankGuten Morgen Frank,
ich hab's Dir zukommen lassen. Danke im Voraus.
Grüße Andreas
-
Hallo Frank,
falls es nicht geklappt hat. Anbei so die Datei. http://www.materialordner.de/odTY8339amvO7GVbM9wdIUMlmZWpyFjL.html
Grüße Andreas
-
wir sind gerade umgezogen (sorry), es kann noch etwas dauern ...
Hallo Frank,
kein Problem, nur nicht vergessen, ich sehe es ja dann. Wäre nett.
Viep Spass beim Umzug, falls Du immer noch dabei bist. Geht es in eine andere Stadt? Du erwähntest mal, dass du mehr ASP.NET,C# als nur das reine C# machen wolltest.
Schönes Wochenende
Andreas
-
Hallo Andreas, :-)
so nach vielen Kartons - wenig Intenet - und viel bei der Arbeit zu tun jetzt ein paar Dinge zu Deiner nächsten Frage, die ggf alle separat in neuen Fragen gestellt werden sollten.
Ich nehme mal an, die Frage von Dir ist:
- Wie kann ich es schaffen, dass die gelbe Zeile auch nach
mehrmaligem Drücken der „TakeOver“ Taste immer zusammen
mit der aktuellen angezeigt wird?
Oder allgemeiner für die anderen: wie kann ich es schaffen, dass trotz
Zufügung von beliebig vielen Zeilen im Grid immer sichtbar und gefärbt sind?
Ich habe in Deinem Projekt folgendes eingefügt:private void btnTakeOverScan_Click(object sender, EventArgs e) { if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = false; // . . . Dein vorheriger Quellcode if (dGVMaterial.Rows.Count > 0) dGVMaterial.Rows[0].Frozen = true; }
vielleicht nicht die beste Möglichkeit, aber da Dir die Zeit drängt, vielleicht schon mal ein Rettungsanker :-)
btw: Bin jetzt ein paar Stunden weg.
ciao Frank- Als Antwort markiert Andreas Bauer2 Montag, 11. Oktober 2010 21:23
-
Rettungsanker :-)
btw: Bin jetzt ein paar Stunden weg.
Hallo Frank,ja,machen wir es so, ich stelle ggf. eine neue Frage.
Evtl. machst du auch mal in Deine Sammlung First In, First Out was rein -- FiFo Prinzip.
Brauchen bestimmt mehrere. Wäre nett, wenn Du dann mal wieder komplett eingerichtet bist.
Interessehalber, ist Deine Firma oder bist du umgezogen? Weiter weg?
Grüße Andreas