Code: Select all
Function PesqProd( oGet1, oText1, cFam_Prod, lEsto, lEntr )
Local oFontB, oFontH, oFont1, oLbxPePd, oDlgPePd, oCol, cAlias:=Alias(), nIndice:=Prod->(IndexOrd()),;
aRes:=ScrResolution(), cSelect
DEFINE FONT oFontB NAME oApp:cFontBrow SIZE 0, oApp:cFontBrowLen
DEFINE FONT oFontH NAME oApp:cFontBrow SIZE 0, oApp:cFontBrowLen-2 BOLD
DEFINE FONT oFont1 NAME oApp:cFontGet SIZE 0, oApp:cFontGetLen
dbSelectAreaSql("Prod")
Prod->(DbSetOrder("Prod2"))
SR_SetActiveConnection (nConn0)
If !SR_ExistTable( "prod" )
SR_SetActiveConnection (nConn1)
Endif
cSelect := "SELECT * FROM prod WHERE at1_prod="+Sr_cDbValue("F")+" and fam_prod="+Sr_cDbValue(cFam_Prod)+" order by nom_prod"
DbUseArea(.t., "SQLRDD", cSelect, "Prod")
dbSelectArea( "Prod" )
Prod->(DbGoTop())
// SR_SETFILTER("at1_prod='A' and fam_prod='"+cFam_Prod+"'")
// Prod->(DbGoTop())
DEFINE DIALOG oDlgPePd SIZE aRes[1]*96/100, aRes[2]*74/100 TITLE "Produto"
@ 1.3,0 xBROWSE oLbxPePd FIELDS Prod->Fam_Prod+Prod->Cod_Prod+CRLF+Prod->Bar_Prod,;
Prod->Nom_Prod+CRLF+Prod->Fam_Prod+"-"+Fami->Nom_Fami,;
Prod->Uni_Prod+CRLF,;
Prod->Ref_Prod+CRLF+Prod->Mar_Prod,;
Prod->Ncm_Prod+CRLF+Prod->Ces_Prod,;
If(!Prod->Dec_Prod, Tran(Pres->Eat_Pres,"9999999"), Tran(Pres->Eat_Pres,"9999999.999"))+CRLF+Tran(If(Empr->Prc_Empr=.t., Prod->Pfa_Prod, Prod->Pve_Prod), If(Empr->Dec_Empr=.t.,"@E 999,999.9999","@E 999,999.99"));
HEADERS "GrCód."+CRLF+"Cód.:Barra",;
"Descrição Produto",;
"MD"+CRLF+"S",;
"Referência"+CRLF+"Marca",;
"NCM"+CRLF+"CEST",;
"Estoque"+CRLF+"Prç."+If(Empr->Prc_Empr=.t., "Atacado", "Varejo");
JUSTIFY .f., .f., .f., .f., .f., .t.;
SIZE aRes[1]*48/100, aRes[2]*33/100 FONT oFontB ALIAS "PROD" OF oDlgPePd
oLbxPePd:nMarqueeStyle := MARQSTYLE_HIGHLROW
oLbxPePd:nColDividerStyle := LINESTYLE_BLACK
oLbxPePd:nRowDividerStyle := LINESTYLE_BLACK
oLbxPePd:lColDividerComplete := .t.
oLbxPePd:lFooter := .t.
oLbxPePd:nFreeze := 0
oLbxPePd:bClrSelFocus := {|| { CLR_BLACK, CLR_FOCO } }
oLbxPePd:nHeaderLines := 2
oLbxPePd:nDataLines := 2
oLbxPePd:bKeyDown := {|nKey| BrwKeyPePr(nkey, oDlgPePd, oLbxPePd, oGet1, oText1, lEsto, lEntr) }
oLbxPePd:bLDblClick := { || EditProd( oLbxPePd, .f., .f., .t.) }
oLbxPePd:bClrStd := {|| { CLR_WHITE, If((Prod->(ORDKEYNO()))%2==0, CLR_BRW1, CLR_BRW2) } }
oLbxPePd:lIncrFilter := .t.
oCol := oLbxPePd:aCols[ 1 ]
oCol:cSortOrder := 'PROD1'
ocol:cToolTip:="Clique para ordenar por código do produto"
oCol := oLbxPePd:aCols[ 2 ]
oCol:cSortOrder := 'PROD2'
ocol:cToolTip:="Clique para ordenar por descrição do produto"
oCol := oLbxPePd:aCols[ 3 ]
oCol:AddResource("BMP_CHE1")
oCol:AddResource("BMP_CHE2")
oCol:bStrData := { || Prod->Uni_Prod }
oCol:bBmpData := { || If(Prod->Ati_Prod, 2, 1) }
oCol := oLbxPePd:aCols[ 4 ]
oCol:cSortOrder := 'PROD7'
ocol:cToolTip:="Clique para ordenar por Referencia do produto"
oLbxPePd:SetRDD()
oLbxPePd:CreateFromCode()
oDlgPePd:oClient := oLbxPePd
oDlgPePd:lHelpIcon := .f.
ACTIVATE DIALOG oDlgPePd ON INIT (oLbxPePd:SetFocus(), DlgPePdToolBar(oDlgPePd, oLbxPePd, oGet1, oText1, cFam_Prod, lEsto, lEntr))
Prod->(dbCloseArea())
oLbxPePd := nil
// SR_SetActiveConnection (nConn0)
// If !SR_ExistTable( "prod" )
// SR_SetActiveConnection (nConn1)
// Endif
// SR_SETFILTER("sr_recno != 0")
Prod->(DbSetOrder(nIndice))
dbSelectAreaSql(cAlias)
Return nil
*--------------------------------------------------------------------------------
Static FUNCTION DlgPePdToolBar(oDlgPePd, oLbxPePd, oGet1, oText1, cFam_Prod, lEsto, lEntr)
LOCAL oToolBarPePd, oImageListPePd, oPesqCombo, nPesqCombo:=1, oFontH
DEFINE FONT oFontH NAME oApp:cFontBrow SIZE 0, oApp:cFontBrowLen BOLD
SET MESSAGE OF oDlgPePd 2007 TO "Cadastro de Produtos"
DEFINE IMAGELIST oImageListPePd SIZE 24, 24
DEFINE IMGBITMAP OF oImageListPePd NAME "BMP_NOVO" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageListPePd NAME "BMP_EDIT" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageListPePd NAME "BMP_DELE" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageListPePd NAME "BMP_REST" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageListPePd NAME "BMP_SAI2" COLOR nRGB( 255, 0, 255 )
DEFINE TOOLBAR oToolBarPePd OF oDlgPePd SIZE 26, 30 IMAGELIST oImageListPePd BALLOON 2007
DEFINE TBBUTTON OF oToolBarPePd;
ACTION (EditProd(oLbxPePd, .t., .t., lEsto, lEntr), Prod->(DbSetOrder("Prod4")));
TOOLTIP "Novo F2"
DEFINE TBBUTTON OF oToolBarPePd;
ACTION (EditProd(oLbxPePd, .f., .t., lEsto, lEntr), Prod->(DbSetOrder("Prod4")) );
TOOLTIP "Editar F3"
DEFINE TBBUTTON OF oToolBarPePd;
ACTION (DelProd(oLbxPepd), Prod->(DbSetOrder("Prod4")));
TOOLTIP "Deletar F4"
DEFINE TBSEPARATOR OF oToolBarPePd
DEFINE TBBUTTON OF oToolBarPePd;
ACTION ( oText1:Refresh(), If(Empr->Bar_Empr=.f., oGet1:varput(Val(Prod->Cod_Prod)), oGet1:varput(Prod->Bar_Prod) ), oGet1:Refresh(), oDlgPePd:End() );
TOOLTIP "Selecionar [ENTER]"
DEFINE TBSEPARATOR OF oToolBarPePd
DEFINE TBBUTTON OF oToolBarPePd ACTION oDlgPePd:End() TOOLTIP "Sair"
DEFINE TBSEPARATOR OF oToolBarPePd
@ 6, 230 COMBOBOX oPesqCombo VAR nPesqCombo ITEMS {"DESCRIÇÃO", "CÓDIGO", "REFERÊNCIA", "MARCA"} OF oToolBarPePd PIXEL COLOR CLR_GET1,CLR_GET2 SIZE 100, 20 FONT oFontH ON CHANGE MudaOrdemProdPesqNoFilter(nPesqCombo, oLbxPePd)
@ 8, 340 SAY oLbxPePd:oSeek PROMPT oLbxPePd:cSeek PICTURE "@!" UPDATE OF oToolBarPePd PIXEL COLOR CLR_GET1, CLR_GET2 FONT oFontH SIZE 150, 20 BORDER
Return nil
*-------------------------------