App-Link #994 Ad hoc Reports aufbauend auf bestehenden Views in App-Schemen als Text oder CSV -- {0r}

Voraussetzungen:
- Schemen sind zulässig
- Angemeldeter Benutzer ist berechtigt
- View endet mit dem Namen "_qry"


Vorteile:
- Wenn bereits passende Views vorhanden sind,
kann man diese ohne Programmänderung verfügbar machen. ( Berechtigung prüfen )

- Man kann nach einem beliebigen Text in den Zeilen filtern. (z.B. Erfolg)

- Die Ausgabe ist als Text(html) oder csv möglich.

- Neben "download" steht auch die Funktion "als eMail senden" zur Verfügung.
(auch bei verwalteten Gastsitzungen möglich -- https://support.google.com/chrome/a/answer/3017014)



Nachteil:
- z.B. keine Summen -- also eher CSV nutzen und per Tabellenkalkulation nutzen.

--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=993


--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=990

##2038 demo-online -- -
- 1 -    (TxtDoc-2025-12-01.html)


App-Link #958 Kosten -- Online Spesen -- {1}

Für alle Kosten im Aussendienst zu verwenden.

Bei Problemen: +43 664 3376423


Dateien bevorzugt als kompakte .html oder .txt angeben bzw. anlegen.

--> https://jobst-software.net/aea_cos/

##2009 demo-online -- Hinweis: Bitte vorerst nur den Steuercode 0 (0%) verwenden, da die Buchhaltung diese Arbeit übernimmt.
- 2 -    (TxtDoc-2025-12-01.html)


App-Link #968 ATodo -- für Termine, für die es bei Auftr. & Co keine Zeilen gibt -- {2}

Also Todo für den Rest,
und man hat es im
- Kalender für Alles
- Protokoll.

--> /a_todo4/

##2020 demo-online -- -
- 3 -    (TxtDoc-2025-12-01.html)


ADialog #1012 Bereitschaft -- {d}

<dialog id="dialog_todo_pos_details">
<form> <input name="json_input_ele_no" readonly type="hidden" />
<label>von</label> <input name="von" type="time" />
<label>bis</label> <input name="bis" type="time" />
<hr />
<label>erreichbar unter</label> <input name="erreichbar_unter" />
<label>Bemerkung</label> <input name="Bemerkung" />
<hr />
<label>Status</label> <input name="Bereitschaft_Status" list="Bereitschaft_Status_LIST" />
</form>

<button name="btnOK" >OK</button>
<button name="btnCancel" >abbrechen</button>
</dialog>




<datalist id="Bereitschaft_Status_LIST">
<option>vorgeschlagen<option>
<option>beauftragt<option>
</datalist>
##2068 demo-online -- -
- 4 -    (TxtDoc-2025-12-01.html)


App-Link #987 ATodo -- individuelle Felder ohne Datenbank/Programm-Änderung per PostgreSQL-Json-Feld und HTML-Dialog -- {d}

z.B. für
- Ad-hoc-Inventur
- Ad-hoc-Test





Für Umsetzung s.a.

--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=985


--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=984

##2036 demo-online -- -
- 5 -    (TxtDoc-2025-12-01.html)


ADialog #985 Ad-hoc-Inventur -- {d}

<dialog id="dialog_todo_pos_details">
<form> <input name="json_input_ele_no" readonly type="hidden" />
<label>Menge</label> <input name="Menge" type="number" />
<label>Ort</label> <input name="Ort" />
</form>

<button name="btnOK" >OK</button>
<button name="btnCancel" >abbrechen</button>
</dialog>

--> https://jobst-software.net/ainfojs2000/InfoPrint_Default?only_REPORT_KNZ=TxtDoc&search_text=%20%23987%20


--> https://jobst-software.net/a_todo4/?submitaction=%2F%3D%2F&datatable_primarykey=5

##2034 demo-online -- -
- 6 -    (TxtDoc-2025-12-01.html)


ADialog #984 Ad-hoc-Test -- {d}

<dialog id="dialog_todo_pos_details">
<form> <input name="json_input_ele_no" readonly type="hidden" />
<label>Test</label> <input name="Test" />
<label>Ergebnis</label> <input name="Ergebnis" />
</form>

<button name="btnOK" >OK</button>
<button name="btnCancel" >abbrechen</button>
</dialog>

--> https://jobst-software.net/ainfojs2000/InfoPrint_Default?only_REPORT_KNZ=TxtDoc&search_text=%20%23987%20


--> https://jobst-software.net/a_todo4/?submitaction=%2F%3D%2F&datatable_primarykey=6

##2033 demo-online -- -
- 7 -    (TxtDoc-2025-12-01.html)


App-Link #960 Zeit -- Online Hr Calendar -- {l100-cal}

Bitte Urlaube möglichst 2 Wochen vorher eintragen 
(bei mehr als 2 Tagen 1 Monat vorher)

--> /ahr_cal/

##2011 demo-online -- -
- 8 -    (TxtDoc-2025-12-01.html)


App-Link #961 Umfragen -- Online Q&A -- {l100-qa}

Nicht abgegebene Umfragen,
werden als Stimmenthaltung gewertet.

Bei entsprechender Beteiligung,
gilt dann die Mehrheit der Abgaben.

--> /aqa_quest/

##2013 demo-online -- -
- 9 -    (TxtDoc-2025-12-01.html)


App-Link #957 Zeit -- Eingabe-Urlaub -- {l110-cal}

Die Zeitsumme sollte die normale Arbeitszeit des jeweiligen Tages ergeben.

z.B. bei Vollzeit
- Mo bis Do 8 Stunden
- und Fr 4 Stunden
##2008 demo-online -- -
- 10 -    (TxtDoc-2025-12-01.html)


App-Detail #1013 Access/ODBC Details dokumentieren

z.B.:
-----
- Feld "Strasse"

"EventProcPrefix": "Strasse", "Name": "Strasse", "ControlType": 109, "ControlSource": "Strasse", "DecimalPlaces": 255, "StatusBarText": "AdrZl3", "EnterKeyBehavior": "Falsch", "AllowAutoCorrect": "Wahr", "Visible": "Wahr", "DisplayWhen": 0, "Vertical": "Falsch", "Enabled": "Wahr", "Locked": "Falsch", "FilterLookup": 1, "AutoTab": "Falsch", "TabStop": "Wahr", "TabIndex": 4, "ScrollBars": 0, "Left": 1814, "Top": 1814, "Width": 3515, "Height": 340, "ForeColor": 0, "TextAlign": 0, "ColumnWidth": -1, "ColumnOrder": 0, "ColumnHidden": "Falsch", "Section": 0, "InSelection": "Falsch", "LineSpacing": 0




Wenn man die Details einfangen kann,
bekommt man z.B. einen Formularentwurf.
( alternativ mit Textdateien per backupMod.bas )

--> https://jobst-software.com/forms11.gif


--> https://jobst-software.com/download/backupMod.bas

##2071 demo-online -- (Script)



z.B.:
-----
Eine Tabelle mit
- Anwendungsnamen
- Objekt-Typ
- Objekt-Namen
- Feld-namen
- Eigenschaften
generieren.


AcApp AcObjType AcObj AcFd AcProps
--------------------------------------------------------
...
fri Form Adress-Pflege Strasse "Name": "Strasse", ...
fri Form Adress-Pflege Plz "Name": "Plz", ...
...




Public Function accweb_AcObjs_to_Tab()
Dim dbs As Database
Set dbs = DBEngine(0)(0)

Dim not_propNames As String
Let not_propNames = "DateCreated, LastUpdated, ..."


Dim acFds As Recordset
Set acFds = dbs.OpenRecordset("SELECT * from AcFds")


accweb_AcObj_to_Tab dbs, "Table", dbs.TableDefs, not_propNames, acFds
accweb_AcObj_to_Tab dbs, "Query", dbs.QueryDefs, not_propNames, acFds

accweb_AcObj_to_Tab dbs, "Form", dbs.Containers("Forms").Documents, not_propNames, acFds

accweb_AcObj_to_Tab dbs, "Report", dbs.Containers("Reports").Documents, not_propNames, acFds


acFds.Close
Set acFds = Nothing
End Function


Sub addAcFds_rec(dbs As Database, acFds As Recordset, acObjType As String, acObj_Name As String, fd_Name As String, props As String)
acFds.AddNew
acFds("AcApp") = dbs.Name
acFds("AcObjType") = acObjType
acFds("AcObj") = acObj_Name
acFds("AcFd") = fd_Name
acFds("AcProps") = props
acFds.Update
End Sub


Sub accweb_AcObj_to_Tab(dbs As Database, acObjType As String, acObjs, not_propNames As String, acFds As Recordset)
On Error GoTo Err_exportAll

Dim curState As String
Let curState = ""

Dim eleName As String
Let eleName = ""

Dim acEle_i As Integer
For acEle_i = 0 To acObjs.Count - 1
If Left(acObjs(acEle_i).Name, 1) <> "~" Then
Dim acObj As Object
Set acObj = acObjs(acEle_i)

eleName = acObj.Name

Dim r As String
Let r = parseAcObj_Properties(acObj.Properties, not_propNames)

addAcFds_rec dbs, acFds, acObjType, eleName, "-", r

Debug.Print acObjType & " -- " & r
Debug.Print


If acObjType = "Form" Then DoCmd.OpenForm eleName, acDesign
If acObjType = "Report" Then DoCmd.OpenReport eleName, acViewDesign

Dim ctrs
Set ctrs = Nothing

If acObjType = "Form" Then Set ctrs = Forms(eleName).Controls
If acObjType = "Report" Then Set ctrs = Reports(eleName).Controls


If Not (ctrs Is Nothing) Then
Dim c_i As Integer
For c_i = 0 To (ctrs.Count - 1)
Dim c As Object
Set c = ctrs(c_i)

Dim c_r As String
Let c_r = parseAcObj_Properties(c.Properties, not_propNames)

addAcFds_rec dbs, acFds, acObjType, acObj.Name, c.Name, c_r

Debug.Print eleName & " -- " & c_r
Debug.Print
Next
End If

If acObjType = "Form" Then DoCmd.Close acForm, eleName
If acObjType = "Report" Then DoCmd.Close acForm, eleName

curState = "eleName=" & eleName & "."



End If
Next acEle_i

Exit Sub

Err_exportAll:
Dim dlgRes As Integer
Let dlgRes = MsgBox(Error & " " & Err & " in '" & curState & "'", 48 Or 2)

If dlgRes = 5 Then
Resume Next

ElseIf dlgRes = 4 Then
Resume

End If

Exit Sub
End Sub

Public Function parseAcObj_Properties(o, not_propNames As String)
Dim res As String
Let res = ""

Dim p_i As Integer
For p_i = 0 To (o.Count - 1)
Dim p As Object
Set p = o(p_i)

Dim propName As String
Let propName = p.Name


If InStr(propName, "Border") = 1 Or InStr(propName, "Is") = 1 Or InStr(propName, "Can") = 1 Or InStr(propName, "Old") = 1 Or InStr(propName, "Special") = 1 Then
Rem ign.
ElseIf InStr(propName, "Back") = 1 Then
Rem ign.
ElseIf InStr(propName, "Font") >= 1 Or InStr(propName, "Margin") >= 1 Then
Rem ign.
ElseIf InStr(", " & not_propNames & ",", ", " & propName) = 0 Then
Dim v
Let v = Null

On Error Resume Next
v = p.value

If Err = 0 Then
Dim t As String
Let t = valQte(v)

If t <> "" Then
res = res & IIf(res = "", "", ", ") & Chr(34) & propName & Chr(34) & ": " & t
End If
End If

On Error GoTo 0
End If
Next p_i

parseAcObj_Properties = res
End Function


Public Function valQte(v) As String
Dim res As String
Let res = ""

If Not IsEmpty(v) Then
If Not IsNull(v) Then
If IsNumeric(v) And IsNumeric("" & v) Then
res = "" & v
ElseIf v <> "" Then
res = Chr(34) & Replace("" & v, Chr(34), "'") & Chr(34)
End If
End If
End If

valQte = res
End Function
- 11 -    (TxtDoc-2025-12-01.html)


App-Link #1008 Zeit -- Archiv

Eingabe im Feld Details - Archiv

- ab dem eingegebenen Datum, werden die Daten in der Web-Pflege nicht mehr angezeigt

- die Berechtigung bleibt jedoch erhalten
- die Daten können weiterhin gedruckt werden (passende URL ist Voraussetzung)
(z.B. unter "fällig" und "Protokoll", existierende Links in Mails, ...)
- auch in Access oder LibreOffice-Base/Calc sind die Zeilen weiterhin sichtbar
(für Desktop-Anwendungen sind jedoch die Online-Rollen nicht vorgesehen)



Der Details-Dialog ist folgendermassen definiert:

--> https://jobst-software.net/ainfojs2000/InfoPrint_Default?only_REPORT_KNZ=TxtDoc&search_text=%20%231001%20

##2063 demo-online -- -
- 12 -    (TxtDoc-2025-12-01.html)


ADialog_Hr_Cal #1001 Hr_Cal_Details

<dialog id="dialog_ahr_cal_details">
<form> <input name="json_input_ele_no" readonly type="hidden" />

<label>Archiv</label> <input name="Archiv" type="date"
placeholder="im Archiv ab (Wartung, dann per User mit ahr_cal_archive_role)" />
</form>

<button name="btnOK" >OK</button>
<button name="btnCancel" >abbrechen</button>
</dialog>
##2042 demo-online -- -
- 13 -    (TxtDoc-2025-12-01.html)


AReport #1000 FSammlung_qry

{
"SELECT_FDNAMES": "inv_bew_am, adresse, kategorie, bezeichnung, ek",
"FROM_SCHEMA": "a_todo4",
"FROM_QRY": "FSammlung_qry"
}
##2040 demo-online -- -
- 14 -    (TxtDoc-2025-12-01.html)


ADialog #996 FSammlung

<dialog id="dialog_todo_pos_details">
<form> <input name="json_input_ele_no" readonly type="hidden" />
<label>Kategorie</label> <input name="Kategorie" list="Kategorie_LIST" />
<label>Bezeichnung</label> <input name="Bezeichnung" />
<hr />
<label>Zustand</label> <input name="Zustand" />
<hr />
<label>EK</label> <input name="EK" type="number" />
<label>mögl. VK</label> <input name="VK" type="number" />
<hr />
<label>Stand</label> <input name="Stand" type="date" />
</form>

<button name="btnOK" >OK</button>
<button name="btnCancel" >abbrechen</button>
</dialog>


<datalist id="Kategorie_LIST">
<option>Kamera<option>
<option>DVD<option>
<option>Bild<option>
</datalist>
##2041 demo-online -- -
- 15 -    (TxtDoc-2025-12-01.html)


AReport #993 Bestandsliste

{
"SELECT_FDNAMES": "vorgang_knz, adressnr, beldatum, artikelnr, lagerort, bewegungs_menge",
"FROM_SCHEMA": "al_storage",
"FROM_QRY": "l_storage_bestandsliste_qry"
}

--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=994

##2039 demo-online -- -
- 16 -    (TxtDoc-2025-12-01.html)


AReport #990 Saldenliste

{
"SELECT_FDNAMES": "cos_id, vorgang_knz, adressnr, konto, konto_text, s_betrag, h_betrag",
"FROM_SCHEMA": "aea_cos",
"FROM_QRY": "buchhaltung_saldenliste_vorgang_qry"
}

--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=994

##2037 demo-online -- -
- 17 -    (TxtDoc-2025-12-01.html)


ADialog #986 Standarddialog

<dialog id="dialog_todo_pos_details">
<form> <input name="json_input_ele_no" readonly type="hidden" />
<label>Betrag</label> <input name="Betrag" list="TODO_POS_BETRAG_LIST" type="number" />
<label>ANr</label> <input name="ANr" list="TODO_POS_ANR_LIST" />
</form>

<button name="btnOK" >OK</button>
<button name="btnCancel" >abbrechen</button>
</dialog>


<datalist id="TODO_POS_ANR_LIST"> <!-- lt. SQL-View TODO_POS_ANR_LIST -->
$DATA_OPTIONS.TODO_POS_ANR_LIST.ANR_OG.ANR.ANR_TEXT
</datalist>

<datalist id="TODO_POS_BETRAG_LIST"> <!-- lt. SQL-View TODO_POS_BETRAG_LIST -->
$DATA_OPTIONS.TODO_POS_BETRAG_LIST.BETRAG_OG.BETRAG.BETRAG_TEXT
</datalist>

--> https://jobst-software.net/ainfojs2000/InfoPrint_Default?only_REPORT_KNZ=TxtDoc&search_text=%20%23987%20


--> https://jobst-software.net/a_todo4/?submitaction=%2F%3D%2F&datatable_primarykey=1

##2035 demo-online -- -
- 18 -    (TxtDoc-2025-12-01.html)


App-Link #983 Wiederkehrende Wartungen von Geräten, Software etc.

sind folgendermaßen anzulegen:
------------------------------

- WSTATE -- mit Text "wart-..."

- BDATUM -- letzes Datum der Wartung. Nach einer Wartung ist dieses Datum auf "heute" zu setzen.

- ADRESSE -- Zyklus z.B. "wart-jaehrl:", "wart-monatl:", "wart-woechentl:2", "wart-taegl:"

- VORGANGSTEXT -- sollte angeben, was zu tun, prüfen und beachten ist.


Wenn man nur die fälligen Geräte sehen will, muss man sich mit einem User anmelden,
der Mitglied der SQL-Rolle "eina_wart_offen_role" ist.


Ein Protokoll ist per LibreOffice Base bzw. der VIEW wart_journal_raw abzurufen.



z.B.

--> https://jobst-software.net/ainfojs2000/Info_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=982

##2032 demo-online -- -
- 19 -    (TxtDoc-2025-12-01.html)


Server-VM #982 VM -- js-es6 -- Aussendienst4_AT

Server für Webanwendung "Aussendienst4_AT" mit Nutzung von PostgreSQL und JavaScript es6.








Hilfe zu Wiederkehrende Wartungen
unter:

--> https://jobst-software.net/ainfojs2000/InfoPrint_Default?only_REPORT_KNZ=TxtDoc&search_text=%20%23983%20

##2031 demo-online -- -
- 20 -    (TxtDoc-2025-12-01.html)


App-Link #980 Stammdaten -- Texte -- Wartung

Selten zu ändernde Stammdaten (z.B. Konten, Steuercodes, Auswahlmöglichkeiten, ...) 
sind mit LibreOffice Base intern zu pflegen.

--> /frepjs2000/Fr_Konditionen_Allgemein

##2028 demo-online -- -
- 21 -    (TxtDoc-2025-12-01.html)


App-Link #979 Stammdaten -- Texte -- Basis

Auswahllisten (z.B. ERLEDIGT_LIST)
haben meist eine PostgreSQL-View als Basis
und liefern unter Berücksichtigung der Berechtigung (Rolle)
eine passende Liste.
##2027 demo-online -- -
- 22 -    (TxtDoc-2025-12-01.html)


App-Link #971 Info -- Berechtigungen

Damit Info-Zeilen/Beiträge für Alle per Hilfe-Button 
sichtbar werden,
ist
- im Feld WSTATE 'aktiv-onlineuser-extuser'
- umd eine Zeile mit ADRESSE 'demo-online'
einzutragen.
##2021 demo-online -- -
- 23 -    (TxtDoc-2025-12-01.html)


AJob #970 AAudit-Druck nach UPDATE "Druck RE - Abo"

{
"acal_text": "%IST%",
{ "dmloperation": "UPDATE", "ADRESSE": "Druck RE - Abo" }
}
##2018 demo-online -- -
- 24 -    (TxtDoc-2025-12-01.html)


App-Link #969 ATodo -- mögliche Basis für Eigenentwicklung

Die Todo ist eine einfache Anwendung 
und könnte als Basis für individuelles Eigenes sein.

Oder man löst damit autom. Jobs aus.

--> /a_todo4/?submitaction=%2F%3D%2F&datatable_primarykey=2&job=Druck+RE+-+Abo


--> /a_todo4/

##2019 demo-online -- -
- 25 -    (TxtDoc-2025-12-01.html)


AJob #967 AAudit-Mail nach INSERT einn_ausg

{
"acal_text": "%PLAN%",
{ "dmloperation": "INSERT", "einn_ausg": "-" }
}

##2017 demo-online -- Details unter:


- https://jobst-software.net/aea_cos/Ea_Cost_Pflege?submitaction=%2F%3D%2F&datatable_primarykey=${COS_ID}


Bitte genehmigen oder ablehnen.
- 26 -    (TxtDoc-2025-12-01.html)


AJob #966 AAudit-Mail nach INSERT Urlaub

{
"acal_text": "%",
{ "dmloperation": "INSERT", "zeitart": "Urlaub" }
}

##2016 demo-online -- Details unter:


- https://jobst-software.net/ahr_cal/Hr_Calendar_Pflege?datatable_primarykey=${CAL_ID}&submitaction=%2F%3D%2F


Bitte genehmigen oder ablehnen.

m.f.g.
AAudit
- 27 -    (TxtDoc-2025-12-01.html)


App-Link #963 Umfragen -- Online (extern)

Manche Umfragen sind Online 
- nicht
- oder mit erheblichen Aufwand verbunden
und sollten dann besser wie vorgesehen umgesetzt werden.


z.B.

--> https://wien.arbeiterkammer.at/beratung/Wohnen/Wohnen_im_Eigentum/Beschlussfassung_der_Eigentuemergemeinschaft.html

##2015 demo-online -- -
- 28 -    (TxtDoc-2025-12-01.html)


App-Link #962 Zeit -- Urlaubsanspruch (extern)



--> https://www.oesterreich.gv.at/lexicon/U/Seite.991623.html

##2014 demo-online -- -
- 29 -    (TxtDoc-2025-12-01.html)


App-Link #959 Kosten -- Link auf FinanzOnline (extern)



--> https://finanzonline.bmf.gv.at/fon/


--> https://formulare.bmf.gv.at/service/formulare/inter-Steuern/pdfs/2024/E1a.pdf

##2010 demo-online -- Zugangsdaten lt. interner Dokumentation.
- 30 -    (TxtDoc-2025-12-01.html)

download