Tab in Form überwachen

Sebastian Wieland

Hallo zusammen
Ih möchte im Form "Artikelstamm" den Tab "Bestandsdaten" überwachen. Das heisst, sobald jemand diesen Tab aktiviert, möchte ich ein Feld aus diesem Tab aktualisieren.
Hat jemand ein Idee, wie ich das möglichst ohne Performanceverlust lösen kann?
Gruss und besten Dank.
Sebastian

Manuel Grenacher

Hallo Sebastian

Du musst 2 Events anmelden im FormLoad UID 150:


//Beim Click...
Folder.GetFromUID(form,"26").AddHandler_Click(ModeComponent.FormModes.ALL, FolderClick);

//Beim Navigieren...
form.AddHandler_FormData(Form.FormDataType.ALL, null, FolderGridData);


...



private void FolderClick(Click e)
{
UpdateYourData();
}

private void FolderGridData(Click e)
{
UpdateYourData();
}


mfg
Manuel

Adrian Meier

Hallo Sebastian

Am einfachsten und mit dem geringsten Aufwand kannst Du das mit coresuite curstomize tun. Mehr Informationen dazu findest Du unter folgender URL:
http://www.coresuite.ch/index.php?id=435

HTH, Adrian

Sebastian Wieland

Hallo
Ich habe die Lösung gewählt, welche Manuel vorgeschlagen hat (wir arbeiten noch nicht mit coresuite customize). Nun habe ich noch zwei Probleme:

1. Nachdem auf den Tab "Bestandsdaten" geclickt wird, wird meine Funktion aktiviert. Dort mache ich meine Auswertung und setzte den PaneLevel meines forms für den Tab "Bestandsdaten". Nach einem Update zeigt das Form dann auch die Felder aus dem Tab "Bestandsdaten, allerdings ist immer noch der vorhergehende Tab als aktiv dargestellt (hellgrau und hervorgehoben). Wie kann ich den aktiven Tab wechseln? Habe schon einiges probiert und noch keinen Erfolg gehabt.

2. In meiner Auswertung rufe ich für jede Zeile der Matrix in "Bestandsdaten" (Item=28) eine Query auf und möchte den Wert in die Matrix zurückschreiben. Die Query wird erfolgreich ausgeführt und ich bekommen die richtigen Werte zurück. Allerdings bekomme ich beim Zurückschreiben mit:
((SAPbouiCOM.EditText)mTable.Columns["U_NextInv"].Cells.Specific).Value = sql[0].ToString();
folgende Fehlermeldung beim Debuggen:
There is no source code available for the current location.
Hat jemand dazu eine Erklärung?

Besten Dank für eure Hinweise.
Gruss.
Sebastian

Adrian Meier

Hallo Sebastian

1. Mit einem Click auf das "Register" wird dieses aktiviert.

2. Benutz doch die Framework-Methode: SwissAddOnFramework.UI.Components.Matrix.GetFromUID(form, "matrixID").SetValue(rowIndex, columnUID, value);


HTH, Adrian

Sebastian Wieland

Sali Adrian
Zum Punkt 1: Ist OK. Das habe ich bereits probiert, da ich aber den Tab auf einen Click überwache wird meine Funktion anschliessend wieder aktiviert. Natürlich weiss ich dann, dass dieser Event von mir ausgelöst wurde und kann ihn entsprechend behandeln. Aber ich bin kein grosser Fan von zu vielen Events und habe darum gehofft, dass es eine andere Lösung gibt.

Zum Punkt 2: Es wird immer noch dieselbe Fehlermeldung ausgelöst. Seltsam ist, dass ich im selben AddOn die Funktion ((SAPbouiCOM.EditText)mTable.Columns["U_Referenz"].Cells.Specific).Value = sql[0].ToString(); bereits verwende. Dort kann ich ohne Probleme debuggen. Daher gehe ich davon aus, dass ich keine veralteten DLL's verwende. Hast du eine Idee, was hier das Problem sein könnte?

Merci und Gruss.
Sebastian

Sebastian Wieland

Sali Adrian
Ich glaube, ich habe das Problem erkannt. Das UDF, in welches geschrieben wird, ist vom Typ "Datum / Uhrzeit". Könnte das eventuell das Problem sein?
Gruss.
Sebastian

Adrian Meier

Hallo Sebastian

Ja, das wird das Problem sein. Wenn Du ein Feld vom Typ Datum hast, musst du das richtige Format verwenden.

Beispiel:
05.09.2007 musst du als folgenden String reinschreiben: 20070905


HTH, Adrian
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post