Automatisieren von Multiple Records

Hallo,
da bin ich schon wieder. - So langsam kriege ich ein erstes Gef?hl f?r scriptcase. Aber nat?rlich stellen sich immer wieder neue Fragen.
Ich versuche gerade einen Stundenzettel als Multiple Records Form zu erstellen.
Darin sind entsprechend 7 Reihen, die bei einem Neueintrag automatisch vorgef?llt werden sollen.
Also beispielsweise w?hlt man die Kalenderwoche aus (wahrscheinlich ?ber ein Global vordefiniert) und die Form f?llt sich mit den entsprechenden Tagen, oder (abgefragt aus einer separaten Datei) Voreinstellungen, ob ein Projekttag frei war, oder nicht (soll aber ?nderbar bleiben).
Wie kann ich die einzelnen Zeilen im Formular ansprechen, um sie so oder ?hnlich ?ber ein script zu f?llen?

Ich bin gespannt, ob das geht.

Fuer jedes Record bekommst do ein event.
Um alles besser zu verstehen stelle ich folgendes vor um alles besser zu verstehen.
In event rufe entweder ein stueck php code and wo eine spalte Kommentar in ein log file geschrieben wirdt,
oder mach einfach ein: echo “OnBeginInsert”; oder echo “OnValidate”; usw auf jedem event.
Start das Programm und guck an was da dann so passiert. Dass hilft um alles besser zu verstehen.

Hi rr, dank u wel f?r die schnell Antwort.
Ich habe mir den event f?r MYSQL angeguckt, glaube aber, das hilft mir nicht weiter.
Es sollen noch gar keine Daten ?bertragen werden. Vielmehr geht es darum die ‘Initial Values’ der einzelnen Felder als Startvorgaben individuell setzen zu k?nnen ohne dass schon ein Record entsteht.

Als Beispiel hier ein Bild des Formulars:

ATTACH=CONFIG]2108[/ATTACH]

Die Presets des Status h?ngen vom Tag ab und werden separat abgerufen, das Tagesdatum errechnet und auch die Startzeiten sollen als Presets aus einer separaten Tabelle abgerufen werden.
Wenn ich einen einzelnen Datensatz anlege, kann ich die Felder einfach ?ber php ansprechen, aber wie mache ich das, wenn ich mehrere Zeilen von Feldern habe?

Ich habe es einfach mal aufs Geratewohl so probiert:

for($count = 0; $count < 7; $count++)
{
{Bemerkungen[$count]} = $count;
}

Aber das f?hlt mir die Zeilen leider auch nicht… Lasse ich in der Schleife [$count] weg, erhalte ich in allen Feldern die 6, also nur den letzten Wert.

Stundenzettel.jpg

ein St?ckchen weiter

Ok, ich bin ein St?ckchen weiter, da ich verstanden habe dass sich onLoadRecord auf den jeweiligen Datensatz bezieht.
Damit kann ich das Datum schon einmal gut ausf?llen lassen.
Nun m?chte ich noch aus einer weiteren Tabelle Statusabfragen machen.

Also der Status von Tag 1 soll aus einer anderen Datenbank-Tabelle als Wertvorschlag gelesen werden, die auch ?ber ein Datumsfeld und ein Statusfeld verf?gt, dann Tag 2 und so weiter.

in onApplicationinit habe ich daf?r dieses Global Array aufgesetzt.

[Kalenderdaten] = mysql_query("SELECT
FPID,
PID,
Status,
Datum,
Beginn,
Ende,
Bemerkung
FROM
Kalender
WHERE
(FPID = ‘2’) AND
(PID = ‘0’) AND
(Status = ‘Schedule’) AND
(Datum >= CURRENT_DATE() - INTERVAL 7 DAY) AND
(Datum <= CURRENT_DATE() + INTERVAL 7 DAY)
ORDER BY
Datum ");

Die Daten davon will ich dann pro Record auslesen.
Allerdings f?ngt es hier schon an: Die Datenbankverbindung, die scriptcase f?r die App aufgebaut hat, gilt hier nicht.
Und selbst wenn ich eine eigene Verbindung herstelle und die Abfrage im SQL-Builder Ergebnisse erzeugt, bleibt das Array leer.
Irgendwo hakt es bei mir im Kopf.

Jemand eine Idee?

Das Array musst Du in onScriptInit f?llen.


[kalenderdaten] = array();
$my_query = "SELECT FPID, PID, Status, Datum, Beginn, Ende, Bemerkung
                          FROM Kalender
                          WHERE (FPID = '2') AND (PID = '0') AND (Status = 'Schedule') AND (Datum >= CURRENT_DATE() - INTERVAL 7 DAY) AND (Datum <= CURRENT_DATE() + INTERVAL 7 DAY)
                          ORDER BY Datum ";

sc_lookup(ds,$my_query); //damit hast Du schon mal das Array
if($ds === false)
{
    echo "Mist! DB-Fehler";
}
else
{   
    [kalenderdaten] = $ds; /mach mer's global;
}

Damit sollte es dann gehen.

Du kannst aber auch pro Datensatz (onLoadRecord) eine Abrage machen und Dir nur die Daten f?r diesen Tag holen.
K?nnte dann so aussehen.


$my_query = "SELECT FPID, PID, Status, Datum, Beginn, Ende, Bemerkung
                          FROM Kalender
                          WHERE (FPID = '2') AND (PID = '0') AND (Status = 'Schedule') AND (Datum = '{datumsfeld}')";

sc_lookup(ds,$my_query); 
if($ds === false)
{
    echo "Mist! DB-Fehler";
}
else
{   
    {status} = {ds[0][2]};
    {bemerkung} = {ds[0][3]};
    usw...
}

Sollte ebenfalls funktionieren.

jsb

Vielen DAnk jsbinca,
ich habe mich dann tats?chlich auch f?r die zweite Variante entschieden. Ich dachte zuerst, dass ich mit der ersten Variante Abfragezeit spare, aber die verbrauche ich dann doch wieder f?r die intensivere Analyse im Anschluss.
Jetzt k?mpfe ich mit der Zeitberechnung, aber das schreibe ich besser in einen neuen Thread.
Danke jedenfalls f?r die schnelle Hilfe.