Tab in Form überwachen
Sebastian Wieland
Hallo zusammenIh 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 SebastianDu 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 SebastianAm 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
HalloIch 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 Sebastian1. 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 AdrianZum 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 AdrianIch 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 SebastianJa, 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
Please sign in to leave a comment.
Comments
0 comments