Aqui les dejo el codigo que use para crear la gráfica
***
thisformset.frmbase111.Visible= .T.
MiFormulario = CreateObject("FORM")
with MiFormulario
.Caption = "Grafica" && Una propiedad del objeto
.addobject("lbnom",'label')
.icon="c:\sourcefiles\f_infinity\graficos\ico.ico"
.lbnom.caption="Gráfica de Corte y Impresión"
.lbnom.visible=.t.
.lbnom.autosize=.t.
.lbnom.backstyle=0
.lbnom.forecolor=rgb(0,128,255)
.lbnom.fontbold=.t.
*
*Datos
*********************************************************************************
*Datos de las dimensiones del trabajo
.addobject("TexxT",'label')
.TexxT.caption="Tamaño del Trabajo..."
.TexxT.visible=.t.
.TexxT.backstyle=0
.TexxT.forecolor=rgb(0,128,255)
.TexxT.top=30
.TexxT.left=0
.TexxT.autosize=.t.
*
.addobject("Texx1",'label')
.Texx1.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase45.Value))
.Texx1.visible=.t.
.Texx1.backstyle=0
.Texx1.forecolor=rgb(0,128,255)
.Texx1.top=30
.Texx1.left=120
.Texx1.autosize=.t.
*
.addobject("Texx2",'label')
.Texx2.caption="x"
.Texx2.visible=.t.
.Texx2.backstyle=0
.Texx2.forecolor=rgb(0,128,255)
.Texx2.top=30
.Texx2.left=140
.Texx2.autosize=.t.
*
.addobject("Texx3",'label')
.Texx3.caption=ALLTRIM(str(thisformset.frmbase19.txtbase46.Value))
.Texx3.visible=.t.
.Texx3.backstyle=0
.Texx3.forecolor=rgb(0,128,255)
.Texx3.top=30
.Texx3.left=160
.Texx3.autosize=.t.
*
.addobject("Texx4",'label')
.Texx4.caption="cm"
.Texx4.visible=.t.
.Texx4.backstyle=0
.Texx4.forecolor=rgb(0,128,255)
.Texx4.top=30
.Texx4.left=180
.Texx4.autosize=.t.
****
*Datos de las dimensiones del Pliego.
.addobject("TexxP",'label')
.TexxP.caption="Tamaño del Pliego..."
.TexxP.visible=.t.
.TexxP.backstyle=0
.TexxP.forecolor=rgb(0,128,255)
.TexxP.top=45
.TexxP.left=0
.TexxP.autosize=.t.
*
.addobject("Texx5",'label')
.Texx5.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase43.Value))
.Texx5.visible=.t.
.Texx5.backstyle=0
.Texx5.forecolor=rgb(0,128,255)
.Texx5.top=45
.Texx5.left=120
.Texx5.autosize=.t.
*
.addobject("Texx6",'label')
.Texx6.caption="x"
.Texx6.visible=.t.
.Texx6.backstyle=0
.Texx6.forecolor=rgb(0,128,255)
.Texx6.top=45
.Texx6.left=140
.Texx6.autosize=.t.
*
.addobject("Texx7",'label')
.Texx7.caption=ALLTRIM(str(thisformset.frmbase19.txtbase44.Value))
.Texx7.visible=.t.
.Texx7.backstyle=0
.Texx7.forecolor=rgb(0,128,255)
.Texx7.top=45
.Texx7.left=160
.Texx7.autosize=.t.
*
.addobject("Texx8",'label')
.Texx8.caption="cm"
.Texx8.visible=.t.
.Texx8.backstyle=0
.Texx8.forecolor=rgb(0,128,255)
.Texx8.top=45
.Texx8.left=180
.Texx8.autosize=.t.
***Datos de cantidad de corte de papel
.addobject("TextCor","label")
.TextCor.caption="Cantidad de corte:"
.TextCor.visible=.t.
.TextCor.backstyle=0
.TextCor.forecolor=rgb(0,128,255)
.TextCor.top=60
.TextCor.left=0
.TextCor.autosize=.t.
*
.addobject("TextCorC","label")
.TextCorC.caption=alltrim(str(thisformset.frmbase19.txtbase42.Value))
.TextCorC.visible=.t.
.TextCorC.backstyle=0
.TextCorC.forecolor=rgb(0,128,255)
.TextCorC.top=60
.TextCorC.left=120
.TextCorC.autosize=.t.
***Datos de cantidad de Hojas a utilizar.
*!* .addobject("TextHo","label")
*!* .TextHo.caption="Cantidad de Hojas:"
*!* .TextHo.visible=.t.
*!* .TextHo.backstyle=0
*!* .TextHo.forecolor=rgb(0,128,255)
*!* .TextHo.top=75
*!* .TextHo.left=0
*!* .TextHo.autosize=.t.
*!* *
*!* .addobject("TextHoc","label")
*!* .TextHoc.caption=alltrim(str(thisformset.frmbase19.txtbase48.Value))
*!* .TextHoc.visible=.t.
*!* .TextHoc.backstyle=0
*!* .TextHoc.forecolor=rgb(0,128,255)
*!* .TextHoc.top=75
*!* .TextHoc.left=120
*!* .TextHoc.autosize=.t.
***Datos de Desperdicios.
.addobject("TextDes","label")
.TextDes.caption="Desperdicio:"
.TextDes.visible=.t.
.TextDes.backstyle=0
.TextDes.forecolor=rgb(255,0,0)
.TextDes.top=75
.TextDes.left=0
.TextDes.autosize=.t.
*
.addobject("TextDesC","label")
deps= ALLTRIM(TRANSFORM(thisformset.frmbase19.txtbase55.Value, '99999.9999'))
*.TextDesC.caption=alltrim(str(thisformset.frmbase19.txtbase55.Value))
.TextDesC.caption=deps
.TextDesC.visible=.t.
.TextDesC.backstyle=0
.TextDesC.forecolor=rgb(255,0,0)
.TextDesC.top=75
.TextDesC.left=120
.TextDesC.autosize=.t.
*Datos de Precorte
*
.addobject("lbpl",'label')
.lbpl.caption="Gráfica de Pre Corte...!"
.lbpl.fontbold=.t.
.lbpl.visible=.t.
.lbpl.backstyle=0
.lbpl.forecolor=rgb(0,128,255)
.lbpl.top=0
.lbpl.left=250
.lbpl.autosize=.t.
***Datos de papel
.addobject("TexxPa",'label')
.TexxPa.caption="Tamaño del Papel..."
.TexxPa.visible=.t.
.TexxPa.backstyle=0
.TexxPa.forecolor=rgb(0,128,255)
.TexxPa.top=30
.TexxPa.left=250
.TexxPa.autosize=.t.
*
.addobject("TexxPad",'label')
.TexxPad.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase20.Value))
.TexxPad.visible=.t.
.TexxPad.backstyle=0
.TexxPad.forecolor=rgb(0,128,255)
.TexxPad.top=30
.TexxPad.left=360
.TexxPad.autosize=.t.
*
.addobject("prex",'label')
.prex.caption="x"
.prex.visible=.t.
.prex.backstyle=0
.prex.forecolor=rgb(0,128,255)
.prex.top=30
.prex.left=390
.prex.autosize=.t.
*
.addobject("prexl",'label')
.prexl.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase21.Value))
.prexl.visible=.t.
.prexl.backstyle=0
.prexl.forecolor=rgb(0,128,255)
.prexl.top=30
.prexl.left=400
.prexl.autosize=.t.
*
.addobject("prex2",'label')
.prex2.caption="cm"
.prex2.visible=.t.
.prex2.backstyle=0
.prex2.forecolor=rgb(0,128,255)
.prex2.top=30
.prex2.left=430
.prex2.autosize=.t.
*******Datos del pliego
.addobject("prexPl",'label')
.prexPl.caption="Tamaño del pliego..."
.prexPl.visible=.t.
.prexPl.backstyle=0
.prexPl.forecolor=rgb(0,128,255)
.prexPl.top=45
.prexPl.left=250
.prexPl.autosize=.t.
*
.addobject("prexPC",'label')
.prexPC.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase22.Value))
.prexPC.visible=.t.
.prexPC.backstyle=0
.prexPC.forecolor=rgb(0,128,255)
.prexPC.top=45
.prexPC.left=360
.prexPC.autosize=.t.
*
.addobject("prexPlx",'label')
.prexPlx.caption="x"
.prexPlx.visible=.t.
.prexPlx.backstyle=0
.prexPlx.forecolor=rgb(0,128,255)
.prexPlx.top=45
.prexPlx.left=390
.prexPlx.autosize=.t.
*
.addobject("prexPlx1",'label')
.prexPlx1.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase23.Value))
.prexPlx1.visible=.t.
.prexPlx1.backstyle=0
.prexPlx1.forecolor=rgb(0,128,255)
.prexPlx1.top=45
.prexPlx1.left=400
.prexPlx1.autosize=.t.
*
.addobject("preCm",'label')
.preCm.caption="cm"
.preCm.visible=.t.
.preCm.backstyle=0
.preCm.forecolor=rgb(0,128,255)
.preCm.top=45
.preCm.left=430
.preCm.autosize=.t.
*
****datos de corte
.addobject("preCor",'label')
.preCor.caption="Cantidad de corte:"
.preCor.visible=.t.
.preCor.backstyle=0
.preCor.forecolor=rgb(0,128,255)
.preCor.top=60
.preCor.left=250
.preCor.autosize=.t.
*
.addobject("preCor1",'label')
.preCor1.caption=ALLTRIM(STR(thisformset.frmbase19.txtbase19.Value))
.preCor1.visible=.t.
.preCor1.backstyle=0
.preCor1.forecolor=rgb(0,128,255)
.preCor1.top=60
.preCor1.left=360
.preCor1.autosize=.t.
***Datos de Desperdicios.
.addobject("TextDes1","label")
.TextDes1.caption="Desperdicio:"
.TextDes1.visible=.t.
.TextDes1.backstyle=0
.TextDes1.forecolor=rgb(255,0,0)
.TextDes1.top=75
.TextDes1.left=250
.TextDes1.autosize=.t.
*
.addobject("TextDesC1","label")
deps= ALLTRIM(TRANSFORM(thisformset.frmbase19.txtbase54.Value, '99999.9999'))
*.TextDesC.caption=alltrim(str(thisformset.frmbase19.txtbase55.Value))
.TextDesC1.caption=deps
.TextDesC1.visible=.t.
.TextDesC1.backstyle=0
.TextDesC1.forecolor=rgb(255,0,0)
.TextDesC1.top=75
.TextDesC1.left=360
.TextDesC1.autosize=.t.
*********************************************************************************
*********************************************************************************
.addobject("containx",'container')
.containx.width= thisformset.frmbase19.txtbase43.Value
.containx.height=thisformset.frmbase19.txtbase44.Value
.containx.visible=.t.
.width= 500
.height=500
.backcolor=RGB(255,255,255)
.containx.top=110
*********************************************************
FOR i = 1 TO thisformset.frmbase19.txtbase49.Value && total de corte que sale dal divicion en tre las medidas a /l o l/a
.containx.backcolor=RGB(0,255,255)
.containx.AddObject('oLinLar' + TRANSFORM(i), 'Line')
loLin =.containx.Controls(i)
STORE 0 TO loLin.width, loLin.Top
loLin.Height = .Height
m=thisformset.frmbase19.txtbase45.Value* i && medida del ancho del trabajo?
loLin.left = m
NEXT i
.SetAll('BorderColor', 16711680, 'Line')
.SetAll('Visible', .T., 'Line')
*********************************************************
FOR i = 1 TO thisformset.frmbase19.txtbase47.Value && total de corte que sale dal division en tre las medidas a /l o l/a
.containx.AddObject('oLinAnc' + TRANSFORM(i), 'Line')
loLin2 =.containx.Controls(.containx.ControlCount)
STORE 0 TO loLin2.Left, loLin2.Height
loLin2.width = .width
m=thisformset.frmbase19.txtbase46.Value*i && medida del alto o largo del trabajo.?
loLin2.Top = m
NEXT i
.SetAll('BorderColor', 16711682, 'Line')
.SetAll('Visible', .T., 'Line')
********************************************************
*!* **#creacion de segunda grafic para precorte
.addobject("containx1",'container')
.containx1.width= thisformset.frmbase19.txtbase20.Value
.containx1.height=thisformset.frmbase19.txtbase21.Value
.containx1.visible=.t.
.width= 500
.height=300
.borderstyle=0
.backcolor=RGB(255,255,255)
.containx1.top=110
.containx1.left=250
*********************************************************
FOR i = 1 TO thisformset.frmbase19.txtbase41.Value
.containx1.backcolor=RGB(0,255,255)
.containx1.AddObject('oLinLar1' + TRANSFORM(i), 'Line')
loLin1 =.containx1.Controls(i)
STORE 0 TO loLin1.width, loLin1.Top
loLin1.Height = .Height
m1=thisformset.frmbase19.txtbase22.Value* i
loLin1.left = m1
NEXT i
.SetAll('BorderColor', 16711680, 'Line')
.SetAll('Visible', .T., 'Line')
*********************************************************
FOR i = 1 TO thisformset.frmbase19.txtbase39.Value
.containx1.AddObject('oLinAnc1' + TRANSFORM(i), 'Line')
loLin21 =.containx1.Controls(.containx1.ControlCount)
STORE 0 TO loLin21.Left, loLin21.Height
loLin21.width = .width
m1=thisformset.frmbase19.txtbase23.Value*i
loLin21.Top = m1
NEXT i
.SetAll('BorderColor', 16711682, 'Line')
.SetAll('Visible', .T., 'Line')
*!* ********************************************************
*!* **#
.Show(1)
endwith
Release MiFormulario
**