Bei Aktualisieren in ein leeres Feld schreiben
Daniel Reust
HalloIch möchte via Optimizer ein leeres UDF befüllen, das SQL Query habe ich soweit fertiggestellt, nur schreibt er keinen Wert in das Feld.
[CODE]
IF $[OCLG.U_SWA_CT_Equipment] = ''
BEGIN
Select $[OCLG.U_SWA_CT_Equipment] = 'TEST'
END
[/CODE]
Also wenn das UDF Equipment in den Aktivitäten leer ist, soll vor einem Klick auf Aktualisieren TEST hineingeschrieben werden.
[attachment=337:zeile.PNG]
Hat jemand eine Idee?
Lorenz Stierlin
Hallo Herr ReustIch empfehle Ihnen dafür C# zu verwenden anstatt SQL.
Hier ein Beispiel:
try {
TextEdit equipment = TextEdit.GetFromUID(pVal.Form.UDFForm, "U_SWA_CT_Equipment");
if (equipment.Value.Length == 0) {
equipment.Value = "Test";
}
} catch (Exception ex){
MessageBox.Show(ex.ToString(), "OK");
}
return true;
Und hier die Konfiguration im Optimizer
Type:CSCODE
Form Type: 651
Item UID: 1
Event Type: ItemPressed
Before Event: Y
Ich hoffe das hilft Ihnen weiter.
Freundliche Grüsse,
Lorenz
Daniel Reust
Hallo Herr StierlinBesten Dank für die Antwort, das funktioniert wunderbar.
Eine Frage hat sich noch ergeben, wie kann ich anstelle von "TEST" ein SQL Query hinterlegen?
Freundliche Grüsse
Daniel Reust
Lorenz Stierlin
Hallo Herr ReustHier ein Beispiel für eine SQL Query:
//Abteilung des angemeldeten Benutzers auslesen
string user = SwissAddonFramework.B1Connector.GetB1Connector().UserId.ToString();
string query = @"SELECT Department FROM OUSR WHERE USERID = @@USER";
query = query.Replace("@@USER", user);
using (System.Data.SqlClient.SqlDataReader sdr = SwissAddonFramework.B1Connector.GetB1Connector().ExecuteQuery(query))
{
if (sdr.Read())
{
string result = sdr["Department"].ToString();
}
}
Anschliessend können Sie den erhaltenen Wert der Query dem UDF zuweisen: equipment.Value = result;
Ich hoffe das hilft Ihnen weiter.
Freundliche Grüsse,
Lorenz
Daniel Reust
Perfekt, besten Dank!Freundliche Grüsse
Daniel Reust
0
Please sign in to leave a comment.
Comments
0 comments