Buenas amigos del foro, tengo una duda, he alimentado una toolbar desde una tabla, y de la forma en que relleno la toolbar, no se cual bot贸n he pulsado para ejecutar una acci贸n. Mi duda es, hay alguna forma o m茅todo que me permita saber que bot贸n puls茅?
Adjunto c贸digo si alguien se interesa.
Adjunto c贸digo si alguien se interesa.
#include "FiveWin.ch"
*------------------------------------------------------------------------------------
Function Empresass()
Local oWnd,oDbf[10],Repite:=1,Repite2:=1,oToolbar1,oToolbar2,oToolbar3,oToolbar4
Local oReBar, oFolder,oImgList1,oImgList2,oImgList3,oImgList4,oImgList5,oImgList6,oImgList7
Local oPanel1,oPanel2,oPanel3,oPanel4,Registros:=0,Line:=0
If ( DbUseFile("Empresas.DBF",.T.,"DBFNTX") )
DataBase oDbf[1]
Else
Return Nil
EndIf
(oDbf[1]:GoTop())
Count To Registros
(oDbf[1]:GoTop())
IF Registros=4
Line:=8.6
ElseIf Registros<=10
Line:=13.5
ElseIf Registros<=16
Line:=25.8
ElseIf Registros<=20
Line:=34.4
ENDIF
DEFINE FONT oFont NAME "Estrangelo Edessa" WEIGHT 18 Bold
DEFINE FONT oMainFont NAME "Estrangelo Edessa" Size 6,17 Bold
DEFINE WINDOW oWnd From .1,.1 to Line,127 TITLE "Certificados de Sueldos y Honorarios - Selecci贸n de Empresas" NOZOOM
Set Font Of oWnd To oFont
oReBar := TReBar():New( oWnd )
IF Registros<=6
oPanel1 := TPanel():New( 0, 0, 75, 600, oReBar )
oImgList1:=TImageList():New(120,48)
ElseIf Registros>=7 .AND. Registros<=12
oPanel1 := TPanel():New( 0, 0, 75, 600, oReBar )
oImgList1:=TImageList():New(120,48)
oPanel2 := TPanel():New( 0, 76, 75, 600, oReBar )
oImgList2:=TImageList():New(120,48)
ElseIf Registros>=13 .AND. Registros<=18
oPanel1 := TPanel():New( 0, 0, 75, 600, oReBar )
oImgList1:=TImageList():New(120,48)
oPanel2 := TPanel():New( 0, 76, 75, 600, oReBar )
oImgList2:=TImageList():New(120,48)
oPanel3 := TPanel():New( 0, 151, 75, 600, oReBar )
oImgList3:=TImageList():New(120,48)
ElseIf Registros>19
oPanel1 := TPanel():New( 0, 0, 75, 600, oReBar )
oImgList1:=TImageList():New(120,48)
oPanel2 := TPanel():New( 0, 76, 75, 600, oReBar )
oImgList2:=TImageList():New(120,48)
oPanel3 := TPanel():New( 0, 151, 75, 600, oReBar )
oImgList3:=TImageList():New(120,48)
oPanel4 := TPanel():New( 0, 226, 75, 600, oReBar )
oImgList4:=TImageList():New(120,48)
ENDIF
DbGoTop()
Do While !Eof()
IF Repite>=1 .AND. Repite<=6
oImgList1:AddMasked( TBitmap():Define( ,Alltrim((oDbf[1]:cAlias)->Logo), oWnd ), )
IF Registros<6
oImgList1:AddMasked( TBitmap():Define( ,"New120.BMP", oWnd ), )
oImgList1:AddMasked( TBitmap():Define( ,"End120.BMP", oWnd ), )
ENDIF
ElseIf Repite>=7 .AND. Repite<=12
oImgList2:AddMasked( TBitmap():Define( ,Alltrim((oDbf[1]:cAlias)->Logo), oWnd ), )
IF Registros<10
oImgList2:AddMasked( TBitmap():Define( ,"New120.BMP", oWnd ), )
oImgList2:AddMasked( TBitmap():Define( ,"End120.BMP", oWnd ), )
ENDIF
ElseIf Repite>=13 .AND. Repite<=18
oImgList3:AddMasked( TBitmap():Define( ,Alltrim((oDbf[1]:cAlias)->Logo), oWnd ), )
IF Registros<16
oImgList3:AddMasked( TBitmap():Define( ,"New120.BMP", oWnd ), )
oImgList3:AddMasked( TBitmap():Define( ,"End120.BMP", oWnd ), )
ENDIF
ElseIf Registros<19
oImgList4:AddMasked( TBitmap():Define( ,"New120.BMP", oWnd ), )
oImgList4:AddMasked( TBitmap():Define( ,"End120.BMP", oWnd ), )
EndIf
Skip
Repite++
EndDo
IF Registros<=6
oToolBar1 = TToolBar():New( oPanel1, 170, 80, oImgList1 )
ElseIf Registros>=7 .AND. Registros<=12
oToolBar1 = TToolBar():New( oPanel1, 170, 80, oImgList1 )
oToolBar2 = TToolBar():New( oPanel2, 170, 80, oImgList2 )
ElseIf Registros>=13 .AND. Registros<=18
oToolBar1 = TToolBar():New( oPanel1, 170, 80, oImgList1 )
oToolBar2 = TToolBar():New( oPanel2, 170, 80, oImgList2 )
oToolBar3 = TToolBar():New( oPanel3, 170, 80, oImgList3 )
ElseIf Registros>=19
oToolBar1 = TToolBar():New( oPanel1, 170, 80, oImgList1 )
oToolBar2 = TToolBar():New( oPanel2, 170, 80, oImgList2 )
oToolBar3 = TToolBar():New( oPanel3, 170, 80, oImgList3 )
oToolBar4 = TToolBar():New( oPanel4, 170, 80, oImgList4 )
ENDIF
DbGoTop()
Do While !Eof()
IF Repite2<=6 .AND. Repite2>=1
oToolBar1:AddButton( { || Ejecuta(oDbf,(oDbf[1]:cAlias)->Empresa,(oDbf[1]:cAlias)->Carpeta) }, Alltrim((oDbf[1]:cAlias)->Empresa),Alltrim((oDbf[1]:cAlias)->Empresa) )
IF Registros<6
oToolBar1:AddSeparator()
oToolBar1:AddButton( { || (oWnd:End(),Quit) }, "Nueva Empresa","Nueva Empresa")
oToolBar1:AddSeparator()
oToolBar1:AddButton( { || (oWnd:End(),Quit) }, "Salir del Sistema","Salir del Sistema")
ENDIF
oToolBar1:AddSeparator()
ElseIf Repite2<=12 .AND. Repite2>=7
oToolBar2:AddButton( { || Ejecuta(oDbf,(oDbf[1]:cAlias)->Empresa,(oDbf[1]:cAlias)->Carpeta) }, Alltrim((oDbf[1]:cAlias)->Empresa),Alltrim((oDbf[1]:cAlias)->Empresa) )
If Registros>=7 .AND. Registros<=12
oToolBar2:AddSeparator()
oToolBar2:AddButton( { || (oWnd:End(),Quit) }, "Nueva Empresa","Nueva Empresa")
oToolBar2:AddSeparator()
oToolBar2:AddButton( { || (oWnd:End(),Quit) }, "Salir del Sistema","Salir del Sistema")
ENDIF
oToolBar2:AddSeparator()
ElseIf Repite2<=18 .AND. Repite2>=13
oToolBar3:AddButton( { || Ejecuta(oDbf,(oDbf[1]:cAlias)->Empresa,(oDbf[1]:cAlias)->Carpeta) }, Alltrim((oDbf[1]:cAlias)->Empresa),Alltrim((oDbf[1]:cAlias)->Empresa) )
IF Registros>=13 .AND. Registros<=18
oToolBar3:AddSeparator()
oToolBar3:AddButton( { || (oWnd:End(),Quit) }, "Nueva Empresa","Nueva Empresa")
oToolBar3:AddSeparator()
oToolBar3:AddButton( { || (oWnd:End(),Quit) }, "Salir del Sistema","Salir del Sistema")
ENDIF
oToolBar3:AddSeparator()
ElseIf Repite2>19
oToolBar4:AddButton( { || (oWnd:End(),Quit) }, "Nueva Empresa","Nueva Empresa")
oToolBar4:AddSeparator()
oToolBar4:AddButton( { || (oWnd:End(),Quit) }, "Salir del Sistema","Salir del Sistema")
oToolBar4:AddSeparator()
ENDIF
Repite2++
Skip
EndDo
IF Registros<=6
oReBar:InsertBand( oPanel1 )
ElseIf Registros>=7 .AND. Registros<=12
oReBar:InsertBand( oPanel1 )
oReBar:InsertBand( oPanel2 )
ElseIf Registros>=13 .AND. Registros<=18
oReBar:InsertBand( oPanel1 )
oReBar:InsertBand( oPanel2 )
oReBar:InsertBand( oPanel3 )
ElseIf Registros>=13 .AND. Registros<=20
oReBar:InsertBand( oPanel1 )
oReBar:InsertBand( oPanel2 )
oReBar:InsertBand( oPanel3 )
oReBar:InsertBand( oPanel4 )
ENDIF
DEFINE STATUSBAR OF oWnd PROMPT PM_Date(Date())
ACTIVATE WINDOW oWnd
Return Nil
*---- En esta parte me pierdo, por que no se como ejecutar la acci贸n por que no se que bot贸n puls茅-----*
Function Ejecuta(oDbf,Empresa,Carpeta)
Select (oDbf[1]:cAlias)
_Ruta:=Alltrim((oDbf[1]:cAlias)->Carpeta)
Empresas:=(oDbf[1]:cAlias)->Empresa
Return NilQuiero hacer facturaci贸n electr贸nica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.