Gostaria de encontrar uma solução para o problema com que me debato.
Fiz no Form de vendas uma rotina de escolha de mesa por definição, e em termos de apresentação está a funcionar bem.
Mas quando eu vou fazer a escolha desse botão que pretendo, não consigo selecionar na ação o valor dele.
Abaixo vou colocar as imagens para verem como é apresentado.
Imagem da sala interior:
Imagem da Sala no exterior:
A rotina apresenta as mesas definidas nesses espaços e com a imagem de acordo com o estado da mesa como veem na imagem.
A parte mais dificil é eu conseguir ir buscar o valor que se encontra no respectivo botão.
Vou apresentar aqui a rotina no qual zim um tabelador com os departamentos que preciso, e disponho os botões de acordo com o numero de mesas lá colocadas.
Código: Selecionar todos
DEFINE TAB Tab_BuscaMesa AT 20 , 20 WIDTH 690 HEIGHT 320 VALUE 1 FONT "Comic Sans MS" SIZE 11;
TOOLTIP "" HOTTRACK ON CHANGE Nil MULTILINE &&VERTICAL .f.
cTextFName := GetStartUpFolder()+"\CONF\DEFBOTAO.TXT"
IF !FILE( cTextFName )
HB_MEMOWRIT( cTextFName, ;
"40" + CRLF + "40" + CRLF + "80" + CRLF + "80" + CRLF +;
"numMesaVD :=VAL(matApreMesas[numMesaApr])" + CRLF + "matApreMesas[numMesaApr]" + CRLF +;
"Selecione a mesa pretendida." + CRLF +;
".t." + CRLF + ".f." + CRLF + "Imagens\GrafMesas\" + CRLF + "TOP" )
ENDIF
FOR xTab :=1 TO LEN( matLocalMesa )
PAGE RTRIM(matLocalMesa[xTab,1]) IMAGE RTRIM(matLocalMesa[xTab,2])
SELECT('P_MESAS')
GO xTab
matApreMesas := HB_ATokens( RTRIM(P_MESAS->PlanoMesas), '.', .F., .F. )
matMesaBotao := HB_ATokens( MEMOREAD( cTextFName ), CRLF )
LnBotao :=0
ColBotao:=0
FOR numMesaApr :=1 TO LEN(matApreMesas)
SELECT('MOVVDDIA')
OrdSetFocus(1)
oNomeBotao :='M'+IF(MOVVDDIA->(DBSEEK(VAL(matApreMesas[numMesaApr]))),;
IF(MOVVDDIA->MesaFecha==.f., HB_USUBSTR(matLocalMesa[xTab,1],1,4)+'Ocupada',;
HB_USUBSTR(matLocalMesa[xTab,1],1,4)+'Fechada'), HB_USUBSTR(matLocalMesa[xTab,1],1,4)+'Livre')
oPicture :=oNomeBotao
oNomeBotao +=matApreMesas[numMesaApr]
oPicture :=STRTRAN(oPicture, "Sala", "esa")
oPicture :=STRTRAN(oPicture, 'Espl', 'esa')
oPicture :=STRTRAN(oPicture, 'Balc', 'esa')
oPicture :=STRTRAN(oPicture, 'IFoo', 'esaIF') + "_28x28.PNG"
DEFINE BUTTON &oNomeBotao
ROW VAL(matMesaBotao[1]) + LnBotao
COL VAL(matMesaBotao[2]) + ColBotao
WIDTH VAL(matMesaBotao[3])
HEIGHT VAL(matMesaBotao[4])
ACTION {|| MsgInfo({'Nº Mesa : ' + HB_NTos(VAL(oNomeBotao)), CHR(13),;
'Nome Botao: ' + oNomeBotao}), Nil } &&ThisWindow.Release }
CAPTION "&"+&(matMesaBotao[6])
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP matMesaBotao[7]
FONTBOLD .T.
VISIBLE .T.
TRANSPARENT .T.
MULTILINE .F.
PICTURE matMesaBotao[10] + oPicture
PICTALIGNMENT TOP
ONGOTFOCUS {|| ExpFilter :='FormBuscaMesa.' + oNomeBotao + '.CAPTION' }
END BUTTON
ColBotao +=VAL(matMesaBotao[3]) + 5
IF ColBotao>=690 - ( VAL(matMesaBotao[3]) + VAL(matMesaBotao[2]) )
ColBotao :=0
LnBotao +=VAL(matMesaBotao[4])
ENDIF
NEXT numMesaApr
SELECT('P_MESAS')
END PAGE
NEXT xTab
END TAB Não sei se estou a colocar a msg no local certo, mas presumo que sim.


