diff --git a/cg/cg4100.cpp b/cg/cg4100.cpp index b4567ea4b..5d0acbee2 100755 --- a/cg/cg4100.cpp +++ b/cg/cg4100.cpp @@ -41,7 +41,7 @@ struct therec { char DATAREG[9]; char REG[4]; char DATADOC[9]; - char NUMPROT[7]; + char NUMPROT[9]; char ANNOES[5]; char NUMREG[8]; }; @@ -219,7 +219,7 @@ bool CG4100_App::sort_mov() sort.addsortkey(rbuf.DATAREG - (char*)&rbuf, 8); sort.addsortkey(rbuf.REG - (char*)&rbuf, 3); - sort.addsortkey(rbuf.NUMPROT - (char*)&rbuf, 6); + sort.addsortkey(rbuf.NUMPROT - (char*)&rbuf, 8); sort.addsortkey(rbuf.DATADOC - (char*)&rbuf, 8); sort.addsortkey(rbuf.NUMREG - (char*)&rbuf, 7); @@ -228,7 +228,7 @@ bool CG4100_App::sort_mov() TProgind prnd(mov.items(), "Riordino archivio movimenti in corso\nOrdinamento file movimenti...", FALSE,TRUE,30); - + TString16 s; while (!mov.eof()) { @@ -237,7 +237,10 @@ bool CG4100_App::sort_mov() strcpy(rbuf.DATAREG, d.string(ANSI)); strcpy(rbuf.REG, mov.get(MOV_REG)); d = mov.get(MOV_DATADOC); - strcpy(rbuf.NUMPROT, mov.get(MOV_PROTIVA)); + s = mov.get(MOV_PROTIVA); + if (isdigit(s[s.len() - 1])) s << " "; + s.right_just(8); + strcpy(rbuf.NUMPROT, (const char *) s); strcpy(rbuf.DATADOC, d.string(ANSI)); strcpy(rbuf.ANNOES, mov.get(MOV_ANNOES)); strcpy(rbuf.NUMREG, mov.get(MOV_NUMREG)); @@ -283,8 +286,10 @@ bool CG4100_App::sort_mov() rmov.put(RMV_NUMREG,rgn); rmov.read(_isgteq); + int row = 0; - while (!rmov.eof() && rgn == rmov.get(RMV_NUMREG)) + while (!rmov.eof() && rgn == rmov.get(RMV_NUMREG) && + row++ < rmov.get_int(RMV_NUMRIG)) { recno = rmov.recno(); fsav = fopen("__mov__.sav","a"); @@ -301,7 +306,10 @@ bool CG4100_App::sort_mov() rmoviva.put(RMI_NUMREG,rgn); rmoviva.read(_isgteq); - while (!rmoviva.eof() && rgn == rmoviva.get(RMV_NUMREG)) + row = 0; + + while (!rmoviva.eof() && rgn == rmoviva.get(RMV_NUMREG) && + row++ < rmov.get_int(RMV_NUMRIG)) { recno = rmoviva.recno(); fsav = fopen("__mov__.sav","a");