Datumsfeld wie bei SAP
Rafael Stalder
Hallo Zusammen.Habe eine Frage. Die Datumsfelder bei SAP sind so formatiert, dass Sie z.B. bei der Eingabe des Buchstabends "h" danach das Tagesdatum anzeigen.
Nun habe ich eine eigene Form mit einem selber erstellten Datumsfeld. Ist es hier auch möglich, das zu automatisieren oder muss man den Code hier selber erstellen (z.b. im LostFocus auf diverste Buchstaben, etc. abtesten) ?
Ich habe meine Form mit dem ScreenPainter erstellt.
Gruss
Rafael
Fritz Schwendemann
Hallo RafaelIch habe auch UDFs als Datumsfelder. Kann dort problemlos ein h eingeben und erhalte das Tagesdatum. UDF ist als Datumsfeld definiert.
Uebrigens kannst Du die Eingabe ja auch sofort mit dem Keydown-Event prüfen
if (pVal.CharPressed == 104) ....
Schönen Gruss
Fritz
Rafael Stalder
Hallo Fritzdanke für die Antwort.
Hast du dein UDF auch auf einer selber erstellten ScreenPainter-Form platziert?
Gruss Rafael
Fritz Schwendemann
Hallo RafaelNein, es sind "normale" UDFs, die ich über 'benutzerdefinierte Felder - Verwaltung' eingerichtet habe.
Schönen Gruss
Fritz
Rafael Stalder
Hallo Fritzja so funktioniert es bei mir auch. Allerdings nicht wenn ich eine eigene Form erstelle (mit ScreenPainter) und dort ein Feld platziere, obwohl es in der Datenbank als Datumsfeld abgespeichert ist...
Gruss Rafael
Manuel Marhold
Hi Rafael,die UserDataSource, an die das Feld gebunden ist, muss als DATE deklariert sein.
Rafael Stalder
Hallo Manuelwo definiere ich diese UserDataSource. Kann diese Eigenschaft im Screenpainter nirgends finden. Oder muss ich dies im Code selber machen?
Und wenn ja, wie heisst der genaue Befehl zum Setzen des Typs "Date" ?
Danke und Gruss
Rafael
Manuel Marhold
Hi Rafael,du sagtest, dass das Feld in der Datenbank selbst vom Typ Datum ist. Zeigst du in dem Feld den Wert aus der Datenbank an?
Ich arbeite nicht mit dem Screenpainter, kann da also nicht viel zu sagen..
Rafael Stalder
Hallo Manuelja der Wert aus der Datenbank wird angezeigt. Nur mache ich das in diesem Fall wahrscheinlich falsch. Ich arbeite nicht mit UserDataSources. Ich lese nur den Wert mit SQL aus, und schreibe ihn dann via SQL wieder in die Datenbank.
Hast du ein Codebeispiel, wie ich das ganze mit UserDataSources machen könnte?
Gruss Rafael
Manuel Marhold
Hi Rafael,daszu gibt es einiges im SDK-Help von SAP.
generell:
oForm.DataSources.UserDataSources.Add(, typ)
Dim oEdit as SAPBoUICom.EditText
oEdit = CType(oForm.Items.Item(ItemUID).Specific,SAPBoUICom.EditText)
oEdit.DataBind.Bound(True,,)
Rafael Stalder
Hallo Manueldanke für die Codesequenz. Muss die DataSource im FormLoad Event hinzugefügt werden, damit keine Fehlermeldung erscheint?
Gruss Rafael
Manuel Marhold
Hi Rafael,ja, und im before-event ;)
Das Laden der UDS (oForm.DataSources.UserDataSources.Item().ValueEx="") dann im bei DataLoad oder so
achja: das ist SAP-Standard-SDK, nicht coresuite.
das geht das etwas anders
Michael Egloff
Hallo zusammen,du kannst in der XML Datei die Datasource angeben, dass es ein Datum ist (wie Manuel schon gesagt hat).
Im Screenpainter weiss ich nicht wies geht, aber von Hand :-)
so:
tpye=10 definiert dir die Datasource als Datum.
Dann musst du noch im Textfeld sagen, dass es zu dieser Datasource gehört, so:
Hier definiert das Element die Verbindung zur Userdatasource.
Rafael Stalder
Hallo Michaeldanke für die Hilfe.
Muss für jedes Datumsfeld eine eigene DataSource definiert werden oder kann man eine DataSource mehrfach "benutzen"?
Gruss Rafael
Manuel Marhold
Hi Rafael,die Daten, die du in das Feld eingibst, werden in der DataSource gespeichert. Also, pro Feld eine DataSource
Rafael Stalder
Hallo Zusammen.Super! Es hat funktioniert! :D
tausend dank euch beiden!
Noch eine kurze Frage. Gibt es eine Liste mit den verschiedenen Types für DataSources? Möchte das gleiche auch noch mit einem Mengenfeld machen.
Gruss und Danke
Rafael
Rafael Stalder
Habe die Liste schon gefunden.Hier noch für diejenigen, welche die Types noch gerne wissen würden:
LongNumber = 0,
ShortNumber = 1,
Quantity = 2,
Price = 3,
Rate = 4,
Measure = 5,
Sum = 6,
Percent = 7,
LongText = 8,
ShortText = 9,
Data = 10
Gruss Rafael
Michael Egloff
Hallo Rafael,danke für die Liste!
0
Please sign in to leave a comment.
Comments
0 comments