Moderador: Moderadores
Itamar M. Lins Jr. escreveu:Ola!
Sobre o problema do Designer não trabalhar com PRG.
Resposta do Kresin:Yes, it is. I didn't updated export to prg for a long time and don't know now, when will be able to do this. So, I recommend to use xml format only. If there are real reasons to use prg, we may consider them and try to find a suitable decision with xml.Sim. Eu não atualizei a exportação para prg por um longo tempo e não sei agora, quando será capaz de fazer isso. Por isso, recomendo usar somente o formato xml. Se houver razões reais para usar o prg, podemos considerá-las e tentar encontrar uma decisão adequada com xml.
Saudações,
Itamar M. Lins Jr.
/*
* $Id: Changelog 2760 2018-12-26 08:32:46Z alkresin $
*/
/* Use this format for the entry headers:
YYYY-MM-DD HH:MM UTC[-|+]hhmm Your Full Name <your_email@address>
For example:
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2018-12-26 11:32 UTC+0300 Alexander Kresin <alex@belacy.ru>
* source/winapi/hbrowse.prg
! Fixed drawing for the case if :lAdjRight is set to .f.
2018-12-25 15:36 UTC+0300 Alexander Kresin <alex@belacy.ru>
* source/winapi/draw.c
! Small fix.
Um dos erros corrigido, só falta o FILTER...
I've read the source, posted by Gilberto, and the whole thread at the forum, but his code includes call of functions, which are not published, it opens databases, which I haven't. What can I do with this?
I need a self-contained sample with data to reproduce the problem. The datafiles may contain a minimum of records - just to see what happens. It is better to remove code, call of functions, which doesn't relate to the problem.
Then, Gilberto writes that there aren't samples enough in HwGUI. Yes, this is true. But in could be more helpful, if he and other guys suggested concrete issues, which need to be included in samples, in tutorial, which are not clear enough.
Regards, Alexander.
Tradução do google.
Então, Gilberto escreve que não há exemplos suficientes em HwGUI. Sim isso é verdade. Mas poderia ser mais útil, se ele e outros caras sugerissem problemas concretos, que precisam ser incluÃdos nos exemplos, no tutorial, que não estão suficientemente claros.
/*
Copyright (c) Luiz Henrique lh.santos at ibest.com.br
*/
#include "hwgui.ch"
#INCLUDE "ORD.CH"
STATIC nLastRecordFilter := 0
STATIC nFirstRecordFilter := 0
FUNCTION Main()
PRIVATE frmTesteBrowse, xVLR:=0
INIT WINDOW frmTesteBrowse MAIN TITLE "Teste HBrowse com filtro" ;
COLOR COLOR_3DLIGHT+1 ;
AT 0,0 ;
SIZE hwg_Getdesktopwidth(), hwg_Getdesktopheight() - 28 ;
FONT HFont():Add("MS Sans Serif", 0, -12)
USE MESAS NEW SHARED
INDEX ON mesa TO indmesas
SET INDEX TO indmesas
USE ITENS NEW SHARED
INDEX ON mesa TO inditens
SET INDEX TO inditens
DBSELECTAREA("MESAS")
@ 010,061 BROWSE DATABASE brwMesas ;
SIZE 353,283 ;
STYLE WS_VSCROLL + WS_HSCROLL ;
ON POSCHANGE {|| EVAL(brwItens:bFirst), brwItens:Refresh()}
brwMesas:bColorSel := 16711680 //Cor da linha do browse
ADD COLUMN FIELDBLOCK("mesa") TO brwMesas ;
HEADER "Mesa";
TYPE "C" LENGTH 6 DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("garcon") TO brwMesas ;
HEADER "Garcom" ;
TYPE "C" LENGTH 3 DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("total") TO brwMesas ;
HEADER "Total" ;
TYPE "N" LENGTH 10 DEC 2 ;
PICTURE "@E 999,999.99" ;
JUSTIFY HEAD DT_RIGHT ;
JUSTIFY LINE DT_RIGHT
brwMesas:Refresh()
DBSELECTAREA("ITENS")
@ 375,061 BROWSE brwItens FILTER AUTOEDIT ;
SIZE 415,283 ;
STYLE WS_VSCROLL + WS_HSCROLL ;
ON UPDATE {|| SOMA(xVLR) } ;
FIRST {|| DBSEEK(mesas->mesa)} ;
WHILE {|| mesa == mesas->mesa}
brwItens:bColorSel := 16711680
ADD COLUMN FIELDBLOCK("mesa") TO brwItens ;
HEADER "Mesa";
TYPE "C" LENGTH 6 DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("estornado") TO brwItens ;
HEADER "Estornado";
TYPE "C" LENGTH 1 DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("nomeprod") TO brwItens ;
HEADER "Produto" ;
TYPE "C" ;
LENGTH 40 ;
DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("qtd") TO brwItens ;
HEADER "Quantidade";
TYPE "N" LENGTH 10 DEC 3 ;
JUSTIFY HEAD DT_RIGHT ;
JUSTIFY LINE DT_RIGHT ;
EDITABLE
BRWITENS:acolumns[04]:footing := TRANSF( xVLR, [@E 999,999] )
brwItens:Refresh()
ACTIVATE WINDOW frmTesteBrowse
RETURN NIL
FUNCTION SOMA()
xVLR:=0
IF BRWITENS:nRecords > 0
ITENS->(DBGOTOP())
ITENS->(OrdScope( TOPSCOPE , mesas->mesa ))
ITENS->(OrdScope( BOTTOMSCOPE, mesas->mesa ))
DO WHILE !EOF()
xVLR += ITENS->QTD
ITENS->(DBSKIP())
ENDDO
BRWITENS:acolumns[04]:footing := TRANSF( xVLR, [@E 999,999] )
ITENS->(OrdScope( TOPSCOPE , NIL ))
ITENS->(OrdScope( BOTTOMSCOPE, NIL ))
ENDIF
BRWITENS:Refresh()
RETURN NIL
FUNCTION SOMA()
xVLR:=0
IF BRWITENS:nRecords > 0
ITENS->(OrdScope( TOPSCOPE , mesas->mesa ))
ITENS->(OrdScope( BOTTOMSCOPE, mesas->mesa ))
ITENS->(DBGOTOP())
DO WHILE !EOF()
xVLR += ITENS->QTD
ITENS->(DBSKIP())
ENDDO
BRWITENS:acolumns[04]:footing := TRANSF( xVLR, [@E 999,999] )
ITENS->(OrdScope( TOPSCOPE , NIL ))
ITENS->(OrdScope( BOTTOMSCOPE, NIL ))
ITENS->(DBGOTOP())
ENDIF
BRWITENS:Refresh()
RETURN NIL
gilbertosilverio escreveu:Ola Simões,
Eu coloquei a carroça na frente dos cavalos... e que fiz na correria o exemplo em nem me atentei ao erro.
O problema esta no refresh do UPDATE, deve ser algo bem pequeno mesmo.
Olha a imagem com a correção do dbgotop(), continua da mesma maneira.
I've rewrite his code to use my dbf files and to remove all function calls and all excess stuff - and it works correctly. Probably, the problem is somewhere in his code.
Regards, Alexander.
..
@ 5,080 Browse oBrw DataBase of oDlg Size 500,450 Font oFtBr Style WS_VSCROLL + WS_HSCROLL ;
ON POSCHANGE {||UpGetBrw(oBrwItens,oBrwMP)}
..
***********************************
FUNCTION UpGetBrw(oBrwItens,oBrwMP)
***********************************
*
*
mo->(ordSetFocus(1)) //ticket
mo->(OrdScope(0,cm->ticket))
mo->(OrdScope(1,cm->ticket))
mo->(dbGoTop())
oBrwItens:Refresh()
mp->(OrdScope(0,cm->ticket))
mp->(OrdScope(1,cm->ticket))
mp->(DbGoTop())
oBrwMP:Refresh()
RETURN .T.
FIRST {|| DBSEEK(mesas->mesa)} ;
WHILE {|| mesa == mesas->mesa}
#include "hwgui.ch"
#include "ORD.ch"
FUNCTION Main()
PRIVATE frmTesteBrowse
INIT WINDOW frmTesteBrowse MAIN TITLE "Teste HBrowse com filtro" ;
AT 0,0 ;
SIZE 820, 420 ;
FONT HFont():Add("TAHOMA", 0, -14)
CLOSE DATA
USE MESAS NEW SHARED
INDEX ON mesa TO indmesas
SET INDEX TO indmesas
USE ITENS NEW SHARED
INDEX ON mesa TO inditens
SET INDEX TO inditens
DBSELECTAREA("MESAS")
@ 010,061 BROWSE DATABASE brwMesas SIZE 353,283 STYLE WS_VSCROLL+WS_HSCROLL ;
ON POSCHANGE {|| UpGetBrw( @brwMesas, @brwItens)}
brwMesas:bColorSel := 16711680 //Cor da linha do browse
ADD COLUMN FIELDBLOCK("mesa") TO brwMesas ;
HEADER "Mesa " ;
TYPE "C" LENGTH 6 DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("garcon") TO brwMesas ;
HEADER "Garcom" ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("total") TO brwMesas ;
HEADER "Total" ;
PICTURE "@E 999,999.99" ;
JUSTIFY HEAD DT_RIGHT ;
JUSTIFY LINE DT_RIGHT
brwMesas:Refresh()
DBSELECTAREA("ITENS")
@ 375,061 BROWSE brwItens FILTER AUTOEDIT SIZE 415,283 STYLE WS_VSCROLL+WS_HSCROLL ;
ON UPDATE {|| UpGetBrw( @brwMesas, @brwItens)}
brwItens:bColorSel := 16711680
ADD COLUMN FIELDBLOCK("mesa") TO brwItens ;
HEADER "Mesa ";
TYPE "C" LENGTH 6 DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("nomeprod") TO brwItens ;
HEADER "Produto" ;
TYPE "C" ;
LENGTH 40 ;
DEC 0 ;
JUSTIFY HEAD DT_LEFT ;
JUSTIFY LINE DT_LEFT
ADD COLUMN FIELDBLOCK("qtd") TO brwItens ;
HEADER "Quantidade" ;
PICTURE "@R 999999" ;
EDITABLE ;
JUSTIFY HEAD DT_RIGHT ;
JUSTIFY LINE DT_RIGHT
brwItens:Refresh()
ACTIVATE WINDOW frmTesteBrowse
RETURN NIL
* * * * * * * * *
FUNCTION UpGetBrw(oBrw1, oBrw2)
fVLR01:=0
ITENS->(OrdScope( TOPSCOPE , NIL ))
ITENS->(OrdScope( BOTTOMSCOPE, NIL ))
ITENS->(DBGOTOP())
ITENS->(OrdScope( TOPSCOPE , MESAS->MESA ))
ITENS->(OrdScope( BOTTOMSCOPE, MESAS->MESA ))
ITENS->(DBGOTOP())
DO WHILE !EOF()
fVLR01 += ITENS->QTD
ITENS->(DBSKIP())
ENDDO
oBrw2:acolumns[02]:footing := [Qtde Total: ]
oBrw2:acolumns[03]:footing := TRANSF( fVLR01, [@E 999,999] )
oBrw2:Refresh()
RETURN .T.
Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes