Jump to content
Fivewin Brasil

Para Theotokos - Fechar o programa


kapiaba

Recommended Posts

Theotokos Faça assim, e verifique o arquivo checkres.txt para ver qual objeto não está sendo destruído:

      FreeResources()
	      SysRefresh()
	      DbCloseAll()
	      RELEASE All
	      Hb_GCAll( .T. )
	      CLEAR MEMORY
	      PostQuitMessage( 0 )
	      IF FILE( "checkres.txt" )
         FErase( "checkres.txt" )
      ENDIF
	      CheckRes()
	      __QUIT()
Link to comment
Share on other sites

Kapiaba... o arquivo que era é este :

27/01/2018 16:16:26: BRUSH,118496802,TBITMAP:SETCOLOR(2529)->TBITMAP:DEFINE(265)->MAIN(126)
    
27/01/2018 16:16:26: BMP,67444254,MAIN(126)
    
27/01/2018 16:16:26: BMP,84221471,MAIN(127)
    
27/01/2018 16:16:26: FONT,1560944022,LERSENHA(504)->(b)MAIN(208)->TWINDOW:ACTIVATE(983)->MAIN(208)
    
27/01/2018 16:16:26: FONT,1980374582,MSGMETER(12)->LERSENHA(570)->(b)MAIN(208)->TWINDOW:ACTIVATE(983)->MAIN(208)
    
27/01/2018 16:16:26: ====================================================================================================    
 

Aí trava e tenho que fechar como lhe falei

Link to comment
Share on other sites

o trecho em que utilizo esta rotina é este:

	DEFINE FONT oFont SIZE 0,-15 NAME "Times"

   cProcura := Space(30)
   cCampo   := PadL("Descrição",10)
   
   DEFINE DIALOG oDlg RESOURCE "DLG_CON_MER"  TITLE "..:: Manutenção de Dados .::. PRODUTOS ::.."
	*
   oDlg:lTransparent := .T.
   oDlg:lHelpIcon    := .F.
   *
	oBrw := TxBrowse():New( oDlg )
	oBrw:CreateFromResource( 101 )   
	oBrw:cAlias := 'BanMerca'   
	
   ADD COLUMN TO XBROWSE oBrw TITLE "" SIZE 30
   *
	ADD COLUMN TO XBROWSE oBrw DATA M_FAMILIA  TITLE "Família"    			SIZE 200					ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_CODIGO   TITLE "Código"     			SIZE 80  COLORS 128  ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_DESCRICA TITLE "Descrição"  			SIZE 350 COLORS 128  ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_REFERENC TITLE "Referência" 			SIZE 120             ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_CODBAR   TITLE "Código de Barras"  SIZE 100       		ALIGN LEFT
   *
	If nTp = 1
   	ADD COLUMN TO XBROWSE oBrw DATA M_QUANTIDA TITLE "Quantidade" 	SIZE 90            ALIGN RIGHT
  	Else
   	ADD COLUMN TO XBROWSE oBrw DATA M_QUANTIDA TITLE "Estoque" 		SIZE 90              ALIGN RIGHT
   	ADD COLUMN TO XBROWSE oBrw DATA M_CN       TITLE "C/N"     		SIZE 90              ALIGN RIGHT
   	ADD COLUMN TO XBROWSE oBrw DATA M_SN       TITLE "S/N"     		SIZE 90              ALIGN RIGHT
		ADD COLUMN TO XBROWSE oBrw DATA M_CUSTO    TITLE "Preço Custo" SIZE 90 COLORS 128   ALIGN RIGHT
  	End
   *
   ADD COLUMN TO XBROWSE oBrw DATA M_VENDA    TITLE "Preço Venda"   	SIZE 90  COLORS 128   ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_FORNECED TITLE "Fornecedor" 		SIZE 200              ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_EMINIMO  TITLE "Est.Min."   		SIZE 50               ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_EMAXIMO  TITLE "Est.Máx."   		SIZE 50               ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_DT_ATUAL TITLE "Dt.Ult.Atual."	SIZE 100
	*
	oBrw:nRowHeight 			 := 30
	oBrw:lColDividerComplete := .f.
	oBrw:nDataLines          := 2    // Number of lines of the data rows
   oBrw:nHeaderLines        := 2    // Number of lines of the header    
	oBrw:nFooterLines        := 2    // Number of lines of the footer    
	oBrw:nDataType           := 0    // Data type to be used: 0->rdd, 1->array, ... (more to come) If navigation codeblocks are not specified then get automatically initialized when adjusting the browse depending on this DATA value
	oBrw:nHeaderHeight		 := 30
	// oBrw:bSeek               := {|c| DbSeek(Upper( c )) }
	oBrw:nFreeze := 1
	oBrw:nColDividerStyle    := 2    // Column divider style: 0 No lines 1 Black line 2 Dark gray line 3 Raised 4 Inset 5 Fore Color 6 Light gray    
	oBrw:nRowDividerStyle    := 2    // Column divider style: 0 No lines 1 Black line 2 Dark gray line 3 Raised 4 Inset 5 Fore Color 6 Light gray    
	*
	oBrw:aCols[3]:AddBmpFile( "BMP\Organiza.bmp" )
	oBrw:aCols[3]:nHeadBmpNo    := 0
	oBrw:aCols[3]:nHeadBmpAlign := 1
	*
	oBrw:aCols[4]:AddBmpFile( "BMP\Organiza.bmp" )
	oBrw:aCols[4]:nHeadBmpNo    := 1
	oBrw:aCols[4]:nHeadBmpAlign := 1
	*
	oBrw:aCols[1]:AddBmpFile( "BMP\Up.Bmp" )
	oBrw:aCols[1]:AddBmpFile( "BMP\Down.Bmp" )
	oBrw:aCols[1]:AddBmpFile( "BMP\Down1.Bmp" )
	oBrw:aCols[1]:bBmpData := { || If( BanMerca->M_QUANTIDA <= 0, 3, If(BanMerca->M_CN <= BanMerca->M_EMINIMO, 2, 1 )) }   
	oBrw:aCols[1]:nDataBmpAlign := 3
   *
   oBrw:aCols[3]:bLClickHeader := {|| Sel("BanMerca",1), oBrw:aCols[3]:nHeadBmpNo := 1, oBrw:aCols[4]:nHeadBmpNo := 0, oBrw:Refresh() } 
   oBrw:aCols[4]:bLClickHeader := {|| Sel("BanMerca",2), oBrw:aCols[3]:nHeadBmpNo := 0, oBrw:aCols[4]:nHeadBmpNo := 1, oBrw:Refresh() } 
   *****
	REDEFINE COMBOBOX oCbx VAR cCampo PROMPTS {"Descrição","Código","Referência","Família","Fornecedor","Contendo Nome"} UPDATE ID 108 OF oDlg
	*****
	REDEFINE GET oGet VAR cProcura ID 106 OF oDlg ON CHANGE (BcDdProduto(oGet,cCampo,oBrw), oBrw:Refresh(), oBrw:Update())
	*
   REDEFINE BUTTON ID 107 OF oDlg ACTION (EditProduto(1)	, oDlg:Update(), oDlg:Refresh())
   REDEFINE BUTTON ID 105 OF oDlg ACTION (oDlg:End())
   REDEFINE BUTTON ID 102 OF oDlg ACTION (EditProduto(2)	, oDlg:Update(), oDlg:Refresh())
   REDEFINE BUTTON ID 103 OF oDlg ACTION (Excluir()		, oDlg:Update(), oDlg:Refresh())
   *
   ACTIVATE DIALOG odlg CENTER 
	*
	DbCloseAll()
Return
*
Function BcDdProduto(cP,cC,oB)
	Local cPro := cP:cText()
	
	Do Case
	   Case AllTrim(cC) == "Descrição"
	      Sel(DBF(),2)
      Case AllTrim(cC) == "Família"
         Sel(DBF(),4)      
      Case AllTrim(cC) == "Fornecedor"
         Sel(DBF(),3)
      Case AllTrim(cC) == "Código"
         Sel(DBF(),1)
      Case AllTrim(cC) == "Referência"
         Sel(DBF(),5)
      Case AllTrim(cC) = "Contendo Nome"
		   Sel(DBF(),2)
				FastFilter( RTrim(cPro), 2)
				dbGoTop() 
			Return(.t.)
      OTHERWISE
         Sel(DBF(),1)
    EndCase
	*
   dbSetOrder( INDEXORD() )     // define a ordem de filtro 
	ordScope( 0, RTrim(cPRO) )   // TOP (De...)
	ordScope( 1, RTRim(cPro) )   // BOTTOM (..Até)
	dbGoTop() 
	*
Return(.T.)

 

Link to comment
Share on other sites

   // TEM BOI NA LINHA, CHEQUE LINHA A LINHA, ONDE PODE SER O PROBLEMA.

	   LOCAL oFont
	   DEFINE FONT oFont SIZE 0,-15 NAME "Times"  // local?
	   cProcura := Space(30)
   cCampo   := PadL("Descrição",10)
   
   DEFINE DIALOG oDlg RESOURCE "DLG_CON_MER"  ;
         TITLE "..:: Manutenção de Dados .::. PRODUTOS ::.." ;
         TRANSPARENT FONT oFont
	    *
   // oDlg:lTransparent := .T.
   oDlg:lHelpIcon    := .F.
   *
   oBrw := TxBrowse():New( oDlg )
   oBrw:CreateFromResource( 101 )
   oBrw:cAlias := 'BanMerca'
    
   ADD COLUMN TO XBROWSE oBrw TITLE "" SIZE 30
   *
   ADD COLUMN TO XBROWSE oBrw DATA M_FAMILIA  TITLE "Família"    SIZE 200 ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_CODIGO   TITLE "Código"     SIZE 80  COLORS 128  ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_DESCRICA TITLE "Descrição"  SIZE 350 COLORS 128  ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_REFERENC TITLE "Referência" SIZE 120             ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_CODBAR   TITLE "Código de Barras"  SIZE 100 ALIGN LEFT
   *
   If nTp = 1
	        ADD COLUMN TO XBROWSE oBrw DATA M_QUANTIDA TITLE "Quantidade" SIZE 90 ALIGN RIGHT
	   Else
	        ADD COLUMN TO XBROWSE oBrw DATA M_QUANTIDA TITLE "Estoque"     SIZE 90              ALIGN RIGHT
        ADD COLUMN TO XBROWSE oBrw DATA M_CN       TITLE "C/N"         SIZE 90              ALIGN RIGHT
        ADD COLUMN TO XBROWSE oBrw DATA M_SN       TITLE "S/N"         SIZE 90              ALIGN RIGHT
        ADD COLUMN TO XBROWSE oBrw DATA M_CUSTO    TITLE "Preço Custo" SIZE 90 COLORS 128   ALIGN RIGHT
	   EndIf
   *
   ADD COLUMN TO XBROWSE oBrw DATA M_VENDA    TITLE "Preço Venda"       SIZE 90  COLORS 128   ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_FORNECED TITLE "Fornecedor"         SIZE 200              ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_EMINIMO  TITLE "Est.Min."           SIZE 50               ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_EMAXIMO  TITLE "Est.Máx."           SIZE 50               ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_DT_ATUAL TITLE "Dt.Ult.Atual."    SIZE 100
    *
   oBrw:nRowHeight                          := 30
   oBrw:lColDividerComplete := .f.
   oBrw:nDataLines          := 2    // Number of lines of the data rows
   oBrw:nHeaderLines        := 2    // Number of lines of the header    
   oBrw:nFooterLines        := 2    // Number of lines of the footer
   oBrw:nDataType           := 0    // Data type to be used: 0->rdd, 1->array, ... (more to come) If navigation codeblocks are not specified then get automatically initialized when adjusting the browse depending on this DATA value
   oBrw:nHeaderHeight               := 30
   // oBrw:bSeek               := {|c| DbSeek(Upper( c )) }
   oBrw:nFreeze := 1
   oBrw:nColDividerStyle    := 2    // Column divider style: 0 No lines 1 Black line 2 Dark gray line 3 Raised 4 Inset 5 Fore Color 6 Light gray
   oBrw:nRowDividerStyle    := 2    // Column divider style: 0 No lines 1 Black line 2 Dark gray line 3 Raised 4 Inset 5 Fore Color 6 Light gray
	   * // VERIFICAR ESSAS BITMAPS, SE NAO ESTAO DANIFICADAS.
   oBrw:aCols[3]:AddBmpFile( "BMP\Organiza.bmp" )
   oBrw:aCols[3]:nHeadBmpNo    := 0
   oBrw:aCols[3]:nHeadBmpAlign := 1
    *
   oBrw:aCols[4]:AddBmpFile( "BMP\Organiza.bmp" )
   oBrw:aCols[4]:nHeadBmpNo    := 1
   oBrw:aCols[4]:nHeadBmpAlign := 1
    *
   oBrw:aCols[1]:AddBmpFile( "BMP\Up.Bmp" )
   oBrw:aCols[1]:AddBmpFile( "BMP\Down.Bmp" )
   oBrw:aCols[1]:AddBmpFile( "BMP\Down1.Bmp" )
   oBrw:aCols[1]:bBmpData := { || If( BanMerca->M_QUANTIDA <= 0, 3, If(BanMerca->M_CN <= BanMerca->M_EMINIMO, 2, 1 )) }
   oBrw:aCols[1]:nDataBmpAlign := 3
   *
   oBrw:aCols[3]:bLClickHeader := {|| Sel("BanMerca",1), oBrw:aCols[3]:nHeadBmpNo := 1, oBrw:aCols[4]:nHeadBmpNo := 0, oBrw:Refresh() } 
   oBrw:aCols[4]:bLClickHeader := {|| Sel("BanMerca",2), oBrw:aCols[3]:nHeadBmpNo := 0, oBrw:aCols[4]:nHeadBmpNo := 1, oBrw:Refresh() } 
   *****
   REDEFINE COMBOBOX oCbx VAR cCampo PROMPTS {"Descrição","Código","Referência","Família","Fornecedor","Contendo Nome"} UPDATE ID 108 OF oDlg
    *****
   REDEFINE GET oGet VAR cProcura ID 106 OF oDlg ON CHANGE (BcDdProduto(oGet,cCampo,oBrw), oBrw:Refresh(), oBrw:Update())
	   * // VERFIQUE ISTO: oDlg:Update(), oDlg:Refresh() qual razao disso?
   REDEFINE BUTTON ID 107 OF oDlg ACTION (EditProduto(1), oDlg:Update(), oDlg:Refresh())
	   REDEFINE BUTTON ID 102 OF oDlg ACTION (EditProduto(2), oDlg:Update(), oDlg:Refresh())
   REDEFINE BUTTON ID 103 OF oDlg ACTION (Excluir()     , oDlg:Update(), oDlg:Refresh())
	   // Saida
   REDEFINE BUTTON ID 105 OF oDlg ACTION ( oDlg:End() ) CANCEL
   *
   ACTIVATE DIALOG odlg CENTER 
    *
   // DbCloseAll()
	   // Destrua a FONTE:
	   oFont:End()
	   // FECHAR OS FILTROS.
	
Return Nil
*
Function BcDdProduto(cP,cC,oB)
	      Local cPro := cP:cText()
    
      Do Case
      Case AllTrim(cC) == "Descrição"
         Sel(DBF(),2)
      Case AllTrim(cC) == "Família"
         Sel(DBF(),4)      
      Case AllTrim(cC) == "Fornecedor"
         Sel(DBF(),3)
      Case AllTrim(cC) == "Código"
         Sel(DBF(),1)
      Case AllTrim(cC) == "Referência"
         Sel(DBF(),5)
      Case AllTrim(cC) = "Contendo Nome"
	         Sel(DBF(),2)
         FastFilter( RTrim(cPro), 2)
         dbGoTop()
	         // FECHE ESTE FILTRO TAMBEM: SET FILTER TO OU EQUIVALENTE.
         Return(.t.)
	      OTHERWISE
         Sel(DBF(),1)
    EndCase
    *
    dbSetOrder( INDEXORD() )     // define a ordem de filtro ??
	    ordScope( 0, RTrim(cPRO) )   // TOP (De...)
    ordScope( 1, RTRim(cPro) )   // BOTTOM (..Até)
    dbGoTop()
    *
	   // feche o ORDSCOPE AO SAIR. VOCE SO ABRIU E NAO FECHOU.
	Return(.T.)


 

Link to comment
Share on other sites

parece que descobrir o problema... estou fazendo mas teste para ter certeza.. mas publicar aqui para que os amigos analise se tem alguma a ver::

Function FastFilter( cCad, nOrder )
   Local nIndice := OrdNumber()
   Set order to nOrder
   INDEX ON &(IndexKey()) TAG _TEMP_ TO tHarbourt CUSTOM ADDITIVE MEMORY
   Set order to nOrder
   dbGotop()
   Do While OrdWildSeek( cCad, .T.)
      OrdKeyAdd( "_TEMP_" )
   Enddo
 	SysRefresh()
   OrdSetFocus( "_TEMP_" )
Return( nIndice )

Tire o SysRefresh() de dentro do Do While

Link to comment
Share on other sites

 

   // TEM BOI NA LINHA, CHEQUE LINHA A LINHA, ONDE PODE SER O PROBLEMA.

 


	   LOCAL oFont
	   DEFINE FONT oFont SIZE 0,-15 NAME "Times"  // local?
	   cProcura := Space(30)
   cCampo   := PadL("Descrição",10)
   
   DEFINE DIALOG oDlg RESOURCE "DLG_CON_MER"  ;
         TITLE "..:: Manutenção de Dados .::. PRODUTOS ::.." ;
         TRANSPARENT FONT oFont
	    *
   // oDlg:lTransparent := .T.
   oDlg:lHelpIcon    := .F.
   *
   oBrw := TxBrowse():New( oDlg )
   oBrw:CreateFromResource( 101 )
   oBrw:cAlias := 'BanMerca'
    
   ADD COLUMN TO XBROWSE oBrw TITLE "" SIZE 30
   *
   ADD COLUMN TO XBROWSE oBrw DATA M_FAMILIA  TITLE "Família"    SIZE 200 ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_CODIGO   TITLE "Código"     SIZE 80  COLORS 128  ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_DESCRICA TITLE "Descrição"  SIZE 350 COLORS 128  ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_REFERENC TITLE "Referência" SIZE 120             ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_CODBAR   TITLE "Código de Barras"  SIZE 100 ALIGN LEFT
   *
   If nTp = 1
	        ADD COLUMN TO XBROWSE oBrw DATA M_QUANTIDA TITLE "Quantidade" SIZE 90 ALIGN RIGHT
	   Else
	        ADD COLUMN TO XBROWSE oBrw DATA M_QUANTIDA TITLE "Estoque"     SIZE 90              ALIGN RIGHT
        ADD COLUMN TO XBROWSE oBrw DATA M_CN       TITLE "C/N"         SIZE 90              ALIGN RIGHT
        ADD COLUMN TO XBROWSE oBrw DATA M_SN       TITLE "S/N"         SIZE 90              ALIGN RIGHT
        ADD COLUMN TO XBROWSE oBrw DATA M_CUSTO    TITLE "Preço Custo" SIZE 90 COLORS 128   ALIGN RIGHT
	   EndIf
   *
   ADD COLUMN TO XBROWSE oBrw DATA M_VENDA    TITLE "Preço Venda"       SIZE 90  COLORS 128   ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_FORNECED TITLE "Fornecedor"         SIZE 200              ALIGN LEFT
   ADD COLUMN TO XBROWSE oBrw DATA M_EMINIMO  TITLE "Est.Min."           SIZE 50               ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_EMAXIMO  TITLE "Est.Máx."           SIZE 50               ALIGN RIGHT
   ADD COLUMN TO XBROWSE oBrw DATA M_DT_ATUAL TITLE "Dt.Ult.Atual."    SIZE 100
    *
   oBrw:nRowHeight                          := 30
   oBrw:lColDividerComplete := .f.
   oBrw:nDataLines          := 2    // Number of lines of the data rows
   oBrw:nHeaderLines        := 2    // Number of lines of the header    
   oBrw:nFooterLines        := 2    // Number of lines of the footer
   oBrw:nDataType           := 0    // Data type to be used: 0->rdd, 1->array, ... (more to come) If navigation codeblocks are not specified then get automatically initialized when adjusting the browse depending on this DATA value
   oBrw:nHeaderHeight               := 30
   // oBrw:bSeek               := {|c| DbSeek(Upper( c )) }
   oBrw:nFreeze := 1
   oBrw:nColDividerStyle    := 2    // Column divider style: 0 No lines 1 Black line 2 Dark gray line 3 Raised 4 Inset 5 Fore Color 6 Light gray
   oBrw:nRowDividerStyle    := 2    // Column divider style: 0 No lines 1 Black line 2 Dark gray line 3 Raised 4 Inset 5 Fore Color 6 Light gray
	   * // VERIFICAR ESSAS BITMAPS, SE NAO ESTAO DANIFICADAS.
   oBrw:aCols[3]:AddBmpFile( "BMP\Organiza.bmp" )
   oBrw:aCols[3]:nHeadBmpNo    := 0
   oBrw:aCols[3]:nHeadBmpAlign := 1
    *
   oBrw:aCols[4]:AddBmpFile( "BMP\Organiza.bmp" )
   oBrw:aCols[4]:nHeadBmpNo    := 1
   oBrw:aCols[4]:nHeadBmpAlign := 1
    *
   oBrw:aCols[1]:AddBmpFile( "BMP\Up.Bmp" )
   oBrw:aCols[1]:AddBmpFile( "BMP\Down.Bmp" )
   oBrw:aCols[1]:AddBmpFile( "BMP\Down1.Bmp" )
   oBrw:aCols[1]:bBmpData := { || If( BanMerca->M_QUANTIDA <= 0, 3, If(BanMerca->M_CN <= BanMerca->M_EMINIMO, 2, 1 )) }
   oBrw:aCols[1]:nDataBmpAlign := 3
   *
   oBrw:aCols[3]:bLClickHeader := {|| Sel("BanMerca",1), oBrw:aCols[3]:nHeadBmpNo := 1, oBrw:aCols[4]:nHeadBmpNo := 0, oBrw:Refresh() } 
   oBrw:aCols[4]:bLClickHeader := {|| Sel("BanMerca",2), oBrw:aCols[3]:nHeadBmpNo := 0, oBrw:aCols[4]:nHeadBmpNo := 1, oBrw:Refresh() } 
   *****
   REDEFINE COMBOBOX oCbx VAR cCampo PROMPTS {"Descrição","Código","Referência","Família","Fornecedor","Contendo Nome"} UPDATE ID 108 OF oDlg
    *****
   REDEFINE GET oGet VAR cProcura ID 106 OF oDlg ON CHANGE (BcDdProduto(oGet,cCampo,oBrw), oBrw:Refresh(), oBrw:Update())
	   * // VERFIQUE ISTO: oDlg:Update(), oDlg:Refresh() qual razao disso?
   REDEFINE BUTTON ID 107 OF oDlg ACTION (EditProduto(1), oDlg:Update(), oDlg:Refresh())
	   REDEFINE BUTTON ID 102 OF oDlg ACTION (EditProduto(2), oDlg:Update(), oDlg:Refresh())
   REDEFINE BUTTON ID 103 OF oDlg ACTION (Excluir()     , oDlg:Update(), oDlg:Refresh())
	   // Saida
   REDEFINE BUTTON ID 105 OF oDlg ACTION ( oDlg:End() ) CANCEL
   *
   ACTIVATE DIALOG odlg CENTER 
    *
   // DbCloseAll()
	   // Destrua a FONTE:
	   oFont:End()
	   // FECHAR OS FILTROS.
	
Return Nil
*
Function BcDdProduto(cP,cC,oB)
	      Local cPro := cP:cText()
    
      Do Case
      Case AllTrim(cC) == "Descrição"
         Sel(DBF(),2)
      Case AllTrim(cC) == "Família"
         Sel(DBF(),4)      
      Case AllTrim(cC) == "Fornecedor"
         Sel(DBF(),3)
      Case AllTrim(cC) == "Código"
         Sel(DBF(),1)
      Case AllTrim(cC) == "Referência"
         Sel(DBF(),5)
      Case AllTrim(cC) = "Contendo Nome"
	         Sel(DBF(),2)
         FastFilter( RTrim(cPro), 2)
         dbGoTop()
	         // FECHE ESTE FILTRO TAMBEM: SET FILTER TO OU EQUIVALENTE.
         Return(.t.)
	      OTHERWISE
         Sel(DBF(),1)
    EndCase
    *
    dbSetOrder( INDEXORD() )     // define a ordem de filtro ??
	    ordScope( 0, RTrim(cPRO) )   // TOP (De...)
    ordScope( 1, RTRim(cPro) )   // BOTTOM (..Até)
    dbGoTop()
    *
	   // feche o ORDSCOPE AO SAIR. VOCE SO ABRIU E NAO FECHOU.
	Return(.T.)


 

Vlw @kapiaba!!! Eu não fecho os filtros e ordscope porque ao sair da tela de produtos o arquivo DBF é fechado (DbCloseall()) assim fecha tudo (Filtros, OrdScope)...mas o problema parece que estar no SysRefresh() como citei a pouco... SysRefresh estava dentro do 

Do While OrdWildSeek( cCad, .T.)
      OrdKeyAdd( "_TEMP_" )
	  SysRefresh()   // TIREI ESSE SYSREFRES DAQUI E COLOQUEI APOS ENDDO
   Enddo
 	
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...