Stücklisten-Artikel auf Alternativ setzten
Raphael Strotz
Hallo zusammen!Ich stehe seit mehreren Stunden vor einer Wand die ich nicht überwinden kann.
Mein Aufgabe ist:
Wenn in einem Angebot ein Artikel hinzugefügt wird, welcher eine Stückliste darstellt, so sollen die Stücklistenartikel auf Alternativ gesetzt werden.
Dies geht noch ohne Probleme, sobald aber in dieser Stückliste noch weitere Stücklisten sind geht mein Programm Code nicht mehr auf.
Normalerweise endet es in einem Crash!
Jetzt frage ich euch, gibt es bereits etwas was mir helfen kann oder könnt ihr mir helfen? Es können bis 5 Stücklisten in einander sein.
Dies ist mal ein Beispiel:
Stückliste
--Artikel
--Artikel
--Stückliste
------Artikel
------Artikel
------Stückliste
----------Artikel
----------Artikel
------Artikel
--Artikel
Artikel
Ich kann im moment kein PrintScreen reinstellen aber hoffe trotzdem das ihr mir helfen könnt!
Bisheriger Code mit nur einer Stückliste:
//Matrix deklarieren.
Matrix matrix = Matrix.GetFromUID(pVal.Form, "38");
//ItemCode aus Matrix auslesen.
string itemCode = matrix.GetValue("1", pVal.Row-1);
//Stückliste deklarieren.
SAPbobsCOM.ProductTrees tree = (SAPbobsCOM.ProductTrees) SwissAddonFramework.B1Connector.GetB1Connector().Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductTrees);
try
{
//Testen ob aktueller Artikel ein Stücklistenhaupartikel ist. (ItemCode = Stücklistenhauptartikel)
if(tree.GetByKey(itemCode))
{
int count = tree.Items.Count;
for(int i=0; i{
//Durch Stückliste gehen und Kommentar in Stringvariable schreiben.
tree.Items.SetCurrentLine(i);
// Alternativ setzen
matrix.SetValue("257", pVal.Row+i, "A");
}
}
}
catch(System.Exception e)
{
return true;
}
return true;
Raphael Strotz
Habe nun eine "nicht ganz korrekte" lösung
try
{
//Matrix deklarieren.
Matrix matrix = Matrix.GetFromUID(pVal.Form, "38");
//ItemCode aus Matrix auslesen.
string itemCode = matrix.GetValue("1", pVal.Row-1);
//Stückliste deklarieren.
SAPbobsCOM.ProductTrees tree = (SAPbobsCOM.ProductTrees) SwissAddonFramework.B1Connector.GetB1Connector().Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductTrees);
//Testen ob aktueller Artikel ein Stücklistenhaupartikel ist. (ItemCode = Stücklistenhauptartikel)
if(tree.GetByKey(itemCode))
{
// Auf Regulär setzen
matrix.SetValue("257", pVal.Row-1, "");
// Debug Msg
MessageBox.Show("Artikel '" + itemCode + "' ist eine Stückliste", "OK");
}
else
{
// Auf Alternativ setzten
matrix.SetValue("257", pVal.Row-1, "A");
// Debug Msg
MessageBox.Show("Artikel '" + itemCode + "' wird auf 'Alternativ' gesetzt", "OK");
}
// Return
return true;
}
catch(System.Exception e)
{
// Error Msg
MessageBox.Show(e.Message, "OK");
// Return
return true;
}
0
Please sign in to leave a comment.
Comments
0 comments