2 Funzioni relative alla gestione delle analisi di prezzi
13 Se non presente, crea il foglio 'Analisi di Prezzo' ed inserisce la prima scheda
14 Ritorna l'oggetto oSheet del foglio contenente le analisi
15 e la riga da cui iniziare la compilazione dell'analisi corrente
18 if not oDoc.getSheets().hasByName(
'Analisi di Prezzo'):
19 oDoc.getSheets().insertNewByName(
'Analisi di Prezzo', 1)
20 oSheet = oDoc.Sheets.getByName(
'Analisi di Prezzo')
21 oSheet.getCellRangeByPosition(0, 0, 15, 0).CellStyle =
'Analisi_Sfondo'
22 oSheet.getCellByPosition(0, 1).Value = 0
23 oSheet.TabColor = 12189608
24 oRangeAddress = oDoc.NamedRanges.blocco_analisi.ReferredCells.RangeAddress
39 oSheet = oDoc.Sheets.getByName(
'Analisi di Prezzo')
43 for n
in range(lrow, urow):
44 if oSheet.getCellByPosition(0, n).CellStyle ==
'An-sfondo-basso Att End':
46 oRangeAddress = oDoc.NamedRanges.blocco_analisi.ReferredCells.RangeAddress
47 oSheet.getRows().insertByIndex(n + 2, 26)
48 oCellAddress = oSheet.getCellByPosition(0, n + 2).getCellAddress()
53 oSheet.copyRange(oCellAddress, oRangeAddress)
56 return oSheet, startRow
61 lrow { int } : riga di riferimento per
62 la selezione dell'intera voce
63 Circoscrive una voce di analisi
64 partendo dalla posizione corrente del cursore
67 if oSheet.getCellByPosition(0, lrow).CellStyle
in stili_analisi:
68 for el
in reversed(range(0, lrow)):
70 if oSheet.getCellByPosition(0, el).CellStyle ==
'Analisi_Sfondo':
74 if oSheet.getCellByPosition(0, el).CellStyle ==
'An-sfondo-basso Att End':
77 celle = oSheet.getCellRangeByPosition(0, SR, 250, ER)
83 Inserisce una nuova riga di misurazione in analisi di prezzo
85 stile = oSheet.getCellByPosition(0, lrow).CellStyle
86 if stile
in (
'An-lavoraz-desc',
'An-lavoraz-Cod-sx'):
88 oSheet.getRows().insertByIndex(lrow, 1)
90 oSheet.getCellByPosition(0, lrow).CellStyle =
'An-lavoraz-Cod-sx'
91 oSheet.getCellRangeByPosition(1, lrow, 5, lrow).CellStyle =
'An-lavoraz-generica'
92 oSheet.getCellByPosition(3, lrow).CellStyle =
'An-lavoraz-input'
93 oSheet.getCellByPosition(6, lrow).CellStyle =
'An-senza'
94 oSheet.getCellByPosition(7, lrow).CellStyle =
'An-senza-DX'
97 oSheet.getCellByPosition(1, lrow).Formula = (
98 '=IF(A' + str(lrow + 1) +
99 '="";"";CONCATENATE(" ";VLOOKUP(A' +
100 str(lrow + 1) +
';elenco_prezzi;2;FALSE());' '))')
101 oSheet.getCellByPosition(2, lrow).Formula = (
102 '=IF(A' + str(lrow + 1) +
'="";"";VLOOKUP(A' +
103 str(lrow + 1) +
';elenco_prezzi;3;FALSE()))')
104 oSheet.getCellByPosition(3, lrow).Value = 0
105 oSheet.getCellByPosition(4,lrow).Formula = (
106 '=IF(A' + str(lrow + 1) +
'="";0;VLOOKUP(A' +
107 str(lrow + 1) +
';elenco_prezzi;5;FALSE()))')
108 oSheet.getCellByPosition(5, lrow).Formula = (
109 '=D' + str(lrow + 1) +
'*E' + str(lrow + 1))
110 oSheet.getCellByPosition(8, lrow).Formula = (
111 '=IF(A' + str(lrow + 1) +
'="";"";IF(VLOOKUP(A' +
112 str(lrow + 1) +
';elenco_prezzi;6;FALSE())="";"";(VLOOKUP(A' +
113 str(lrow + 1) +
';elenco_prezzi;6;FALSE()))))')
114 oSheet.getCellByPosition(9, lrow).Formula = (
115 '=IF(I' + str(lrow + 1) +
'="";"";I' +
116 str(lrow + 1) +
'*F' + str(lrow + 1) +
')')
117 if oSheet.getCellByPosition(1, lrow - 1).CellStyle ==
'An-lavoraz-dx-senza-bordi':
118 oRangeAddress = oSheet.getCellByPosition(0, lrow + 1).getRangeAddress()
119 oCellAddress = oSheet.getCellByPosition(0, lrow).getCellAddress()
120 oSheet.copyRange(oCellAddress, oRangeAddress)
121 oSheet.getCellByPosition(0, lrow).String =
'Cod. Art.?'
126 oSheet = oDoc.CurrentController.ActiveSheet
127 if oSheet.Name !=
'Analisi di Prezzo':
130 oSheet.removeAllManualPageBreaks()
131 for el
in range (1, lr):
132 if oSheet.getCellByPosition(0, el).String ==
'----':
133 if oSheet.getCellByPosition(0, el + 2).CellStyle !=
'Ultimus_centro':
134 oSheet.getCellByPosition(0, el + 2).Rows.IsStartOfNewPage =
True