Bom dia Asimoes...
Achei que tinha respondido aqui a sua solicitação...
Eu fiz teste chamando a calculadora e funcionou beleza sem a mensagem. Provavelmente deve estar no meu fonte mesmo, em algum formulário ou componente do formulário. Vou fazer um projetinho do zero e chamar o mesmo aplicativo para ver o que dá. De qualquer forma vou mostrar como está chamando o outro aplicativo.
Formulário de fechamento de venda. Tem uma imagem dele na minha segunda postagem.
Código: Selecionar todos
DEFINE WINDOW TEMPLATE AT 156 , 417 WIDTH 597 HEIGHT 545 TITLE 'FECHAMENTO DE COMPRA' ICON IMAGENS+'ICONE.ICO' MODAL BACKCOLOR {192,192,192}
DEFINE LABEL LABEL_FECHAMENTO
ROW 0
COL 0
WIDTH 592
HEIGHT 48
VALUE 'FECHAMENTO'
FONTNAME 'VERDANA'
FONTSIZE 30
FONTBOLD .T.
BACKCOLOR {0,0,255}
FONTCOLOR {255,255,255}
CENTERALIGN .T.
END LABEL
DEFINE FRAME Frame_1
ROW 60
COL 10
WIDTH 560
HEIGHT 177
FONTNAME 'Arial'
FONTSIZE 12
FONTBOLD .T.
CAPTION "Detalhes do Fechamento"
FONTCOLOR {0,0,255}
OPAQUE .T.
END FRAME
DEFINE LABEL Label_1
ROW 130
COL 20
WIDTH 321
HEIGHT 40
VALUE "Desconto"
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
BACKCOLOR {192,192,192}
FONTCOLOR {255,0,0}
RIGHTALIGN .T.
END LABEL
DEFINE LABEL Label_2
ROW 180
COL 20
WIDTH 320
HEIGHT 40
VALUE "Total - Desconto"
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
BACKCOLOR {192,192,192}
FONTCOLOR {0,0,255}
RIGHTALIGN .T.
END LABEL
DEFINE LABEL Label_3
ROW 80
COL 20
WIDTH 321
HEIGHT 40
VALUE "Valor Total"
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
BACKCOLOR {192,192,192}
FONTCOLOR {0,0,255}
RIGHTALIGN .T.
END LABEL
DEFINE LABEL Label_5
ROW 361
COL 21
WIDTH 320
HEIGHT 49
VALUE "Troco"
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
BACKCOLOR {192,192,192}
FONTCOLOR {0,0,255}
RIGHTALIGN .T.
END LABEL
DEFINE FRAME Frame_2
ROW 341
COL 11
WIDTH 559
HEIGHT 78
FONTNAME 'Arial'
FONTSIZE 12
FONTBOLD .T.
CAPTION "Troco"
OPAQUE .T.
END FRAME
DEFINE LABEL LblSubTotal
ROW 80
COL 360
WIDTH 200
HEIGHT 40
VALUE ""
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
FONTCOLOR {0,0,255}
RIGHTALIGN .T.
END LABEL
DEFINE LABEL LblTotal
ROW 185
COL 360
WIDTH 200
HEIGHT 40
VALUE ""
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
FONTCOLOR {0,0,255}
RIGHTALIGN .T.
END LABEL
DEFINE LABEL LblTroco
ROW 361
COL 361
WIDTH 198
HEIGHT 49
VALUE ""
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
BACKCOLOR {0,0,255}
FONTCOLOR {255,255,255}
RIGHTALIGN .T.
END LABEL
DEFINE LABEL Label_7
ROW 480
COL 12
WIDTH 63
HEIGHT 20
VALUE "Cliente"
FONTSIZE 12
FONTBOLD .T.
BACKCOLOR {0,0,255}
FONTCOLOR {255,255,0}
CENTERALIGN .T.
END LABEL
DEFINE GETBOX gBoxDesconto
ROW 130
COL 360
WIDTH 200
HEIGHT 45
VALUE 0.00
IMAGE ''
PICTURE P12
VALID "NIL"
VALIDMESSAGE "NIL"
MESSAGE ''
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
TOOLTIP ''
BACKCOLOR {{255,255,255},{0,0,255},{128,255,255}}
FONTCOLOR {255,0,0}
ONLOSTFOCUS CALCULA_FINAL( THIS.VALUE )
RIGHTALIGN .T.
END GETBOX
DEFINE COMBOBOX cBMoeda
ROW 272
COL 169
WIDTH 169
HEIGHT 200
ITEMS {'Dinheiro','Debito','Credito','Convenio'}
VALUE 1
FONTNAME 'Arial'
FONTSIZE 24
TOOLTIP ''
ONCHANGE {||MUDA_TROCO(THIS.VALUE)}
FONTBOLD .T.
TABSTOP .F.
END COMBOBOX
DEFINE GETBOX gBoxDinheiro
ROW 272
COL 360
WIDTH 200
HEIGHT 45
VALUE 0.00
IMAGE ''
PICTURE P12
VALIDMESSAGE ''
MESSAGE ''
FONTNAME 'Arial'
FONTSIZE 30
FONTBOLD .T.
TOOLTIP ''
BACKCOLOR {{255,255,255},{0,0,255},{128,255,255}}
FONTCOLOR {0,0,0}
ONLOSTFOCUS CALCULA_TROCO(THIS.VALUE)
RIGHTALIGN .T.
END GETBOX
DEFINE BUTTONEX BtnGravar
ROW 435
COL 402
WIDTH 162
HEIGHT 64
CAPTION "&Gravar"
PICTURE "IMAGENS\img_gravar.bmp"
ICON NIL
FONTNAME 'Arial'
FONTSIZE 18
FONTBOLD .T.
TOOLTIP ''
HANDCURSOR .F.
END BUTTONEX
DEFINE BUTTONEX BtF12
ROW 430
COL 12
WIDTH 63
HEIGHT 51
PICTURE "IMAGENS\TECLAF11.bmp"
ICON NIL
ACTION PESQUISAR_CLIENTE()
FONTNAME 'Arial'
TOOLTIP ''
HANDCURSOR .F.
END BUTTONEX
DEFINE FRAME Frame_3
ROW 250
COL 10
WIDTH 560
HEIGHT 80
FONTNAME 'Arial'
FONTSIZE 12
FONTBOLD .T.
CAPTION "Forma de pagamento"
OPAQUE .T.
END FRAME
END WINDOW
Função grava venda que chama a barra de progresso
Código: Selecionar todos
STATIC FUNCTION GRAVA_VENDA()
LOAD WINDOW FORMS\FORM_BARRAPROG AS FORM_BARRAPROG
FORM_BARRAPROG.CENTER
FORM_BARRAPROG.ACTIVATE
LIMPA_PRODUTOS()
RETURN(NIL)
Formulário Barra de Progresso
Código: Selecionar todos
DEFINE WINDOW TEMPLATE AT 225 , 450 WIDTH 538 HEIGHT 149 MODAL NOCAPTION ON INIT GRAVA_VENDAE()
DEFINE LABEL LABEL_PROGRESS
ROW 10
COL 10
WIDTH 500
HEIGHT 44
VALUE "Aguarde !!! Gravando Compra..."
FONTNAME "ARIAL"
FONTSIZE 20
FONTBOLD .T.
FONTCOLOR {0,0,255}
CENTERALIGN .T.
END LABEL
DEFINE PROGRESSBAR PBGRAVA
ROW 70
COL 10
WIDTH 500
HEIGHT 30
RANGEMIN 0
RANGEMAX 5
END PROGRESSBAR
END WINDOW
Funcão gravavendae() que finaliza a gravação da venda e chama a função FOCALIZA_APP('DATASAC'). O DATASAC já está aberto, neste momento ele já vai estar aberto. É aqui que o foco fica preso.
Código: Selecionar todos
********************************************************************************
FUNCTION GRAVA_VENDAE()
// VERIFICA CONDICAO DE VENDA
nTPVENDA := GETPROPERTY('FECHA_VENDA','CBMOEDA','VALUE')
IF nTPVENDA = 1 // AVISTA DINHEIRO CHEQUE
CVISTA_ := 'V'
CCODCOND := '001'
CCODCON := '001'
ELSEIF nTPVENDA = 2 // CARTAO DE DEBITO
cVISTA_ := 'V'
cCODCOND := '021'
cCODCON := '021'
ELSEIF nTPVENDA = 3 // CARTAO DE CREDITO
cVISTA_ := 'V'
cCODCOND := '020'
cCODCON := '020'
ELSEIF nTPVENDA = 4 // CONVENIO
IF EMPTY(cCODIGO) .OR. cCODIGO == '000001' .OR. cCODIGO == '000002'
MSGINFO('Para condição CONVENIO, tem que selecionar o Cliente !!!','Sem cliente para convenio')
DOMETHOD( 'FECHA_VENDA','BTNGRAVAR','SETFOCUS' )
DOMETHOD( 'FORM_BARRAPROG','RELEASE' )
RETURN NIL
ENDIF
CVISTA_ := 'P'
CCODCOND := '004'
CCODCON := '004'
ENDIF
WHILE (.T.)
SETPROPERTY( 'FORM_BARRAPROG','LABEL_PROGRESS','VALUE','Verificando se o Servidor está conectado!!!')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',1 )
IF !VER_SERVIDOR()
IF MSGYESNO('Sem Conexao Com O Servidor !!! Tenta novamente ?')
LOOP
ELSE
DOMETHOD( 'FORM_BARRAPROG','RELEASE' )
DOMETHOD( 'FECHA_VENDA','RELEASE' )
RETURN NIL
ENDIF
ELSE
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Abrindo Arquivos no Servidor !!!')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',2 )
cFILE := cSERVIDOR + 'IORCAME.DBF'
USE &cFILE ALIAS IORCSRV NEW SHARE
DbSetIndex(cSERVIDOR+'IORCAME.CDX')
cFILE := cSERVIDOR + 'ORCAME.DBF'
USE &CFILE ALIAS ORCSRV NEW SHARE
DbSetIndex(cSERVIDOR+'ORCAME.CDX')
EXIT
ENDIF
ENDDO
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Gravando Compra')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',3 )
nDESCONTO:= GETPROPERTY('FECHA_VENDA','GBOXDESCONTO','VALUE')
nTOTAL := VAL( VIRGULA_TO_PONTO(GETPROPERTY( 'FECHA_VENDA','LBLTOTAL','VALUE')))
nSUBTOTAL:= VAL( VIRGULA_TO_PONTO(GETPROPERTY( 'FECHA_VENDA','LBLTOTAL','VALUE')))
nCOMISSAO:= 0.00
// VERIGICA SE TEM DESCONTO NA VENDA
IF nDESCONTO > 0.00
NPERD := NDESCONTO / ( ( nSUBTOTAL ) / 100 )
NCOMISSAO:= NCOMISSAO - ( NCOMISSAO * NPERD / 100 )
ENDIF
IF EMPTY( cCODIGO )
cCODIGO := '000001'
cNOME := 'CONSUMIDOR/BALCAO'
ENDIF
IF cCODIGO == '000001' .AND. EMPTY( cNOME )
cNOME := 'CONSUMIDOR/BALCAO'
ENDIF
cCODCLI_ := cCODIGO
cNOME := ALLTRIM(cNOME)
cFANTASIA:= cNOME
cM1 := cCODCLI_+"-"+cNOME
cM2 := cENDCOB
IF EMPTY(cCGC)
cM3 := ''
ELSE
cM3 := "CPF:"+cCGC+" "+cCIDCOB+"-"+cUFCOB
ENDIF
cM5 := cBAICOB+'-'+cNUMCOB+'-'+PERS->CODCIDADE+'-'+TIRAPONTO(cCEPCOB)
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Gerando Numero do pedido')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',4 )
// GRAVANDO DADOS DO PEDIDO DE VENDA
cNUMERO_ := NUMEROVEN()
// NESTE PONTO PARA NAO DAR DUPLICIDADE
cCODFUN_ := '00000'+cNUMPDV
CNUMORCTEMP := CNUMERO_
cM4 := "PEDIDO:"+ cNUMERO_ + SPACE(10) + "VENDEDOR:"+CCODFUN_
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Calculando Totais')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',5 )
// SOMA O LUCRO TOTAL
SUM IVT->PRVENDA TO NPRVENDA
SUM IVT->LUCRO_ TO NLUCRO_
// SE A VENDA FOI MENOR DO QUE O VALOR ESPERADO
IF NTOTAL < NPRVENDA
NLUCRO_ := NLUCRO_ - ( NTOTAL - NPRVENDA )
ENDIF
// SE O VALOR E MENOR DO QUE ZERO NAO CALCULA PORCENTAGEM
IF NPRVENDA > 0.00
NLUCROP_ := NLUCRO_ / ( nPRVENDA / 100 )
ENDIF
*---> GRAVANDO ORCAMENTO <---*
nDESCONTO_ := nDESCONTO
nVALOR_ := nTOTAL
nVLTOTAL_ := nSUBTOTAL
dDATA_ := DATASIS
cTIPO := cTIPOORC
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Gravando Venda')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',6 )
ORC->(DBAPPEND())
GRAVA_VAR( 'ORC' )
*---> GRAVANDO ITENS DO ORCAMENTO <---*
IVT->(DBGOTOP())
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','RANGEMAX',0 )
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','RANGEMAX',IVT->(RECCOUNT()))
DOMETHOD('FORM_BARRAPROG','PBGRAVA','REFRESH')
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Gravando Itens da Compra')
NREG :=0
WHILE !IVT->(EOF())
NREG ++
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','RANGEMAX',NREG )
// DADOS DO ARQUIVO IVENDAST
* IGUAL_VAR( 'IVT' )
SELE IVT
FOR NI:= 1 TO FCOUNT() ; &(TYPE(FIELD(NI))+FIELD(NI)) := &(FIELD(NI)) ; NEXT
*---> GRAVANDO ITENS DO DOCUMENTO <---*
IORC->(DBAPPEND())
// GRAVA NO ARQUIVO IORCAME
CNUMERO_ := CNUMORCTEMP
CCODPRO_ := IVT->CODPRO_
NLUCRO_ := IVT->LUCRO_
GRAVA_VAR( 'IORC' )
IVT->(DBSKIP())
ENDDO
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','RANGEMAX',11)
DOMETHOD('FORM_BARRAPROG','PBGRAVA','REFRESH')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',7)
*---> GRAVANDO ORCAMENTO NO SERVIDOR<---*
IGUAL_VAR('ORC')
SELE ORCSRV
DBAPPEND()
GRAVA_VAR( 'ORCSRV')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',8)
IORC->(DBGOTOP())
WHILE IORC->(!EOF())
IGUAL_VAR('IORC')
IORCSRV->(DBAPPEND())
GRAVA_VAR('IORCSRV')
IORC->(DBSKIP())
ENDDO
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',09)
DBCOMMITALL()
DbUnlockAll()
// FECHA CONEXAO COM ARQUIVOS DO SERVIDOR
SELE ORCSRV
USE
SELE IORCSRV
USE
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',10)
SELE IORC
ZAP
SELE ORC
ZAP
SELE IVT
ZAP
SETPROPERTY( 'FORM_BARRAPROG', 'LABEL_PROGRESS','VALUE','Finalizando Compra')
SETPROPERTY( 'FORM_BARRAPROG','PBGRAVA','VALUE',11)
_TOTAL_COMPRA := 0.00
* MSGBOX( 'Venda Gravada Com Sucesso !!! Número: '+CNUMERO_ )
FOCALIZA_APP('DATASAC')
RestauraTela('DATASAC')
/* criar e enviar o cupom nesse ponto
*/
SETPROPERTY('FORM_VENDA','TBOX_TOTAL_COMPRA','VALUE',_TOTAL_COMPRA )
SETPROPERTY('FORM_VENDA','LABEL_DESCRICAO_PRODUTO','VALUE','CAIXA LIVRE')
DOMETHOD('FORM_VENDA', 'GRID_VENDAS' ,'DELETEALLITEMS')
DOMETHOD('FORM_VENDA', 'GRID_VENDAS' ,'REFRESH')
DOMETHOD('FORM_VENDA', 'IMGVENDA' ,'REFRESH')
DOMETHOD('FORM_VENDA', 'TBOX_CODIGO' ,'SETFOCUS' )
DOMETHOD('FORM_BARRAPROG' ,'RELEASE')
DOMETHOD('FECHA_VENDA' ,'RELEASE')
RETURN(NIL)
Rubens