Código: Selecionar todos
No resource crio :- Browse - Combo : Cliente Selecionar pelo qual campo deseja procurar
- Get : onde vai digitar o que deseja procurar.
DEFINE DIALOG oDlg RESOURCE "DLG_CON_MER" TITLE "..:: Manutenção de Dados .::. PRODUTOS ::.."
*
oDlg:lTransparent := .T.
oDlg:lHelpIcon := .F.
*
oBrwMerca := TxBrowse():New( oDlg )
oBrwMerca:CreateFromResource( 4002 )
oBrwMerca:cAlias := 'BanMerca'
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_GENERICO TITLE "" SIZE 032 ALIGN LEFT
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_FAMILIA TITLE "FamÃlia" SIZE 150
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_CODBAR TITLE "Codigo de Barras" SIZE 150
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_VENDA TITLE "Pr.Venda" SIZE 100 COLORS CLR_HRED ALIGN RIGHT PICTURE "@E R$99,999.99"
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_QUANTIDA TITLE "Qtde" SIZE 080 COLORS CLR_HRED ALIGN RIGHT PICTURE "@E 9,999.99"
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_DESCRICA TITLE "Descrição" SIZE 450 COLORS CLR_HRED
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_CODIGO TITLE "Código" SIZE 080
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_REFERENC TITLE "Cod.Peça" SIZE 100
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_DENTRADA TITLE "Dt.Ult.Entrada" SIZE 100
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_QENTRADA TITLE "Qt.Ult.Entrada" SIZE 100
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_DSAIDA TITLE "Dt.Ult.SaÃda" SIZE 100
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_QSAIDA TITLE "Qt.Ult.SaÃda" SIZE 100
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_DATACADA TITLE "Dt.Cadastro" SIZE 100
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_DALTERA TITLE "Dt.Ult.Alteração" SIZE 100
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_CUSTO TITLE "Pr.Custo" SIZE 150 COLORS CLR_HRED ALIGN RIGHT PICTURE "@E R$99,999.99"
*
ADD COLUMN oCol TO XBROWSE oBrwMerca DATA BanMerca->M_PERMITIR TITLE "Estoque" SIZE 50
*
REDEFINE COMBOBOX oCbx VAR cCampo PROMPTS {"Descrição","Código","Code Bar","Cod.Peça","FamÃlia","Aplicação"} UPDATE ID 108 OF oDlg
*
REDEFINE GET oGet VAR cProcura ID 106 OF oDlg ON CHANGE (BcDdProduto(oGet,cCampo,oBrwMerca), oDlg:Refresh())
*
REDEFINE BUTTON ID 107 OF oDlg ACTION (EditProduto(1), oBrwMerca:Refresh(), oDlg:Update(), oDlg:Refresh()) When lS_Cadastro
REDEFINE BUTTON ID 105 OF oDlg ACTION (oDlg:End())
REDEFINE BUTTON ID 102 OF oDlg ACTION (EditProduto(2), oBrwMerca:Refresh(), oDlg:Update(), oDlg:Refresh()) When lS_Altera
REDEFINE BUTTON ID 103 OF oDlg ACTION (Excluir(), oBrwMerca:Refresh(), oDlg:Update(), oDlg:Refresh()) When lS_Exclui
*
oBrwMerca:nRowHeight := 35
oBrwMerca:lColDividerComplete := .f.
oBrwMerca:nDataLines := 1 // Number of lines of the data rows
oBrwMerca:nHeaderLines := 1 // Number of lines of the header
oBrwMerca:nFooterLines := 1 // Number of lines of the footer
oBrwMerca: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
oBrwMerca:nHeaderHeight := 25
oBrwMerca: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
oBrwMerca: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
oBrwMerca:nMarqueeStyle := 4 // Marquee style (row selected) 0 No Marquee 1 Dotted cell 2 Solid cell 3 Highlight cell 4 Highlight row & Raise Cell 5 Highlight row 6 Highlight row & multiselect
oBrwMerca:bSeek := {|c| cProcura := Pad(C,30), oGet:Refresh(), DbSeek(Upper( c )) }
oBrwMerca:bClrSelFocus := {|| {cCorFrente, cCorfundo} }
oBrwMerca:bClrSel := {|| {cCorFrente, cCorfundo} }
oBrwMerca:bClrStd := {|| {cCorFrente, IIF( BANMERCA->( OrdKeyNo() )%2 == 0, CLR_WHITE, nRGB(232,232,232) ) }}
oBrwMerca:SetRDD(.F.)
*
oBrwMerca:lAllowRowSizing := .F.
oBrwMerca:lAllowColSwapping := .F.
oBrwMerca:lAllowColHiding := .F.
*
oBrwMerca:aCols[3]:oDataFont := oFont
oBrwMerca:aCols[4]:oDataFont := oFont
oBrwMerca:aCols[5]:oDataFont := oFont
oBrwMerca:aCols[6]:oDataFont := oFont
oBrwMerca:aCols[7]:oDataFont := oFont
oBrwMerca:aCols[8]:oDataFont := oFont
*
oBrwMerca:aCols[5]:AddBmpFile( "BMP\Organiza.bmp" )
oBrwMerca:aCols[5]:nHeadBmpNo := 0
oBrwMerca:aCols[5]:nHeadBmpAlign := 1
*
oBrwMerca:aCols[7]:AddBmpFile( "BMP\Organiza.bmp" )
oBrwMerca:aCols[7]:nHeadBmpNo := 1
oBrwMerca:aCols[7]:nHeadBmpAlign := 1
*
oBrwMerca:aCols[5]:bLClickHeader := {|| Sel("BanMerca",1), oBrwMerca:aCols[5]:nHeadBmpNo := 1, oBrwMerca:aCols[7]:nHeadBmpNo := 0,oBrwMerca:Refresh() }
oBrwMerca:aCols[7]:bLClickHeader := {|| Sel("BanMerca",2), oBrwMerca:aCols[5]:nHeadBmpNo := 0, oBrwMerca:aCols[7]:nHeadBmpNo := 1,oBrwMerca:Refresh() }
*
oBrwMerca:aCols[1]:AddBmpFile( "BMP\UP.Bmp" )
oBrwMerca:aCols[1]:AddBmpFile( "BMP\DOWN1.Bmp" )
oBrwMerca:aCols[1]:bBmpData := { || If(BanMerca->M_PERMITIR,1,If( BanMerca->M_QUANTIDA > M_EMINIMO, 1, 2 )) }
oBrwMerca:aCols[1]:bStrData := { || "" }
oBrwMerca:aCols[1]:nDataBmpAlign := 3
*
If lS_Altera
oBrwMerca:aCols[4]:nEditType := EDIT_GET
oBrwMerca:aCols[4]:bOnPostEdit := {|o,x| RecLock(),FieldPut( FieldPos("M_VENDA"), x ),UnLockRecord() }
oBrwMerca:aCols[4]:cEditPicture := "@E 9,999.99"
oBrwMerca:aCols[4]:lEditBorder := .f.
oBrwMerca:aCols[4]:bEditValid := {|| !Empty(M_VENDA), oBrwMerca:SetFocus(), .t. } // nPosTmp:= RecNO(), oBrwMerca:Refresh(.t.), DbGoTo(nPosTmp), .t. }
*
oBrwMerca:aCols[5]:nEditType := EDIT_GET
oBrwMerca:aCols[5]:bOnPostEdit := {|o,x| GravaAltQtde(x) }
oBrwMerca:aCols[5]:cEditPicture := "@E 9,999.99"
oBrwMerca:aCols[5]:lEditBorder := .f.
oBrwMerca:aCols[5]:bEditValid := {|| oBrwMerca:SetFocus(), .t. } // nPosTmp:= RecNO(), oBrwMerca:Refresh(.t.), DbGoTo(nPosTmp), .t. }
End
*
oBrwMerca:bLDblClick := {|| If(MsgYesNo("Imprimir Folha MESA?"),PrtMesa(M_CODIGO),) }
oBrwMerca:cToolTip := "- Dois Clique no Produto para Imprimir Folha MESA"
*
oBrwMerca:SetFocus()
oBrwMerca:lFastEdit := .t.
*
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" // Abre o Arquivo em Ordem Familia
Sel(DBF(),4)
Case AllTrim(cC) == "Aplicação" // Abre o Arquivo em Ordem Aplicacao
Sel(DBF(),3)
Case AllTrim(cC) == "Código" // Abre o Arquivo em Ordem Codigo
Sel(DBF(),1)
Case AllTrim(cC) == "Cod.Peça" // Abre o Arquivo em ordem Cod.Peça
Sel(DBF(),5)
Case AllTrim(cC) == "Code Bar" // abre o Arquivo em ordem codigo de Barras
Sel(DBF(),6)
EndCase
*
dbSetOrder( INDEXORD() ) // define a ordem de filtro
ordScope( 0, RTrim(cPRO) ) // TOP (De...)
ordScope( 1, RTRim(cPro) ) // BOTTOM (..Até)
*
dbGoTop()
oB:Refresh()
*
Return(.T.)