EMail senden Mail an den Autor Drucken

vorhergehender Eintrag

nächster Eintrag

Inhalt

Hilfe Index

.

O_KPAdHoc

Hauptfunktionen

Das sind die wesentlichen Funktionen mit denen die Auswertung gesteuert wird.
Bei einfachen Auswertungen werden nur diese benötigt.

In diesem Kapitel

$CreateSearchRow

$CreateStatement

$CreateWhere

Weitere Kapitel

Sonstige Funktionen

vorhergehender Eintrag

nächster Eintrag

Inhalt

$CreateSearchRow

In dieser Methode wird die SearchRow gebildet.
Alle Felder die im Script benötigt werden, werden hier definiert und auch in der Eingabemaske verwendet.

Die Liste Listenart ist immer mit mindestens einem Eintrag vorhanden. Wenn man verschiedene Auswertungen mit derselben Selektion machen will dann muss man diese mit der Listenart unterscheiden.

Do inherited
Do ilListenart.$add(0,icTitle)

Do ioListen.$addColumnCharacter(irSearchRow,'Abteilung',20,#NULL)
Do ioListen.$addColumnCharacter(irSearchRow,'Sparte',20,#NULL)
Do ioListen.$addColumnCharacter(irSearchRow,'Vertreter',20,#NULL)
Do ioListen.$addColumnCharacter(irSearchRow,'Abrechnungsart',20,#NULL)
Do ioListen.$addColumnCharacter(irSearchRow,'Auftragsart',20,#NULL)
Do ioListen.$addColumnLongInteger(irSearchRow,'Status',1)
Do ioListen.$addColumnLongInteger(irSearchRow,'Abrechnung',0)
Do ioListen.$addColumnDate(irSearchRow,'DatumVon',cdDatumVon)
Do ioListen.$addColumnDate(irSearchRow,'DatumBis',cdDatumBis)
Do ioListen.$addColumnDate(irSearchRow,'lDatumVon','01.01')
Do ioListen.$addColumnDate(irSearchRow,'lDatumBis',cdDatumBis)

vorhergehender Eintrag

nächster Eintrag

Inhalt

$CreateStatement

Hier wird das eigentliche SQL Statement erstellt.

Beispiel:

Switch ilListenart.Listenart
Case 0
Do method $CreateWhere Returns lcWhere
Begin statement (Carriage return)

Sta: select
Sta: 'pick(ibexport,style(kEscBmp,' + case AUF_STATUS when 0 then '[$ctask.trIcon.Outstanding]' when 1 then '[$ctask.trIcon.Completed]' when 2 then '[$ctask.trIcon.SuppliedPartially]' else '0' end + '),"' + case AUF_STATUS when 0 then 'offen' when 1 then 'erledigt' when 2 then 'teilweise' else '' end + '")' as Status_X_Center,

Sta: 'pick(ibexport,style(kEscBmp,' + case AUF_AB_ART when 1 then '[$ctask.trIcon.Service]' when 2 then '[$ctask.trIcon.Produktion]' else '0' end + '),"' + case AUF_AB_ART when 0 then 'Auftrag' when 1 then 'Serviceauftrag' when 2 then 'Produktionsauftrag' else '' end + '")' as Art_X_Center,

Sta: 'pick(ibexport,style(kEscBmp,' + case AUF_STATUS_RECHNUNG when 0 then '[$ctask.trIcon.AbrechnungFreiGegeben]' when 1 then '[$ctask.trIcon.AbrechnungGesperrt]' when 2 then '[$ctask.trIcon.AbrechnungTeilweise]' when 3 then '[$ctask.trIcon.AbrechnungKomplett]' else '0' end + '),"' + case AUF_STATUS_RECHNUNG when 0 then 'zur Abrechnung frei gegeben' when 1 then 'für die Abrechnung gesperrt'
when 2 then 'zum Teil abgerechnet' when 3 then 'komplett abgerechnet' else '' end + '")' as Abrechnung,

Sta: [$cinst.$GetFieldDate('AUF_EDATUM')] as Datum,
Sta: AUF_BELEGNR as Nummer, AUF_KDNR as Kdnr,AUF_NAME1 as Name,
Sta: AUF_BETREFF as Betreff,
Sta: [loSQLFunctions.$GetStatement_AUF_NETTO(kTrue)] as Auftragswert_X_Right,
Sta: [loSQLFunctions.$GetStatement_AUFTRAG_SOLLSTUNDEN()] as Auftragsstunden_X_Right,
Sta: [loSQLFunctions.$GetStatement_AUFTRAG_RECHNUNGSERLÖS(kTrue,kTrue)] as Erlös_X_Right,
Sta: [loSQLFunctions.$GetStatement_AUFTRAG_AUFWAND_STUNDEN()] as [[[[Stunden gebucht_X_Right],
Sta: 'pick(ibexport,con(pick(iList.Auftragsstunden-iList.Stunden gebucht<0,"",style(kEscColor,kRed)),jst(iList.Auftragsstunden-iList.Stunden gebucht,"N2"),style(kEscColor,kBlack)) ,jst(iList.Auftragsstunden-iList.Stunden gebucht,"N2"))' as Verbleibend_X_Right,
Sta: V.KD_Name1 as Vertreter,
Sta: AUA_TEXT as Auftragsart,
Sta: SPA_TEXT as Sparte,
Sta: AAB_NAME as Abteilung,
Sta: AUF_Created as Neuanlage,
Sta: AUF_ModTime as Änderung,
Sta: USA_NAME as Sachbearbeiter,
Sta: AUF_NUMMER as Nummer_Intern,
Sta: AUF_AB_ART as AUF_AB_ART_Intern
Sta: from [$ctask.toSQL.$SQLTable('D_AUFTRAG')]
Sta: left join [$ctask.toSQL.$SQLTable('D_KUNDE')] as V on AUF_VERTRETER = V.KD_NUMMER
Sta: left join [$ctask.toSQL.$SQLTable('D_AUFART')] on AUA_CODE = AUF_ART
Sta: left join [$ctask.toSQL.$SQLTable('D_SPARTEN')] on SPA_CODE = AUF_SPARTE
Sta: left join [$ctask.toSQL.$SQLTable('D_ABTEILUNGEN')] on AAB_CODE = AUF_ABTEILUNG
Sta: left join [$ctask.toSQL.$SQLTable('D_USER')] on USA_KZ = AUF_UNSERZ and USA_KZ<>''

If lcWhere<>''
Sta: where [lcWhere]
End If

Sta: order by AUF_EDATUM desc
End statement
Get statement lcStatement
Quit method lcStatement
End Switch

vorhergehender Eintrag

nächster Eintrag

Inhalt

$CreateWhere

Diese Methode wird von $CreateStatement aufgerufen.
Hier wird die komplete Where Bedingung für das Statement erstellt.

Do loAbteilung.$GetWhereForDepartment('AUF_ABTEILUNG',irSearchRow.Abteilung,lcWhere,$ctask.trActiveUser.USA_ABTEILUNG_ERLAUBT_BELEGE) Returns lcWhere
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_EDATUM >= @[prData.DatumVon] ")
If irSearchRow.DatumBis<>$cinst.cdDatumBis
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_EDATUM <= @[prData.DatumBis] ")
End If

Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"(exists (select LFP_SEQ from D_LIEFPOS where LFP_AUFNR=AUF_NUMMER and LFP_DATUM >= @[prData.lDatumVon] and LFP_DATUM <= @[prData.lDatumBis] )")

Calculate lcWhere as con(lcWhere," or exists (select LOH_SEQ from D_LOHN where LOH_AUFNR=AUF_NUMMER and LOH_DATUM >= @[prData.lDatumVon] and LOH_DATUM <= @[prData.lDatumBis] ))")

If isnull(irSearchRow.Auftragsart)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_ART= @[prData.Auftragsart] ")
End If

If isnull(irSearchRow.Vertreter)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_VERTRETER= @[prData.Vertreter] ")
End If

If isnull(irSearchRow.Kategorie)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_KATEGORIE= @[prData.Kategorie] ")
End If

If isnull(irSearchRow.Versand)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_VERSAND= @[prData.Versand] ")
End If

If isnull(irSearchRow.Zahlart)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_ZAHLART= @[prData.Zahlart] ")
End If

If isnull(irSearchRow.Abrechnungsart)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_ABRECHART= @[prData.Abrechnungsart] ")
End If

If isnull(irSearchRow.Sparte)=kFalse
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_SPARTE= @[prData.Sparte] ")
End If

Switch irSearchRow.Status

Case ckStatusAlle

Case ckStatusOffen
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS<>1")

Case ckStatusErledigt

Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS=1")

End Switch

Switch irSearchRow.Abrechnung

Case ckAbrechnungStatusAlle

Case ckAbrechnungStatusAbrechnungGesperrt
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS_RECHNUNG=1")

Case ckAbrechnungStatusFreigegeben
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS_RECHNUNG=0")

Case ckAbrechnungStatusTeilAbgerechnet
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS_RECHNUNG=2")

Case ckAbrechnungStatusKomplettAbgerechnet
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS_RECHNUNG=3")

Case ckAbrechnungStatusNichtAbgerechnet
Calculate lcWhere as con(lcWhere,pick(lcWhere<>'','',' and '),"AUF_STATUS_RECHNUNG<>3")

End Switch

Quit method lcWhere

Zum Seitenanfang Drucken