Hauptfunktionen
Das sind die wesentlichen Funktionen mit denen die Auswertung gesteuert wird. Bei einfachen Auswertungen werden nur diese benötigt.
$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)
$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
$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
|