- Beiträge: 31
Beim Start der Runtime Datums-Parameter mitgeben, um SQL-Abfrage einzuschränken
- Kai
- Autor
- Offline
- Benutzer
Weniger
Mehr
3 Jahre 1 Monat her - 3 Jahre 1 Monat her #4382
von Kai
Beim Start der Runtime Datums-Parameter mitgeben, um SQL-Abfrage einzuschränken wurde erstellt von Kai
Hallo Robert, ich hoffe, Sie haben eine gute Idee für folgendes Problem.
Ich benutze des SQL-Adapter auf der READ-Seite und möchte die Abfrage umfangreichen Tabelle durch Eingabe eines von/bis-Datums einschränken. Der Kunde bekommt eine Runtime und soll auf möglichst einfache Weise diese Parameter beim Starten eingeben können.
Über den NetScribt-Adapter ist es mir schon gelungen, einen Start-/Endwert mitzugeben, hier fehlt mir Möglichkeit, diese Parameter beim Starten der Runtime zu übergeben.
.NET:
Parameter ["DatumPeriodenbeginn"].Value = "01.06.2021";
Parameter ["DatumPeriodenende"].Value = "01.08.2021";
SQL:
select * from xxx where TRANSACTIONDATE between '$DatumPeriodenbeginn$ 00:00:00' and '$DatumPeriodenende$ 00:00:00'
Ich benutze des SQL-Adapter auf der READ-Seite und möchte die Abfrage umfangreichen Tabelle durch Eingabe eines von/bis-Datums einschränken. Der Kunde bekommt eine Runtime und soll auf möglichst einfache Weise diese Parameter beim Starten eingeben können.
Über den NetScribt-Adapter ist es mir schon gelungen, einen Start-/Endwert mitzugeben, hier fehlt mir Möglichkeit, diese Parameter beim Starten der Runtime zu übergeben.
.NET:
Parameter ["DatumPeriodenbeginn"].Value = "01.06.2021";
Parameter ["DatumPeriodenende"].Value = "01.08.2021";
SQL:
select * from xxx where TRANSACTIONDATE between '$DatumPeriodenbeginn$ 00:00:00' and '$DatumPeriodenende$ 00:00:00'
Letzte Änderung: 3 Jahre 1 Monat her von Kai.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
3 Jahre 1 Monat her - 3 Jahre 1 Monat her #4383
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Beim Start der Runtime Datums-Parameter mitgeben, um SQL-Abfrage einzuschränken
Hallo Kai,
das ist eine Interessante Anforderung
Einmal würde es über das Batch Modul gehen mittels der Option /SetParamater NAME=Wert. Dann würde es über eine Parameterdatei funktionieren. Die Datei kann über „Menü->Bearbeiten->Parameter“ zugewiesen werden. Hier werden die Parameter vor jeder Ausführung (auch über den Designer) aus dieser Datei gelesen. Weitere Infos dazu finden Sie in der Hilfe zu den FlowHeater Parametern bzw. dem Batch Modul .
Ich denke aber, dass Sie das etwas komfortabler haben möchten, so dass der Benutzer die Parameter/Werte vor der Ausführung direkt eingeben kann?
Das würde mit dem .NET Script Heater und unten stehenden kleinen C# Skript funktionieren. Im Anhang finden Sie ein kleines Beispiel dazu. Die Werte werden hier vor der Ausführung abgefragt und als FlowHeater Paramater gesetzt, so dass diese dann anschließend verwendet werden können, z.B. als WHERE Einschränkung für den SELECT im SQL Server Adapter .
Im .NET Script Heater muss die Option „Ausführen bei Start“ aktiviert werden. Weiterhin ist es notwendig auf dem Reiter „Erweitert“ unter „Using / Import“ die Zeile
using Microsoft.VisualBasic;
sowie unter „DLLs“ die Zeile
Microsoft.VisualBasic.dll
hinzuzufügen, siehe Screenshot.
Das Skript fragt die zwei Datumswerte ab und setze die entsprechenden Parameter für die weitere Verarbeitung. Klickt der Benutzer auf Abrechen wird auch die Definition abgerochen.
das ist eine Interessante Anforderung
Einmal würde es über das Batch Modul gehen mittels der Option /SetParamater NAME=Wert. Dann würde es über eine Parameterdatei funktionieren. Die Datei kann über „Menü->Bearbeiten->Parameter“ zugewiesen werden. Hier werden die Parameter vor jeder Ausführung (auch über den Designer) aus dieser Datei gelesen. Weitere Infos dazu finden Sie in der Hilfe zu den FlowHeater Parametern bzw. dem Batch Modul .
Ich denke aber, dass Sie das etwas komfortabler haben möchten, so dass der Benutzer die Parameter/Werte vor der Ausführung direkt eingeben kann?
Das würde mit dem .NET Script Heater und unten stehenden kleinen C# Skript funktionieren. Im Anhang finden Sie ein kleines Beispiel dazu. Die Werte werden hier vor der Ausführung abgefragt und als FlowHeater Paramater gesetzt, so dass diese dann anschließend verwendet werden können, z.B. als WHERE Einschränkung für den SELECT im SQL Server Adapter .
Im .NET Script Heater muss die Option „Ausführen bei Start“ aktiviert werden. Weiterhin ist es notwendig auf dem Reiter „Erweitert“ unter „Using / Import“ die Zeile
using Microsoft.VisualBasic;
sowie unter „DLLs“ die Zeile
Microsoft.VisualBasic.dll
hinzuzufügen, siehe Screenshot.
Das Skript fragt die zwei Datumswerte ab und setze die entsprechenden Parameter für die weitere Verarbeitung. Klickt der Benutzer auf Abrechen wird auch die Definition abgerochen.
Code:
public object DoWork()
{
string s;
// 1. Parameter abfragen
s = Interaction.InputBox("Format = dd.mm.yyyy", "DatumPeriodenBeginn");
if (s.Length == 0)
throw new Exception("Benutzerabbruch");
// Parameter setzen
Parameter["DatumPeriodenBeginn"].Value = s;
// 2. Parameter abfragen mit Standardwertvorgabe = aktuelles Datum
s = Interaction.InputBox("Format = dd.mm.yyyy", "DatumPeriodenEnde", DateTime.Now.ToString("dd.MM.yyyy"));
if (s.Length == 0)
throw new Exception("Benutzerabbruch");
// Parameter setzen
Parameter["DatumPeriodenEnde"].Value = s;
// Rückgabe wird für "Ausführen bei Start" nicht benötigt!
return null;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Letzte Änderung: 3 Jahre 1 Monat her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Kai
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 31
3 Jahre 1 Monat her #4386
von Kai
Guten Morgen Robert,
perfekt, genauso, wie ich es mir erhofft habe, Danke!
perfekt, genauso, wie ich es mir erhofft habe, Danke!
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.269 Sekunden