2 Funzioni di utilità per la manipolazione dei fogli
3 relativamente alle funzionalità specifiche di LeenO
6 from com.sun.star.sheet.CellFlags
import HARDATTR, EDITATTR, FORMATTED
14 import LeenoDialogs
as DLG
19 Indica qual è il Documento Principale
20 nell'apposita area del foglio corrente
30 if sUltimus == uno.fileUrlToSystemPath(oDoc.getURL()):
39 'Elenco Prezzi':
'A1',
41 'Analisi di Prezzo':
'A1'
43 cell = d.get(oSheet.Name)
47 oSheet.getCellRangeByName(cell).String =
'DP: ' + sUltimus
48 oSheet.getCellRangeByName(
"A1:AT1").clearContents(EDITATTR + FORMATTED + HARDATTR)
57 oSheet = oDoc.CurrentController.ActiveSheet
59 oPrintArea = oSheet.getPrintAreas()
61 oSheet.getCellRangeByPosition(
62 oPrintArea[0].StartColumn, oPrintArea[0].StartRow,
63 oPrintArea[0].EndColumn, oPrintArea[0].EndRow
64 ).CellBackColor = 16777215
71 Cancella area di stampa del foglio corrente
75 oSheet = oDoc.CurrentController.ActiveSheet
76 oSheet.setPrintAreas(())
83 sValori { string } : una stringa di configurazione della visibilità colonne
84 permette di visualizzare/nascondere un set di colonne
90 oSheet.getCellByPosition(n, 2).Columns.IsVisible =
True if el ==
'T' else False
97 regola la larghezza delle colonne a seconda della sheet
99 if oSheet.Name ==
'Analisi di Prezzo':
100 for col, width
in {
'A':1600,
'B':11000,
'C':1500,
'D':1500,
'E':1500,
'F':1500,
101 'G':1500,
'H':2000,
'I':1900,
'J':1900,
'K':1900}.items():
102 oSheet.Columns[col].Width = width
105 elif oSheet.Name ==
'CONTABILITA':
108 oSheet.getCellRangeByPosition(13, 0, 1023, 0).Columns.Width = 1900
110 oSheet.getCellRangeByPosition(19, 0, 23, 0).Columns.Width = 1000
112 oSheet.getCellRangeByPosition(51, 0, 1023, 0).Columns.IsVisible =
False
114 for col, width
in {
'A':600,
'B':1500,
'C':6300,
'F':1300,
'G':1300,
115 'H':1300,
'I':1300,
'J':1700,
'L':1700,
'N':1900,
116 'P':1900,
'T':1000,
'U':1000,
'W':1000,
'X':1000,
117 'Z':1900,
'AC':1700,
'AD':1700,
'AE':1700,
118 'AX':1900,
'AY':1900}.items():
119 oSheet.Columns[col].Width = width
122 elif oSheet.Name
in (
'COMPUTO',
'VARIANTE'):
124 oSheet.getCellRangeByPosition(5, 0, 8, 0).Columns.IsVisible =
True
126 oSheet.getColumns().getByName(
'A').Columns.Width = 600
127 oSheet.getColumns().getByName(
'B').Columns.Width = 1500
128 oSheet.getColumns().getByName(
'C').Columns.Width = 6300
129 oSheet.getColumns().getByName(
'F').Columns.Width = 1500
130 oSheet.getColumns().getByName(
'G').Columns.Width = 1300
131 oSheet.getColumns().getByName(
'H').Columns.Width = 1300
132 oSheet.getColumns().getByName(
'I').Columns.Width = 1300
133 oSheet.getColumns().getByName(
'J').Columns.Width = 1700
134 oSheet.getColumns().getByName(
'L').Columns.Width = 1700
135 oSheet.getColumns().getByName(
'S').Columns.Width = 1700
136 oSheet.getColumns().getByName(
'AC').Columns.Width = 1700
137 oSheet.getColumns().getByName(
'AD').Columns.Width = 1700
138 oSheet.getColumns().getByName(
'AE').Columns.Width = 1700
141 if oSheet.Name ==
'Elenco Prezzi':
142 oSheet.getColumns().getByName(
'A').Columns.Width = 1600
143 oSheet.getColumns().getByName(
'B').Columns.Width = 10000
144 oSheet.getColumns().getByName(
'C').Columns.Width = 1500
145 oSheet.getColumns().getByName(
'D').Columns.Width = 1500
146 oSheet.getColumns().getByName(
'E').Columns.Width = 1600
147 oSheet.getColumns().getByName(
'F').Columns.Width = 1500
148 oSheet.getColumns().getByName(
'G').Columns.Width = 1500
149 oSheet.getColumns().getByName(
'H').Columns.Width = 1600
150 oSheet.getColumns().getByName(
'I').Columns.Width = 1200
151 oSheet.getColumns().getByName(
'J').Columns.Width = 1200
152 oSheet.getColumns().getByName(
'K').Columns.Width = 100
153 oSheet.getColumns().getByName(
'L').Columns.Width = 1600
154 oSheet.getColumns().getByName(
'M').Columns.Width = 1600
155 oSheet.getColumns().getByName(
'N').Columns.Width = 1600
156 oSheet.getColumns().getByName(
'O').Columns.Width = 100
157 oSheet.getColumns().getByName(
'P').Columns.Width = 1600
158 oSheet.getColumns().getByName(
'Q').Columns.Width = 1600
159 oSheet.getColumns().getByName(
'R').Columns.Width = 1600
160 oSheet.getColumns().getByName(
'S').Columns.Width = 100
161 oSheet.getColumns().getByName(
'T').Columns.Width = 1600
162 oSheet.getColumns().getByName(
'U').Columns.Width = 1600
163 oSheet.getColumns().getByName(
'V').Columns.Width = 1600
164 oSheet.getColumns().getByName(
'W').Columns.Width = 100
165 oSheet.getColumns().getByName(
'X').Columns.Width = 1600
166 oSheet.getColumns().getByName(
'Y').Columns.Width = 1600
167 oSheet.getColumns().getByName(
'Z').Columns.Width = 1600
168 oSheet.getColumns().getByName(
'AA').Columns.Width = 1600
175 Restituisce la posizione della riga rossa
178 for n
in reversed(range(0, nRow)):
179 if oSheet.getCellByPosition(
181 n).CellStyle ==
'Riga_rossa_Chiudi':
188 for n
in reversed(range(0, nRow)):
190 if oSheet.getCellByPosition(
192 n).CellStyle
in (
'EP-aS',
'EP-Cs',
'An-sfondo-basso Att End',
193 'Comp End Attributo',
'Comp End Attributo_R',
195 'comp Int_colonna_R_prima',
196 'Livello-0-scritta',
'Livello-1-scritta',
207 oSheet foglio corrente
208 lrow riga corrente nel foglio
209 Ritorna il nome del foglio [0] e l'id della riga di codice prezzo componente [1]
210 il flag '#reg' solo per la contabilità.
211 partenza = (nome_foglio, id_rcodice, flag_contabilità)
217 if oSheet.getCellByPosition(0, lrow).CellStyle
in stili_computo:
219 partenza = (oSheet.Name, sStRange.RangeAddress.StartRow + 1)
222 elif oSheet.getCellByPosition(0, lrow).CellStyle
in stili_contab:
226 partenza = (oSheet.Name, sStRange.RangeAddress.StartRow + 1,
227 oSheet.getCellByPosition(22,
228 sStRange.RangeAddress.StartRow + 1).String)
231 partenza = (oSheet.Name, lrow,
'')
234 elif oSheet.getCellByPosition(0, lrow).CellStyle
in (
'An-lavoraz-Cod-sx',
'Comp TOTALI'):
235 partenza = (oSheet.Name, lrow)
239 partenza = (oSheet.Name, lrow,
'')
249 Restituisce inizio e fine riga di una voce in COMPUTO, VARIANTE,
250 CONTABILITA o Analisi di Prezzo
251 lrow { long } : numero riga all'interno della voce
253 if oSheet.Name
in (
'Elenco Prezzi'):
256 if oSheet.Name
in (
'COMPUTO',
'VARIANTE'):
258 elif oSheet.Name ==
'Analisi di Prezzo':
261 elif oSheet.Name ==
'CONTABILITA':
263 if partenza[2] ==
'#reg':
274 SR = sStRange.RangeAddress.StartRow
275 ER = sStRange.RangeAddress.EndRow
284 lrow { double } : riga di riferimento
285 n { integer } : se 0 sposta prima della voce corrente
286 se 1 sposta dopo della voce corrente
287 sposta il cursore prima o dopo la voce corrente restituendo un idrow
293 stili = stili_computo + stili_contab
297 while oSheet.getCellByPosition(0, lrow).CellStyle
not in stili:
304 if oSheet.getCellByPosition(0, lrow).CellStyle
in stili:
312 while oSheet.getCellByPosition(0, lrow).CellStyle
in stili_cat:
314 while oSheet.getCellByPosition(0, lrow).CellStyle
in (
'uuuuu',
'Ultimus_centro_bordi_lati'):
321 usata in PL.MENU_elimina_voci_azzerate()
323 Elimina una voce in COMPUTO, VARIANTE, CONTABILITA o Analisi di Prezzo
324 lrow { long } : numero riga
330 oSheet.getRows().removeByIndex(SR, ER - SR + 1)
334 @@@ MODIFICA IN CORSO CON 'LeenoSheetUtils.eliminaVoce'
335 Elimina una voce in COMPUTO, VARIANTE, CONTABILITA o Analisi di Prezzo
336 lrow { long } : numero riga
337 msg { bit } : 1 chiedi conferma con messaggio
338 0 esegui senza conferma
341 oSheet = oDoc.CurrentController.ActiveSheet
343 if oSheet.Name ==
'Elenco Prezzi':
344 Dialogs.Info(Title =
'Info', Text=
"""Per eliminare una o più voci dall'Elenco Prezzi
345 devi selezionarle ed utilizzare il comando 'Elimina righe' di Calc.""")
348 if oSheet.Name
not in (
'COMPUTO',
'CONTABILITA',
'VARIANTE',
'Analisi di Prezzo'):
352 SR = PL.seleziona_voce()[0]
355 ER = PL.seleziona_voce()[1]
357 oDoc.CurrentController.select(oSheet.getCellRangeByPosition(
359 if '$C$' in oSheet.getCellByPosition(9, ER).queryDependents(
False).AbsoluteName:
362 PL.comando (
'ClearArrowDependents')
363 PL.comando (
'ShowDependents')
364 oDoc.CurrentController.select(oSheet.getCellRangeByPosition(
367 Da questa voce dipende almeno un Vedi Voce.
368 VUOI PROCEDERE UGUALMENTE?"""
370 messaggio =
"""OPERAZIONE NON ANNULLABILE!\n
371 Stai per eliminare la voce selezionata.
375 Text= messaggio) == 1:
381 oSheet.getRows().removeByIndex(SR, ER - SR + 1)
382 PL._gotoCella(0, SR+1)
384 oDoc.CurrentController.select(oSheet.getCellRangeByPosition(
388 oSheet.getRows().removeByIndex(SR, ER - SR + 1)
389 if oSheet.Name !=
'Analisi di Prezzo':
392 PL._gotoCella(0, SR+2)
393 oDoc.CurrentController.select(
394 oDoc.createInstance(
"com.sun.star.sheet.SheetCellRanges"))
400 Inserisce la riga rossa di chiusura degli elaborati nel foglio specificato
401 Questa riga è un riferimento per varie operazioni
402 Errore se il foglio non è un foglio di LeenO
406 if nome
in (
'COMPUTO',
'VARIANTE',
'CONTABILITA'):
409 if oSheet.getCellByPosition(0, n).CellStyle ==
'Riga_rossa_Chiudi':
411 oSheet.getRows().insertByIndex(lrow, 1)
412 oSheet.getCellByPosition(0, lrow).String =
'Fine Computo'
413 oSheet.getCellRangeByPosition(0, lrow, 34, lrow).CellStyle =
'Riga_rossa_Chiudi'
414 oSheet.getCellByPosition(2, lrow
415 ).String =
'Questa riga NON deve essere cancellata, MAI!!!(ma può rimanere tranquillamente NASCOSTA!)'
416 elif nome ==
'Analisi di Prezzo':
418 oSheet.getCellByPosition(0, lrow).String =
'Fine ANALISI'
419 oSheet.getCellRangeByPosition(0, lrow, 10, lrow).CellStyle =
'Riga_rossa_Chiudi'
420 oSheet.getCellByPosition(1, lrow
421 ).String =
'Questa riga NON deve essere cancellata, MAI!!!(ma può rimanere tranquillamente NASCOSTA!)'
422 elif nome ==
'Elenco Prezzi':
424 if oSheet.getCellByPosition(0, lrow).CellStyle !=
'Riga_rossa_Chiudi':
426 oSheet.getCellByPosition(0, lrow).String =
'Fine elenco'
427 oSheet.getCellRangeByPosition(0, lrow, 9, lrow).CellStyle =
'Riga_rossa_Chiudi'
428 oSheet.getCellRangeByPosition(11, lrow, 21, lrow).CellStyle =
'EP statistiche_Contab'
429 oSheet.getCellRangeByPosition(23, lrow, 25, lrow).CellStyle =
'EP statistiche'
430 oSheet.getCellRangeByPosition(26, lrow, 26, lrow).CellStyle =
'EP-mezzo %'
432 oSheet.getCellByPosition(12, lrow).String =
'TOTALE'
433 oSheet.getCellByPosition(13, lrow).Formula =
'=SUBTOTAL(9;N3:N' + s +
')'
434 oSheet.getCellByPosition(16, lrow).String =
'TOTALE'
435 oSheet.getCellByPosition(17, lrow).Formula =
'=SUBTOTAL(9;R3:R' + s +
')'
436 oSheet.getCellByPosition(20, lrow).String =
'TOTALE'
437 oSheet.getCellByPosition(21, lrow).Formula =
'=SUBTOTAL(9;V3:V' + s +
')'
438 oSheet.getCellByPosition(23, lrow).String =
'TOTALE'
439 oSheet.getCellByPosition(24, lrow).Formula =
'=SUBTOTAL(9;Y3:Y' + s +
')'
440 oSheet.getCellByPosition(25, lrow).Formula =
'=SUBTOTAL(9;Z3:Z' + s +
')'
441 oSheet.getCellByPosition(26, lrow).Formula =
'=IFERROR(IFS(AND(N' + s +
'>R' + s +
';R' + s +
'=0);-1;AND(N' + s +
'<R' + s +
';N' + s +
'=0);1;N' + s +
'=R' + s +
';"--";N' + s +
'>R' + s +
';-(N' + s +
'-R' + s +
')/N' + s +
';N'+ s +
'<R' + s +
';-(N' + s +
'-R' + s +
')/N' + s +
');"--")'
442 oSheet.getCellByPosition(1, lrow
443 ).String =
'Questa riga NON deve essere cancellata, MAI!!!(ma può rimanere tranquillamente NASCOSTA!)'
446 from com.sun.star.beans
import PropertyValue
451 altezza { integer } : altezza
452 fissa il valore dell'altezza ottimale
458 oFrame = desktop.getCurrentFrame()
459 dispatchHelper = ctx.ServiceManager.createInstanceWithContext(
460 'com.sun.star.frame.DispatchHelper', ctx)
461 oProp = PropertyValue()
462 oProp.Name =
'aExtraHeight'
464 properties = (oProp, )
465 dispatchHelper.executeDispatch(oFrame,
'.uno:SetOptimalRowHeight',
'', 0,
470 Adatta l'altezza delle righe al contenuto delle celle.
471 imposta l'altezza ottimale delle celle
472 usata in PL.Menu_adattaAltezzaRiga()
480 if not oDoc.getSheets().hasByName(
'S1'):
484 oSheet.getCellRangeByPosition(0, 0, usedArea.EndColumn, usedArea.EndRow).Rows.OptimalHeight =
True
488 if float(PL.loVersion()[:5].replace(
'.',
'')) >= 642:
493 lista_stili = (
'comp 1-a',
'Comp-Bianche in mezzo Descr_R',
494 'Comp-Bianche in mezzo Descr',
'EP-a',
495 'Ultimus_centro_bordi_lati')
498 float(PL.loVersion()[:5].replace(
'.',
'')) > 520
or
499 float(PL.loVersion()[:5].replace(
'.',
'')) < 642):
500 for stile_cella
in lista_stili:
502 oDoc.StyleFamilies.getByName(
"CellStyles").getByName(stile_cella).IsTextWrapped =
True
506 test = usedArea.EndRow + 1
508 for y
in range(0, test):
509 if oSheet.getCellByPosition(2, y).CellStyle
in lista_stili:
510 oSheet.getCellRangeByPosition(0, y, usedArea.EndColumn, y).Rows.OptimalHeight =
True
512 if oSheet.Name
in (
'Elenco Prezzi',
'VARIANTE',
'COMPUTO',
'CONTABILITA'):
513 oSheet.getCellByPosition(0, 2).Rows.Height = 800
514 if oSheet.Name ==
'Elenco Prezzi':
515 test = usedArea.EndRow + 1
516 for y
in range(0, test):
517 oSheet.getCellRangeByPosition(0, y, usedArea.EndColumn, y).Rows.OptimalHeight =
True
526 lrow { double } : id della riga di inserimento
527 sTesto { string } : titolo della categoria
529 if oSheet.Name
not in (
'COMPUTO',
'VARIANTE',
'CONTABILITA'):
532 sTesto =
'senza_titolo'
533 if oSheet.getCellByPosition(1, lrow).CellStyle ==
'Default':
536 if oSheet.getCellByPosition(1, lrow).CellStyle ==
'Riga_rossa_Chiudi':
540 oSheet.getRows().insertByIndex(lrow, 1)
541 oSheet.getCellByPosition(2, lrow).String = sTesto
544 oSheet.getCellRangeByPosition(0, lrow, 41, lrow).CellStyle =
'Livello-0-scritta'
545 oSheet.getCellRangeByPosition(2, lrow, 17, lrow).CellStyle =
'Livello-0-scritta mini'
546 oSheet.getCellRangeByPosition( 18, lrow, 18, lrow).CellStyle =
'Livello-0-scritta mini val'
547 oSheet.getCellRangeByPosition(24, lrow, 24, lrow).CellStyle =
'Livello-0-scritta mini %'
548 oSheet.getCellRangeByPosition(29, lrow, 29, lrow).CellStyle =
'Livello-0-scritta mini %'
549 oSheet.getCellRangeByPosition(30, lrow, 30, lrow).CellStyle =
'Livello-0-scritta mini val'
550 oSheet.getCellRangeByPosition(2, lrow, 11, lrow).merge(
True)
556 while oSheet.getCellByPosition(31, lrowProvv).CellStyle !=
'Livello-0-scritta':
561 oSheet.getCellByPosition(31, lrow).Value = oSheet.getCellByPosition(1, lrowProvv).Value + 1
569 lrow { double } : id della riga di inserimento
570 sTesto { string } : titolo della categoria
572 if oSheet.Name
not in (
'COMPUTO',
'VARIANTE',
'CONTABILITA'):
575 sTesto =
'senza_titolo'
577 if oSheet.getCellByPosition(1, lrow).CellStyle ==
'Default':
580 if oSheet.getCellByPosition(1, lrow).CellStyle ==
'Riga_rossa_Chiudi':
583 oSheet.getRows().insertByIndex(lrow, 1)
584 oSheet.getCellByPosition(2, lrow).String = sTesto
587 oSheet.getCellRangeByPosition(0, lrow, 41, lrow).CellStyle =
'Livello-1-scritta'
588 oSheet.getCellRangeByPosition(2, lrow, 17, lrow).CellStyle =
'Livello-1-scritta mini'
589 oSheet.getCellRangeByPosition(18, lrow, 18, lrow).CellStyle =
'Livello-1-scritta mini val'
590 oSheet.getCellRangeByPosition(24, lrow, 24, lrow).CellStyle =
'Livello-1-scritta mini %'
591 oSheet.getCellRangeByPosition(29, lrow, 29, lrow).CellStyle =
'Livello-1-scritta mini %'
592 oSheet.getCellRangeByPosition(30, lrow, 30, lrow).CellStyle =
'Livello-1-scritta mini val'
593 oSheet.getCellRangeByPosition(2, lrow, 11, lrow).merge(
True)
599 while oSheet.getCellByPosition(31, lrowProvv).CellStyle !=
'Livello-1-scritta':
604 oSheet.getCellByPosition(31, lrow).Value = oSheet.getCellByPosition(1, lrowProvv).Value + 1
612 lrow { double } : id della riga di inserimento
613 sTesto { string } : titolo della sottocategoria
615 if oSheet.Name
not in (
'COMPUTO',
'VARIANTE',
'CONTABILITA'):
618 sTesto =
'senza_titolo'
620 if oSheet.getCellByPosition(1, lrow).CellStyle ==
'Default':
623 if oSheet.getCellByPosition(1, lrow).CellStyle ==
'Riga_rossa_Chiudi':
627 oSheet.getRows().insertByIndex(lrow, 1)
628 oSheet.getCellByPosition(2, lrow).String = sTesto
631 oSheet.getCellRangeByPosition(0, lrow, 41,lrow).CellStyle =
'livello2 valuta'
632 oSheet.getCellRangeByPosition(2, lrow, 17, lrow).CellStyle =
'livello2_'
633 oSheet.getCellRangeByPosition(18, lrow, 18, lrow).CellStyle =
'livello2 scritta mini'
634 oSheet.getCellRangeByPosition(24, lrow, 24, lrow).CellStyle =
'livello2 valuta mini %'
635 oSheet.getCellRangeByPosition(29, lrow, 29, lrow).CellStyle =
'livello2 valuta mini %'
636 oSheet.getCellRangeByPosition(30, lrow, 30, lrow).CellStyle =
'livello2 valuta mini'
637 oSheet.getCellRangeByPosition(31, lrow, 33, lrow).CellStyle =
'livello2_'
638 oSheet.getCellRangeByPosition(2, lrow, 11, lrow).merge(
True)
646 while oSheet.getCellByPosition(32, lrowProvv).CellStyle !=
'livello2 valuta':
651 oSheet.getCellByPosition(
652 32, lrow).Value = oSheet.getCellByPosition(1, lrowProvv).Value + 1
654 while oSheet.getCellByPosition(31, lrowProvv).CellStyle !=
'Livello-1-scritta':
659 oSheet.getCellByPosition(31, lrow).Value = oSheet.getCellByPosition(1, lrowProvv).Value
668 Inverte il segno delle formule di quantità nel rigo di misurazione lrow.
669 lrow { int } : riga di riferimento
672 if oSheet.Name
in (
'COMPUTO',
'VARIANTE'):
673 if 'comp 1-a' in oSheet.getCellByPosition(2, lrow).CellStyle:
674 if 'ROSSO' in oSheet.getCellByPosition(2, lrow).CellStyle:
675 oSheet.getCellByPosition(
677 ).Formula =
'=IF(PRODUCT(E' + str(lrow + 1) +
':I' + str(
678 lrow + 1) +
')=0;"";PRODUCT(E' + str(
679 lrow + 1) +
':I' + str(lrow + 1) +
'))'
689 for x
in range(2, 10):
690 oSheet.getCellByPosition(
691 x, lrow).CellStyle = oSheet.getCellByPosition(
692 x, lrow).CellStyle.split(
' ROSSO')[0]
694 oSheet.getCellByPosition(
696 ).Formula =
'=IF(PRODUCT(E' + str(lrow + 1) +
':I' + str(
697 lrow + 1) +
')=0;"";-PRODUCT(E' + str(
698 lrow + 1) +
':I' + str(lrow + 1) +
'))'
707 for x
in range(2, 10):
708 oSheet.getCellByPosition(
709 x, lrow).CellStyle = oSheet.getCellByPosition(
710 x, lrow).CellStyle +
' ROSSO'
711 if oSheet.Name
in (
'CONTABILITA'):
712 formula1 = oSheet.getCellByPosition(9, lrow).Formula
713 formula2 = oSheet.getCellByPosition(11, lrow).Formula
714 oSheet.getCellByPosition(11, lrow).Formula = formula1
715 oSheet.getCellByPosition(9, lrow).Formula = formula2
716 if oSheet.getCellByPosition(11, lrow).String !=
'':
717 for x
in range(2, 12):
718 oSheet.getCellByPosition(
719 x, lrow).CellStyle = oSheet.getCellByPosition(
720 x, lrow).CellStyle +
' ROSSO'
722 for x
in range(2, 12):
723 oSheet.getCellByPosition(
724 x, lrow).CellStyle = oSheet.getCellByPosition(
725 x, lrow).CellStyle.split(
' ROSSO')[0]
732 tutte { boolean } : True rinumera tutto
733 False rinumera dalla voce corrente in giù
740 for x
in reversed(range(0, lrow)):
742 oSheet.getCellByPosition(1, x).CellStyle
in (
'comp Art-EP',
'comp Art-EP_R')
and
743 oSheet.getCellByPosition(1, x).CellBackColor != 15066597):
744 n = oSheet.getCellByPosition(0, x).Value + 1
746 for row
in range(lrow, lastRow):
747 if oSheet.getCellByPosition(1, row).CellBackColor == 15066597:
748 oSheet.getCellByPosition(0, row).String =
''
749 elif oSheet.getCellByPosition(1,row).CellStyle
in (
'comp Art-EP',
'comp Art-EP_R'):
750 oSheet.getCellByPosition(0, row).Value = n
753 for row
in range(0, lastRow):
754 if oSheet.getCellByPosition(1, row).CellStyle
in (
'comp Art-EP',
'comp Art-EP_R'):
755 oSheet.getCellByPosition(0, row).Value = n
763 '''elimina le righe vuote negli elaborati di COMPUTO, VARIANTE o CONTABILITA'''
766 oSheet = oDoc.CurrentController.ActiveSheet
767 if oSheet.Name
not in (
'COMPUTO',
'VARIANTE',
'CONTABILITA'):
769 tabelle COMPUTO, VARIANTE o CONTABILITA.''')
772 Text=
"Stai per eliminare tutte le righe vuote dell'elabotato " + oSheet.Name +
773 ".\nVuoi procedere?") == 0:
777 lrow_c = PL.LeggiPosizioneCorrente()[1]
778 if oSheet.Name ==
'CONTABILITA':
779 sString =
'T O T A L E'
781 sString =
'TOTALI COMPUTO'
783 progress =
Dialogs.Progress(Title=
'Eliminazione delle righe vuote in corso...', Text=
"Lettura dati")
784 progress.setLimits(0, lrow)
787 for y
in reversed(range(0, lrow)):
790 for x
in (range(0, 8 +1)):
791 if oSheet.getCellByPosition(0, y).CellStyle
not in (
'Comp Start Attributo',
'Comp Start Attributo_R'):
792 if oSheet.getCellByPosition(x, y).Type.value !=
'EMPTY':
795 if test ==
False and x == 8 :
796 oSheet.getRows().removeByIndex(y, 1)
801 Dialogs.Info(Title=
'Ricerca conclusa', Text=
'Eliminate ' + str(lrow - lrow_) +
' righe vuote.')