Eliminar botón de barra Quickaccess

Eliminar botón de barra Quickaccess

Postby mariordz » Fri Mar 18, 2022 6:46 pm

Buenas tardes compañeros del foro, en la ventana principal de mi aplicación tengo una barra Quickaccess, esta barra se forma de manera dinámica a partir de una tabla de una base de datos que almacena las opciones que cada usuario ha agregado a dicha barra.

Code: Select all  Expand view  RUN

OWNER  FUNCION       PROMPT                                           BITMAP                  FECHA                       TOOLTIP
AGB     creamade()      Procesar desc.                                 descproc                2020-02-05 00:00:00  Procesar solicitud de descuento                            
AGB     segcliegp()       Seguimiento a alta                          SEGUICLIENTE         2020-02-05 00:00:00  Seguimiento a alta de cliente                              
AGC     soli_panta()     Solicitar conf. deposito                    solipanta                2019-04-24 00:00:00  Solicitar confirmación de deposito                          
AGC     diario_inci()     Registro diario de incidencias          incinomi_regis         2019-04-24 00:00:00  Registro diario de incidencias                              


Ahora necesito que el usuario sea capaz de eliminar algunas opciones que están en esa barra y al mismo tiempo se eliminen de la base de datos para que en el siguiente inicio de sesión ya no aparezca la opción que fue eliminada.

Al darle click derecho a una de los iconos lo puedo eliminar de la misma, pero mi pregunta es, como puedo guardar en una variable el prompt o el Tooltip del botón pulsado, para que con ese dato pueda eliminar el registro correspondiente en la tabla de opciones del usuario.


Adicionalmente, me gustaría saber como puedo insertar una nueva opción el la barra Quickaccess, como lo hago ahora es, darle click derecho del mouse a una opción del Ribbonbar, al usuario le aparece una ventana donde le pide confirmación para agregar esta opción a la barra, en caso afirmativo se guarda esa opción en la tabla antes mencionada y se agrega a la barra Quickaccess, pero siempre la agrega al final.

Como puedo destruir la barra Quickaccess y regenerarla agregando el botón que se acaba de agregar, ya que como característica especial los últimos 6 íconos no dependen del usuario, ya que son comunes para todos ellos, por lo que el nuevo ícono debería insertarse antes de un icono especifico.

Espero que este código sirva para darles una mejor idea de como lo manejo:

Code: Select all  Expand view  RUN

cCadsql1:="select funcion,prompt,bitmap,tooltip from menu_options where owner='&firma' order by prompt"

oRs1 := TOleAuto():New( "ADODB.Recordset" )
oRs1:CursorType := 1 // opendkeyset
oRs1:CursorLocation := 3 // local cache
oRs1:LockType := 3 // lockoportunistic

TRY
cursorwait()
oRS1:Open( cCadSql1,'Provider='+xPROVIDER+';Data Source='+xSOURCE+';Initial Catalog='+xCATALOGA+';User Id='+xUSERID+';Password='+xPASSWORD )
           
CATCH oErr
MsgInfo( "Error al consultar items para menú QuickAccess dínamico ")
RETURN(.F.)
END TRY

oRs1nr:=oRs1:RecordCount()
if oRs1nr>0
oRs1:MoveFirst()
for unreg:=1 to oRs1nr
cButt_tt:="oBtnqa"+alltrim(Str(unreg))
cFunc:=oRs1:Fields(0):Value()
cProm:=alltrim(oRs1:Fields(3):Value())
cBitm:=oRs1:Fields(2):Value()
add button &cButt_tt QUICKACCESS oQuicka bitmap cBitm action &cFunc
&cButt_tt:cTooltip := cProm
oRs1:MoveNext()
next
endif
add button oBtnenv QUICKACCESS oQuicka bitmap "cambiatema" action GradDlgs0()
oBtnenv:cTooltip:="Cambiar ambiente del sistema"
add button oBtnlib QUICKACCESS oQuicka bitmap "library" action library_view()
oBtnlib:cTooltip:="Biblioteca de recursos (manuales, guías, imagenes,etc)"
add button oBtnupd QUICKACCESS oQuicka bitmap "UPDATE" action updatever()
oBtnupd:cTooltip:="Actualizar versión manualmente"
add button oBtndirt QUICKACCESS oQuicka bitmap "DIRECTORIO" action directorio()
oBtndirt:cTooltip:="Ver el directorio telefónico"
add button oBtnace QUICKACCESS oQuicka bitmap "MEXICO" action acerca()
oBtnace:cTooltip:="Acerca del sistema"
add button oBtnexit QUICKACCESS oQuicka bitmap "exit" action salsys(oVentprinc)// tooltip "Finalizar y salir del sistema"
oBtnexit:CTooltip := "Finalizar y salir del sistema"
 


Mi ambiente FWH 19.12, Harbour 3.2, Borland 7.7
User avatar
mariordz
 
Posts: 131
Joined: Tue Dec 26, 2006 4:50 pm
Location: Ciudad de México

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 123 guests