pedro_66 Posted December 13, 2006 Report Share Posted December 13, 2006 Amigos, Será que alguem poderia me ajudar no sentido de dizer-me como fazer para abandonar uma DIALOG apos Clikar num Button, conforme código abaixo. Seguinte: Quando cliko em "Cancelar", o foco do programa retornar para o ultimo Get e não sai da rotina de jeito nehum. Desde já Agradeço a atenção de quem puder me ajudar. #include "FiveWin.ch" #include "INKEY.CH" STATIC oCod , mVazio, mDini, mDfim, aTrans,; aUnd , codpro_, despro_, quanti_,; codpac_, despac_, mostra := .t., ret := .t., oLb1,; _nordem[99], _codpro[99], _despro[99], _codpac[99],; _despac[99], _quanti[99] //-------------------// Function MOVSAI() //-------------------// local oLbx, oCadDl local it, oGt01, oGt02, oGt03, oGt04, oGt05, oGt06, oGt07, oGt08 local oGt09, oGt10, oGt11, oGt12, Old48, prod01, prod02 local MyDb, oBtn1, oBtn2, oBtn3, oBtn4, oBtn5, oBtnZ, oBtnY, oBtnH, mRad, lAppend local lSave := .t. , nOldRec := 0 , qtd01, ob146 PUBLIC Omosa PUBLIC limpa_ := .f., i := 0 PUBLIC nOldCd := SPACE(13) IF ! UsrFree(EstIncl) RETURN NIL ENDIF IF ! ret RETURN NIL ENDIF mDini := CTOD(" ") mDfim := CTOD(" ") CursorWait() USE MOVSAI_T SHARED NEW IF ! file("MOVSAI_T.CDX") MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->NORDEM", "SAIORD" ) },; "Indexando movimento por código...", "Espere un momento!" ) MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->DATSAI", "DATSAI" ) },; "Indexando movimento por data...", "Espere un momento!" ) MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->CODPRO", "CODPRO" ) },; "Indexando movimento por fornecedor...", "Espere un momento!" ) ENDI ordListClear() OrdListAdd("MOVSAI_T","SAIORD","DATSAI", "CODPRO") MOVSAI_T->(DBSETORDER(1)) MOVSAI_T->( DBGOTOP() ) DEFAULT lAppend := .t. IF lAppend USE MOVSAI MOVSAI->(DBGOBOTTOM()) ordem_ := VAL( MOVSAI->NORDEM) + 1 ELSE ENDIF IF mostra codpro_ := 0 despro_ := SPAC(15) codpac_ := 0 despac_ := SPAC(15) quanti_ := 0 ENDI DEFINE FONT oFntLis NAME "Courier New" SIZE 0, -10 DEFINE DIALOG Omosa RESOURCE "TEL_SAI" DEFINE FONT oSayFnt NAME "Arial" SIZE 0, -12 BOLD ITALIC REDEFINE SAY oSay PROMPT STRZERO( ordem_,5 ) ID -15 OF Omosa COLORS CLR_HBLUE USE MOVSAI_T MOVSAI_T->( DBGOTOP() ) REDEFINE LISTBOX oLb1 ; FIELDS MOVSAI_T->CODPRO,; MOVSAI_T->DESPRO,; STRZERO( MOVSAI_T->QUANTI,05); ID 101 OF Omosa ; FIELDSIZES 85,170,55,65,65,65,65,50,65,65 ; ALIAS "MOVSAI_T" ; HEADERS "Cod. Prod.",; "Descricao",; "Quantidade" oFntLis:End() Omosa:UpDate() oLb1:UpStable() oLb1:Refresh() // Procurar paciente direto pelo codigo //------------------------------------- REDEFINE GET oGt03 VAR codpac_ PICTURE "99999" ID 102 OF Omosa ; VALID ExistPac( @codpac_, @despac_, Omosa, .F. ) UPDATE WHEN mostra = .t. // Procurar paciente direto pelo Button //------------------------------------- REDEFINE BTNBMP obtn1 ID 103 FILE ".\BITMAPS\ProcBtn.BMP" OF Omosa ; UPDATE ACTION ExistPac( @codpac_, @despac_, Omosa, .T. ); WHEN ( mostra = .t. .and. EMPTY( codpac_ ) ) // Inclusao de novo Paciente //-------------------------- REDEFINE BTNBMP ob146 ID 104 FILE ".\BITMAPS\NOVO.BMP" OF Omosa ; UPDATE ACTION CadNewPac(@codpac_ , Omosa) WHEN ( mostra = .t. .and. EMPTY(codpac_) ) // Mostrar o nome do paciente //-------------------------- REDEFINE GET oGt04 VAR despac_ ID 105 OF Omosa UPDATE WHEN mostra = .t. codpro_ := quanti_ := 0 despro_ := SPAC(15) // Procurar produto direto pelo codigo //------------------------------------- REDEFINE GET prod01 VAR codpro_ PICTURE "99999" ID 106 OF Omosa ; VALID ExistPro( @codpro_, @despro_, Omosa, .F. ) UPDATE /// WHEN mostra = .t. // Procurar produto direto pelo Button //------------------------------------ REDEFINE BTNBMP obtn2 ID 107 FILE ".\BITMAPS\ProcBtn.BMP" OF Omosa UPDATE ; ACTION ExistPro( @codpro_, @despro_, Omosa, .T. ) WHEN EMPTY( codpro_ ) // Mostrar o nome do produto //-------------------------- REDEFINE GET prod02 VAR despro_ ID 108 OF Omosa UPDATE WHEN mostra = .f. // Recebe a quantidade dos produtos //--------------------------------- REDEFINE GET qtd01 VAR quanti_ PICTURE "@E 99999" ID 109 OF Omosa REDEFINE BUTTON oBtnZ ID 110 OF Omosa ACTION( GravaPro(.f.,codpro_,despro_,codpac_,despac_,quanti_, _nordem,; _codpro,_despro,_codpac,_despac,_quanti ) ) when RET = .T. // REDEFINE BUTTON oBtnY ID 111 OF Omosa ACTION // REDEFINE BUTTON oBtnY ID 111 OF Omosa // ACTION ( NFSExcl(Omosa, oLb1), NFSCalc(@nIt18,@nIt19,@nIt20,nIt42,@nIt55,Omosa,oLb1) ) REDEFINE BUTTON oBtnH ID 112 OF Omosa ACTION( ret := .F. , Encerra( Omosa) ) CANCEL ACTIVATE DIALOG Omosa CENTERED (* Aqui. não consigo sair do sistema ) oFntLis:End() RETUR nil Uso; Five 2.7 - Clipper 5.3b - XHarbour 00.99.61 - //-----------------------------// STATIC FUNC Encerra( omosa ) //-----------------------------// CLOS MOVSAI_T USE MOVSAI_T EXCLUSIV NEW IF NETERR() MsgStop( "No momento há um usuário cadastrando uma nota fiscal na rede."+CRLF+; "Não é recomendado que dois usuário cadastrem notas fiscais ao"+CRLF+; "mesmo tempo, para evitar duplicação de códigos e inconsistência"+CRLF+; "no estoque dos produtos. Tente novamente mais tarde.",; "Informação:" ) Select(MyDb) Omosa:GoBottom() Omosa:UpStable() Omosa:Refresh() ENDIF ZAP PACK EndDialog() GlobalFree() ResAllFree() Release All Omosa:End() oLb1:End() Select(oDbf) mostra := .t. RETU .t. id=red> PEDRO AIRTON Quote Link to comment Share on other sites More sharing options...
pedro_66 Posted December 13, 2006 Author Report Share Posted December 13, 2006 Amigos, Será que alguem poderia me ajudar no sentido de dizer-me como fazer para abandonar uma DIALOG apos Clikar num Button, conforme código abaixo. Seguinte: Quando cliko em "Cancelar", o foco do programa retornar para o ultimo Get e não sai da rotina de jeito nehum. Desde já Agradeço a atenção de quem puder me ajudar. #include "FiveWin.ch" #include "INKEY.CH" STATIC oCod , mVazio, mDini, mDfim, aTrans,; aUnd , codpro_, despro_, quanti_,; codpac_, despac_, mostra := .t., ret := .t., oLb1,; _nordem[99], _codpro[99], _despro[99], _codpac[99],; _despac[99], _quanti[99] //-------------------// Function MOVSAI() //-------------------// local oLbx, oCadDl local it, oGt01, oGt02, oGt03, oGt04, oGt05, oGt06, oGt07, oGt08 local oGt09, oGt10, oGt11, oGt12, Old48, prod01, prod02 local MyDb, oBtn1, oBtn2, oBtn3, oBtn4, oBtn5, oBtnZ, oBtnY, oBtnH, mRad, lAppend local lSave := .t. , nOldRec := 0 , qtd01, ob146 PUBLIC Omosa PUBLIC limpa_ := .f., i := 0 PUBLIC nOldCd := SPACE(13) IF ! UsrFree(EstIncl) RETURN NIL ENDIF IF ! ret RETURN NIL ENDIF mDini := CTOD(" ") mDfim := CTOD(" ") CursorWait() USE MOVSAI_T SHARED NEW IF ! file("MOVSAI_T.CDX") MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->NORDEM", "SAIORD" ) },; "Indexando movimento por código...", "Espere un momento!" ) MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->DATSAI", "DATSAI" ) },; "Indexando movimento por data...", "Espere un momento!" ) MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->CODPRO", "CODPRO" ) },; "Indexando movimento por fornecedor...", "Espere un momento!" ) ENDI ordListClear() OrdListAdd("MOVSAI_T","SAIORD","DATSAI", "CODPRO") MOVSAI_T->(DBSETORDER(1)) MOVSAI_T->( DBGOTOP() ) DEFAULT lAppend := .t. IF lAppend USE MOVSAI MOVSAI->(DBGOBOTTOM()) ordem_ := VAL( MOVSAI->NORDEM) + 1 ELSE ENDIF IF mostra codpro_ := 0 despro_ := SPAC(15) codpac_ := 0 despac_ := SPAC(15) quanti_ := 0 ENDI DEFINE FONT oFntLis NAME "Courier New" SIZE 0, -10 DEFINE DIALOG Omosa RESOURCE "TEL_SAI" DEFINE FONT oSayFnt NAME "Arial" SIZE 0, -12 BOLD ITALIC REDEFINE SAY oSay PROMPT STRZERO( ordem_,5 ) ID -15 OF Omosa COLORS CLR_HBLUE USE MOVSAI_T MOVSAI_T->( DBGOTOP() ) REDEFINE LISTBOX oLb1 ; FIELDS MOVSAI_T->CODPRO,; MOVSAI_T->DESPRO,; STRZERO( MOVSAI_T->QUANTI,05); ID 101 OF Omosa ; FIELDSIZES 85,170,55,65,65,65,65,50,65,65 ; ALIAS "MOVSAI_T" ; HEADERS "Cod. Prod.",; "Descricao",; "Quantidade" oFntLis:End() Omosa:UpDate() oLb1:UpStable() oLb1:Refresh() // Procurar paciente direto pelo codigo //------------------------------------- REDEFINE GET oGt03 VAR codpac_ PICTURE "99999" ID 102 OF Omosa ; VALID ExistPac( @codpac_, @despac_, Omosa, .F. ) UPDATE WHEN mostra = .t. // Procurar paciente direto pelo Button //------------------------------------- REDEFINE BTNBMP obtn1 ID 103 FILE ".\BITMAPS\ProcBtn.BMP" OF Omosa ; UPDATE ACTION ExistPac( @codpac_, @despac_, Omosa, .T. ); WHEN ( mostra = .t. .and. EMPTY( codpac_ ) ) // Inclusao de novo Paciente //-------------------------- REDEFINE BTNBMP ob146 ID 104 FILE ".\BITMAPS\NOVO.BMP" OF Omosa ; UPDATE ACTION CadNewPac(@codpac_ , Omosa) WHEN ( mostra = .t. .and. EMPTY(codpac_) ) // Mostrar o nome do paciente //-------------------------- REDEFINE GET oGt04 VAR despac_ ID 105 OF Omosa UPDATE WHEN mostra = .t. codpro_ := quanti_ := 0 despro_ := SPAC(15) // Procurar produto direto pelo codigo //------------------------------------- REDEFINE GET prod01 VAR codpro_ PICTURE "99999" ID 106 OF Omosa ; VALID ExistPro( @codpro_, @despro_, Omosa, .F. ) UPDATE /// WHEN mostra = .t. // Procurar produto direto pelo Button //------------------------------------ REDEFINE BTNBMP obtn2 ID 107 FILE ".\BITMAPS\ProcBtn.BMP" OF Omosa UPDATE ; ACTION ExistPro( @codpro_, @despro_, Omosa, .T. ) WHEN EMPTY( codpro_ ) // Mostrar o nome do produto //-------------------------- REDEFINE GET prod02 VAR despro_ ID 108 OF Omosa UPDATE WHEN mostra = .f. // Recebe a quantidade dos produtos //--------------------------------- REDEFINE GET qtd01 VAR quanti_ PICTURE "@E 99999" ID 109 OF Omosa REDEFINE BUTTON oBtnZ ID 110 OF Omosa ACTION( GravaPro(.f.,codpro_,despro_,codpac_,despac_,quanti_, _nordem,; _codpro,_despro,_codpac,_despac,_quanti ) ) when RET = .T. // REDEFINE BUTTON oBtnY ID 111 OF Omosa ACTION // REDEFINE BUTTON oBtnY ID 111 OF Omosa // ACTION ( NFSExcl(Omosa, oLb1), NFSCalc(@nIt18,@nIt19,@nIt20,nIt42,@nIt55,Omosa,oLb1) ) REDEFINE BUTTON oBtnH ID 112 OF Omosa ACTION( ret := .F. , Encerra( Omosa) ) CANCEL ACTIVATE DIALOG Omosa CENTERED (* Aqui. não consigo sair do sistema ) oFntLis:End() RETUR nil Uso; Five 2.7 - Clipper 5.3b - XHarbour 00.99.61 - //-----------------------------// STATIC FUNC Encerra( omosa ) //-----------------------------// CLOS MOVSAI_T USE MOVSAI_T EXCLUSIV NEW IF NETERR() MsgStop( "No momento há um usuário cadastrando uma nota fiscal na rede."+CRLF+; "Não é recomendado que dois usuário cadastrem notas fiscais ao"+CRLF+; "mesmo tempo, para evitar duplicação de códigos e inconsistência"+CRLF+; "no estoque dos produtos. Tente novamente mais tarde.",; "Informação:" ) Select(MyDb) Omosa:GoBottom() Omosa:UpStable() Omosa:Refresh() ENDIF ZAP PACK EndDialog() GlobalFree() ResAllFree() Release All Omosa:End() oLb1:End() Select(oDbf) mostra := .t. RETU .t. id=red> PEDRO AIRTON Quote Link to comment Share on other sites More sharing options...
AloizioLima Posted December 13, 2006 Report Share Posted December 13, 2006 Tente assim: REDEFINE BUTTON oBtnH ID 112 OF Omosa ACTION( ret := .F. , Encerra( Omosa) , Omosa:end() id=red> ) CANCEL Aloizio Lima suporteas@hotmail.com BH - MG Fwh 2.8, harbour 46.2, bc5.5, WS 4.5 Quote Link to comment Share on other sites More sharing options...
jnilson Posted December 13, 2006 Report Share Posted December 13, 2006 Experimente colocar a função oMosa:End() ANTES do comando Release All Assim: //-----------------------------// STATIC FUNC Encerra( omosa ) //-----------------------------// CLOS MOVSAI_T USE MOVSAI_T EXCLUSIV NEW IF NETERR() MsgStop( "No momento há um usuário cadastrando uma nota fiscal na rede."+CRLF+; "Não é recomendado que dois usuário cadastrem notas fiscais ao"+CRLF+; "mesmo tempo, para evitar duplicação de códigos e inconsistência"+CRLF+; "no estoque dos produtos. Tente novamente mais tarde.",; "Informação:" ) Select(MyDb) Omosa:GoBottom() Omosa:UpStable() Omosa:Refresh() ENDIF ZAP PACK Omosa:End() // aqui vc fecha o dialog EndDialog() GlobalFree() ResAllFree() Release All *Omosa:End() *oLb1:End() // Nao precisa disto aqui naum Select(oDbf) mostra := .t. RETU .t. PEDRO AIRTON Josenilson Neiva Teresina-PI FWH 2.5/Pelles/xMate Quote Link to comment Share on other sites More sharing options...
pedro_66 Posted December 14, 2006 Author Report Share Posted December 14, 2006 Obrigado amigos pela atenção, mas tudo isso já fiz, e NÃO consegui RESOLVER até agora, alguem mais poderia me dar uma luz ??? Experimente colocar a função oMosa:End() ANTES do comando Release All Assim: //-----------------------------// STATIC FUNC Encerra( omosa ) //-----------------------------// CLOS MOVSAI_T USE MOVSAI_T EXCLUSIV NEW IF NETERR() MsgStop( "No momento há um usuário cadastrando uma nota fiscal na rede."+CRLF+; "Não é recomendado que dois usuário cadastrem notas fiscais ao"+CRLF+; "mesmo tempo, para evitar duplicação de códigos e inconsistência"+CRLF+; "no estoque dos produtos. Tente novamente mais tarde.",; "Informação:" ) Select(MyDb) Omosa:GoBottom() Omosa:UpStable() Omosa:Refresh() ENDIF ZAP PACK Omosa:End() // aqui vc fecha o dialog EndDialog() GlobalFree() ResAllFree() Release All *Omosa:End() *oLb1:End() // Nao precisa disto aqui naum Select(oDbf) mostra := .t. RETU .t. PEDRO AIRTON Josenilson Neiva Teresina-PI FWH 2.5/Pelles/xMate PEDRO AIRTON Quote Link to comment Share on other sites More sharing options...
vagner Posted December 14, 2006 Report Share Posted December 14, 2006 Olá Pedro, Bom eu não uso o WS nem o Pelles, mas vamos lá, veja se sua dialog está com o "X" ativo, depois mude isso no seu prg //-----------------------------// STATIC FUNC Encerra( omosa ) //-----------------------------// CLOS MOVSAI_T USE MOVSAI_T EXCLUSIV NEW IF NETERR() MsgStop( "No momento há um usuário cadastrando uma nota fiscal na rede."+CRLF+; "Não é recomendado que dois usuário cadastrem notas fiscais ao"+CRLF+; "mesmo tempo, para evitar duplicação de códigos e inconsistência"+CRLF+; "no estoque dos produtos. Tente novamente mais tarde.",; "Informação:" ) Select(MyDb) Omosa:GoBottom() Omosa:UpStable() Omosa:Refresh() ENDIF ZAP PACK //Retirar pois isso vai matar todas as var e pode ser colocado depois do active dialog e não antes de matar a dialog //EndDialog() //GlobalFree() //ResAllFree() //Release All oLb1:End() //Inverter, não adianta nada vc tentar matar um objeto que está na dialog, se vc já matou a dialog Omosa:End() Select(oDbf) mostra := .t. RETU .t. Vagner Wirts Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 Quote Link to comment Share on other sites More sharing options...
Kbelo Posted December 14, 2006 Report Share Posted December 14, 2006 Cara seguinte Faça assim #include "FiveWin.ch" #include "INKEY.CH" STATIC oCod , mVazio, mDini, mDfim, aTrans,; aUnd , codpro_, despro_, quanti_,; codpac_, despac_, mostra := .t., ret := .t., oLb1,; _nordem[99], _codpro[99], _despro[99], _codpac[99],; _despac[99], _quanti[99] //-------------------// Function MOVSAI() //-------------------// local oLbx, oCadDl local it, oGt01, oGt02, oGt03, oGt04, oGt05, oGt06, oGt07, oGt08 local oGt09, oGt10, oGt11, oGt12, Old48, prod01, prod02 local MyDb, oBtn1, oBtn2, oBtn3, oBtn4, oBtn5, oBtnZ, oBtnY, oBtnH, mRad, lAppend local lSave := .t. , nOldRec := 0 , qtd01, ob146 PUBLIC Omosa //Pra isso ??? PUBLIC limpa_ := .f., i := 0 PUBLIC nOldCd := SPACE(13) IF ! UsrFree(EstIncl) RETURN NIL ENDIF IF ! ret RETURN NIL ENDIF mDini := CTOD(" ") mDfim := CTOD(" ") CursorWait() USE MOVSAI_T SHARED NEW IF ! file("MOVSAI_T.CDX") MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->NORDEM", "SAIORD" ) },; "Indexando movimento por código...", "Espere un momento!" ) MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->DATSAI", "DATSAI" ) },; "Indexando movimento por data...", "Espere un momento!" ) MsgMeter( { | oMeter, oText, oCadDl, lEnd | ; BuildIndex( oMeter, oText, oCadDl, @lEnd, "MOVSAI_T->CODPRO", "CODPRO" ) },; "Indexando movimento por fornecedor...", "Espere un momento!" ) ENDI ordListClear() OrdListAdd("MOVSAI_T","SAIORD","DATSAI", "CODPRO") MOVSAI_T->(DBSETORDER(1)) MOVSAI_T->( DBGOTOP() ) DEFAULT lAppend := .t. IF lAppend USE MOVSAI MOVSAI->(DBGOBOTTOM()) ordem_ := VAL( MOVSAI->NORDEM) + 1 ELSE ENDIF IF mostra codpro_ := 0 despro_ := SPAC(15) codpac_ := 0 despac_ := SPAC(15) quanti_ := 0 ENDI USE MOVSAI_T MOVSAI_T->( DBGOTOP() ) codpro_ := quanti_ := 0 despro_ := SPAC(15) DEFINE FONT oFntLis NAME "Courier New" SIZE 0, -10 DEFINE DIALOG Omosa RESOURCE "TEL_SAI" DEFINE FONT oSayFnt NAME "Arial" SIZE 0, -12 BOLD ITALIC REDEFINE SAY oSay PROMPT STRZERO( ordem_,5 ) ID -15 OF Omosa COLORS CLR_HBLUE REDEFINE LISTBOX oLb1 ; FIELDS MOVSAI_T->CODPRO,; MOVSAI_T->DESPRO,; STRZERO( MOVSAI_T->QUANTI,05); ID 101 OF Omosa ; FIELDSIZES 85,170,55,65,65,65,65,50,65,65 ; ALIAS "MOVSAI_T" ; HEADERS "Cod. Prod.",; "Descricao",; "Quantidade" // Procurar paciente direto pelo codigo //------------------------------------- REDEFINE GET oGt03 VAR codpac_ PICTURE "99999" ID 102 OF Omosa ; VALID ExistPac( @codpac_, @despac_, Omosa, .F. ) UPDATE WHEN mostra = .t. // Procurar paciente direto pelo Button //------------------------------------- REDEFINE BTNBMP obtn1 ID 103 FILE ".\BITMAPS\ProcBtn.BMP" OF Omosa ; UPDATE ACTION ExistPac( @codpac_, @despac_, Omosa, .T. ); WHEN ( mostra = .t. .and. EMPTY( codpac_ ) ) // Inclusao de novo Paciente //-------------------------- REDEFINE BTNBMP ob146 ID 104 FILE ".\BITMAPS\NOVO.BMP" OF Omosa ; UPDATE ACTION CadNewPac(@codpac_ , Omosa) WHEN ( mostra = .t. .and. EMPTY(codpac_) ) // Mostrar o nome do paciente //-------------------------- REDEFINE GET oGt04 VAR despac_ ID 105 OF Omosa UPDATE WHEN mostra = .t. // Procurar produto direto pelo codigo //------------------------------------- REDEFINE GET prod01 VAR codpro_ PICTURE "99999" ID 106 OF Omosa ; VALID ExistPro( @codpro_, @despro_, Omosa, .F. ) UPDATE /// WHEN mostra = .t. // Procurar produto direto pelo Button //------------------------------------ REDEFINE BTNBMP obtn2 ID 107 FILE ".\BITMAPS\ProcBtn.BMP" OF Omosa UPDATE ; ACTION ExistPro( @codpro_, @despro_, Omosa, .T. ) WHEN EMPTY( codpro_ ) // Mostrar o nome do produto //-------------------------- REDEFINE GET prod02 VAR despro_ ID 108 OF Omosa UPDATE WHEN mostra = .f. // Recebe a quantidade dos produtos //--------------------------------- REDEFINE GET qtd01 VAR quanti_ PICTURE "@E 99999" ID 109 OF Omosa REDEFINE BUTTON oBtnZ ID 110 OF Omosa ACTION( GravaPro(.f.,codpro_,despro_,codpac_,despac_,quanti_, _nordem,; _codpro,_despro,_codpac,_despac,_quanti ) ) when RET = .T. // REDEFINE BUTTON oBtnY ID 111 OF Omosa ACTION // REDEFINE BUTTON oBtnY ID 111 OF Omosa // ACTION ( NFSExcl(Omosa, oLb1), NFSCalc(@nIt18,@nIt19,@nIt20,nIt42,@nIt55,Omosa,oLb1) ) REDEFINE BUTTON oBtnH ID 112 OF Omosa ACTION( ret := .F. , Encerra( Omosa) ) CANCEL ACTIVATE DIALOG Omosa CENTER RETUR nil //-----------------------------// STATIC FUNC Encerra( omosa ) //-----------------------------// CLOS MOVSAI_T USE MOVSAI_T EXCLUSIV NEW IF NETERR() MsgStop( "No momento há um usuário cadastrando uma nota fiscal na rede."+CRLF+; "Não é recomendado que dois usuário cadastrem notas fiscais ao"+CRLF+; "mesmo tempo, para evitar duplicação de códigos e inconsistência"+CRLF+; "no estoque dos produtos. Tente novamente mais tarde.",; "Informação:" ) Select(MyDb) ENDIF ZAP PACK ///EndDialog() // Oque é isso??? //GlobalFree() // Oque é isso??? //ResAllFree() // Oque é isso??? //Release All // Pra que isso Omosa:End() Select(oDbf) mostra := .t. RETU .t. id=code>id=code>Marcelo Michels celo.michels@ibestvip.com.br celo.michels@hotmail.com marcelo@lorenzi.com.br -> Lorenzi Soluções Têxteis <- Criciuma - SC xHarbour build 0.99.2 + WS Quote Link to comment Share on other sites More sharing options...
ronaldo Posted December 14, 2006 Report Share Posted December 14, 2006 então coloque o oMosa:End na linha do botão que chama a funcao ouseja: action: (sua funcao(), oMosca:End()) Outra coisa veja se não colocou ou ativou o VALID...no ACTIVATE DIALOG Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.