Jump to content
Fivewin Brasil

Voltar FOCO na Dialog depois do Preview...


jhilbert

Recommended Posts

Olá Pessoal,

Mais uma vez venho solicitar a ajuda em relação ao retorno do FOCO na Dialog... É o seguinte...

Tenho uma dialog que nela são realizadas as vendas... quando finalizada a operação um BUTTON chama uma dialog para Relatórios... e nessa dialog... comando a impressão e é mostrado o preview... ai que está o problema (SE na dialog de relatorios colocar o SETFOCUS para retornar para a tela de venda o meu preview fica por tras da tela de venda ai tenho que usar ALT+TAB.. se não as vezes perde o foco na tela de venda...

Segue as rotinas com as dialogs de venda/ relatorios e um relatorio de exemplo...


Funçào da tela de venda............

**********************************

FUNCTION TransOP2(cOrig,oLbx,oDlg)

LOCAL oDlgMan,oDlgBped,oCbxMan,oLbxMan,lSairOp2:=.f.

PRIVATE oBarras,oQuant,oCliNome,oNumtran,oVenNome,oPronome,oPromarca,oProcor,oRef,oTitem,oTprod,oTdesc,oTvend,ocBarras,oQtat

PRIVATE oBtop1,oBtop2,oBtop3,oBtop4,oBtop5,oBtop6,oBtop7,cSTpedido,cCodigo,status,cMens

PRIVATE cNumtran,cCliecod,cDTope,cTPope,cRadop,cTprod,cTdesc,cTvend,cTitem,cVencod,cVenNome,cSitboleto

PRIVATE cCBboleto,cLetra,cDTvencim,cVL_parc,cVL_juros,cVL_pago,cDTpago,cSitparc,cOpe,cTpv

PRIVATE cCBarras,cPronome,cPromarca,cProcor,cRef,cQtat,cQuant,cPrv,cPrv2,cPrf,cVL_total

PRIVATE cClinome,cApelido,cEnd,cPessoa,cCidnome,cCidcod,cBairro,cUf,cLimite,cLimiteF,cDebito,cCredito,cSaldo,cTparc,cVLent,cNparc,cDiaB,cTppag,cFone

PRIVATE cParc1,cParc2,cParc3,cParc4,cParc5,cParc6,cParc7,cParc8,cParc9,cParc10,cParc11,cParc12

PRIVATE cParc13,cParc14,cParc15,cParc16,cParc17,cParc18,cParc19,cParc20,cParc21,cParc22,cParc23,cParc24

PRIVATE cDarc1,cDarc2,cDarc3,cDarc4,cDarc5,cDarc6,cDarc7,cDarc8,cDarc9,cDarc10,cDarc11,cDarc12

PRIVATE cDarc13,cDarc14,cDarc15,cDarc16,cDarc17,cDarc18,cDarc19,cDarc20,cDarc21,cDarc22,cDarc23,cDarc24

PUBLIC cDesc

**************************

cMens := "Número da Operação do Pedido"

cSTpedido := .f.

status := .F.

cTitem := 0

cOpe := 2

cTpv := 1

cQuant := 0

cPrv2 := 0

cLimite := 0

cLimiteF := 0

cFone := SPACE(11)

**************************

IF (!Use_arq("Ittemp",.T.,.F.,.T.,"itt"))

SELECT mov

oDlg:SetFocus()

RETURN .t.

ENDIF

****

IF cOrig="V" .OR. cOrig="O"

itt->(dbGoBottom())

cTpv := 1

cNumtran := StrZero(NOVOCOD(cCodigo,8),8)

cCliecod := SPACE(08)

cClinome := SPACE(40)

cDTope := cDTSistem

cDTvencim := cDTpago:= SPACE(10)

cTpope := SPACE(02)

iif( cOrig="V",cRadop:= 2,cRadop:= 3)

cTprod := cTdesc:= cTvend:= cTitem:= cVL_parc:= cVL_juros:= cVL_pago:= 0.00

cVencod := "001"

Avende(cVencod)

cVenNome2 := cVenNome

cSitparc := cSitboleto:= SPACE(01)

cCBboleto := SPACE(20)

cLetra := cTppag:= SPACE(02)

cCBarras := SPACE(13)

cPronome := SPACE(50)

cPromarca := cProcor:= SPACE(20)

cRef := SPACE(10)

cQtat := cPrf:= cPrv:= cDesc:= cVL_total:= 0.00

****************

ELSEIF cOrig="P"

cStage := "1"

cTpv := 4

cNumtran := SPACE(8)

cDTope := cDTSistem

cCliecod := SPACE(08)

cClinome := SPACE(40)

cDTvencim := cDTpago:= SPACE(10)

cTpope := "VP"

cRadop := 2

cTprod := cTdesc:= cTvend:= cTitem:= cVL_parc:= cVL_juros:= cVL_pago:= 0.00

cVencod := "001"

Avende(cVencod)

cVenNome2 := cVenNome

cSitparc := cSitboleto:= SPACE(01)

cCBboleto := SPACE(20)

cLetra := cTppag:= SPACE(02)

cCBarras := SPACE(13)

cPronome := SPACE(50)

cPromarca := cProcor:= SPACE(20)

cRef := SPACE(10)

cQtat := cPrf:= cPrv:= cDesc:= cVL_total:= 0.00

******

DEFINE DIALOG oDlgBped RESOURCE "BOXINF3" COLORS CLR_LWHITE,CLR_LGREEN OF oWnd

oDlgBped:Cargo:=.F.

oDlgBped:cCaption:= "Busca Pedidos..."

REDEFINE VBOX label "Informação" ID 101 OF oDlgBped Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE ICON oIco ID 102 RESOURCE "islup" OF oDlgBped

REDEFINE SAY oSay VAR cMens ID 103 OF oDlgBped COLORS CLR_BLACK,CLR_LGRAY font oFont15b

REDEFINE vget oNumtran VAR cNumtran PICTURE "99999999" ID 104 OF oDlgBped color get_Iler,get_Fler font oFont15b FileAction "Lupa" Action BuscaPedido(oDlgBped) Valid ((AchaPedido(cNumtran)) .OR. Empty(cNumtran))

REDEFINE vBtnBmp oBtop1 ID 500 BitMaps {"BTOK",3} OF oDlgBped Action ( oDlgBped:Cargo:=.T., oDlgBped:End()) ToolTip "Confirmação Pedido!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop2 ID 502 BitMaps {"BTCAN",3} OF oDlgBped Action ( oDlgBped:End()) ToolTip "Cancela Opção!" NoBorder CentraBmp

ACTIVATE DIALOG oDlgBped CENTERED

if oDlgBped:Cargo

if Empty(cNumtran)

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

endif

** // Abertura de ARQUIVOS

IF (!Use_arq("itembol",.T.,.T.,.T.,"ite"))

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

ENDIF

SELECT ite

ite->(dbSetOrder("numero"))

ite->(dbGoTop())

if dbSeek( cNumtran )

INFO2("Pedido "+cNumtran+" com VENDA FINALIZADA."+CRLF+"Ou não encontrado!! Cancelando...","Informa!","ISINF")

itt->(DbCloseArea())

ite->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

else

ite->(DbCloseArea())

endif

else

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

endif

SELECT itt

itt->(dbSetOrder("numero"))

itt->(dbGoTop())

if dbSeek( cNumtran )

cCliecod:= itt->cliecod

while !EOF()

IF itt->numtran=cNumtran .AND. cOrig="P"

cTprod+= (itt->prv*itt->quant)

cTdesc+= (itt->desc*itt->quant)

cTvend:= cTprod-cTdesc

cTitem++

SKIP

ELSE

EXIT

ENDIF

enddo

else

INFO4("Boleto não encontrado!","Aviso!","ISSTO")

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

endif

ELSEIF Blq_Reg() && Inicializa variaveis para alteracao

Igual_var()

ELSE

cStage:="0"

itt->(DbCloseArea())

SELECT mov

oDlg:SetFocus()

RETURN .t.

ENDIF

SELECT itt

itt->(dbSetOrder("numero"))

itt->(ordScope(0,cNumtran))

itt->(ordScope(1,cNumtran))

itt->(dbGoTop())

********************************************

** // Define janela p/interacao com OPERACAO

DEFINE DIALOG oDlgMan RESOURCE "TELATRA3" COLORS CLR_LWHITE,CLR_LGREEN OF oWnd

oDlgMan:Cargo:=.F.

oDlgMan:cCaption:= Iif(cOrig="V","Venda","Orçamento")+" de Produtos"

DEFINE FONT oFont15b name "Arial" size 0,-15 BOLD

SET FONT OF oDlgMan TO oFont15b

***

REDEFINE SAY ID 112 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget cDTope PICTURE '99/99/9999' ID 101 OF oDlgMan color get_Iler,get_Fler font oFont15b WHEN .F.

REDEFINE SAY ID 4001 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget cOperador PICTURE '@!' ID 4002 OF oDlgMan color get_Iler,get_Fler font oFont15b WHEN .F.

REDEFINE SAY ID 113 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE COMBOBOX oCbxMan VAR cVenNome ITEMS PEGA(cVennome,"vendedor","vennome");

ID 102 OF oDlgMan;

ON CHANGE ( cVenNome2:= cVenNome, oCbxMan:Refresh() ) ;

VALID ( If( ! oCbxMan:Find( oCbxMan:oGet:GetText() ),;

oCbxMan:Add( oCbxMan:oGet:GetText() ),), .t. )

REDEFINE VBOX label "Operação" ID 114 OF oDlgMan Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE RADIO oRad VAR cRadop ID 104,105,106 OF oDlgMan COLOR CLR_BLACK,CLR_LGRAY WHEN cStage="0"

SELECT itt

itt->(dbGoTop())

REDEFINE LISTBOX oLbxMan ;

FIELDS itt->cbarras,itt->ref,itt->pronome,STR(itt->quant,9,2),STR(itt->prv,9,2),STR(itt->vl_total,9,2) ;

SIZES 95,75,265,65,70,70 ;

HEADERS "Cod_Barras","Referência","Discriminação","Quant","Prc_Unit","Vl_Total" ;

FONT oFont12b ;

ID 103 OF oDlgMan

***

CORLBCLI(oLbxMan,"{ .F., .F., .F., .T., .T., .T. }")

REDEFINE SAY ID 115 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTitem VAR cTitem PICTURE '999999.99' ID 107 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE SAY ID 116 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTprod VAR cTprod PICTURE '999,999.99' ID 108 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE SAY ID 117 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTdesc VAR cTdesc PICTURE '999,999.99' ID 109 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE SAY ID 118 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTvend VAR cTvend PICTURE '999,999.99' ID 110 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE VBOX label "Código de Barras" ID 4003 OF oDlgMan Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE VGET oBarras VAR cCbarras PICTURE "9999999999999" ID 4004 OF oDlgMan color get_Iler,get_Fler font oFont15b WHEN (!Empty(cVenNome) .AND. (cStage="1" .OR. cStage="0") ) update FileAction "Lupa" Action BuscaPro("2",oDlgMan,oLbxMan,1) VALID (Empty(cCbarras) .OR. (Achapro(cCbarras,"2",oDlgMan,oLbxMan,1)))

REDEFINE vBtnBmp oBtop3 ID 542 BitMaps {"BTALP",3} OF oDlgMan Action (oDlgMan:End()) WHEN .f. update ToolTip "Altera (quantidade/Preço) do Produto em venda/Orçado!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop4 ID 527 BitMaps {"BTEXP",3} OF oDlgMan Action (Proins ("E",oDlgMan,oLbxMan )) WHEN !Empty(cVenNome) .AND. (cStage="1" .AND. cTitem>0 ) update ToolTip "Exclui Produto da Lista de Venda/Orçamento!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop5 ID 525 BitMaps {"BTFIO",3} OF oDlgMan Action (Finaliza (cTpv,cRadop,OLbxMan,oDlgMan ) ) WHEN !Empty(cVenNome) .AND. (cStage="1" .AND. cTitem>0 ) update ToolTip "Finaliza Operação de Venda/Orçamento!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop6 ID 528 BitMaps {"BTERE",3} OF oDlgMan Action (PrintVenda("P",cNumtran,cTitem,oDlgMan) ) WHEN cStage="5" update ToolTip "Emisão de Relatórios (Recibo,Carnês,Duplicatas...)" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop7 ID 501 BitMaps {"BTSAI",3} OF oDlgMan Action (lSairOp2:=.t., oDlgMan:Cargo:=.T., oDlgMan:End()) WHEN cTitem=0 .OR. cStage="5" update ToolTip "Sair de tela de Venda/Orçamento!" NoBorder CentraBmp

ACTIVATE DIALOG oDlgMan CENTER VALID lSairOp2 on init ( ShowWindow( oDlgMan:hWnd, 3 ) )

******************************

** // UpDate no Banco de dados

IF oDlgMan:Cargo

IF cOrig="A"

SELECT mov

Repl_Var(cData)

ENDIF

ClrBuffer("&cArq","mov")

ENDIF

cStage:="0"

itt->(ordScope(0,))

itt->(ordScope(1,))

itt->(DbCloseArea())

SELECT mov

mov->(DbCommit())

mov->(DbUnLock())

mov->(dbSetOrder("dtmov"))

mov->(ordScope(0,cDTSistem))

mov->(ordScope(1,cDTSistem))

mov->(dbGoTop())

oLbx:UpStable()

oLbx:Refresh()

oDlg:SetFocus()

RETURN NIL

Função da Tela de Relatorios......

**************************************************

FUNCTION PrintVenda(cOrig,cNumtran,cTitem,oDlgMan)

LOCAL oDlgPes,oRad,cRad:=cEPrint,oVal,oBtprv1,oBtprv2,cValues:=1,cVlpro:=0

***

if cOrig="T"

SELECT ite

ite->(ordScope(0,))

ite->(ordScope(1,))

ite->(dbGoTop())

else

SELECT itt

itt->(ordScope(0,))

itt->(ordScope(1,))

itt->(dbGoTop())

endif

***

IF cOpe=4

IF (!Use_arq("parcela",.T.,.T.,.T.,"par"))

RETURN .t.

ENDIF

ELSE

IF (!Use_arq("itembol",.T.,.T.,.T.,"ite")).OR.(!Use_arq("boleto",.T.,.T.,.T.,"bol")).OR.;

(!Use_arq("parcela",.T.,.T.,.T.,"par")).OR.(!Use_arq("clientes",.T.,.T.,.T.,"cli"))

RETURN .t.

ENDIF

ENDIF

**

DEFINE DIALOG oDlgPes RESOURCE "TELAPRI1" COLORS CLR_LWHITE,CLR_LGREEN OF oWnd // Define janela p/interacao

oDlgPes:Cargo:=.F.

oDlgPes:cCaption:= "Relatórios de Venda"

DEFINE FONT oFont15b name "Arial" size 0,-15 BOLD

SET FONT OF oDlgPes TO oFont15b

***

REDEFINE VBOX label "Tipo de Impressão" ID 108 OF oDlgPes Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE RADIO ORad VAR cRad ID 105,106,107 OF oDlgPes COLOR CLR_BLACK,CLR_LGRAY

REDEFINE VBOX label "Relatórios" ID 109 OF oDlgPes Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE RADIO oVal VAR cValues ID 101,102,103,104 OF oDlgPes COLOR CLR_BLACK,CLR_LGRAY

REDEFINE vBtnBmp oBtPrv1 ID 500 BitMaps {"BTOK",3} OF oDlgPes Action ( oDlgPes:Cargo:= .T., oDlgPes:End() ) ToolTip "Confirma opção selecionada!" NoBorder CentraBmp && incluir function de verificacao de cliente

REDEFINE vBtnBmp oBtPrv2 ID 502 BitMaps {"BTCAN",3} OF oDlgPes Action ( FechaArqs1(), oDlgPes:End(),oDlgMan:SetFocus() ) ToolTip "Cancela opção selecionada!" NoBorder CentraBmp

ACTIVATE DIALOG oDlgPes CENTER on init ( ShowWindow( oDlgPes:oWnd, 1 ) )

IF oDlgPes:Cargo

DO CASE

CASE cValues=1

if cRad=1

if cRadop=3

MiniOrcamento(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

else

MiniRecibo(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

endif

elseif cRad=2

if cRadop=3

TxtOrcamento(1,cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

else

TxtRecibo(1,cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

endif

else

if cRadop=3

RelOrcamento(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

else

RelRecibo(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

endif

endif

CASE cValues=2

if cRadop#2

INFO4("Emissão de Duplicata somente na Venda a Prazo!","Informa!","ISINF")

FechaArqs1()

oDlgPes:End()

CursorArrow()

endif

if cRad=1

INFO4("Relatório não disponível para esta Impressora!","Informa!","ISINF")

elseif cRad=2

TxtDuplicata(1) && Promissória Franklin Joias

&& TXTDup12(oDlgMan,.T.) && Promissoria Casa Shopping e Boticario

else

RelDuplic() && Promissória

endif

CASE cValues=3

if cRad=1

INFO4("Relatório não disponível para esta Impressora!","Informa!","ISINF")

elseif cRad=2

TxtCarne(1) && Carne COM moldura

&& TXTCarne1(1) && Carne SEM moldura

else

RelCarne() && Carne

endif

CASE cValues=4

INFO4("Relatório não disponível para esta Impressora!","Informa!","ISINF")

ENDCASE

FechaArqs1()

oDlgPes:End()

ENDIF

CursorArrow()

if cOrig="T"

SELECT ite

ite->(dbSetOrder("numero"))

ite->(ordScope(0,cNumtran))

ite->(ordScope(1,cNumtran))

ite->(dbGoTop())

else

SELECT itt

itt->(dbSetOrder("numero"))

itt->(ordScope(0,cNumtran))

itt->(ordScope(1,cNumtran))

itt->(dbGoTop())

endif

RETURN nil

Exemplo de relatorio....

****************************************************************************

Function RelRecibo(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

****************************************************************************

PRIVATE filtro:=SPACE(20)

********************

rot1 := 'TRA_002'

pag := 0

filtro := "ite->(numtran)=cNumTran"

iif(cRadop=2, rot2:="VENDA A PRAZO",rot2:="VENDA À VISTA")

iif(cRadop=2, btitulo := {||r_0002()},btitulo := {||r_0002a()})

*****

CursorWait()

SELECT ite

ite->(dbSetOrder("numero"))

ite->(dbGoTop())

****

if !rel_ini()

return nil

endif

****

if dbSeek( cNumTran )

do while ite->(!Eof())

if &filtro

Box (linha,lmargem+0.3, linha+lsalto,lmargem+2.7)

Box (linha,lmargem+2.7, linha+lsalto,lmargem+4.7)

Box (linha,lmargem+4.7, linha+lsalto,lmargem+13.0)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+14.7)

Box (linha,lmargem+14.7,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+2.7, ite->cbarras,oFnt_rel8)

say_e(linha,lmargem+2.7, linha+lsalto,lmargem+4.7, ite->ref ,oFnt_rel8)

Say_e(linha,lmargem+4.7, linha+lsalto,lmargem+13.0,RTRIM(SUBSTR(ite->pronome,1,30))+" "+RTRIM(SUBSTR(ite->promarca,1,10))+" "+RTRIM(SUBSTR(ite->procor,1,10)),ofnt_rel8)

cVlpro:= (ite->(prv)-ite->(desc)) && Com Desconto por Produto

&& cVlpro:= ite->(prv) && Desconto Geral

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+14.7,Tran(cVlpro ,"999,999.99") ,ofnt_rel8)

Say_d(linha,lmargem+14.7,linha+lsalto,lmargem+16.5,Tran(ite->quant ,"99999999.99"),ofnt_rel8)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(ite->vl_total,"9,999,999.99") ,ofnt_rel8)

linha = linha + lsalto

ite->(dbskip(1))

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

else

ite->(dbskip(1))

LOOP

endif

enddo

SELECT bol

bol->(dbSetOrder("numero"))

bol->(dbGoTop())

if dbSeek( cNumTran )

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

box_d(linha,lmargem+13.0,linha+lsalto,nhori-0.5)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL DA VENDA(=)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTprod,"9,999,999.99"),ofnt_rel8b)

linha = linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL DE DESCONTOS(-)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTdesc,"9,999,999.99") ,ofnt_rel8)

linha = linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

if cRadop=2

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"VALOR DE ENTRADA(-)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cVlent,"9,999,999.99") ,ofnt_rel8)

linha = linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

box_d(linha,lmargem+13.0,linha+lsalto,nhori-0.5)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL A PAGAR(=)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTparc,"9,999,999.99") ,ofnt_rel9b)

else

box_d(linha,lmargem+13.0,linha+lsalto,nhori-0.5)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL A PAGAR(=)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTvend,"9,999,999.99") ,ofnt_rel10b)

endif

linha = linha + lsalto

else

rel_fim()

Info4("Boleto não encontrado!","Aviso!!","ISSTOP")

RETURN nil

endif

if cRadop=2

SELECT par

par->(dbSetOrder("numero"))

par->(dbGoTop())

if dbSeek( cNumTran )

box_d(linha,lmargem+0.3, linha+lsalto,lmargem+9.0)

Box (linha,lmargem+0.3, linha+lsalto,lmargem+1.5)

Box (linha,lmargem+1.5, linha+lsalto,lmargem+3.5)

Box (linha,lmargem+3.5, linha+lsalto,lmargem+5.5)

Box (linha,lmargem+5.5, linha+lsalto,lmargem+9.0)

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+1.5, "Parcela",oFnt_rel9b)

say_e(linha,lmargem+1.5, linha+lsalto,lmargem+3.5, "Vencimento",oFnt_rel9b)

Say_e(linha,lmargem+3.5, linha+lsalto,lmargem+5.5, "Valor R$",ofnt_rel9b)

Say_e(linha,lmargem+5.5, linha+lsalto,lmargem+9.0, "Situação",ofnt_rel9b)

box_d(linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

box (linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

*** && segunda coluna parcelas

box_d(linha,lmargem+9.3, linha+lsalto,nhori-0.5)

Box (linha,lmargem+9.3, linha+lsalto,lmargem+10.5)

Box (linha,lmargem+10.5,linha+lsalto,lmargem+12.5)

Box (linha,lmargem+12.5,linha+lsalto,lmargem+14.5)

Box (linha,lmargem+14.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+9.3, linha+lsalto,lmargem+10.5,"Parcela",oFnt_rel9b)

say_e(linha,lmargem+10.5,linha+lsalto,lmargem+12.5,"Vencimento",oFnt_rel9b)

Say_e(linha,lmargem+12.5,linha+lsalto,lmargem+14.5,"Valor R$",ofnt_rel9b)

Say_e(linha,lmargem+14.5,linha+lsalto,nhori-0.5, "Situação",ofnt_rel9b)

linha := linha + lsalto

do while par->(!Eof())

if par->(numtran)=cNumTran

SysRefresh()

Box (linha,lmargem+0.3, linha+lsalto,lmargem+1.5)

Box (linha,lmargem+1.5, linha+lsalto,lmargem+3.5)

Box (linha,lmargem+3.5, linha+lsalto,lmargem+5.5)

Box (linha,lmargem+5.5, linha+lsalto,lmargem+9.0)

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+1.5, Tran(par->letra,"99"),oFnt_rel10)

say_e(linha,lmargem+1.5, linha+lsalto,lmargem+3.5, Tran(par->dtvencim,"99/99/9999"),oFnt_rel10)

Say_d(linha,lmargem+3.5, linha+lsalto,lmargem+5.5, Tran(par->vl_parc,"999,999.99") ,ofnt_rel10)

Say_e(linha,lmargem+5.5, linha+lsalto,lmargem+9.0, iif(par->(sitparc)="D","Devedor","Quitado"),ofnt_rel10)

***

par->(dbskip())

if par->(numtran)=cNumTran

box_d(linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

box (linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

Box (linha,lmargem+9.3, linha+lsalto,lmargem+10.5)

Box (linha,lmargem+10.5,linha+lsalto,lmargem+12.5)

Box (linha,lmargem+12.5,linha+lsalto,lmargem+14.5)

Box (linha,lmargem+14.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+9.3, linha+lsalto,lmargem+10.5,Tran(par->letra,"99"),oFnt_rel10)

say_e(linha,lmargem+10.5,linha+lsalto,lmargem+12.5,Tran(par->dtvencim,"99/99/9999"),oFnt_rel10)

Say_d(linha,lmargem+12.5,linha+lsalto,lmargem+14.5,Tran(par->vl_parc,"999,999.99") ,ofnt_rel10)

Say_e(linha,lmargem+14.5,linha+lsalto,nhori-0.5, iif(par->(sitparc)="D","Devedor","Quitado"),ofnt_rel10)

par->(dbskip())

else

box_d(linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

box (linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

Box (linha,lmargem+9.3, linha+lsalto,lmargem+10.5)

Box (linha,lmargem+10.5,linha+lsalto,lmargem+12.5)

Box (linha,lmargem+12.5,linha+lsalto,lmargem+14.5)

Box (linha,lmargem+14.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+9.3, linha+lsalto,lmargem+10.5,"**" ,oFnt_rel10)

say_e(linha,lmargem+10.5,linha+lsalto,lmargem+12.5,"**********" ,oFnt_rel10)

Say_d(linha,lmargem+12.5,linha+lsalto,lmargem+14.5,"**********" ,ofnt_rel10)

Say_e(linha,lmargem+14.5,linha+lsalto,nhori-0.5, "*******" ,ofnt_rel10)

endif

linha := linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

else

par->(dbskip(1))

loop

endif

enddo

*/

else

rel_fim()

Info4("Parcelas não encontradas!","Aviso!!","ISSTOP")

RETURN nil

endif

endif

linha := linha + lsalto

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+14.0, "Ass:_______________________________________",oFnt_rel10)

linha := linha + lsalto

linha := linha + lsalto

say_c(linha,lmargem+6.0, linha+lsalto,lmargem+14.0, "*** CUPOM SEM VALIDADE FISCAL ***",oFnt_rel10)

linha := linha + lsalto

say_c(linha,lmargem+6.0, linha+lsalto,lmargem+14.0, "**** OBRIGADO, VOLTE SEMPRE ****",oFnt_rel10)

else

rel_fim()

Info4("Recibo não encontrado!","Aviso!!","ISSTOP")

RETURN nil

endif

rel_fim()

Return nil

Valeu a todos!!!

JHILBERT

FW7.04/BCC5.51/xHarbour0.9971/PellesC/xDEv0.65/vLIB

id=code>id=code>
Link to comment
Share on other sites

Olá Pessoal,

Mais uma vez venho solicitar a ajuda em relação ao retorno do FOCO na Dialog... É o seguinte...

Tenho uma dialog que nela são realizadas as vendas... quando finalizada a operação um BUTTON chama uma dialog para Relatórios... e nessa dialog... comando a impressão e é mostrado o preview... ai que está o problema (SE na dialog de relatorios colocar o SETFOCUS para retornar para a tela de venda o meu preview fica por tras da tela de venda ai tenho que usar ALT+TAB.. se não as vezes perde o foco na tela de venda...

Segue as rotinas com as dialogs de venda/ relatorios e um relatorio de exemplo...


Funçào da tela de venda............

**********************************

FUNCTION TransOP2(cOrig,oLbx,oDlg)

LOCAL oDlgMan,oDlgBped,oCbxMan,oLbxMan,lSairOp2:=.f.

PRIVATE oBarras,oQuant,oCliNome,oNumtran,oVenNome,oPronome,oPromarca,oProcor,oRef,oTitem,oTprod,oTdesc,oTvend,ocBarras,oQtat

PRIVATE oBtop1,oBtop2,oBtop3,oBtop4,oBtop5,oBtop6,oBtop7,cSTpedido,cCodigo,status,cMens

PRIVATE cNumtran,cCliecod,cDTope,cTPope,cRadop,cTprod,cTdesc,cTvend,cTitem,cVencod,cVenNome,cSitboleto

PRIVATE cCBboleto,cLetra,cDTvencim,cVL_parc,cVL_juros,cVL_pago,cDTpago,cSitparc,cOpe,cTpv

PRIVATE cCBarras,cPronome,cPromarca,cProcor,cRef,cQtat,cQuant,cPrv,cPrv2,cPrf,cVL_total

PRIVATE cClinome,cApelido,cEnd,cPessoa,cCidnome,cCidcod,cBairro,cUf,cLimite,cLimiteF,cDebito,cCredito,cSaldo,cTparc,cVLent,cNparc,cDiaB,cTppag,cFone

PRIVATE cParc1,cParc2,cParc3,cParc4,cParc5,cParc6,cParc7,cParc8,cParc9,cParc10,cParc11,cParc12

PRIVATE cParc13,cParc14,cParc15,cParc16,cParc17,cParc18,cParc19,cParc20,cParc21,cParc22,cParc23,cParc24

PRIVATE cDarc1,cDarc2,cDarc3,cDarc4,cDarc5,cDarc6,cDarc7,cDarc8,cDarc9,cDarc10,cDarc11,cDarc12

PRIVATE cDarc13,cDarc14,cDarc15,cDarc16,cDarc17,cDarc18,cDarc19,cDarc20,cDarc21,cDarc22,cDarc23,cDarc24

PUBLIC cDesc

**************************

cMens := "Número da Operação do Pedido"

cSTpedido := .f.

status := .F.

cTitem := 0

cOpe := 2

cTpv := 1

cQuant := 0

cPrv2 := 0

cLimite := 0

cLimiteF := 0

cFone := SPACE(11)

**************************

IF (!Use_arq("Ittemp",.T.,.F.,.T.,"itt"))

SELECT mov

oDlg:SetFocus()

RETURN .t.

ENDIF

****

IF cOrig="V" .OR. cOrig="O"

itt->(dbGoBottom())

cTpv := 1

cNumtran := StrZero(NOVOCOD(cCodigo,8),8)

cCliecod := SPACE(08)

cClinome := SPACE(40)

cDTope := cDTSistem

cDTvencim := cDTpago:= SPACE(10)

cTpope := SPACE(02)

iif( cOrig="V",cRadop:= 2,cRadop:= 3)

cTprod := cTdesc:= cTvend:= cTitem:= cVL_parc:= cVL_juros:= cVL_pago:= 0.00

cVencod := "001"

Avende(cVencod)

cVenNome2 := cVenNome

cSitparc := cSitboleto:= SPACE(01)

cCBboleto := SPACE(20)

cLetra := cTppag:= SPACE(02)

cCBarras := SPACE(13)

cPronome := SPACE(50)

cPromarca := cProcor:= SPACE(20)

cRef := SPACE(10)

cQtat := cPrf:= cPrv:= cDesc:= cVL_total:= 0.00

****************

ELSEIF cOrig="P"

cStage := "1"

cTpv := 4

cNumtran := SPACE(8)

cDTope := cDTSistem

cCliecod := SPACE(08)

cClinome := SPACE(40)

cDTvencim := cDTpago:= SPACE(10)

cTpope := "VP"

cRadop := 2

cTprod := cTdesc:= cTvend:= cTitem:= cVL_parc:= cVL_juros:= cVL_pago:= 0.00

cVencod := "001"

Avende(cVencod)

cVenNome2 := cVenNome

cSitparc := cSitboleto:= SPACE(01)

cCBboleto := SPACE(20)

cLetra := cTppag:= SPACE(02)

cCBarras := SPACE(13)

cPronome := SPACE(50)

cPromarca := cProcor:= SPACE(20)

cRef := SPACE(10)

cQtat := cPrf:= cPrv:= cDesc:= cVL_total:= 0.00

******

DEFINE DIALOG oDlgBped RESOURCE "BOXINF3" COLORS CLR_LWHITE,CLR_LGREEN OF oWnd

oDlgBped:Cargo:=.F.

oDlgBped:cCaption:= "Busca Pedidos..."

REDEFINE VBOX label "Informação" ID 101 OF oDlgBped Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE ICON oIco ID 102 RESOURCE "islup" OF oDlgBped

REDEFINE SAY oSay VAR cMens ID 103 OF oDlgBped COLORS CLR_BLACK,CLR_LGRAY font oFont15b

REDEFINE vget oNumtran VAR cNumtran PICTURE "99999999" ID 104 OF oDlgBped color get_Iler,get_Fler font oFont15b FileAction "Lupa" Action BuscaPedido(oDlgBped) Valid ((AchaPedido(cNumtran)) .OR. Empty(cNumtran))

REDEFINE vBtnBmp oBtop1 ID 500 BitMaps {"BTOK",3} OF oDlgBped Action ( oDlgBped:Cargo:=.T., oDlgBped:End()) ToolTip "Confirmação Pedido!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop2 ID 502 BitMaps {"BTCAN",3} OF oDlgBped Action ( oDlgBped:End()) ToolTip "Cancela Opção!" NoBorder CentraBmp

ACTIVATE DIALOG oDlgBped CENTERED

if oDlgBped:Cargo

if Empty(cNumtran)

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

endif

** // Abertura de ARQUIVOS

IF (!Use_arq("itembol",.T.,.T.,.T.,"ite"))

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

ENDIF

SELECT ite

ite->(dbSetOrder("numero"))

ite->(dbGoTop())

if dbSeek( cNumtran )

INFO2("Pedido "+cNumtran+" com VENDA FINALIZADA."+CRLF+"Ou não encontrado!! Cancelando...","Informa!","ISINF")

itt->(DbCloseArea())

ite->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

else

ite->(DbCloseArea())

endif

else

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

endif

SELECT itt

itt->(dbSetOrder("numero"))

itt->(dbGoTop())

if dbSeek( cNumtran )

cCliecod:= itt->cliecod

while !EOF()

IF itt->numtran=cNumtran .AND. cOrig="P"

cTprod+= (itt->prv*itt->quant)

cTdesc+= (itt->desc*itt->quant)

cTvend:= cTprod-cTdesc

cTitem++

SKIP

ELSE

EXIT

ENDIF

enddo

else

INFO4("Boleto não encontrado!","Aviso!","ISSTO")

itt->(DbCloseArea())

cStage:="0"

SELECT mov

oDlg:SetFocus()

RETURN .t.

endif

ELSEIF Blq_Reg() && Inicializa variaveis para alteracao

Igual_var()

ELSE

cStage:="0"

itt->(DbCloseArea())

SELECT mov

oDlg:SetFocus()

RETURN .t.

ENDIF

SELECT itt

itt->(dbSetOrder("numero"))

itt->(ordScope(0,cNumtran))

itt->(ordScope(1,cNumtran))

itt->(dbGoTop())

********************************************

** // Define janela p/interacao com OPERACAO

DEFINE DIALOG oDlgMan RESOURCE "TELATRA3" COLORS CLR_LWHITE,CLR_LGREEN OF oWnd

oDlgMan:Cargo:=.F.

oDlgMan:cCaption:= Iif(cOrig="V","Venda","Orçamento")+" de Produtos"

DEFINE FONT oFont15b name "Arial" size 0,-15 BOLD

SET FONT OF oDlgMan TO oFont15b

***

REDEFINE SAY ID 112 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget cDTope PICTURE '99/99/9999' ID 101 OF oDlgMan color get_Iler,get_Fler font oFont15b WHEN .F.

REDEFINE SAY ID 4001 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget cOperador PICTURE '@!' ID 4002 OF oDlgMan color get_Iler,get_Fler font oFont15b WHEN .F.

REDEFINE SAY ID 113 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE COMBOBOX oCbxMan VAR cVenNome ITEMS PEGA(cVennome,"vendedor","vennome");

ID 102 OF oDlgMan;

ON CHANGE ( cVenNome2:= cVenNome, oCbxMan:Refresh() ) ;

VALID ( If( ! oCbxMan:Find( oCbxMan:oGet:GetText() ),;

oCbxMan:Add( oCbxMan:oGet:GetText() ),), .t. )

REDEFINE VBOX label "Operação" ID 114 OF oDlgMan Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE RADIO oRad VAR cRadop ID 104,105,106 OF oDlgMan COLOR CLR_BLACK,CLR_LGRAY WHEN cStage="0"

SELECT itt

itt->(dbGoTop())

REDEFINE LISTBOX oLbxMan ;

FIELDS itt->cbarras,itt->ref,itt->pronome,STR(itt->quant,9,2),STR(itt->prv,9,2),STR(itt->vl_total,9,2) ;

SIZES 95,75,265,65,70,70 ;

HEADERS "Cod_Barras","Referência","Discriminação","Quant","Prc_Unit","Vl_Total" ;

FONT oFont12b ;

ID 103 OF oDlgMan

***

CORLBCLI(oLbxMan,"{ .F., .F., .F., .T., .T., .T. }")

REDEFINE SAY ID 115 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTitem VAR cTitem PICTURE '999999.99' ID 107 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE SAY ID 116 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTprod VAR cTprod PICTURE '999,999.99' ID 108 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE SAY ID 117 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTdesc VAR cTdesc PICTURE '999,999.99' ID 109 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE SAY ID 118 OF oDlgMan COLORS CLR_BLACK,CLR_LGREEN font oFont15b

REDEFINE vget oTvend VAR cTvend PICTURE '999,999.99' ID 110 OF oDlgMan color get_Iler,get_Fler font oFont22b WHEN .F.

REDEFINE VBOX label "Código de Barras" ID 4003 OF oDlgMan Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE VGET oBarras VAR cCbarras PICTURE "9999999999999" ID 4004 OF oDlgMan color get_Iler,get_Fler font oFont15b WHEN (!Empty(cVenNome) .AND. (cStage="1" .OR. cStage="0") ) update FileAction "Lupa" Action BuscaPro("2",oDlgMan,oLbxMan,1) VALID (Empty(cCbarras) .OR. (Achapro(cCbarras,"2",oDlgMan,oLbxMan,1)))

REDEFINE vBtnBmp oBtop3 ID 542 BitMaps {"BTALP",3} OF oDlgMan Action (oDlgMan:End()) WHEN .f. update ToolTip "Altera (quantidade/Preço) do Produto em venda/Orçado!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop4 ID 527 BitMaps {"BTEXP",3} OF oDlgMan Action (Proins ("E",oDlgMan,oLbxMan )) WHEN !Empty(cVenNome) .AND. (cStage="1" .AND. cTitem>0 ) update ToolTip "Exclui Produto da Lista de Venda/Orçamento!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop5 ID 525 BitMaps {"BTFIO",3} OF oDlgMan Action (Finaliza (cTpv,cRadop,OLbxMan,oDlgMan ) ) WHEN !Empty(cVenNome) .AND. (cStage="1" .AND. cTitem>0 ) update ToolTip "Finaliza Operação de Venda/Orçamento!" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop6 ID 528 BitMaps {"BTERE",3} OF oDlgMan Action (PrintVenda("P",cNumtran,cTitem,oDlgMan) ) WHEN cStage="5" update ToolTip "Emisão de Relatórios (Recibo,Carnês,Duplicatas...)" NoBorder CentraBmp

REDEFINE vBtnBmp oBtop7 ID 501 BitMaps {"BTSAI",3} OF oDlgMan Action (lSairOp2:=.t., oDlgMan:Cargo:=.T., oDlgMan:End()) WHEN cTitem=0 .OR. cStage="5" update ToolTip "Sair de tela de Venda/Orçamento!" NoBorder CentraBmp

ACTIVATE DIALOG oDlgMan CENTER VALID lSairOp2 on init ( ShowWindow( oDlgMan:hWnd, 3 ) )

******************************

** // UpDate no Banco de dados

IF oDlgMan:Cargo

IF cOrig="A"

SELECT mov

Repl_Var(cData)

ENDIF

ClrBuffer("&cArq","mov")

ENDIF

cStage:="0"

itt->(ordScope(0,))

itt->(ordScope(1,))

itt->(DbCloseArea())

SELECT mov

mov->(DbCommit())

mov->(DbUnLock())

mov->(dbSetOrder("dtmov"))

mov->(ordScope(0,cDTSistem))

mov->(ordScope(1,cDTSistem))

mov->(dbGoTop())

oLbx:UpStable()

oLbx:Refresh()

oDlg:SetFocus()

RETURN NIL

Função da Tela de Relatorios......

**************************************************

FUNCTION PrintVenda(cOrig,cNumtran,cTitem,oDlgMan)

LOCAL oDlgPes,oRad,cRad:=cEPrint,oVal,oBtprv1,oBtprv2,cValues:=1,cVlpro:=0

***

if cOrig="T"

SELECT ite

ite->(ordScope(0,))

ite->(ordScope(1,))

ite->(dbGoTop())

else

SELECT itt

itt->(ordScope(0,))

itt->(ordScope(1,))

itt->(dbGoTop())

endif

***

IF cOpe=4

IF (!Use_arq("parcela",.T.,.T.,.T.,"par"))

RETURN .t.

ENDIF

ELSE

IF (!Use_arq("itembol",.T.,.T.,.T.,"ite")).OR.(!Use_arq("boleto",.T.,.T.,.T.,"bol")).OR.;

(!Use_arq("parcela",.T.,.T.,.T.,"par")).OR.(!Use_arq("clientes",.T.,.T.,.T.,"cli"))

RETURN .t.

ENDIF

ENDIF

**

DEFINE DIALOG oDlgPes RESOURCE "TELAPRI1" COLORS CLR_LWHITE,CLR_LGREEN OF oWnd // Define janela p/interacao

oDlgPes:Cargo:=.F.

oDlgPes:cCaption:= "Relatórios de Venda"

DEFINE FONT oFont15b name "Arial" size 0,-15 BOLD

SET FONT OF oDlgPes TO oFont15b

***

REDEFINE VBOX label "Tipo de Impressão" ID 108 OF oDlgPes Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE RADIO ORad VAR cRad ID 105,106,107 OF oDlgPes COLOR CLR_BLACK,CLR_LGRAY

REDEFINE VBOX label "Relatórios" ID 109 OF oDlgPes Esquerda Color CLR_AZUL,CLR_LGRAY FONT oFont14

REDEFINE RADIO oVal VAR cValues ID 101,102,103,104 OF oDlgPes COLOR CLR_BLACK,CLR_LGRAY

REDEFINE vBtnBmp oBtPrv1 ID 500 BitMaps {"BTOK",3} OF oDlgPes Action ( oDlgPes:Cargo:= .T., oDlgPes:End() ) ToolTip "Confirma opção selecionada!" NoBorder CentraBmp && incluir function de verificacao de cliente

REDEFINE vBtnBmp oBtPrv2 ID 502 BitMaps {"BTCAN",3} OF oDlgPes Action ( FechaArqs1(), oDlgPes:End(),oDlgMan:SetFocus() ) ToolTip "Cancela opção selecionada!" NoBorder CentraBmp

ACTIVATE DIALOG oDlgPes CENTER on init ( ShowWindow( oDlgPes:oWnd, 1 ) )

IF oDlgPes:Cargo

DO CASE

CASE cValues=1

if cRad=1

if cRadop=3

MiniOrcamento(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

else

MiniRecibo(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

endif

elseif cRad=2

if cRadop=3

TxtOrcamento(1,cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

else

TxtRecibo(1,cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

endif

else

if cRadop=3

RelOrcamento(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

else

RelRecibo(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

endif

endif

CASE cValues=2

if cRadop#2

INFO4("Emissão de Duplicata somente na Venda a Prazo!","Informa!","ISINF")

FechaArqs1()

oDlgPes:End()

CursorArrow()

endif

if cRad=1

INFO4("Relatório não disponível para esta Impressora!","Informa!","ISINF")

elseif cRad=2

TxtDuplicata(1) && Promissória Franklin Joias

&& TXTDup12(oDlgMan,.T.) && Promissoria Casa Shopping e Boticario

else

RelDuplic() && Promissória

endif

CASE cValues=3

if cRad=1

INFO4("Relatório não disponível para esta Impressora!","Informa!","ISINF")

elseif cRad=2

TxtCarne(1) && Carne COM moldura

&& TXTCarne1(1) && Carne SEM moldura

else

RelCarne() && Carne

endif

CASE cValues=4

INFO4("Relatório não disponível para esta Impressora!","Informa!","ISINF")

ENDCASE

FechaArqs1()

oDlgPes:End()

ENDIF

CursorArrow()

if cOrig="T"

SELECT ite

ite->(dbSetOrder("numero"))

ite->(ordScope(0,cNumtran))

ite->(ordScope(1,cNumtran))

ite->(dbGoTop())

else

SELECT itt

itt->(dbSetOrder("numero"))

itt->(ordScope(0,cNumtran))

itt->(ordScope(1,cNumtran))

itt->(dbGoTop())

endif

RETURN nil

Exemplo de relatorio....

****************************************************************************

Function RelRecibo(cNumtran,cTitem,cClinome,cEnd,cCidnome,cUf,cBairro,cFone)

****************************************************************************

PRIVATE filtro:=SPACE(20)

********************

rot1 := 'TRA_002'

pag := 0

filtro := "ite->(numtran)=cNumTran"

iif(cRadop=2, rot2:="VENDA A PRAZO",rot2:="VENDA À VISTA")

iif(cRadop=2, btitulo := {||r_0002()},btitulo := {||r_0002a()})

*****

CursorWait()

SELECT ite

ite->(dbSetOrder("numero"))

ite->(dbGoTop())

****

if !rel_ini()

return nil

endif

****

if dbSeek( cNumTran )

do while ite->(!Eof())

if &filtro

Box (linha,lmargem+0.3, linha+lsalto,lmargem+2.7)

Box (linha,lmargem+2.7, linha+lsalto,lmargem+4.7)

Box (linha,lmargem+4.7, linha+lsalto,lmargem+13.0)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+14.7)

Box (linha,lmargem+14.7,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+2.7, ite->cbarras,oFnt_rel8)

say_e(linha,lmargem+2.7, linha+lsalto,lmargem+4.7, ite->ref ,oFnt_rel8)

Say_e(linha,lmargem+4.7, linha+lsalto,lmargem+13.0,RTRIM(SUBSTR(ite->pronome,1,30))+" "+RTRIM(SUBSTR(ite->promarca,1,10))+" "+RTRIM(SUBSTR(ite->procor,1,10)),ofnt_rel8)

cVlpro:= (ite->(prv)-ite->(desc)) && Com Desconto por Produto

&& cVlpro:= ite->(prv) && Desconto Geral

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+14.7,Tran(cVlpro ,"999,999.99") ,ofnt_rel8)

Say_d(linha,lmargem+14.7,linha+lsalto,lmargem+16.5,Tran(ite->quant ,"99999999.99"),ofnt_rel8)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(ite->vl_total,"9,999,999.99") ,ofnt_rel8)

linha = linha + lsalto

ite->(dbskip(1))

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

else

ite->(dbskip(1))

LOOP

endif

enddo

SELECT bol

bol->(dbSetOrder("numero"))

bol->(dbGoTop())

if dbSeek( cNumTran )

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

box_d(linha,lmargem+13.0,linha+lsalto,nhori-0.5)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL DA VENDA(=)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTprod,"9,999,999.99"),ofnt_rel8b)

linha = linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL DE DESCONTOS(-)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTdesc,"9,999,999.99") ,ofnt_rel8)

linha = linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

if cRadop=2

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"VALOR DE ENTRADA(-)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cVlent,"9,999,999.99") ,ofnt_rel8)

linha = linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

box_d(linha,lmargem+13.0,linha+lsalto,nhori-0.5)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL A PAGAR(=)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTparc,"9,999,999.99") ,ofnt_rel9b)

else

box_d(linha,lmargem+13.0,linha+lsalto,nhori-0.5)

Box (linha,lmargem+13.0,linha+lsalto,lmargem+16.5)

Box (linha,lmargem+16.5,linha+lsalto,nhori-0.5)

Say_d(linha,lmargem+13.0,linha+lsalto,lmargem+16.5,"TOTAL A PAGAR(=)",ofnt_rel9b)

Say_d(linha,lmargem+16.5,linha+lsalto,nhori-0.5, Tran(cTvend,"9,999,999.99") ,ofnt_rel10b)

endif

linha = linha + lsalto

else

rel_fim()

Info4("Boleto não encontrado!","Aviso!!","ISSTOP")

RETURN nil

endif

if cRadop=2

SELECT par

par->(dbSetOrder("numero"))

par->(dbGoTop())

if dbSeek( cNumTran )

box_d(linha,lmargem+0.3, linha+lsalto,lmargem+9.0)

Box (linha,lmargem+0.3, linha+lsalto,lmargem+1.5)

Box (linha,lmargem+1.5, linha+lsalto,lmargem+3.5)

Box (linha,lmargem+3.5, linha+lsalto,lmargem+5.5)

Box (linha,lmargem+5.5, linha+lsalto,lmargem+9.0)

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+1.5, "Parcela",oFnt_rel9b)

say_e(linha,lmargem+1.5, linha+lsalto,lmargem+3.5, "Vencimento",oFnt_rel9b)

Say_e(linha,lmargem+3.5, linha+lsalto,lmargem+5.5, "Valor R$",ofnt_rel9b)

Say_e(linha,lmargem+5.5, linha+lsalto,lmargem+9.0, "Situação",ofnt_rel9b)

box_d(linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

box (linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

*** && segunda coluna parcelas

box_d(linha,lmargem+9.3, linha+lsalto,nhori-0.5)

Box (linha,lmargem+9.3, linha+lsalto,lmargem+10.5)

Box (linha,lmargem+10.5,linha+lsalto,lmargem+12.5)

Box (linha,lmargem+12.5,linha+lsalto,lmargem+14.5)

Box (linha,lmargem+14.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+9.3, linha+lsalto,lmargem+10.5,"Parcela",oFnt_rel9b)

say_e(linha,lmargem+10.5,linha+lsalto,lmargem+12.5,"Vencimento",oFnt_rel9b)

Say_e(linha,lmargem+12.5,linha+lsalto,lmargem+14.5,"Valor R$",ofnt_rel9b)

Say_e(linha,lmargem+14.5,linha+lsalto,nhori-0.5, "Situação",ofnt_rel9b)

linha := linha + lsalto

do while par->(!Eof())

if par->(numtran)=cNumTran

SysRefresh()

Box (linha,lmargem+0.3, linha+lsalto,lmargem+1.5)

Box (linha,lmargem+1.5, linha+lsalto,lmargem+3.5)

Box (linha,lmargem+3.5, linha+lsalto,lmargem+5.5)

Box (linha,lmargem+5.5, linha+lsalto,lmargem+9.0)

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+1.5, Tran(par->letra,"99"),oFnt_rel10)

say_e(linha,lmargem+1.5, linha+lsalto,lmargem+3.5, Tran(par->dtvencim,"99/99/9999"),oFnt_rel10)

Say_d(linha,lmargem+3.5, linha+lsalto,lmargem+5.5, Tran(par->vl_parc,"999,999.99") ,ofnt_rel10)

Say_e(linha,lmargem+5.5, linha+lsalto,lmargem+9.0, iif(par->(sitparc)="D","Devedor","Quitado"),ofnt_rel10)

***

par->(dbskip())

if par->(numtran)=cNumTran

box_d(linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

box (linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

Box (linha,lmargem+9.3, linha+lsalto,lmargem+10.5)

Box (linha,lmargem+10.5,linha+lsalto,lmargem+12.5)

Box (linha,lmargem+12.5,linha+lsalto,lmargem+14.5)

Box (linha,lmargem+14.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+9.3, linha+lsalto,lmargem+10.5,Tran(par->letra,"99"),oFnt_rel10)

say_e(linha,lmargem+10.5,linha+lsalto,lmargem+12.5,Tran(par->dtvencim,"99/99/9999"),oFnt_rel10)

Say_d(linha,lmargem+12.5,linha+lsalto,lmargem+14.5,Tran(par->vl_parc,"999,999.99") ,ofnt_rel10)

Say_e(linha,lmargem+14.5,linha+lsalto,nhori-0.5, iif(par->(sitparc)="D","Devedor","Quitado"),ofnt_rel10)

par->(dbskip())

else

box_d(linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

box (linha,lmargem+9.0, linha+lsalto,lmargem+9.3)

Box (linha,lmargem+9.3, linha+lsalto,lmargem+10.5)

Box (linha,lmargem+10.5,linha+lsalto,lmargem+12.5)

Box (linha,lmargem+12.5,linha+lsalto,lmargem+14.5)

Box (linha,lmargem+14.5,linha+lsalto,nhori-0.5)

say_e(linha,lmargem+9.3, linha+lsalto,lmargem+10.5,"**" ,oFnt_rel10)

say_e(linha,lmargem+10.5,linha+lsalto,lmargem+12.5,"**********" ,oFnt_rel10)

Say_d(linha,lmargem+12.5,linha+lsalto,lmargem+14.5,"**********" ,ofnt_rel10)

Say_e(linha,lmargem+14.5,linha+lsalto,nhori-0.5, "*******" ,ofnt_rel10)

endif

linha := linha + lsalto

if linha > nvert -1.5

rel_continua()

SysRefresh()

endif

else

par->(dbskip(1))

loop

endif

enddo

*/

else

rel_fim()

Info4("Parcelas não encontradas!","Aviso!!","ISSTOP")

RETURN nil

endif

endif

linha := linha + lsalto

say_e(linha,lmargem+0.3, linha+lsalto,lmargem+14.0, "Ass:_______________________________________",oFnt_rel10)

linha := linha + lsalto

linha := linha + lsalto

say_c(linha,lmargem+6.0, linha+lsalto,lmargem+14.0, "*** CUPOM SEM VALIDADE FISCAL ***",oFnt_rel10)

linha := linha + lsalto

say_c(linha,lmargem+6.0, linha+lsalto,lmargem+14.0, "**** OBRIGADO, VOLTE SEMPRE ****",oFnt_rel10)

else

rel_fim()

Info4("Recibo não encontrado!","Aviso!!","ISSTOP")

RETURN nil

endif

rel_fim()

Return nil

Valeu a todos!!!

JHILBERT

FW7.04/BCC5.51/xHarbour0.9971/PellesC/xDEv0.65/vLIB

id=code>id=code>
Link to comment
Share on other sites

citação:


PRINT oPrn NAME "Ficha Cadastral do Aluno" PREVIEW MODAL

id=code>id=code>

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

Olá João,

Colocando o MODAL... funciona.. só que (como estou usando a VPRINTER da VLIB do VAGNER) ocorre que quando coloco o MODAL e saio... é como se o preview não encerrasse... fica o sistema ativo no gerenciador de tarefas???

Não teria uma forma de voltar o foco para dialog quando fechar o preview??

JHILBERT

FW7.04/BCC5.51/xHarbour0.9971/PellesC/xDEv0.65/vLIB

Link to comment
Share on other sites

Olá, voce não está esquecendo nada?

está encerrando o PREVIEW quando termina a impressão?

Quando voce clicka no botão de SAIDA do PREVIEW, o que acontece??

Melhor, é mostrar ao AUTOR do Projeto VLIB.LIB, não tenho dominio sobre a mesma. Apesar de BELA, meus PARCOS conhecimentos, não me permitem ter o prazer de usá-la.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

Olá Jeorge,

Como lhe respondi por e-mail, vc deve estar colocando MDI na sua window principal, mesmo o preview normal do fw acontece isso.

Faça um teste e retire o MDI da sua window principal.

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Desculpe, discordo. uso somente MDI -> MULTIPLES INTERFACES DEFINITION, e não tenho problemas com PREVIEW MODAL, deste que eu não DISPARE DIRETO do MENU PRINCIPAL por exemplo. Sempro disparo para um DIALOGO, e não tenho problemas com a VOLTA DO FOCO.

Mas...

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Editado por - kapiaba on 07/08/2008 13:18:08

Link to comment
Share on other sites

citação:

citação:

Olá Jeorge,

Como lhe respondi por e-mail, vc deve estar colocando MDI na sua window principal, mesmo o preview normal do fw acontece isso.

Faça um teste e retire o MDI da sua window principal.

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Desculpe, discordo. uso somente MDI -> MULTIPLES INTERFACES DEFINITION, e não tenho problemas com PREVIEW MODAL, deste que eu não DISPARE DIRETO do MENU PRINCIPAL por exemplo. Sempro disparo para um DIALOGO, e não tenho problemas com a VOLTA DO FOCO.

Mas...

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Editado por - kapiaba on 07/08/2008 13:18:08


id=quote>id=quote>

Vou testar retirando o MDI...

...Mas devo colocar ( MODAL ) no preview??? e no caso da VDOSPRN como colocar (MODAL)??

Mais uma vez obrigadoa juda de todos!!!

JHILBERT

FW7.04/BCC5.51/xHarbour0.9971/PellesC/xDEv0.65/vLIB

Link to comment
Share on other sites

citação:

citação:

Olá Jeorge,

Como lhe respondi por e-mail, vc deve estar colocando MDI na sua window principal, mesmo o preview normal do fw acontece isso.

Faça um teste e retire o MDI da sua window principal.

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif


id=quote>id=quote>

Desculpe, discordo. uso somente MDI -> MULTIPLES INTERFACES DEFINITION, e não tenho problemas com PREVIEW MODAL, deste que eu não DISPARE DIRETO do MENU PRINCIPAL por exemplo. Sempro disparo para um DIALOGO, e não tenho problemas com a VOLTA DO FOCO.

Mas...

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Editado por - kapiaba on 07/08/2008 13:18:08


id=quote>id=quote>

Olá João,

Faça o teste sem o Modal do preview pra vc ver como fica ao invés de ficar discordando a toa icon_smile_big.gif

Vagner Wirts

VI Encontro está chegando icon_smile_big.gif, não perca icon_smile_big.gif

Link to comment
Share on other sites

O meu filho, aprenda a ler, VEJA A MINHA RESPOSTA PARA ELE:

PREVIEW MODAL.

É assim que eu faço com MDI e PREVIEW.

Esta parte ele resolveu problema, se entendi o problema dele, é que DEPOIS QUE IMPRIME, o FOCO NÃO VOLTA AO DIALOGO. Comigo, isto não ocorre.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

O meu filho, aprenda a ler, VEJA A MINHA RESPOSTA PARA ELE:

PREVIEW MODAL.

É assim que eu faço com MDI e PREVIEW.

Esta parte ele resolveu problema, se entendi o problema dele, é que DEPOIS QUE IMPRIME, o FOCO NÃO VOLTA AO DIALOGO. Comigo, isto não ocorre.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

Bom... João...

Tirei o (MDI)... e não coloquei o MODAL no preview... ficou funcionando... quando fecho o preview o foco volta para a tela de venda....

....(mas sabe como é o windows... não se pode confiar muito) e neste caso, gostaria de quando fechar o preview (colocar um.... minhaOdlg:setfocus() para ter certeza que voltaria para dialog que chamou a rotina so depois que eu fechar o preview....

Valeu a todos!!!

JHILBERT

FW7.04/BCC5.51/xHarbour0.9971/PellesC/xDEv0.65/vLIB

Link to comment
Share on other sites

O que dá pra fazer tb é uma pequena alteração no preview pra receber a dialog que vc quer setar o foco como parâmetro, no código onde vc fecha o preview é só mandar o foco pra essa variavel que esta apontando pra sua ultima dialog.

É assim que faço e funciona bem!

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...