REM ***** BASIC ***** ' Column A has the index 1 Public Const SBCOLUMNNAME1 = 3 ' Stock names, sheet 1 Public Const SBCOLUMNID1 = 4 ' Stock ID, sheet 1 Public Const SBCOLUMNQUANTITY1 = 5 ' Stock quantity sheet 1 Public Const SBCOLUMNRATE1 = 7 ' Price for stocks, sheet 1 Public Const SBCOLUMNNAME2 = 3 ' Stock names, sheet 2 Public Const SBCOLUMNDATE2 = 4 ' Transaction dates, sheet 2 Public Const SBCOLUMNQUANTITY2 = 5 ' Transaction quantity, sheet 2 Public Const SBCOLUMNRATE2 = 6 ' Price for stocks, sheet 2 Public Const SBCOLUMNPROVPERCENT2 = 7 ' Provision in %, sheet 2 Public Const SBCOLUMNPROVMIN2 = 8 ' Minimum provision, sheet 2 Public Const SBCOLUMNPROVFIX2 = 9 ' Fixed provision, sheet 2 Public Const SBCOLUMNPROCEEDS2 = 12 ' Profit, sheet 2 Public Const SBCOLUMNQTYSOLD2 = 14 ' Quantity sold, sheet 2 Public Const SBCOLUMNQTYREST2 = 15 ' Quantity not sold yet, sheet 2 Public Const SBCOLUMNPRCREST2 = 16 ' Proportional proce for quantity not sold yet, sheet 2 Public Const SBCOLUMNREALPROC2 = 17 ' Realized proceeds, sheet 2 Public Const SBCOLUMNDIVIDEND2 = 18 ' Dividend paid, sheet 2 Public Const SBCOLUMNREALPROFIT2 = 19 ' Realized profit, sheet 2 Public Const SBROWFIRSTTRANSACT2 = 8 ' First data row, sheet 2 Public Const SBROWHEADER1 = 6 ' Headline, sheet 1 Public Const SBMSGOK = 0 Public Const SBMSGYESNO = 4 Public Const SBMSGSTOP = 16 Public Const SBMSGQUESTION = 32 Public Const SBMSGDEFAULTBTN2 = 256 Public Const SBHASID = 1 ' 0 = no ID, 1 = stocks have an ID Public Const SBDIALOGSELL = 1 ' Step for main dialog Public Const SBDIALOGBUY = 2 ' Step for main dialog Public Const SBBINARY = 0 Public TransactMode as Integer Public Const LIFO = -1 Public Const FIFO = 1 Public Const HANDLEDIVIDEND = 1 Public Const HANDLESPLIT = 2 Global oDocument as Object Global oDocFormats() as Object Global oController as Object Global oFirstSheet as Object Global oBankSheet as Object Global oMovementSheet as Object Global sDocLanguage as String Global sDocCountry as String Global oSheets as Object Global oDocLocale as New com.sun.star.lang.Locale Global bEnableMarket as Boolean Global bEnableInternet as Boolean Global oMarketModel as Object Global oInternetModel as Object Global sCurCurrency$, sCurExtension$, sCurChartSource$, sCurStockIDLabel$, sCurSeparator$ Public oNumberFormatter as Object Public bDebugmode as Boolean Global GlobListindex as Integer Public blabla() as String Public SplitDate as Date Public oChartSheet as Object Public oBackgroundSheet as Object Public Const SBDATECOLUMN = 3 Public Const SBVALUECOLUMN = 4 Public Const SBSTARTROW = 25 Public Const SBCHARTPERIOD = 14 Public Const SBINTERVAL = "d" Public sColumnHeader as String Public StartDate as Date Public EndDate as Date Public iCurRow as Integer Public iMaxRow as Integer Public iStartDay as Integer Public iStartMonth as Integer Public iStartYear as Integer Public iEndDay as Integer Public iEndMonth as Integer Public iEndYear as Integer Public oStatusLine as Object Public Today as Date Public sInterval as String Public ShortMonths(11,1) Public iStep as Integer Public sDepotCurrency as String Public iValueCol as Integer Public DlgReference as Object Public DlgTransaction as Object Public DlgStockRates as Object Public DlgStartUp as Object Public TransactModel as Object Public StockRatesModel as Object Public StartUpModel as Object Public StockRatesTitle(1 To 3) Public TransactTitle(1 To 2) Public NullList() Public sStartupWelcome$, sStartupChooseMarket$, sStartupHint$ Public sMarket(7,10) as String Public sCountryMarket(7,10) as String Public cDlgCaption1$, cDlgCaption2$ Public sMsgError$, sMsgNoName$, sMsgNoQuantity$, sMsgNoDividend$, sMsgNoExchangeRate$ Public sMsgNoValidExchangeDate$, sMsgWrongExchangeDate$, sMsgSellTooMuch$, sMsgConfirm$ Public sMsgFreeStock$, sMsgTotalLoss$, sMsgEndDatebeforeNow$, sMsgStartDatebeforeEndDate$ Public sOk$, sCancel$ Public sMsgAuthorization$, sMsgDeleteAll$ Public SellMethod$ Public cSplit$ Global HistoryChartSource as String Public DateCellStyle as String Public CurrCellStyle as String Public sStartDate$, sEndDate$, sHistory$ Public sInsertStockname$ Public sProductname$, sTitle$ Public sInsertStocks$, sStockname$, sNoInternetUpdate$, sMarketplace$, sNoInternetDataAvailable$ Public sCheckInternetSettings as String Sub LoadLanguage() LoadDepotDialogs() Select Case sDocLanguage Case "de" LoadGermanLanguage() Case "en" LoadEnglishLanguage() Case "fr" LoadFrenchLanguage() Case "it" LoadItalianLanguage() Case "es" LoadSpanishLanguage() Case "sv" LoadSwedishLanguage() Case "ja" LoadJapaneseLanguage() Case "ko" LoadKoreanLanguage() Case "zh" If sDocCountry = "CN" Then LoadChineseSimpleLanguage() Else LoadChineseTradLanguage() End If End Select InitializeStartUpModel() End Sub Sub CompleteMarketList() Dim EuroIndex as Integer Dim LocCountry as String Dim LocLanguage as String Dim sLangList() as String Dim sCountryList() as String Dim sExtensionList() as String Dim MaxIndex as Integer Dim bIsLocale as Boolean GlobListIndex = -1 For n = 0 To 5 LocLanguage = sMarket(n,6) LocCountry = sMarket(n,7) If Instr(1,LocLanguage,";",SBBINARY) = 0 Then bIsLocale = CheckDocLocale(LocLanguage, LocCountry) Else EuroIndex = 0 sLangList() = ArrayoutofString(LocLanguage, ";", MaxIndex) sCountryList() = ArrayoutofString(LocCountry, ";", MaxIndex) sExtensionList() = ArrayoutofString(sMarket(n,8), ";", MaxIndex) For m = 0 To MaxIndex bIsLocale = CheckDocLocale(sLangList(m), sCountryList(m)) If bIsLocale Then EuroIndex = m Exit For End If Next m sMarket(n,6) = sLangList(EuroIndex) sMarket(n,7) = sCountryList(EuroIndex) sMarket(n,8) = sExtensionList(EuroIndex) End If If bIsLocale Then GlobListIndex = n Exit For End If Next n End Sub Sub LocalizedCurrencies() If GlobListIndex = -1 Then sCountryMarket(0,0) = "Euro" sCountryMarket(0,1) = chr(8364) sCountryMarket(0,2) = "Paris" sCountryMarket(0,3) = "http://fr.finance.yahoo.com/d/quotes.csv?s=<StockID>.PA&f=s4l1t1c1ghov&e=.csv" sCountryMarket(0,5) = "Code" sCountryMarket(0,6) = "fr" sCountryMarket(0,7) = "FR" sCountryMarket(0,8) = "40C" sCountryMarket(0,9) = "59/9" sCountryMarket(0,10) = "1" sCountryMarket(1,0) = "Euro" sCountryMarket(1,1) = chr(8364) sCountryMarket(1,2) = "Milano" sCountryMarket(1,3) = "http://it.finance.yahoo.com/d/quotes.csv?s=<StockID>.MI&f=sl1d1t1c1ohgv&e=.csv" sCountryMarket(1,5) = "Codice" sCountryMarket(1,6) = "it" sCountryMarket(1,7) = "IT" sCountryMarket(1,8) = "410" sCountryMarket(1,9) = "44" sCountryMarket(1,10) = "1" sCountryMarket(2,0) = "Euro" sCountryMarket(2,1) = chr(8364) sCountryMarket(2,2) = "Madrid" sCountryMarket(2,3) = "http://es.finance.yahoo.com/d/quotes.csv?s=<StockID>&m=MC&f=sl1d1t1c1ohgv&e=.csv" sCountryMarket(2,5) = "Simbolo" sCountryMarket(2,6) = "es" sCountryMarket(2,7) = "ES" sCountryMarket(2,8) = "40A" sCountryMarket(2,9) = "44" sCountryMarket(2,10) = "1" sCountryMarket(3,0) = "Dansk krone" sCountryMarket(3,1) = "kr" sCountryMarket(3,2) = "København" sCountryMarket(3,3) = "http://dk.finance.yahoo.com/d/quotes.csv?s=<StockID.CO&f=sl1d1t1c1ohgv&e=.csv" sCountryMarket(3,5) = "Aktiesymbol" sCountryMarket(3,6) = "da" sCountryMarket(3,7) = "DK" sCountryMarket(3,8) = "406" sCountryMarket(3,9) = "44" sCountryMarket(3,10) = "1" sCountryMarket(4,0) = "Svensk krona" sCountryMarket(4,1) = "kr" sCountryMarket(4,2) = "Stockholm" sCountryMarket(4,3) = "http://se.finance.yahoo.com/d/quotes.csv?s=<StockID>.L&f=sl1d1t1c1ohgv&e=.c" sCountryMarket(4,5) = "Kod" sCountryMarket(4,6) = "sv" sCountryMarket(4,7) = "SE" sCountryMarket(4,8) = "41D" sCountryMarket(4,9) = "44" sCountryMarket(4,10) = "1" ' Taiwan Dollar sCountryMarket(5,0) = "新臺幣" sCountryMarket(5,1) = "¥" sCountryMarket(5,2) = "代號" sCountryMarket(5,3) = "http://tw.finance.yahoo.com/d/quotes.csv?s=<StockID>.TW&f=sl1d1t1c1ohgv&e=.csv" sCountryMarket(5,5) = "代號" sCountryMarket(5,6) = "zh" sCountryMarket(5,7) = "TW" sCountryMarket(5,8) = "404" sCountryMarket(5,9) = "44" sCountryMarket(5,10) = "1" ' Chinese Yuan sCountryMarket(6,0) = "人民币" sCountryMarket(6,1) = "¥" sCountryMarket(6,2) = "代号" sCountryMarket(6,3) = "http://cn.finance.yahoo.com/d/quotes.csv?s=<StockID>.SS&f=sl1d1t1c1ohgv&e=.csv" sCountryMarket(6,5) = "代号" sCountryMarket(6,6) = "zh" sCountryMarket(6,7) = "CN" sCountryMarket(6,8) = "804" sCountryMarket(6,9) = "44" sCountryMarket(6,10) = "1" ' korean Won sCountryMarket(7,0) = "한국 원화" sCountryMarket(7,1) = "₩" sCountryMarket(7,2) = "서울" sCountryMarket(7,3) = "http://kr.finance.yahoo.com/d/quotes.csv?s=<StockID>.KS&f=snl1d1t1c1ohgv&e=.csv" sCountryMarket(7,5) = "종목 코드" sCountryMarket(7,6) = "ko" sCountryMarket(7,7) = "KR" sCountryMarket(7,8) = "412" sCountryMarket(7,9) = "44" sCountryMarket(7,10) = "2" ' sCountryMarket(5,0) = "Российский рубль" ' sCountryMarket(5,1) = "р." ' sCountryMarket(5,2) = "" ' sCountryMarket(5,3) = "" ' sCountryMarket(5,5) = "" ' sCountryMarket(5,6) = "ru" ' sCountryMarket(5,7) = "RU" ' sCountryMarket(5,8) = "-419" ' sCountryMarket(5,9) = "" ' ' sCountryMarket(6,0) = "Złoty polski" ' sCountryMarket(6,1) = "zł" ' sCountryMarket(6,2) = "" ' sCountryMarket(6,3) = "" ' sCountryMarket(6,5) = "" 'Still Todo!! ' sCountryMarket(6,6) = "pl" ' sCountryMarket(6,7) = "PL" ' sCountryMarket(6,8) = "-415" ' sCountryMarket(6,9) = "" ' ' sCountryMarket(7,0) = "Türkische Lira" ' sCountryMarket(7,1) = "TL" ' sCountryMarket(7,2) = "" ' sCountryMarket(7,3) = "" ' sCountryMarket(7,5) = "" 'Still Todo!! ' sCountryMarket(7,6) = "tr" ' sCountryMarket(7,7) = "TR" ' sCountryMarket(7,8) = "-41F" ' sCountryMarket(7,9) = "" Dim n as Integer Dim m as Integer ' Dim sCountryMarket(6,9) as String For n = 0 To Ubound(sCountryMarket(),1) If sDocLanguage = sCountryMarket(n,6) and sDocCountry = sCountryMarket(n,7) Then GlobListIndex = 6 For m = 0 To 10 sMarket(6,m) = sCountryMarket(n,m) Next m Exit For End If Next n End If End Sub Sub LoadDepotDialogs() DlgTransaction = LoadDialog("Depot", "Dialog2") DlgStockRates = LoadDialog("Depot", "Dialog3") DlgStartUp = LoadDialog("Depot", "Dialog4") TransactModel = DlgTransaction.Model StockRatesModel = DlgStockRates.Model StartUpModel = DlgStartUp.Model End Sub Sub InitializeStartUpModel() With StartUpModel .lblWelcome.Label = sStartupWelcome & Chr(13) & chr(13) & sStartUpChooseMarket sStartUpHint = ReplaceString(sStartUpHint, sHistory, "<History>") .lblHint.Label = sStartupHint ' .cmdGoOn.Enabled = Ubound(StartUpModel.lstMarkets.SelectedItems()) <> -1 .cmdGoOn.Label = sOK .cmdCancel.Label = sCancel End With End Sub