LOCAL go_Form
go_Form = CreateObject("frmForm")
go_Form.Visible = .T.
go_Form.Show
READ Events
CLOSE ALL
CLEAR ALL
*****
DEFINE CLASS frmForm As Form
DIMENSION aItems[1], aValues[1]
gc_ItemCode = REPLICATE("Z", 12)
gi_ActivePage = 1
Height = 360
Width = 690
MaxWidth = This.Width
MinHeight = This.Height
MinWidth = This.Width
MaxButton = .F.
MinButton = .F.
Caption = "Shares"
BackColor = RGB(120, 120, 120)
AutoCenter = .T.
ShowTips = .T.
Themes = .F.
*!* ADD OBJECT imgFImage AS image WITH ;
*!* Left = 0, ;
*!* Top = 0, ;
*!* Height = ThisForm.Height, ;
*!* Width = ThisForm.Width, ;
*!* Stretch = 2, ;
*!* Name = "imgFImage", ;
*!* Visible = .T., ;
*!* Picture = "Picture 098.jpg", ;
*!* Anchor = 15
ADD OBJECT lblItems AS Label WITH ;
Top = 12, ;
Left = 12, ;
Autosize = .T., ;
BackStyle = 0, ;
ForeColor = RGB(254, 254, 254), ;
FontBold = .T.
PROCEDURE lblItems.Refresh()
This.Caption = IIF(ThisForm.gi_ActivePage != 4, "Please choose Item", "Click on any Items page")
ENDPROC
ADD OBJECT lblWinLoss AS Label WITH ;
Top = 12, ;
Left = 492, ;
Autosize = .T., ;
BackStyle = 0, ;
FontBold = .T., ;
FontItalic = .T., ;
FontSize = 12, ;
ForeColor = RGB(255, 255, 255), ;
Caption = ""
ADD OBJECT cmdBuy as CommandButton WITH ;
Top = 36, ;
Left = 378, ;
Height = 24, ;
Caption = "Buy/Sell", ;
Enabled = .F.
PROCEDURE cmdBuy.Refresh()
IF ThisForm.gc_ItemCode = REPLICATE("Z", 12)
This.Enabled = .F.
This.ToolTipText = "Please choose Item"
ELSE
This.Enabled = .T.
This.ToolTipText = "Click to buy/sell"
ENDIF
ENDPROC
PROCEDURE cmdBuy.Click()
LOCAL liAnswer as Integer, liQuantity as Integer, lcISIN as Character, lnValue as Number(7,2)
LOCAL ARRAY laCheck[1]
lcISIN = ThisForm.gc_ItemCode
liQuantity = INT((RAND() - 0.5) * 25)
liValue = RAND() * 200
liAnswer = MESSAGEBOX("Do you want to buy/sell " + ALLTRIM(STR(liQuantity)) + " shares " + lcISIN + " for " + TRANSFORM(liValue, "999.99") + " € ?", 4 + 32, "Buy/Sell Shares")
IF liAnswer = 6
SELECT cISIN, dInDate ;
FROM Invest_In ;
WHERE cISIN = lcISIN AND TTOD(dInDate) = TTOD(DATETIME() - 86400) ;
INTO ARRAY laCheck
IF ALEN(laCheck) = 1 AND VARTYPE(laCheck[1]) = "L"
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES (lcISIN, DATETIME() - 86400, liQuantity, liValue)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES (lcISIN, DATETIME() - 86400, 0, liValue)
ELSE
= MESSAGEBOX("You're allowed to buy/sell " + lcISIN + " only once a day!", 64, "Buy/Sell Shares", 5000)
ENDIF
WITH ThisForm
.pgfBuySell.ActivePage = 1
.POneClick()
ENDWITH
ENDIF
ENDPROC
ADD OBJECT cboItems as Combobox WITH ;
Top = 36, ;
Left = 12, ;
Height = 24, ;
Width = 354, ;
Style = 2, ;
ColumnCount = 2, ;
ColumnWidths = "210, 120"
PROCEDURE cboItems.Init()
Select cShareHolder, cISIN FROM Shareholder ;
ORDER BY 1 ;
INTO ARRAY ThisForm.aItems
WITH This
.RowSourceType = 5
.RowSource = "ThisForm.aItems"
.Requery()
ENDWITH
This.Value = ThisForm.aItems[1,1]
ENDPROC
PROCEDURE cboItems.Click()
WITH ThisForm
.gc_ItemCode = ALLTRIM(This.List[This.ListIndex,2])
.cmdBuy.Refresh()
.pgfBuySell.UnBold()
.pgfBuySell.Pages(ThisForm.gi_ActivePage).Click()
ENDWITH
ENDPROC
ADD OBJECT pgfBuySell as PageFrame WITH ;
Top = 84, ;
Left = 12, ;
Width = ThisForm.Width - 24, ;
Height = ThisForm.Height - 108, ;
Anchor = 15, ;
PageCount = 4
PROCEDURE pgfBuySell.Init()
LOCAL loPage as Object
FOR i = 1 TO This.pageCount
loPage = This.Pages(i)
loPage.AddObject("grdBuySell","grdBase")
IF i = 3
loPage.RemoveObject("grdBuySell","grdBase")
loPage.AddObject("lblISIN", "Label")
WITH loPage.lblISIN
.Visible = .T.
.Top = 24
.Left = 24
.Caption = "ISIN"
ENDWITH
loPage.AddObject("lblUpdate", "Label")
WITH loPage.lblUpdate
.Visible = .T.
.Top = 24
.Left = 150
.AutoSize = .T.
.Caption = "Last update"
ENDWITH
loPage.AddObject("lblNewValue", "Label")
WITH loPage.lblNewValue
.Visible = .T.
.Top = 24
.Left = 306
.AutoSize = .T.
.Caption = "New Value"
ENDWITH
loPage.AddObject("cboISIN", "ComboBox")
WITH loPage.cboISIN
.Visible = .T.
.Top = 48
.Left = 24
.Width = 120
ENDWITH
loPage.AddObject("txtDateTime", "TextBox")
WITH loPage.txtDateTime
.Visible = .T.
.Top = 48
.Left = 150
.Width = 150
.ReadOnly = .T.
ENDWITH
loPage.AddObject("txtShareValue", "TextBox")
WITH loPage.txtShareValue
.Visible = .T.
.Top = 48
.Left = 306
.Width = 90
.ReadOnly = .F.
.Value = 0
.InputMask = "999,999.99"
ENDWITH
loPage.AddObject("cmdAddValue", "CommandButton")
WITH loPage.cmdAddValue
.Visible = .T.
.Top = 36
.Left = 420
.Width = 120
.Height = 60
.Caption = "Add Value"
.BackColor = RGB(0, 250, 250)
ENDWITH
ENDIF
loPage.Caption = ICASE(i = 1, "Shares bought/sold", i = 2, "Recent evolution", i = 3, "Update Values", "Portfolio")
ENDFOR
ENDPROC
PROCEDURE pgfBuySell.UnBold()
LOCAL lnI
This.SetAll("FontBold", .F., "Page")
FOR lnI = 1 TO This.PageCount
IF lnI != 3
This.Pages(lnI).grdBuySell.Visible = .F.
ENDIF
ENDFOR
ENDPROC
PROCEDURE Init()
BINDEVENT(This.pgfBuySell.Page1, "Click", This, "POneClick")
BINDEVENT(This.pgfBuySell.Page2, "Click", This, "PTwoClick")
BINDEVENT(This.pgfBuySell.Page3, "Click", This, "PThreeClick")
BINDEVENT(This.pgfBuySell.Page3.cmdAddValue, "Click", This, "PThreeCmdClick")
BINDEVENT(This.pgfBuySell.Page3.cboISIN, "Click", This, "PThreeCboClick")
BINDEVENT(This.pgfBuySell.Page4, "Click", This, "PFourClick")
ENDPROC
PROCEDURE PThreeCboClick()
LOCAL loPage, lcISIN, ldDateTime
loPage = ThisForm.pgfBuySell.Page3
lcISIN = ALLTRIM(loPage.cboISIN.List[loPage.cboISIN.ListIndex,1])
ldDateTime = ThisForm.aValues[ASCAN(ThisForm.aValues, lcISIN) + 1]
WITH loPage
.txtDateTime.Value = ldDateTime
.Refresh()
ENDWITH
ENDPROC
PROCEDURE PThreeCmdClick()
LOCAL lcISIN, lnValue, ldDateTime, loPage, liAnswer
loPage = ThisForm.pgfBuySell.Page3
WITH loPage
lcISIN = ALLTRIM(.cboISIN.List[.cboISIN.ListIndex,1])
lnValue = .txtShareValue.Value
ldDateTime = .txtDateTime.Value
ENDWITH
*!* WAIT WINDOW + lcISIN +" - "+ TRANSFORM(ldDateTime) + " - " + TRANSFORM(lnValue)
IF lnValue > 0 AND DATE() > ldDateTime
liAnswer = MESSAGEBOX("Do you want to update the value of " + CHR(13) + lcISIN + " with " + TRANSFORM(lnValue) +" € ?", 4 + 32,"Update Value")
IF liAnswer = 6
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES (lcISIN, DATETIME(), 0, lnValue)
= MESSAGEBOX("The value of " + lcISIN + " has been updated to " + TRANSFORM(lnValue) +" €.", 64,"Update Value", 5000)
ENDIF
ELSE
= MESSAGEBOX("Value 0 is not accepted - Update can be done only once a day !", 64, "Add Value", 5000)
ENDIF
WITH loPage
.txtShareValue.Value = 0
.Click()
ENDWITH
ENDPROC
PROCEDURE POneClick()
LOCAL ARRAY laInvest[1]
WITH ThisForm
.gi_ActivePage = 1
.lblItems.Refresh()
.cboItems.Enabled = .T.
ENDWITH
IF ThisForm.gc_ItemCode != REPLICATE("Z", 12)
SELECT cISIN, dInDate, iQuantity * nValue as nPInvest, iQuantity * nValue as nTInvest ;
FROM Invest_in ;
WHERE Invest_In.cISIN = ThisForm.gc_ItemCode ;
ORDER BY 2 ASC ;
INTO ARRAY laInvest
FOR i = 2 TO ALEN(laInvest, 1)
laInvest[i, ALEN(laInvest, 2)] = laInvest[i, ALEN(laInvest, 2)] + laInvest[i - 1, ALEN(laInvest, 2)]
ENDFOR
CREATE CURSOR csrTInvest(cISIN C(12), dInDate T, nInvest N(7,2), nTInvest N(7,2))
APPEND FROM array laInvest
SELECT ShareHolder.cISIN, ShareHolder.cShareHolder, Invest_In.dInDate, Invest_In.iQuantity, Invest_In.nValue, Invest_In.iQuantity * Invest_In.nValue as nInvest, csrTInvest.nTInvest ;
FROM ShareHolder ;
JOIN Invest_In ON ShareHolder.cISIN = Invest_In.cISIN ;
JOIN csrTInvest ON Invest_In.cISIN = csrTInvest.cISIN AND InVest_In.dInDate = csrTInvest.dInDate ;
WHERE ShareHolder.cISIN = ThisForm.gc_ItemCode ;
ORDER BY 3 DESC ;
INTO CURSOR csrTemp
ENDIF
IF ThisForm.gc_ItemCode != REPLICATE("Z", 12)
LOCATE
WITH This.pgfBuySell
.UnBold()
.Page1.FontBold = .T.
ENDWITH
WITH This.pgfBuySell.Page1.grdBuySell
.ColumnCount = -1
.RecordSource = "csrTemp"
.Visible = .T.
.Column1.Header1.Caption = "ISIN"
.Column1.Width = 120
.Column2.Header1.Caption = "Company"
.Column2.Width = 78
.Column3.Header1.Caption = "Date"
.Column3.Width = 120
.Column4.Header1.Caption = "Units"
.Column4.Width = 54
.Column5.Header1.Caption = "Value"
.Column5.Width = 60
.Column6.Header1.Caption = "Invest"
.Column6.Width = 84
.Column7.Header1.Caption = "Total Invest"
.Column7.Width = 84
ENDWITH
ELSE
WITH This.pgfBuySell
.UnBold()
ENDWITH
= MessageBox("No Item chosen", 16, "Choose Item", 2000)
ENDIF
This.Refresh()
ENDPROC
PROCEDURE PTwoClick()
LOCAL ARRAY laShares[1, 1]
WITH ThisForm
.gi_ActivePage = 2
.lblItems.Refresh()
.cboItems.Enabled = .T.
ENDWITH
IF ThisForm.gc_ItemCode != REPLICATE("Z", 12)
SELECT Invest_In.dInDate, Invest_In.iQuantity, Invest_In.iQuantity As iTotal ;
FROM Invest_In ;
WHERE Invest_In.cISIN = ThisForm.gc_ItemCode ;
ORDER BY 1 ASC ;
INTO ARRAY laShares
FOR i = 2 TO ALEN(laShares, 1)
laShares[i, ALEN(laShares, 2)] = laShares[i, ALEN(laShares, 2)] + laShares[i - 1, ALEN(laShares, 2)]
ENDFOR
FOR i = 1 TO ALEN(laShares) STEP 3
UPDATE Invest_Out SET iQuantity = laShares[i + 2] WHERE dInDate >= laShares[i] AND cISIN = ThisForm.gc_ItemCode
ENDFOR
SELECT ShareHolder.cISIN, ShareHolder.cShareHolder, INVEST_OUT.dInDate, INVEST_OUT.iQuantity, INVEST_OUT.nValue, INVEST_OUT.iQuantity * INVEST_OUT.nValue as nInvest ;
FROM ShareHolder ;
JOIN Invest_Out ON ShareHolder.cISIN = Invest_Out.cISIN ;
WHERE ShareHolder.cISIN = ThisForm.gc_ItemCode ;
ORDER BY 3 DESC ;
INTO CURSOR csrTemp READWRITE
ENDIF
IF ThisForm.gc_ItemCode != REPLICATE("Z", 12)
LOCATE
WITH This.pgfBuySell
.UnBold()
.Page2.FontBold = .T.
ENDWITH
WITH This.pgfBuySell.Page2.grdBuySell
.ColumnCount = -1
.RecordSource = "csrTemp"
.Visible = .T.
.Column1.Header1.Caption = "ISIN"
.Column1.Width = 120
.Column2.Header1.Caption = "Company"
.Column2.Width = 78
.Column3.Header1.Caption = "Date"
.Column3.Width = 120
.Column4.Header1.Caption = "Units"
.Column4.Width = 54
.Column5.Header1.Caption = "Value"
.Column5.Width = 60
.Column6.Header1.Caption = "T-Value"
.Column6.Width = 84
ENDWITH
ELSE
WITH This.pgfBuySell
.UnBold()
ENDWITH
= MessageBox("No Item chosen", 16, "Choose Item", 2000)
ENDIF
This.Refresh()
ENDPROC
PROCEDURE PThreeClick()
LOCAL liAmount as Integer, lcItemCode as Character, loPage as Object
loPage = ThisForm.pgfBuySell.Page3
WITH ThisForm
.gi_ActivePage = 3
.lblItems.Refresh()
.cboItems.Enabled = .T.
ENDWITH
WITH This.pgfBuySell
.UnBold()
.Page3.FontBold = .T.
ENDWITH
SELECT IVO1.cISIN, IVO1.dInDate ;
FROM Invest_Out IVO1 ;
WHERE IVO1.cISIN + DTOS(IVO1.dInDate) IN (SELECT IVO2.cISIN + DTOS(MAX(IVO2.dInDate)) FROM Invest_Out IVO2 GROUP BY IVO2.cISIN) ;
INTO ARRAY ThisForm.aValues
WITH loPage
.cboISIN.Style = 2
.cboISIN.RowSourceType = 5
.cboISIN.RowSource = "ThisForm.aValues"
.cboISIN.Requery()
.cboISIN.Value = ThisForm.aValues[1]
.txtDateTime.Value = ThisForm.aValues[2]
ENDWITH
This.Refresh()
ENDPROC
PROCEDURE PFourClick()
LOCAL ARRAY laWinLoss[1]
WITH This
.gi_ActivePage = 4
.lblItems.Refresh()
.cboItems.Enabled = .F.
ENDWITH
SELECT IVO1.cISIN, IVO1.dInDate, IVO1.nValue ;
FROM Invest_Out IVO1 ;
WHERE IVO1.cISIN + DTOS(IVO1.dInDate) IN (SELECT IVO2.cISIN + DTOS(MAX(IVO2.dInDate)) FROM Invest_Out IVO2 GROUP BY IVO2.cISIN) ;
INTO CURSOR csrValues
SELECT ShareHolder.cISIN, ShareHolder.cShareHolder, ;
SUM(INVEST_IN.iQuantity * INVEST_IN.nValue) as nInvest, ;
SUM(Invest_In.iQuantity * csrValues.nValue) as nSValue, ;
SUM(Invest_In.iQuantity * csrValues.nValue) - SUM(INVEST_IN.iQuantity * INVEST_IN.nValue) as nLossWin, ;
SUM(Invest_In.iQuantity * csrValues.nValue) / SUM(INVEST_IN.iQuantity * INVEST_IN.nValue) as nPcLossWin ;
FROM ShareHolder ;
JOIN Invest_In ON ShareHolder.cISIN = Invest_In.cISIN ;
JOIN csrValues ON ShareHolder.cISIN = csrValues.cISIN ;
GROUP BY 1, 2 ;
ORDER BY 2 ASC ;
INTO CURSOR csrTemp
SELECT SUM(nLossWin) ;
FROM csrTemp ;
INTO ARRAY laWinLoss
ThisForm.lblWinLoss.Caption = IIF(laWinLoss[1] > 0, "Total Win : ", "Total Loss :") + TRANSFORM(laWinLoss[1], "999,999.99")
WITH This.pgfBuySell
.UnBold()
.Page4.FontBold = .T.
ENDWITH
WITH This.pgfBuySell.Page4.grdBuySell
.ColumnCount = -1
.RecordSource = "csrTemp"
.SetAll("DynamicBackColor", "IIF(csrTemp.nPcLossWin < 1, RGB(225, 0, 0), RGB(0, 230, 230))","Column")
.Visible = .T.
.Column1.Header1.Caption = "ISIN"
.Column1.Width = 120
.Column2.Header1.Caption = "Company"
.Column2.Width = 78
.Column3.Header1.Caption = "Invest"
.Column3.Width = 90
.Column4.Header1.Caption = "Value"
.Column4.Width = 90
.Column5.Header1.Caption = "Value - Invest"
.Column5.Width = 90
.Column6.Header1.Caption = "Value / Invest"
.Column6.Width = 90
ENDWITH
This.Refresh()
ENDPROC
PROCEDURE Load()
CREATE CURSOR ShareHolder (cISIN C(12), cShareHolder C(30), cItemDesc c(30))
INSERT INTO ShareHolder VALUES ("DE0008469008", "Dax", "")
INSERT INTO ShareHolder VALUES ("FR0008469009", "Chanel", "")
INSERT INTO ShareHolder VALUES ("US0008469010", "Dell", "")
INSERT INTO ShareHolder VALUES ("LU0008469012", "Post", "")
CREATE CURSOR INVEST_IN (iPKey I AUTOINC NEXTVALUE 1000, cISIN C(12), dInDate T, iQuantity I, nValue N(7,2))
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-01}, 72, 120)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-04}, 12, 125)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-07}, 38, 130)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-08}, -5, 130)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-04}, 10, 110)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-05}, 53, 120)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-03}, 45, 125)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-05}, -10, 125)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-10}, -5, 120)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-05}, 32 , 109)
INSERT INTO INVEST_IN (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-04}, 23, 99)
CREATE CURSOR INVEST_OUT (iPKey I AUTOINC NEXTVALUE 1000, cISIN C(12), dInDate T, iQuantity I, nValue N(7,2))
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-04}, 0, 120)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity ,nValue) VALUES ("DE0008469008", {^2022-12-05}, 0, 121)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-06}, 0 ,122)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-07}, 0, 121)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("DE0008469008", {^2022-12-08}, 0, 123)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-04}, 0, 110)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-05}, 0, 109)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-06}, 0, 111)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-07}, 0, 112)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("FR0008469009", {^2022-12-09}, 0, 110)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-04}, 0, 99)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-05}, 0, 109)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-06}, 0, 108)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-07}, 0, 107)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("LU0008469012", {^2022-12-12}, 0, 110)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-03}, 0, 125)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-04}, 0, 126)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-05}, 0, 127)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-06}, 0, 126)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-07}, 0, 124)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-08}, 0, 122)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-09}, 0, 120)
INSERT INTO INVEST_OUT (cISIN , dInDate, iQuantity, nValue) VALUES ("US0008469010", {^2021-12-10}, 0, 120)
ENDPROC
PROCEDURE Destroy()
CLEAR Events
ThisForm.Release
ENDPROC
ENDDEFINE
*****
DEFINE CLASS grdBase AS Grid
Top = 12
Left = 12
Height = 360 - 108 - (4 * 12)
Width = 690 - (4 * 12)
BackColor = RGB(0, 230, 230)
RowHeight = 21
AllowRowSizing = .F.
HeaderHeight = 21
AllowHeaderSizing = .F.
DeleteMark = .F.
ReadOnly = .T.
Anchor = 15
Visible = .F.
ENDDEFINE
*****