Bestandsumlagerung
Thomas Faust
Hallo Zusammen,ich habe eine kleine Function-Butto-Regel erstellt, die den Lagerbestand der ausgewählten Zeile im "Transaktionsbericht Chargennummern" automatisch in ein anderes Lager umbucht.
Das funktioniert auch soweit, bis auf den Moment, an dem die abschießende Nachfrage 'Dieser Beleg kann nach den Hinzufügen....' erscheint.
Wie kann ich die beiden Buitton s auf dieser Form ansprechen, um einen Click darauf zu simulieren?
Irgendwie kann ich die Form (Type 0) nicht ansprechen. Liegt es daran, dass es sich um einen Dialog handelt. Irgendwie bin ich zur Zeit völlig ratlos.
By the way: Ist es möglich die Fenster, die automatisch bearbeitet werden ins Off zu verschieben, dass der Benutzer nichts von dem Vorgängen mitbekommt ?
Ich habe den Code angehängt und bin für jeden Hinweis dankbar.
Viele Grüße
Thomas
[CODE]
string ruleName = "GBC_001: TF Bestandsumlagerung";
string errorMessage = "Error in Function Button Rule '" + ruleName + "'";
try
{
string bemerkung;
string ItemCode = Matrix.GetFromUID(pVal.Form, "3").GetValue("1", pVal.Row - 1);
string Charge = Matrix.GetFromUID(pVal.Form, "3").GetValue("2", pVal.Row - 1);
string Menge = Matrix.GetFromUID(pVal.Form, "3").GetValue("4", pVal.Row - 1);
string Farbe = Matrix.GetFromUID(pVal.Form, "3").GetValue("U_Color", pVal.Row - 1);
string AusLager = Matrix.GetFromUID(pVal.Form, "3").GetValue("48", pVal.Row - 1);
int i = 0;
if (System.Convert.ToDouble(Menge) != 0)
{
MenuItem.GetFromUID("3080").Activate(); //activate new object by menu item
Form BestUmlag = Form.GetFormFromUID(customize.B1Connector.GetB1Connector().Application.Forms.ActiveForm.UniqueID);//get new form
TextEdit.GetFromUID(BestUmlag, "18").Value = AusLager;
Matrix.GetFromUID(BestUmlag, "23").SetValue("1", 0, ItemCode);
Matrix.GetFromUID(BestUmlag, "23").SetValue("10", 0, Menge);
Matrix.GetFromUID(BestUmlag, "23").SetValue("5", 0, "Rest");
Matrix.GetFromUID(BestUmlag, "23").SetValue("U_Color", 0, Farbe);
Matrix.GetFromUID(BestUmlag, "23").SetValue("U_CustDistNum", 0, Charge);
bemerkung = "Umlagerung ins Restelager: " + Menge + " kg, Charge: " + Charge;
TextEdit.GetFromUID(BestUmlag, "22").Value = bemerkung;
BestUmlag.Update();
/**** Click auf 'Hinzufügen wird ausgelöst ! ****/
BestUmlag.Items["1"].Click(Item.ClickType.Regular);
/************ Charge wird ausgewählt ************/
Form BatchAusw = Form.GetFormFromUID(customize.B1Connector.GetB1Connector().Application.Forms.ActiveForm.UniqueID);
Matrix Batch = Matrix.GetFromUID(BatchAusw, "4");
while (i <= Batch.Rows.Count - 1)
{
if (Batch.GetValue("0", i) == Charge)
{
Batch.SetValue("4", i,Menge.Replace(".",","));
break;
}
i++;
}
BatchAusw.Items["48"].Click(Item.ClickType.Regular);
BatchAusw.Items["1"].Click(Item.ClickType.Regular);
BatchAusw.Items["1"].Click(Item.ClickType.Regular);
BestUmlag.Items["1"].Click(Item.ClickType.Regular);
BestUmlag.Items["2"].Click(Item.ClickType.Regular);
Button.GetFromUID(pVal.Form, "2").Click(Item.ClickType.Regular);
}
else
{
MessageBox.Show("Von dieser Charge ist kein Bestand am Lager vorhanden!", "OK");
}
}
catch(System.Exception exe)
{
MessageBox.Show(errorMessage + ": \n" + exe.Message, "OK");
SwissAddonFramework.Messaging.Debug.WriteMessage(errorMessage + ": " + exe.Message, SwissAddonFramework.Messaging.Debug.DebugLevel.Exception);
}
[/CODE]
Thomas Faust
[quote name='Thomas Faust' timestamp='1319704757' post='20242']By the way: Ist es möglich die Fenster, die automatisch bearbeitet werden ins Off zu verschieben, dass der Benutzer nichts von den Vorgängen mitbekommt ?
[/quote]
JAJA, diese Visible-Eigenschaft ist schon etwas Feines
0
Please sign in to leave a comment.
Comments
0 comments