diff options
Diffstat (limited to 'sc/source/core/data/table3.cxx')
-rw-r--r-- | sc/source/core/data/table3.cxx | 92 |
1 files changed, 45 insertions, 47 deletions
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index d673583e5554..22528bdd9455 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -1526,11 +1526,11 @@ short ScTable::CompareCell( nRes = static_cast<short>( pSortCollator->compareString( aStr1, aStr2 ) ); } } - else if ( bStr1 ) // String <-> Zahl - nRes = 1; // Zahl vorne - else if ( bStr2 ) // Zahl <-> String - nRes = -1; // Zahl vorne - else // Zahlen untereinander + else if ( bStr1 ) // String <-> Number + nRes = 1; // Number in front + else if ( bStr2 ) // Number <-> String + nRes = -1; // Number in front + else // Mixed numbers { double nVal1 = rCell1.getValue(); double nVal2 = rCell2.getValue(); @@ -1550,7 +1550,7 @@ short ScTable::CompareCell( if (!rCell2.isEmpty()) nRes = 1; else - nRes = 0; // beide leer + nRes = 0; // both empty } return nRes; } @@ -1655,7 +1655,7 @@ short ScTable::Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const return nRes; } -bool ScTable::IsSorted( SCCOLROW nStart, SCCOLROW nEnd ) const // ueber aSortParam +bool ScTable::IsSorted( SCCOLROW nStart, SCCOLROW nEnd ) const // over aSortParam { for (SCCOLROW i=nStart; i<nEnd; i++) { @@ -1871,7 +1871,7 @@ void ScTable::RemoveSubTotals( ScSubTotalParam& rParam ) SCCOL nStartCol = rParam.nCol1; SCROW nStartRow = rParam.nRow1 + 1; // Header SCCOL nEndCol = rParam.nCol2; - SCROW nEndRow = rParam.nRow2; // wird veraendert + SCROW nEndRow = rParam.nRow2; // will change RemoveSubTotalsHandler aFunc; for (SCCOL nCol = nStartCol; nCol <= nEndCol; ++nCol) @@ -1894,7 +1894,7 @@ void ScTable::RemoveSubTotals( ScSubTotalParam& rParam ) rParam.nRow2 -= aRows.size(); } -// harte Zahlenformate loeschen (fuer Ergebnisformeln) +// Delete hard number formats (for result formulas) static void lcl_RemoveNumberFormat( ScTable* pTab, SCCOL nCol, SCROW nRow ) { @@ -1920,24 +1920,24 @@ typedef struct lcl_ScTable_DoSubTotals_RowEntry SCROW nFuncEnd; } RowEntry; -// neue Zwischenergebnisse -// rParam.nRow2 wird veraendert ! +// new intermediate results +// rParam.nRow2 is changed ! bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) { SCCOL nStartCol = rParam.nCol1; SCROW nStartRow = rParam.nRow1 + 1; // Header SCCOL nEndCol = rParam.nCol2; - SCROW nEndRow = rParam.nRow2; // wird veraendert + SCROW nEndRow = rParam.nRow2; // will change sal_uInt16 i; - // Leerzeilen am Ende weglassen, - // damit alle Ueberlaeufe (MAXROW) bei InsertRow gefunden werden (#35180#) - // Wenn sortiert wurde, sind alle Leerzeilen am Ende. + // Remove emty rows at the end + // so that all exceeding (MAXROW) can be found by InsertRow (#35180#) + // If sorted, all empty rows are at the end. SCSIZE nEmpty = GetEmptyLinesInBlock( nStartCol, nStartRow, nEndCol, nEndRow, DIR_BOTTOM ); nEndRow -= nEmpty; - sal_uInt16 nLevelCount = 0; // Anzahl Gruppierungen + sal_uInt16 nLevelCount = 0; // Number of levels bool bDoThis = true; for (i=0; i<MAXSUBTOTAL && bDoThis; i++) if (rParam.bGroupActive[i]) @@ -1945,15 +1945,14 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) else bDoThis = false; - if (nLevelCount==0) // nichts tun + if (nLevelCount==0) // do nothing return true; - SCCOL* nGroupCol = rParam.nField; // Spalten nach denen - // gruppiert wird + SCCOL* nGroupCol = rParam.nField; // columns which will be used when grouping - // Durch (leer) als eigene Kategorie muss immer auf - // Teilergebniszeilen aus den anderen Spalten getestet werden - // (frueher nur, wenn eine Spalte mehrfach vorkam) + // With (blank) as a separate category, subtotal rows from + // the other columns must always be tested + // (previously only when a column occured more than once) bool bTestPrevSub = ( nLevelCount > 1 ); OUString aSubString; @@ -1961,7 +1960,7 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) bool bIgnoreCase = !rParam.bCaseSens; - OUString *pCompString[MAXSUBTOTAL]; // Pointer wegen Compiler-Problemen + OUString *pCompString[MAXSUBTOTAL]; // Pointer due to compiler problemens for (i=0; i<MAXSUBTOTAL; i++) pCompString[i] = new OUString; @@ -1970,7 +1969,7 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) ScStyleSheet* pStyle = static_cast<ScStyleSheet*>(pDocument->GetStyleSheetPool()->Find( ScGlobal::GetRscString(STR_STYLENAME_RESULT), SFX_STYLE_FAMILY_PARA )); - bool bSpaceLeft = true; // Erfolg beim Einfuegen? + bool bSpaceLeft = true; // Succsess when inserting? // For performance reasons collect formula entries so their // references don't have to be tested for updates each time a new row is @@ -1978,7 +1977,7 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) RowEntry aRowEntry; ::std::vector< RowEntry > aRowVector; - for (sal_uInt16 nLevel=0; nLevel<=nLevelCount && bSpaceLeft; nLevel++) // incl. Gesamtergebnis + for (sal_uInt16 nLevel=0; nLevel<=nLevelCount && bSpaceLeft; nLevel++) // including grand total { bool bTotal = ( nLevel == nLevelCount ); aRowEntry.nGroupNo = bTotal ? 0 : (nLevelCount-nLevel-1); @@ -1988,7 +1987,7 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) // result functions ScSubTotalFunc* eResFunc = rParam.pFunctions[aRowEntry.nGroupNo]; - if (nResCount > 0) // sonst nur sortieren + if (nResCount > 0) // otherwise only sort { for (i=0; i<=aRowEntry.nGroupNo; i++) { @@ -1997,9 +1996,9 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) *pCompString[i] = ScGlobal::pCharClass->uppercase( aSubString ); else *pCompString[i] = aSubString; - } // aSubString bleibt auf dem letzten stehen + } // aSubString stays on the last - bool bBlockVis = false; // Gruppe eingeblendet? + bool bBlockVis = false; // group visible? aRowEntry.nSubStartRow = nStartRow; for (SCROW nRow=nStartRow; nRow<=nEndRow+1 && bSpaceLeft; nRow++) { @@ -2017,8 +2016,8 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) GetString( nGroupCol[i], nRow, aString ); if (bIgnoreCase) aString = ScGlobal::pCharClass->uppercase(aString); - // wenn sortiert, ist "leer" eine eigene Gruppe - // sonst sind leere Zellen unten erlaubt + // when sorting, blanks are seperate group + // otherwise blak cells are allowed below bChanged = ( ( !aString.isEmpty() || rParam.bDoSort ) && aString != *pCompString[i] ); } @@ -2070,10 +2069,10 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) // collect formula positions aRowVector.push_back( aRowEntry ); - if (bTotal) // "Gesamtergebnis" + if (bTotal) // "Grand total" aOutString = ScGlobal::GetRscString( STR_TABLE_GESAMTERGEBNIS ); else - { // " Ergebnis" + { // "Result" aOutString = aSubString; if (aOutString.isEmpty()) aOutString = ScGlobal::GetRscString( STR_EMPTYDATA ); @@ -2156,7 +2155,6 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam ) { ApplyStyle( nResCols[nResult], iEntry->nDestRow, *pStyle ); - // Zahlformat loeschen lcl_RemoveNumberFormat( this, nResCols[nResult], iEntry->nDestRow ); } } @@ -2751,18 +2749,18 @@ void ScTable::TopTenQuery( ScQueryParam& rParam ) QuickSort( pArray.get(), nRow1, rParam.nRow2 ); ScSortInfo** ppInfo = pArray->GetFirstArray(); SCSIZE nValidCount = nCount; - // keine Note-/Leerzellen zaehlen, sind ans Ende sortiert + // Don't count note or blank cells, they are sorted at the end while (nValidCount > 0 && ppInfo[nValidCount-1]->maCell.isEmpty()) nValidCount--; - // keine Strings zaehlen, sind zwischen Value und Leer + // Don't count Strings, they are between Value and blank while (nValidCount > 0 && ppInfo[nValidCount-1]->maCell.hasString()) nValidCount--; if ( nValidCount > 0 ) { if ( rItem.meType == ScQueryEntry::ByString ) - { // dat wird nix + { // this will be nothing rItem.meType = ScQueryEntry::ByValue; - rItem.mfVal = 10; // 10 bzw. 10% + rItem.mfVal = 10; // 10 and 10% respectively } SCSIZE nVal = (rItem.mfVal >= 1 ? static_cast<SCSIZE>(rItem.mfVal) : 1); SCSIZE nOffset = 0; @@ -2953,9 +2951,9 @@ SCSIZE ScTable::Query(ScQueryParam& rParamOrg, bool bKeepSub) SCROW nRealRow2 = aParam.nRow2; for (SCROW j = aParam.nRow1 + nHeader; j <= nRealRow2; ++j) { - bool bResult; // Filterergebnis + bool bResult; // Filter result bool bValid = ValidQuery(j, aParam); - if (!bValid && bKeepSub) // Subtotals stehenlassen + if (!bValid && bKeepSub) // Keep subtotals { for (SCCOL nCol=aParam.nCol1; nCol<=aParam.nCol2 && !bValid; nCol++) { @@ -3039,7 +3037,7 @@ bool ScTable::CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow SCTAB nDBTab = (rQueryParam.nTab == SCTAB_MAX ? nTab : rQueryParam.nTab); SCROW nDBRow1 = rQueryParam.nRow1; SCCOL nDBCol2 = rQueryParam.nCol2; - // Erste Zeile muessen Spaltenkoepfe sein + // First row must be column header while (bValid && (nCol <= nCol2)) { OUString aQueryStr; @@ -3140,7 +3138,7 @@ bool ScTable::CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ScQueryEntry& rEntry = rQueryParam.GetEntry(nIndex); bValid = false; - // Erste Spalte UND/ODER + // First column AND/OR if (nIndex > 0) { GetUpperCellString(nCol1, nRow, aCellStr); @@ -3155,7 +3153,7 @@ bool ScTable::CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 bValid = true; } } - // Zweite Spalte FeldName + // Second column field name if ((nIndex < 1) || bValid) { bFound = false; @@ -3177,7 +3175,7 @@ bool ScTable::CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 bValid = false; } } - // Dritte Spalte Operator =<>... + // Third column operator =<>... if (bValid) { bFound = false; @@ -3202,7 +3200,7 @@ bool ScTable::CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 rEntry.eOp = SC_EQUAL; } - // Vierte Spalte Wert + // Forth column values if (bValid) { OUString aStr; @@ -3227,16 +3225,16 @@ bool ScTable::CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow for (i=0; i < nCount; i++) rQueryParam.GetEntry(i).Clear(); - // Standard QueryTabelle + // Standard query tabel bool bValid = CreateStarQuery(nCol1, nRow1, nCol2, nRow2, rQueryParam); - // Excel QueryTabelle + // Excel Query tabel if (!bValid) bValid = CreateExcelQuery(nCol1, nRow1, nCol2, nRow2, rQueryParam); nCount = rQueryParam.GetEntryCount(); if (bValid) { - // bQueryByString muss gesetzt sein + // bQueryByString must be set for (i=0; i < nCount; i++) rQueryParam.GetEntry(i).GetQueryItem().meType = ScQueryEntry::ByString; } |