Hi,
ich hatte gehofft das jemand vielleicht ein Beispiel hat an dem ich mich orientieren kann.
Der Agent soll hinterher täglich laufen (nachts) und bei den Firmendokumenten mit einer Kundennummer
per ODBC die Umsatzwerte (Jahr, Vorjahr, Vor-Vorjahr) in die entsprechenden Felder schreiben. Das Beschreiben der Felder ist kein Problem.
Ich habe mir das mit den einfachen Aktionen mal angesehen. Bei der Auswahl kann ich "nach Formular" anwählen und auch "nach Beispielmaske" was muss ich denn im Feld eintragen wenn ich nur die Kunden mit Kundennummer rausfiltern will. ">0" klappt scheinbar nicht.
Ich habe mir ja schon Gedanken gemacht. Genauer gesagt ein paar Formeln. Mir fehlt aber noch die Logik.
/ Alle Dokumente des Forms "Kunde" durchlaufen und die Abfrage der Variable "Kunde" /
Bei einem Formelagenten kann ich die Auswahl nur über einfache Aktionen machen, oder?
Hier meine Bausteine:
'Jahre zweistellig zusammenbauen';
JahrJJ:= @Right(@Text(@Year(@Now));2);
VorjahrJJ:= @TextToNumber(JahrJJ)-1;
VVorjahrJJ:= @TextToNumber(JahrJJ)-2;
"Hier müsste wohl ne Schleife hin, oder";
"Kundennummer ermitteln";
Kunde:= @GetField("com_Kundennummer");
@If(@IsNull(Kunde);"";
"SQL-Strings bilden";
sqlJ:= "SELECT SUM(UXNWEF) AS SUM FROM SRVAS01.ANCRADTA.UMSSTAL1 WHERE UXKDNR = " + @Text(Kunde) + " AND UXERJJ = " + @Text(JahrJJ);
sqlVJ:= "SELECT SUM(UXNWEF) AS SUM FROM SRVAS01.ANCRADTA.UMSSTAL1 WHERE UXKDNR = " + @Text(Kunde) + " AND UXERJJ = " + @Text(VorjahrJJ);
sqlVVJ:= "SELECT SUM(UXNWEF) AS SUM FROM SRVAS01.ANCRADTA.UMSSTAL1 WHERE UXKDNR = " + @Text(Kunde) + " AND UXERJJ = " + @Text(VVorjahrJJ);
"Umsatz ermitteln aktuelles Jahr";
xRes:=@DbCommand("ODBC" ; "DSN" ; "dbreader" ; "dbreader" ; sqlJ);
ergJ := @If(
@IsError(xRes);
"Keine Berechnung möglich";
xRes);
ergJ;
@SetField("com_sales_UL"; ergJ);
"Umsatz ermitteln Vorjahr";
xRes:=@DbCommand("ODBC" ; "DSN" ; "dbreader" ; "dbreader" ; sqlVJ);
ergVJ := @If(
@IsError(xRes);
"Keine Berechnung möglich";
xRes);
ergVJ;
@SetField("com_sales_UVJ"; ergVJ);
"Umsatz ermitteln Vor-Vorjahr";
xRes:=@DbCommand("ODBC" ; "DSN" ; "dbreader" ; "dbreader" ; sqlVVJ);
ergVVJ := @If(
@IsError(xRes);
"Keine Berechnung möglich";
xRes);
ergVVJ;
@SetField("com_sales_UVVJ"; ergVVJ)
);
Hallo René,
ich hab jetzt einfach mal aus meinen Fundus ein bisschen Script kopiert. Evtl. kannst du dich ja daran orientieren. Aber Vorsicht, da ist keinerlei Fehlerroutine drin. Am Ende sind alle Dokumente der Form "Person" in der dc. Hoffe, dass es dir ein wenig hilft.
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As Notesdocumentcollection
Dim doc as Notesdocument
set db = s.currentdatabase
Dim Formel As String
Formel = {Form="Person"}
Set dc = db.Search( Formel, Nothing, 0)