1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?> 2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> 3*b1cdbd2cSJim Jagielski<!--*********************************************************** 4*b1cdbd2cSJim Jagielski * 5*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 6*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 7*b1cdbd2cSJim Jagielski * distributed with this work for additional information 8*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 9*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 10*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 11*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 14*b1cdbd2cSJim Jagielski * 15*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 16*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 17*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 19*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 20*b1cdbd2cSJim Jagielski * under the License. 21*b1cdbd2cSJim Jagielski * 22*b1cdbd2cSJim Jagielski ***********************************************************--> 23*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Internet" script:language="StarBasic">REM ***** BASIC ***** 24*b1cdbd2cSJim JagielskiOption Explicit 25*b1cdbd2cSJim JagielskiPublic sNewSheetName as String 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim JagielskiFunction CheckHistoryControls() 28*b1cdbd2cSJim JagielskiDim bLocGoOn as Boolean 29*b1cdbd2cSJim JagielskiDim Firstdate as Date 30*b1cdbd2cSJim JagielskiDim LastDate as Date 31*b1cdbd2cSJim Jagielski LastDate = CDateFromISO(StockRatesModel.txtEndDate.Date) 32*b1cdbd2cSJim Jagielski FirstDate = CDateFromISO(StockRatesModel.txtStartDate.Date) 33*b1cdbd2cSJim Jagielski bLocGoOn = FirstDate <> 0 And LastDate <> 0 34*b1cdbd2cSJim Jagielski If bLocGoOn Then 35*b1cdbd2cSJim Jagielski If FirstDate >= LastDate Then 36*b1cdbd2cSJim Jagielski Msgbox(sMsgStartDatebeforeEndDate,16, sProductname) 37*b1cdbd2cSJim Jagielski bLocGoOn = False 38*b1cdbd2cSJim Jagielski End If 39*b1cdbd2cSJim Jagielski End If 40*b1cdbd2cSJim Jagielski CheckHistoryControls = bLocGoon 41*b1cdbd2cSJim JagielskiEnd Function 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim JagielskiSub InsertCompanyHistory() 45*b1cdbd2cSJim JagielskiDim StockName as String 46*b1cdbd2cSJim JagielskiDim CurRow as Integer 47*b1cdbd2cSJim JagielskiDim sMsgInternetError as String 48*b1cdbd2cSJim JagielskiDim CurRate as Double 49*b1cdbd2cSJim JagielskiDim oCell as Object 50*b1cdbd2cSJim JagielskiDim sStockID as String 51*b1cdbd2cSJim JagielskiDim ChartSource as String 52*b1cdbd2cSJim Jagielski If CheckHistoryControls() Then 53*b1cdbd2cSJim Jagielski StartDate = CDateFromISO(StockRatesModel.txtStartDate.Date) 54*b1cdbd2cSJim Jagielski EndDate = CDateFromISO(StockRatesModel.txtEndDate.Date) 55*b1cdbd2cSJim Jagielski DlgStockRates.EndExecute() 56*b1cdbd2cSJim Jagielski If StockRatesModel.optDaily.State = 1 Then 57*b1cdbd2cSJim Jagielski sInterval = "d" 58*b1cdbd2cSJim Jagielski iStep = 1 59*b1cdbd2cSJim Jagielski ElseIf StockRatesModel.optWeekly.State = 1 Then 60*b1cdbd2cSJim Jagielski sInterval = "w" 61*b1cdbd2cSJim Jagielski iStep = 7 62*b1cdbd2cSJim Jagielski StartDate = StartDate - WeekDay(StartDate) + 2 63*b1cdbd2cSJim Jagielski EndDate = EndDate - WeekDay(EndDate) + 2 64*b1cdbd2cSJim Jagielski End If 65*b1cdbd2cSJim Jagielski iEndDay = Day(EndDate) 66*b1cdbd2cSJim Jagielski iEndMonth = Month(EndDate) 67*b1cdbd2cSJim Jagielski iEndYear = Year(EndDate) 68*b1cdbd2cSJim Jagielski iStartDay = Day(StartDate) 69*b1cdbd2cSJim Jagielski iStartMonth = Month(StartDate) 70*b1cdbd2cSJim Jagielski iStartYear = Year(StartDate) 71*b1cdbd2cSJim Jagielski' oDocument.AddActionLock() 72*b1cdbd2cSJim Jagielski UnprotectSheets(oSheets) 73*b1cdbd2cSJim Jagielski InitializeStatusline("", 10, 1) 74*b1cdbd2cSJim Jagielski oBackGroundSheet = oSheets.GetbyName("Background") 75*b1cdbd2cSJim Jagielski StockName = DlgStockRates.GetControl("lstStockNames").GetSelectedItem() 76*b1cdbd2cSJim Jagielski CurRow = GetStockRowIndex(Stockname) 77*b1cdbd2cSJim Jagielski sStockID = oFirstSheet.GetCellByPosition(SBCOLUMNID1, CurRow).String 78*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(HistoryChartSource, sStockID, "<StockID>") 79*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, iStartDay, "<StartDay>") 80*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, cStr(iStartMonth-1), "<StartMonth>") 81*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, iStartYear, "<StartYear>") 82*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, iEndDay, "<EndDay>") 83*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, cStr(iEndMonth-1), "<EndMonth>") 84*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, iEndYear, "<EndYear>") 85*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(ChartSource, sInterval, "<interval>") 86*b1cdbd2cSJim Jagielski oStatusLine.SetValue(2) 87*b1cdbd2cSJim Jagielski If GetCurrentRate(ChartSource, CurRate, 1) Then 88*b1cdbd2cSJim Jagielski oStatusLine.SetValue(8) 89*b1cdbd2cSJim Jagielski UpdateValue(StockName, Today, CurRate) 90*b1cdbd2cSJim Jagielski oStatusLine.SetValue(9) 91*b1cdbd2cSJim Jagielski UpdateChart(StockName) 92*b1cdbd2cSJim Jagielski oStatusLine.SetValue(10) 93*b1cdbd2cSJim Jagielski Else 94*b1cdbd2cSJim Jagielski sMsgInternetError = Stockname & ": " & sNoInternetDataAvailable & chr(13) & sCheckInternetSettings 95*b1cdbd2cSJim Jagielski Msgbox(sMsgInternetError, 16, sProductname) 96*b1cdbd2cSJim Jagielski End If 97*b1cdbd2cSJim Jagielski ProtectSheets(oSheets) 98*b1cdbd2cSJim Jagielski oStatusLine.End 99*b1cdbd2cSJim Jagielski If oSheets.HasbyName(sNewSheetName) Then 100*b1cdbd2cSJim Jagielski oController.ActiveSheet = oSheets.GetByName(sNewSheetName) 101*b1cdbd2cSJim Jagielski End If 102*b1cdbd2cSJim Jagielski' oDocument.RemoveActionLock() 103*b1cdbd2cSJim Jagielski End If 104*b1cdbd2cSJim JagielskiEnd Sub 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim JagielskiSub InternetUpdate() 109*b1cdbd2cSJim JagielskiDim i as Integer 110*b1cdbd2cSJim JagielskiDim StocksCount as Integer 111*b1cdbd2cSJim JagielskiDim iStartRow as Integer 112*b1cdbd2cSJim JagielskiDim sUrl as String 113*b1cdbd2cSJim JagielskiDim StockName as String 114*b1cdbd2cSJim JagielskiDim CurRate as Double 115*b1cdbd2cSJim JagielskiDim oCell as Object 116*b1cdbd2cSJim JagielskiDim sMsgInternetError as String 117*b1cdbd2cSJim JagielskiDim sStockID as String 118*b1cdbd2cSJim JagielskiDim ChartSource as String 119*b1cdbd2cSJim Jagielski' oDocument.AddActionLock() 120*b1cdbd2cSJim Jagielski Initialize(True) 121*b1cdbd2cSJim Jagielski UnprotectSheets(oSheets) 122*b1cdbd2cSJim Jagielski StocksCount = GetStocksCount(iStartRow) 123*b1cdbd2cSJim Jagielski InitializeStatusline("", StocksCount + 1, 1) 124*b1cdbd2cSJim Jagielski Today = CDate(Date) 125*b1cdbd2cSJim Jagielski For i = iStartRow + 1 To iStartRow + StocksCount 126*b1cdbd2cSJim Jagielski StockName = oFirstSheet.GetCellbyPosition(SBCOLUMNNAME1, i).String 127*b1cdbd2cSJim Jagielski sStockID = oFirstSheet.GetCellByPosition(SBCOLUMNID1, i).String 128*b1cdbd2cSJim Jagielski ChartSource = ReplaceString(sCurChartSource, sStockID, "<StockID>") 129*b1cdbd2cSJim Jagielski If GetCurrentRate(ChartSource, CurRate, 0) Then 130*b1cdbd2cSJim Jagielski InsertCurrentValue(CurRate, i, Now) 131*b1cdbd2cSJim Jagielski Else 132*b1cdbd2cSJim Jagielski sMsgInternetError = Stockname & ": " & sNoInternetDataAvailable & chr(13) & sCheckInternetSettings 133*b1cdbd2cSJim Jagielski Msgbox(sMsgInternetError, 16, sProductname) 134*b1cdbd2cSJim Jagielski End If 135*b1cdbd2cSJim Jagielski oStatusline.SetValue(i - iStartRow + 1) 136*b1cdbd2cSJim Jagielski Next 137*b1cdbd2cSJim Jagielski ProtectSheets(oSheets) 138*b1cdbd2cSJim Jagielski oStatusLine.End 139*b1cdbd2cSJim Jagielski' oDocument.RemoveActionLock 140*b1cdbd2cSJim JagielskiEnd Sub 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim JagielskiFunction GetCurrentRate(sUrl as String, fValue As Double, iValueRow as Integer) as Boolean 145*b1cdbd2cSJim JagielskiDim sFilter As String 146*b1cdbd2cSJim JagielskiDim sOptions As String 147*b1cdbd2cSJim JagielskiDim oLinkSheet As Object 148*b1cdbd2cSJim JagielskiDim sDate as String 149*b1cdbd2cSJim Jagielski If oSheets.hasByName("Link") Then 150*b1cdbd2cSJim Jagielski oLinkSheet = oSheets.getByName("Link") 151*b1cdbd2cSJim Jagielski Else 152*b1cdbd2cSJim Jagielski oLinkSheet = oDocument.createInstance("com.sun.star.sheet.Spreadsheet") 153*b1cdbd2cSJim Jagielski oSheets.insertByName("Link", oLinkSheet) 154*b1cdbd2cSJim Jagielski oLinkSheet.IsVisible = False 155*b1cdbd2cSJim Jagielski End If 156*b1cdbd2cSJim Jagielski 157*b1cdbd2cSJim Jagielski sFilter = "Text - txt - csv (StarCalc)" 158*b1cdbd2cSJim Jagielski sOptions = sCurSeparator & ",34,SYSTEM,1,1/10/2/10/3/10/4/10/5/10/6/10/7/10/8/10/9/10" 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski oLinkSheet.LinkMode = com.sun.star.sheet.SheetLinkMode.NONE 161*b1cdbd2cSJim Jagielski oLinkSheet.link(sUrl, "", sFilter, sOptions, 1 ) 162*b1cdbd2cSJim Jagielski fValue = oLinkSheet.getCellByPosition(iValueCol, iValueRow).Value 163*b1cdbd2cSJim Jagielski If fValue = 0 Then 164*b1cdbd2cSJim Jagielski Dim sValue as String 165*b1cdbd2cSJim Jagielski sValue = oLinkSheet.getCellByPosition(1, iValueRow).String 166*b1cdbd2cSJim Jagielski sValue = ReplaceString(sValue, ".",",") 167*b1cdbd2cSJim Jagielski fValue = Val(sValue) 168*b1cdbd2cSJim Jagielski End If 169*b1cdbd2cSJim Jagielski GetCurrentRate = fValue <> 0 170*b1cdbd2cSJim JagielskiEnd Function 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim JagielskiSub UpdateValue(ByVal sName As String, fDate As Double, fValue As Double ) 175*b1cdbd2cSJim JagielskiDim oSheet As Object 176*b1cdbd2cSJim JagielskiDim iColumn As Long 177*b1cdbd2cSJim JagielskiDim iRow As Long 178*b1cdbd2cSJim JagielskiDim i as Integer 179*b1cdbd2cSJim JagielskiDim oCell As Object 180*b1cdbd2cSJim JagielskiDim LastDate as Date 181*b1cdbd2cSJim JagielskiDim bLeaveLoop as Boolean 182*b1cdbd2cSJim JagielskiDim RemoveCount as Integer 183*b1cdbd2cSJim JagielskiDim iLastRow as Integer 184*b1cdbd2cSJim JagielskiDim iLastLinkRow as Integer 185*b1cdbd2cSJim JagielskiDim dDate as Date 186*b1cdbd2cSJim JagielskiDim CurDate as Date 187*b1cdbd2cSJim JagielskiDim oLinkSheet as Object 188*b1cdbd2cSJim JagielskiDim StartIndex as Integer 189*b1cdbd2cSJim JagielskiDim iCellValue as Long 190*b1cdbd2cSJim Jagielski ' Insert Sheet with Company - Chart 191*b1cdbd2cSJim Jagielski sName = CheckNewSheetname(oSheets, sName) 192*b1cdbd2cSJim Jagielski If NOT oSheets.hasByName(sName) Then 193*b1cdbd2cSJim Jagielski oSheets.CopybyName("Background", sName, oSheets.Count) 194*b1cdbd2cSJim Jagielski oSheet = oSheets.getByName(sName) 195*b1cdbd2cSJim Jagielski iCurRow = SBSTARTROW 196*b1cdbd2cSJim Jagielski iMaxRow = iCurRow 197*b1cdbd2cSJim Jagielski oCell = oSheet.getCellByPosition(SBDATECOLUMN, iCurRow) 198*b1cdbd2cSJim Jagielski oCell.Value = fDate 199*b1cdbd2cSJim Jagielski End If 200*b1cdbd2cSJim Jagielski sNewSheetName = sName 201*b1cdbd2cSJim Jagielski oLinkSheet = oSheets.GetByName("Link") 202*b1cdbd2cSJim Jagielski oSheet = oSheets.getByName(sName) 203*b1cdbd2cSJim Jagielski iLastRow = GetLastUsedRow(oSheet)- 2 204*b1cdbd2cSJim Jagielski iLastLinkRow = GetLastUsedRow(oLinkSheet) 205*b1cdbd2cSJim Jagielski iCurRow = iLastRow 206*b1cdbd2cSJim Jagielski bLeaveLoop = False 207*b1cdbd2cSJim Jagielski RemoveCount = 0 208*b1cdbd2cSJim Jagielski ' Delete all Cells in Date Area 209*b1cdbd2cSJim Jagielski Do 210*b1cdbd2cSJim Jagielski oCell = oSheet.GetCellbyPosition(SBDATECOLUMN,iCurRow) 211*b1cdbd2cSJim Jagielski If oCell.CellStyle = sColumnHeader Then 212*b1cdbd2cSJim Jagielski bLeaveLoop = True 213*b1cdbd2cSJim Jagielski StartIndex = iCurRow 214*b1cdbd2cSJim Jagielski iCurRow = iCurRow + 1 215*b1cdbd2cSJim Jagielski Else 216*b1cdbd2cSJim Jagielski RemoveCount = RemoveCount + 1 217*b1cdbd2cSJim Jagielski iCurRow = iCurRow - 1 218*b1cdbd2cSJim Jagielski End If 219*b1cdbd2cSJim Jagielski Loop Until bLeaveLoop 220*b1cdbd2cSJim Jagielski If RemoveCount > 1 Then 221*b1cdbd2cSJim Jagielski oSheet.Rows.RemoveByIndex(iCurRow, RemoveCount-1) 222*b1cdbd2cSJim Jagielski End If 223*b1cdbd2cSJim Jagielski For i = 1 To iLastLinkRow 224*b1cdbd2cSJim Jagielski oCell = oSheet.GetCellbyPosition(SBDATECOLUMN,iCurRow) 225*b1cdbd2cSJim Jagielski iCellValue = oLinkSheet.GetCellByPosition(0,i).Value 226*b1cdbd2cSJim Jagielski If iCellValue > 0 Then 227*b1cdbd2cSJim Jagielski oCell.SetValue(oLinkSheet.GetCellByPosition(0,i).Value) 228*b1cdbd2cSJim Jagielski Else 229*b1cdbd2cSJim Jagielski oCell.SetValue(StringToDate(oLinkSheet.GetCellByPosition(0,i).String) 230*b1cdbd2cSJim Jagielski End If 231*b1cdbd2cSJim Jagielski oCell = oSheet.GetCellbyPosition(SBVALUECOLUMN,iCurRow) 232*b1cdbd2cSJim Jagielski oCell.SetValue(oLinkSheet.GetCellByPosition(4,i).Value) 233*b1cdbd2cSJim Jagielski If i < iLastLinkRow Then 234*b1cdbd2cSJim Jagielski iCurRow = iCurRow + 1 235*b1cdbd2cSJim Jagielski oSheet.Rows.InsertByIndex(iCurRow,1) 236*b1cdbd2cSJim Jagielski End If 237*b1cdbd2cSJim Jagielski Next i 238*b1cdbd2cSJim Jagielski iMaxRow = iCurRow 239*b1cdbd2cSJim JagielskiEnd Sub 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim JagielskiFunction StringToDate(DateString as String) as Date 243*b1cdbd2cSJim JagielskiDim ShortMonths(11) 244*b1cdbd2cSJim JagielskiDim DateList() as String 245*b1cdbd2cSJim JagielskiDim MaxIndex as Integer 246*b1cdbd2cSJim JagielskiDim i as Integer 247*b1cdbd2cSJim Jagielski ShortMonths(0) = "Jan" 248*b1cdbd2cSJim Jagielski ShortMonths(1) = "Feb" 249*b1cdbd2cSJim Jagielski ShortMonths(2) = "Mar" 250*b1cdbd2cSJim Jagielski ShortMonths(3) = "Apr" 251*b1cdbd2cSJim Jagielski ShortMonths(4) = "May" 252*b1cdbd2cSJim Jagielski ShortMonths(5) = "Jun" 253*b1cdbd2cSJim Jagielski ShortMonths(6) = "Jul" 254*b1cdbd2cSJim Jagielski ShortMonths(7) = "Aug" 255*b1cdbd2cSJim Jagielski ShortMonths(8) = "Sep" 256*b1cdbd2cSJim Jagielski ShortMonths(9) = "Oct" 257*b1cdbd2cSJim Jagielski ShortMonths(10) = "Nov" 258*b1cdbd2cSJim Jagielski ShortMonths(11) = "Dec" 259*b1cdbd2cSJim Jagielski For i = 0 To 11 260*b1cdbd2cSJim Jagielski DateString = ReplaceString(DateString,CStr(i+1),ShortMonths(i)) 261*b1cdbd2cSJim Jagielski Next i 262*b1cdbd2cSJim Jagielski DateString = ReplaceString(DateString, ".", "-") 263*b1cdbd2cSJim Jagielski StringToDate = CDate(DateString) 264*b1cdbd2cSJim JagielskiEnd Function 265*b1cdbd2cSJim Jagielski 266*b1cdbd2cSJim Jagielski 267*b1cdbd2cSJim JagielskiSub UpdateChart(sName As String) 268*b1cdbd2cSJim JagielskiDim oSheet As Object 269*b1cdbd2cSJim JagielskiDim oCell As Object, oCursor As Object 270*b1cdbd2cSJim JagielskiDim oChartRange As Object 271*b1cdbd2cSJim JagielskiDim oEmbeddedChart As Object, oCharts As Object 272*b1cdbd2cSJim JagielskiDim oChart As Object, oDiagram As Object 273*b1cdbd2cSJim JagielskiDim oYAxis As Object, oXAxis As Object 274*b1cdbd2cSJim JagielskiDim fMin As Double, fMax As Double 275*b1cdbd2cSJim JagielskiDim nDateFormat As Long 276*b1cdbd2cSJim JagielskiDim aPos As Variant 277*b1cdbd2cSJim JagielskiDim aSize As Variant 278*b1cdbd2cSJim JagielskiDim oContainerChart as Object 279*b1cdbd2cSJim JagielskiDim mRangeAddresses(0) as New com.sun.star.table.CellRangeAddress 280*b1cdbd2cSJim Jagielski mRangeAddresses(0).Sheet = GetSheetIndex(oSheets, sNewSheetName) 281*b1cdbd2cSJim Jagielski mRangeAddresses(0).StartColumn = SBDATECOLUMN 282*b1cdbd2cSJim Jagielski mRangeAddresses(0).StartRow = SBSTARTROW-1 283*b1cdbd2cSJim Jagielski mRangeAddresses(0).EndColumn = SBVALUECOLUMN 284*b1cdbd2cSJim Jagielski mRangeAddresses(0).EndRow = iMaxRow 285*b1cdbd2cSJim Jagielski 286*b1cdbd2cSJim Jagielski oSheet = oDocument.Sheets.getByName(sNewSheetName) 287*b1cdbd2cSJim Jagielski oCharts = oSheet.Charts 288*b1cdbd2cSJim Jagielski 289*b1cdbd2cSJim Jagielski If Not oCharts.hasElements Then 290*b1cdbd2cSJim Jagielski oSheet.GetCellbyPosition(2,2).SetString(sName) 291*b1cdbd2cSJim Jagielski oChartRange = oSheet.getCellRangeByPosition(SBDATECOLUMN,6,5,SBSTARTROW-3) 292*b1cdbd2cSJim Jagielski aPos = oChartRange.Position 293*b1cdbd2cSJim Jagielski aSize = oChartRange.Size 294*b1cdbd2cSJim Jagielski 295*b1cdbd2cSJim Jagielski Dim oRectangleShape As New com.sun.star.awt.Rectangle 296*b1cdbd2cSJim Jagielski oRectangleShape.X = aPos.X 297*b1cdbd2cSJim Jagielski oRectangleShape.Y = aPos.Y 298*b1cdbd2cSJim Jagielski oRectangleShape.Width = aSize.Width 299*b1cdbd2cSJim Jagielski oRectangleShape.Height = aSize.Height 300*b1cdbd2cSJim Jagielski oCharts.addNewByName(sName, oRectangleShape, mRangeAddresses(), True, False) 301*b1cdbd2cSJim Jagielski oContainerChart = oCharts.getByName(sName) 302*b1cdbd2cSJim Jagielski oChart = oContainerChart.EmbeddedObject 303*b1cdbd2cSJim Jagielski oChart.Title.String = "" 304*b1cdbd2cSJim Jagielski oChart.HasLegend = False 305*b1cdbd2cSJim Jagielski oChart.diagram = oChart.createInstance("com.sun.star.chart.XYDiagram") 306*b1cdbd2cSJim Jagielski oDiagram = oChart.Diagram 307*b1cdbd2cSJim Jagielski oDiagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS 308*b1cdbd2cSJim Jagielski oChart.Area.LineStyle = com.sun.star.drawing.LineStyle.SOLID 309*b1cdbd2cSJim Jagielski oXAxis = oDiagram.XAxis 310*b1cdbd2cSJim Jagielski oXAxis.TextBreak = False 311*b1cdbd2cSJim Jagielski nDateFormat = oXAxis.NumberFormats.getStandardFormat(com.sun.star.util.NumberFormat.DATE, oDocLocale) 312*b1cdbd2cSJim Jagielski 313*b1cdbd2cSJim Jagielski oYAxis = oDiagram.getYAxis() 314*b1cdbd2cSJim Jagielski oYAxis.AutoOrigin = True 315*b1cdbd2cSJim Jagielski Else 316*b1cdbd2cSJim Jagielski oChart = oCharts(0) 317*b1cdbd2cSJim Jagielski oChart.Ranges = mRangeAddresses() 318*b1cdbd2cSJim Jagielski oChart.HasRowHeaders = False 319*b1cdbd2cSJim Jagielski oEmbeddedChart = oChart.EmbeddedObject 320*b1cdbd2cSJim Jagielski oDiagram = oEmbeddedChart.Diagram 321*b1cdbd2cSJim Jagielski oXAxis = oDiagram.XAxis 322*b1cdbd2cSJim Jagielski End If 323*b1cdbd2cSJim Jagielski oXAxis.AutoStepMain = False 324*b1cdbd2cSJim Jagielski oXAxis.AutoStepHelp = False 325*b1cdbd2cSJim Jagielski oXAxis.StepMain = iStep 326*b1cdbd2cSJim Jagielski oXAxis.StepHelp = iStep 327*b1cdbd2cSJim Jagielski fMin = oSheet.getCellByPosition(SBDATECOLUMN,SBSTARTROW).Value 328*b1cdbd2cSJim Jagielski fMax = oSheet.getCellByPosition(SBDATECOLUMN,iMaxRow).Value 329*b1cdbd2cSJim Jagielski oXAxis.Min = fMin 330*b1cdbd2cSJim Jagielski oXAxis.Max = fMax 331*b1cdbd2cSJim Jagielski oXAxis.AutoMin = False 332*b1cdbd2cSJim Jagielski oXAxis.AutoMax = False 333*b1cdbd2cSJim JagielskiEnd Sub 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim JagielskiSub CalculateChartafterSplit(SheetName, NewNumber, OldNumber, NoteText, SplitDate) 337*b1cdbd2cSJim JagielskiDim oSheet as Object 338*b1cdbd2cSJim JagielskiDim i as Integer 339*b1cdbd2cSJim JagielskiDim oValueCell as Object 340*b1cdbd2cSJim JagielskiDim oDateCell as Object 341*b1cdbd2cSJim JagielskiDim bLeaveLoop as Boolean 342*b1cdbd2cSJim Jagielski If oSheets.HasbyName(SheetName) Then 343*b1cdbd2cSJim Jagielski oSheet = oSheets.GetbyName(SheetName) 344*b1cdbd2cSJim Jagielski i = 0 345*b1cdbd2cSJim Jagielski bLeaveLoop = False 346*b1cdbd2cSJim Jagielski Do 347*b1cdbd2cSJim Jagielski oValueCell = oSheet.GetCellbyPosition(SBVALUECOLUMN, SBSTARTROW + i) 348*b1cdbd2cSJim Jagielski If oValueCell.CellStyle = CurrCellStyle Then 349*b1cdbd2cSJim Jagielski SplitCellValue(oSheet, OldNumber, NewNumber, SBVALUECOLUMN, SBSTARTROW + i, "") 350*b1cdbd2cSJim Jagielski i = i + 1 351*b1cdbd2cSJim Jagielski Else 352*b1cdbd2cSJim Jagielski bLeaveLoop = True 353*b1cdbd2cSJim Jagielski End If 354*b1cdbd2cSJim Jagielski Loop Until bLeaveLoop 355*b1cdbd2cSJim Jagielski oDateCell = oSheet.GetCellbyPosition(SBDATECOLUMN, SBSTARTROW + i-1) 356*b1cdbd2cSJim Jagielski oDateCell.Annotation.SetString(NoteText) 357*b1cdbd2cSJim Jagielski End If 358*b1cdbd2cSJim JagielskiEnd Sub 359*b1cdbd2cSJim Jagielski</script:module> 360