6. Juni 2018 10:08
OnPreReport()
_Mandant:=Company.GETFILTER(Company.Kurzbezeichnung);
_Buchungsdatum:=Kreditorenposten.GETFILTER(Kreditorenposten.Buchungsdatum);
h:='3';
CREATE(App,FALSE, TRUE);
App.Visible(TRUE);
Book:=App.Workbooks.Add;
Sheet:=Book.Worksheets.Item('Tabelle1');
Sheet.Range('A1').NumberFormat:='@';
Sheet.Range('A1').Font.Bold:=FALSE;
Sheet.Range('A1').Font.Size:=11;
Sheet.Range('A1').Value:='Kreditorenposten Übersicht: '+FORMAT(CURRENTDATETIME);
comp.SETFILTER(comp.Kurzbezeichnung,_Mandant);
comp.SETCURRENTKEY(Name);
IF comp.FIND('-') THEN REPEAT
IF (comp.Kurzbezeichnung = '150') OR
(comp.Kurzbezeichnung = '151') OR
(comp.Kurzbezeichnung = '152') OR
(comp.Kurzbezeichnung = '154') OR
(comp.Kurzbezeichnung = '155') OR
(comp.Kurzbezeichnung = '156') OR
(comp.Kurzbezeichnung = '157') OR
(comp.Kurzbezeichnung = '159') OR
(comp.Kurzbezeichnung = '160') OR
(comp.Kurzbezeichnung = '161') OR
(comp.Kurzbezeichnung = '164') OR
(comp.Kurzbezeichnung = '171') OR
(comp.Kurzbezeichnung = '172') OR
(comp.Kurzbezeichnung = '180') OR
(comp.Kurzbezeichnung = '181') OR
(comp.Kurzbezeichnung = '197') OR
(comp.Kurzbezeichnung = '227') OR
(comp.Kurzbezeichnung = '228') OR
(comp.Kurzbezeichnung = '229') OR
(comp.Kurzbezeichnung = '230') OR
(comp.Kurzbezeichnung = '231') OR
(comp.Kurzbezeichnung = '235') OR
(comp.Kurzbezeichnung = '236') OR
(comp.Kurzbezeichnung = '239') OR
(comp.Kurzbezeichnung = '240') OR
(comp.Kurzbezeichnung = '242') OR
(comp.Kurzbezeichnung = '243') OR
(comp.Kurzbezeichnung = '244') OR
(comp.Kurzbezeichnung = '245') OR
(comp.Kurzbezeichnung = '246') OR
(comp.Kurzbezeichnung = '247') OR
(comp.Kurzbezeichnung = '248') OR
(comp.Kurzbezeichnung = '249') OR
(comp.Kurzbezeichnung = '308') OR
(comp.Kurzbezeichnung = '310') OR
(comp.Kurzbezeichnung = '311') OR
(comp.Kurzbezeichnung = '332') OR
//(comp.Kurzbezeichnung = '333') OR
(comp.Kurzbezeichnung = '335') OR
(comp.Kurzbezeichnung = '351') OR
(comp.Kurzbezeichnung = '353') OR
(comp.Kurzbezeichnung = '354') OR
(comp.Kurzbezeichnung = '355') OR
(comp.Kurzbezeichnung = '357') OR
(comp.Kurzbezeichnung = '358') OR
(comp.Kurzbezeichnung = '370') OR
(comp.Kurzbezeichnung = '371') OR
(comp.Kurzbezeichnung = '372') OR
(comp.Kurzbezeichnung = '373') OR
(comp.Kurzbezeichnung = '374') OR
(comp.Kurzbezeichnung = '380') OR
(comp.Kurzbezeichnung = '382') OR
(comp.Kurzbezeichnung = '383') OR
(comp.Kurzbezeichnung = '384') OR
(comp.Kurzbezeichnung = '386') OR
(comp.Kurzbezeichnung = '396') OR
(comp.Kurzbezeichnung = '397') OR
(comp.Kurzbezeichnung = '417') OR
(comp.Kurzbezeichnung = '418') OR
(comp.Kurzbezeichnung = '419') OR
(comp.Kurzbezeichnung = '420') OR
(comp.Kurzbezeichnung = '421') OR
(comp.Kurzbezeichnung = '433') OR
(comp.Kurzbezeichnung = '434') OR
(comp.Kurzbezeichnung = '442') OR
(comp.Kurzbezeichnung = '445') OR
(comp.Kurzbezeichnung = '446') OR
(comp.Kurzbezeichnung = '459') OR
(comp.Kurzbezeichnung = '461') OR
(comp.Kurzbezeichnung = '462') OR
(comp.Kurzbezeichnung = '463') OR
(comp.Kurzbezeichnung = '464') OR
(comp.Kurzbezeichnung = '471') OR
(comp.Kurzbezeichnung = '474') OR
(comp.Kurzbezeichnung = '477') OR
(comp.Kurzbezeichnung = '481') OR
(comp.Kurzbezeichnung = '482') OR
(comp.Kurzbezeichnung = '483') OR
(comp.Kurzbezeichnung = '490') OR
(comp.Kurzbezeichnung = '491') OR
(comp.Kurzbezeichnung = '493') OR
(comp.Kurzbezeichnung = '495') OR
(comp.Kurzbezeichnung = '681') OR
(comp.Kurzbezeichnung = '682') OR
(comp.Kurzbezeichnung = '683') OR
(comp.Kurzbezeichnung = '684') OR
(comp.Kurzbezeichnung = '685') OR
(comp.Kurzbezeichnung = '686') OR
(comp.Kurzbezeichnung = '687') OR
(comp.Kurzbezeichnung = '695') OR
(comp.Kurzbezeichnung = '696') OR
(comp.Kurzbezeichnung = '697') OR
(comp.Kurzbezeichnung = '698') OR
(comp.Kurzbezeichnung = '699') OR
(comp.Kurzbezeichnung = '704') OR
(comp.Kurzbezeichnung = '705') OR
(comp.Kurzbezeichnung = '714') OR
(comp.Kurzbezeichnung = '715') OR
(comp.Kurzbezeichnung = '716') OR
(comp.Kurzbezeichnung = '722') OR
(comp.Kurzbezeichnung = '723') OR
(comp.Kurzbezeichnung = '724') OR
(comp.Kurzbezeichnung = '725') OR
(comp.Kurzbezeichnung = '726') OR
(comp.Kurzbezeichnung = '738') OR
(comp.Kurzbezeichnung = '739') OR
(comp.Kurzbezeichnung = '740') OR
(comp.Kurzbezeichnung = '743') OR
(comp.Kurzbezeichnung = '753') OR
(comp.Kurzbezeichnung = '757') OR
(comp.Kurzbezeichnung = '768') OR
(comp.Kurzbezeichnung = '770') OR
(comp.Kurzbezeichnung = '777') OR
(comp.Kurzbezeichnung = '781') OR
(comp.Kurzbezeichnung = '782') OR
(comp.Kurzbezeichnung = '783') OR
(comp.Kurzbezeichnung = '784') OR
(comp.Kurzbezeichnung = '787') OR
(comp.Kurzbezeichnung = '788') OR
(comp.Kurzbezeichnung = '789') OR
(comp.Kurzbezeichnung = '792') OR
(comp.Kurzbezeichnung = '793') OR
(comp.Kurzbezeichnung = '794') OR
(comp.Kurzbezeichnung = '795') OR
(comp.Kurzbezeichnung = '796') OR
(comp.Kurzbezeichnung = '797') OR
(comp.Kurzbezeichnung = '798') OR
(comp.Kurzbezeichnung = '799') OR
(comp.Kurzbezeichnung = 'R01') OR
(comp.Kurzbezeichnung = 'R02') OR
(comp.Kurzbezeichnung = 'R03') OR
(comp.Kurzbezeichnung = 'R04') OR
(comp.Kurzbezeichnung = 'R05') OR
(comp.Kurzbezeichnung = 'R06') OR
(comp.Kurzbezeichnung = 'R07') OR
(comp.Kurzbezeichnung = 'R10') OR
(comp.Kurzbezeichnung = 'R11') OR
(comp.Kurzbezeichnung = 'R13') OR
(comp.Kurzbezeichnung = 'R15') OR
(comp.Kurzbezeichnung = 'R16') OR
(comp.Kurzbezeichnung = 'R17') OR
(comp.Kurzbezeichnung = 'R18') OR
(comp.Kurzbezeichnung = 'R19') OR
(comp.Kurzbezeichnung = 'R22') OR
(comp.Kurzbezeichnung = 'R23') OR
(comp.Kurzbezeichnung = 'R24') OR
(comp.Kurzbezeichnung = 'R25') OR
(comp.Kurzbezeichnung = 'R26') OR
(comp.Kurzbezeichnung = 'R27') OR
(comp.Kurzbezeichnung = 'R28') OR
(comp.Kurzbezeichnung = 'R32') OR
(comp.Kurzbezeichnung = 'R33') THEN BEGIN
kred_posten.CHANGECOMPANY(comp.Name);
rechnungseingangkopf.CHANGECOMPANY(comp.Name);
Sheet.Range('A2').NumberFormat:='@';
Sheet.Range('A2').Font.Bold:=TRUE;
Sheet.Range('A2').Font.Size:=11;
Sheet.Range('A2').Value:='Kurzbez. Mdt.';
Sheet.Range('B2').NumberFormat:='@';
Sheet.Range('B2').Font.Bold:=TRUE;
Sheet.Range('B2').Font.Size:=11;
Sheet.Range('B2').Value:='Name Mdt.:';
Sheet.Range('C2').NumberFormat:='@';
Sheet.Range('C2').Font.Bold:=TRUE;
Sheet.Range('C2').Font.Size:=11;
Sheet.Range('C2').Value:='Anzahl Bemerkungszeilen';
Sheet.Range('D2').NumberFormat:='@';
Sheet.Range('D2').Font.Bold:=TRUE;
Sheet.Range('D2').Font.Size:=11;
Sheet.Range('D2').Value:='Niederlassung';
Sheet.Range('E2').NumberFormat:='@';
Sheet.Range('E2').Font.Bold:=TRUE;
Sheet.Range('E2').Font.Size:=11;
Sheet.Range('E2').Value:='Buchungsdatum';
Sheet.Range('F2').NumberFormat:='@';
Sheet.Range('F2').Font.Bold:=TRUE;
Sheet.Range('F2').Font.Size:=11;
Sheet.Range('F2').Value:='Belegart';
Sheet.Range('G2').NumberFormat:='@';
Sheet.Range('G2').Font.Bold:=TRUE;
Sheet.Range('G2').Font.Size:=11;
Sheet.Range('G2').Value:='Belegdatum';
Sheet.Range('H2').NumberFormat:='@';
Sheet.Range('H2').Font.Bold:=TRUE;
Sheet.Range('H2').Font.Size:=11;
Sheet.Range('H2').Value:='Leistungsdatum';
...
//Kreditorenposten pro Mandant
kred_posten.SETCURRENTKEY("Kreditorennr.",Buchungsdatum,Währungscode,Statistisch,Niederlassung,Kostenstelle,Kostenträger,Belegart,"Kein Bonusumsatz",Kreditorenbuchungsgruppe,"Belegart Anz. Vorgang");
kred_posten.SETFILTER(kred_posten.Buchungsdatum,_Buchungsdatum);
IF kred_posten.FIND('-') THEN REPEAT
//Rechnungseingang
rechnungseingangkopf.SETFILTER(rechnungseingangkopf."Nr.",kred_posten."Belegnr.");
rechnungseingangkopf.SETCURRENTKEY(Kreditor,Gebucht,Fälligkeitsdatum,Belegdatum,"Belegart Anz. Vorgang",Niederlassung,Kostenstelle,"Anz. Vorgang",Kostenträger,Abgrenzung,Einbehaltsart,Währungscode);
IF rechnungseingangkopf.FIND('-') THEN BEGIN
Sheet.Range('AQ'+h).NumberFormat:='@';
Sheet.Range('AQ'+h).Font.Bold:=FALSE;
Sheet.Range('AQ'+h).Font.Size:=11;
Sheet.Range('AQ'+h).Value:=rechnungseingangkopf."Freigabe zur Buchung";
Sheet.Range('AR'+h).NumberFormat:='@';
Sheet.Range('AR'+h).Font.Bold:=FALSE;
Sheet.Range('AR'+h).Font.Size:=11;
Sheet.Range('AR'+h).Value:=rechnungseingangkopf.Freigabedatum;
END;
Sheet.Range('A'+h).NumberFormat:='@';
Sheet.Range('A'+h).Font.Bold:=FALSE;
Sheet.Range('A'+h).Font.Size:=11;
Sheet.Range('A'+h).Value:=comp.Kurzbezeichnung;
Sheet.Range('B'+h).NumberFormat:='@';
Sheet.Range('B'+h).Font.Bold:=FALSE;
Sheet.Range('B'+h).Font.Size:=11;
Sheet.Range('B'+h).Value:=comp.Name;
kred_posten.CALCFIELDS("Anzahl Bemerkungszeilen");
Sheet.Range('C'+h).NumberFormat:='@';
Sheet.Range('C'+h).Font.Bold:=FALSE;
Sheet.Range('C'+h).Font.Size:=11;
Sheet.Range('C'+h).Value:=kred_posten."Anzahl Bemerkungszeilen";
//Belegart
IF kred_posten.Belegart = 0 THEN BEGIN
Sheet.Range('F'+h).NumberFormat:='@';
Sheet.Range('F'+h).Font.Bold:=FALSE;
Sheet.Range('F'+h).Font.Size:=11;
Sheet.Range('F'+h).Value:='';
END ELSE IF kred_posten.Belegart = 1 THEN BEGIN
Sheet.Range('F'+h).NumberFormat:='@';
Sheet.Range('F'+h).Font.Bold:=FALSE;
Sheet.Range('F'+h).Font.Size:=11;
Sheet.Range('F'+h).Value:='Zahlung';
END ELSE IF kred_posten.Belegart = 2 THEN BEGIN
Sheet.Range('F'+h).NumberFormat:='@';
Sheet.Range('F'+h).Font.Bold:=FALSE;
Sheet.Range('F'+h).Font.Size:=11;
Sheet.Range('F'+h).Value:='Rechnung';
END ELSE IF kred_posten.Belegart = 3 THEN BEGIN
Sheet.Range('F'+h).NumberFormat:='@';
Sheet.Range('F'+h).Font.Bold:=FALSE;
Sheet.Range('F'+h).Font.Size:=11;
Sheet.Range('F'+h).Value:='Gutschrift';
END ELSE IF kred_posten.Belegart = 4 THEN BEGIN
Sheet.Range('F'+h).NumberFormat:='@';
Sheet.Range('F'+h).Font.Bold:=FALSE;
Sheet.Range('F'+h).Font.Size:=11;
Sheet.Range('F'+h).Value:='Zinsrechnung';
END ELSE IF kred_posten.Belegart = 5 THEN BEGIN
Sheet.Range('F'+h).NumberFormat:='@';
Sheet.Range('F'+h).Font.Bold:=FALSE;
Sheet.Range('F'+h).Font.Size:=11;
Sheet.Range('F'+h).Value:='Mahnung';
END;
Sheet.Range('AO'+h).NumberFormat:='@';
Sheet.Range('AO'+h).Font.Bold:=FALSE;
Sheet.Range('AO'+h).Font.Size:=11;
Sheet.Range('AO'+h).Value:=kred_posten.Änderungsdatum;
Sheet.Range('AP'+h).NumberFormat:='@';
Sheet.Range('AP'+h).Font.Bold:=FALSE;
Sheet.Range('AP'+h).Font.Size:=11;
Sheet.Range('AP'+h).Value:=kred_posten."Anz. Vorgang";
h:=INCSTR(h);
UNTIL kred_posten.NEXT(+1)=0;
kred_posten.RESET;
END;
UNTIL comp.NEXT(+1)=0;
comp.RESET;
OnPostReport()
Sheet.Columns.AutoFit; // optimale Spaltenbreite
Book.Save;
MESSAGE('fertig');
IF comp.FIND('-') THEN REPEAT
IF (comp.Kurzbezeichnung = '150') OR
(comp.Kurzbezeichnung = '151') OR
(comp.Kurzbezeichnung = '152') OR
(comp.Kurzbezeichnung = '154') OR
(comp.Kurzbezeichnung = '155') OR
...
6. Juni 2018 10:19
6. Juni 2018 10:30
comp.SETFILTER(comp.Kurzbezeichnung,_Mandant);
6. Juni 2018 13:52
IF comp.FIND('-') THEN REPEAT
IF (comp.Kurzbezeichnung = '154') OR
(comp.Kurzbezeichnung = '155') OR
(comp.Kurzbezeichnung = '150') OR
(comp.Kurzbezeichnung = '151') OR
(comp.Kurzbezeichnung = '152') OR
...
6. Juni 2018 14:21
6. Juni 2018 14:40
Um wie viele Zeilen handelt es sich denn?
6. Juni 2018 14:49
navCH hat geschrieben:pro Mandant können durchaus mehrere 1000 Posten durchlaufen werden.
6. Juni 2018 15:45
Dann könnte der Export abbrechen, weil die maximale Zeilenanzahl von Excel erreicht ist.
Bei Excel 2016 sind das ca 1,05 Mio Zeilen.
es gibt auch Mandanten mit weniger Posten. 1.000.000 sollte ich nicht erreichen.Wenn du bei 150 Mandanten im Schnitt 7500 Zeilen hast bist du schon bei 1,125 Mio Zeilen.
6. Juni 2018 16:36
9. Juni 2018 12:49
11. Juni 2018 08:37
11. Juni 2018 08:48
11. Juni 2018 11:20
das könnte an der Einstellung "MaxNoOfXMLRecordsToSend" in "C:\Users\BENUTZER\AppData\Roaming\Microsoft\Microsoft Dynamics NAV\80\ClientUserSettings.config' liegen.
Erhöhe diese Wert doch mal nachdem du den Client beendet hast.
<add key="MaxNoOfXMLRecordsToSend" value="5000" />
<add key="MaxNoOfXMLRecordsToSend" value="100000" />
11. Juni 2018 11:55
Reicht es, wenn ich die Config nur auf den einen Server ändere, wo ich den Export mache?
12. Juni 2018 09:29
<add key="MaxNoOfXMLRecordsToSend" value="500000" />
12. Juni 2018 09:52
12. Juni 2018 10:06
12. Juni 2018 10:06
12. Juni 2018 10:30
12. Juni 2018 10:34
12. Juni 2018 14:01
12. Juni 2018 14:25
12. Juni 2018 14:40
12. Juni 2018 14:41
12. Juni 2018 14:44