![]() |
FlowFact - Entwicklungstools |
![]() |
Function | AKT_Copy(ByVal rsAkt As ADODB.Recordset, Optional ByVal strUserDsn As String = "", Optional ByVal strProjekteDsn As String = "", Optional datStartDate As Date = 0, Optional datRefDate As Date = 0, Optional blnWochenende As Boolean = True, Optional blnFeiertag As Boolean = True) As ADODB.Recordset |
rsAkt: Alle Aktivitäten, die kopiert werden sollen strUserDsn: wenn gesetzt, dann werden die neuen Aktivitäten in den Besitz von strUserDsn über. strProjekteDsn: wenn gesetzt, dann werden die neuen Aktivitäten mit diesem Projekt verknüpft. datStartDate: Startdatum datRefDate: Referenzdatum blnWochenende: True: Datumswert überspringt Wochenende bzw. Wochenenden werden nicht mitgezählt blnFeiertag: True: Datumswert überspringt Feiertag; bzw. Feiertage werden nicht mitgezählt Rückgabewert: Recordset mit den noch nicht gespeicherten Kopien. => AKT_Update Public Function AKT_Copy(ByVal rsAkt As ADODB.Recordset, Optional ByVal strUserDsn As String = "", Optional ByVal strProjekteDsn As String = "", Optional datStartDate As Date = 0, Optional datRefDate As Date = 0, Optional blnWochenende As Boolean = True, Optional blnFeiertag As Boolean = True) As ADODB.Recordset Dim rsAktNew As ADODB.Recordset Dim strAktDsn As String Dim strAktNewDsn As String Dim strAktDsnList As String Dim strAktNewDsnList As String Dim p As Long '** Aktivitäten kopieren Set rsAktNew = oBase.FF_GetRecordset("SELECT * FROM Akt WHERE 1=2") While rsAkt.EOF = False rsAktNew.AddNew rsAktNew("DSN").value = oUtil.NewGUID() rsAktNew("Kennung").value = STD_GetField("Kennung_AKT") 'Hole Vorbelegung i.A. '#' '-- DSN's merken strAktDsn = rsAkt("Dsn") strAktNewDsn = rsAktNew("Dsn") '-- DSN-Liste erstellen strAktDsnList = strAktDsnList & "|" & strAktDsn strAktNewDsnList = strAktNewDsnList & "|" & strAktNewDsn '-- Felder kopieren - außer dsn, kennung oBase.Sql_CopyFields rsAkt, rsAktNew, "|DSN|KENNUNG|STAMP|" If strProjekteDsn <> "" Then rsAktNew("Projekte_Dsn") = strProjekteDsn End If If datStartDate <> 0 And datRefDate <> 0 Then rsAktNew("Datum_Bis") = oTools.MoveDate(rsAktNew("Datum_Bis"), datStartDate, datRefDate, blnWochenende, blnFeiertag) rsAktNew("Vorlage") = oTools.MoveDate(rsAktNew("Vorlage"), datStartDate, datRefDate, blnWochenende, blnFeiertag) rsAktNew("Alarm") = oTools.MoveDate(rsAktNew("Alarm"), datStartDate, datRefDate, blnWochenende, blnFeiertag) rsAktNew("Datum") = oTools.MoveDate(rsAktNew("Datum"), datStartDate, datRefDate, blnWochenende, blnFeiertag) End If If strUserDsn <> "" Then rsAktNew("NEU_BEN_DSN") = strUserDsn rsAktNew("ANGELEGT") = Now rsAktNew("ÄN_BEN_DSN") = strUserDsn rsAktNew("TOUCH") = Now End If '-- Merkmale, Blob und Details kopieren AKT_Merkmal_Copy strAktDsn, strAktNewDsn BLOB_Copy strAktDsn, strAktNewDsn AKT_Detail_Copy strAktDsn, strAktNewDsn rsAkt.MoveNext Wend '** Vorgang Aktivitäten verknüpfen If rsAktNew.AbsolutePosition <> adPosUnknown Then rsAktNew.MoveFirst strAktDsnList = strAktDsnList & "|" strAktNewDsnList = strAktNewDsnList & "|" While rsAktNew.EOF = False strAktDsn = oUtil.k(rsAktNew("Akt_Dsn")) If strAktDsn <> "" Then p = InStr(strAktDsnList, "|" & strAktDsn & "|") If p > 0 Then strAktNewDsn = Mid(strAktNewDsnList, p + 1, Len(strAktDsn)) rsAktNew("Akt_Dsn") = strAktNewDsn End If End If rsAktNew.MoveNext Wend rsAktNew.MoveFirst End If Set AKT_Copy = rsAktNew End Function |