×
Linguagem de Programação ADVPL
Perguntas Markbrow
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
11 anos 3 meses atrás #16157
por mbrigagao
Guilherme, bom dia.
Segue a mesma rotina, porém atualizada, onde estou usando uma query para montar uma tabela temporaria.
Segue a mesma rotina, porém atualizada, onde estou usando uma query para montar uma tabela temporaria.
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³VK904Slp ³ Autor ³ Marcelo Brigagao ³ Data ³ 11/11/10 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³Seleciona pedido para controle de projetos ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function VK904Slp()
Local cQryTRB := ""
Local aCpos := {}
Local aBkRotina := Aclone(aRotina)
Local cTitBrow := OemToAnsi("Controle de Projeto")
Local _cArq := "T_"+Criatrab(,.F.)
Private cAliasTRB := GetNextAlias()
Private cAliasTMP := GetNextAlias()
Private aRotina := {{"Processa","U_VK904CPR", 0,4}}
cQryTRB := "SELECT SC6.*,SC6.R_E_C_N_O_ AS C6RECNO FROM "
cQryTRB += RetSqlName("SC6") + " SC6 WHERE "
cQryTRB += "SC6.D_E_L_E_T_ = ' ' AND "
If _lEnvia
cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_XDTENV = ' ' And ( SC6.C6_BLQ = ' ' Or SC6.C6_BLQ = 'N' )"
Else
cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_XDTENV <> ' ' And SC6.C6_XDTRET = ' ' And ( SC6.C6_BLQ = ' ' Or SC6.C6_BLQ = 'N' )"
EndIf
cQryTRB += " And SC6.C6_NUM>='"+_cPedIni+"' And SC6.C6_NUM<='"+_cPedFim+"'"
cQryTRB += " ORDER BY "+SqlOrder(SC6->(IndexKey()))
cQryTRB := ChangeQuery(cQryTRB)
dbUseArea( .T.,"TOPCONN", TcGenQry( ,,cQryTRB ), cAliasTMP, .T., .F. )
aStruSC6 := dbStruct("SC6")
For nX := 1 To Len(aStruSC6)
If ( aStruSC6[nX][2] <> "C" )
TcSetField(cAliasTMP,aStruSC6[nX][1],aStruSC6[nX][2],aStruSC6[nX][3],aStruSC6[nX][4])
EndIf
Next nX
TcSetField(cAliasTMP,"C6_XDTENV","D",8,0)
TcSetField(cAliasTMP,"C6_XDTRET","D",8,0)
TcSetField(cAliasTMP,"C6_ENTREG","D",8,0)
TcSetField(cAliasTMP,"C6_DATFAT","D",8,0)
dbSelectArea(cAliasTMP)
copy to &_carq
dbUseArea( .T.,__LOCALDRIVER, _cArq,cAliasTRB, .T. , .F. )
dbSelectArea(cALiasTRB)
dbGoTop()
aCpos := {}
aAdd(aCpos,{"C6_XDTENV" ,,"Dt.Env.Projeto" ,PesqPict("SC6","C6_XDTENV")})
aAdd(aCpos,{"C6_XDTRET" ,,"Dt.Ret.Projeto" ,PesqPict("SC6","C6_XDTRET")})
aAdd(aCpos,{"C6_XPROG" ,,"Prog.Produção" ,PesqPict("SC6","C6_XPROG")})
aAdd(aCpos,{"C6_NUM" ,,"Nr.Pedido" ,PesqPict("SC6","C6_NUM")})
aAdd(aCpos,{"C6_ITEM" ,,"It.Pedido" ,PesqPict("SC6","C6_ITEM")})
aAdd(aCpos,{"C6_PRODUTO" ,,"Produto" ,PesqPict("SC6","C6_PRODUTO")})
aAdd(aCpos,{"C6_DESCRI" ,,"Descrição" ,PesqPict("SC6","C6_DESCRI")})
aAdd(aCpos,{"C6_QTDVEN" ,,"Qtd.Vendida" ,PesqPict("SC6","C6_QTDVEN")})
aAdd(aCpos,{"C6_OPC" ,,"Opcionais" ,PesqPict("SC6","C6_OPC")})
aAdd(aCpos,{"C6_MEDIDA" ,,"Med./Formação" ,PesqPict("SC6","C6_MEDIDA")})
aAdd(aCpos,{"C6_ENTREG" ,,"Entrega " ,PesqPict("SC6","C6_ENTREG")})
aAdd(aCpos,{"C6_NUMOP" ,,"Nr. OP" ,PesqPict("SC6","C6_NUMOP") })
aAdd(aCpos,{"C6_ITEMOP" ,,"Item OP" ,PesqPict("SC6","C6_ITEMOP")})
aAdd(aCpos,{"C6_QTDENT" ,,"Qtd.Entregue" ,PesqPict("SC6","C6_QTDENT")})
aAdd(aCpos,{"C6_CLI" ,,"Cod.Cliente" ,PesqPict("SC6","C6_CLI")})
aAdd(aCpos,{"C6_NOTA" ,,"Nr.N Fiscal" ,PesqPict("SC6","C6_NOTA")})
aAdd(aCpos,{"C6_SERIE" ,,"Serie NF" ,PesqPict("SC6","C6_SERIE")})
aAdd(aCpos,{"C6_DATFAT" ,,"Data NF" ,PesqPict("SC6","C6_DATFAT")})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Construcao do MarkBrowse ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
oMark:=FWMarkBrowse():NEW() // Cria o objeto oMark - MarkBrowse
oMark:SetAlias(cAliasTRB) // Define a tabela do MarkBrowse
oMark:SetDescription(cTitBrow) // Define o titulo do MarkBrowse
oMark:SetFieldMark("C6_OK") // Define o campo utilizado para a marcacao
oMark:SetFilterDefault() // Define o filtro a ser aplicado no MarkBrowse
oMark:SetFields(aCpos) // Define os campos a serem mostrados no MarkBrowse
oMark:SetSemaphore(.F.) // Define se utiliza marcacao exclusiva
//oMark:DisableDetails() // Desabilita a exibicao dos detalhes do MarkBrowse
//oMark:DisableConfig() // Desabilita a opcao de configuracao do MarkBrowse
//oMark:DisableReport() // Desabilita a opcao de imprimir do MarkBrowse
oMark:Activate() // Ativa o MarkBrowse
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Restaura condicao original ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea(cAliasTRB)
dbCloseArea(cAliasTRB)
dbSelectArea(cAliasTMP)
dbCloseArea(cAliasTMP)
fErase(_cArq+".DBF")
dbSelectArea("SC6")
RetIndex("SC6")
dbClearFilter()
aRotina := ACLONE(aBkRotina)
Return()
Por favor Acessar ou Registrar para participar da conversa.
- titosca
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 7
- Obrigados Recebidos: 0
11 anos 3 meses atrás #16163
por titosca
Abusando um pouco da sua boa vontade Marcelo,
É o primeiro contato meu com esse objeto e com esse tipo de interface no MP11, precisava saber, como funciona isso. Digo, como passo pra um função de processamento os registros marcados por exemplo? Não entendi como funciona isso. Você tem um tempo para me demonstrar de forma simples? Valeu!
É o primeiro contato meu com esse objeto e com esse tipo de interface no MP11, precisava saber, como funciona isso. Digo, como passo pra um função de processamento os registros marcados por exemplo? Não entendi como funciona isso. Você tem um tempo para me demonstrar de forma simples? Valeu!
marcelo brigagao escreveu: Guilherme, bom dia.
Segue a mesma rotina, porém atualizada, onde estou usando uma query para montar uma tabela temporaria.
/*/ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Programa ³VK904Slp ³ Autor ³ Marcelo Brigagao ³ Data ³ 11/11/10 ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descri‡…o ³Seleciona pedido para controle de projetos ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß /*/ Static Function VK904Slp() Local cQryTRB := "" Local aCpos := {} Local aBkRotina := Aclone(aRotina) Local cTitBrow := OemToAnsi("Controle de Projeto") Local _cArq := "T_"+Criatrab(,.F.) Private cAliasTRB := GetNextAlias() Private cAliasTMP := GetNextAlias() Private aRotina := {{"Processa","U_VK904CPR", 0,4}} cQryTRB := "SELECT SC6.*,SC6.R_E_C_N_O_ AS C6RECNO FROM " cQryTRB += RetSqlName("SC6") + " SC6 WHERE " cQryTRB += "SC6.D_E_L_E_T_ = ' ' AND " If _lEnvia cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_XDTENV = ' ' And ( SC6.C6_BLQ = ' ' Or SC6.C6_BLQ = 'N' )" Else cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_XDTENV <> ' ' And SC6.C6_XDTRET = ' ' And ( SC6.C6_BLQ = ' ' Or SC6.C6_BLQ = 'N' )" EndIf cQryTRB += " And SC6.C6_NUM>='"+_cPedIni+"' And SC6.C6_NUM<='"+_cPedFim+"'" cQryTRB += " ORDER BY "+SqlOrder(SC6->(IndexKey())) cQryTRB := ChangeQuery(cQryTRB) dbUseArea( .T.,"TOPCONN", TcGenQry( ,,cQryTRB ), cAliasTMP, .T., .F. ) aStruSC6 := dbStruct("SC6") For nX := 1 To Len(aStruSC6) If ( aStruSC6[nX][2] <> "C" ) TcSetField(cAliasTMP,aStruSC6[nX][1],aStruSC6[nX][2],aStruSC6[nX][3],aStruSC6[nX][4]) EndIf Next nX TcSetField(cAliasTMP,"C6_XDTENV","D",8,0) TcSetField(cAliasTMP,"C6_XDTRET","D",8,0) TcSetField(cAliasTMP,"C6_ENTREG","D",8,0) TcSetField(cAliasTMP,"C6_DATFAT","D",8,0) dbSelectArea(cAliasTMP) copy to &_carq dbUseArea( .T.,__LOCALDRIVER, _cArq,cAliasTRB, .T. , .F. ) dbSelectArea(cALiasTRB) dbGoTop() aCpos := {} aAdd(aCpos,{"C6_XDTENV" ,,"Dt.Env.Projeto" ,PesqPict("SC6","C6_XDTENV")}) aAdd(aCpos,{"C6_XDTRET" ,,"Dt.Ret.Projeto" ,PesqPict("SC6","C6_XDTRET")}) aAdd(aCpos,{"C6_XPROG" ,,"Prog.Produção" ,PesqPict("SC6","C6_XPROG")}) aAdd(aCpos,{"C6_NUM" ,,"Nr.Pedido" ,PesqPict("SC6","C6_NUM")}) aAdd(aCpos,{"C6_ITEM" ,,"It.Pedido" ,PesqPict("SC6","C6_ITEM")}) aAdd(aCpos,{"C6_PRODUTO" ,,"Produto" ,PesqPict("SC6","C6_PRODUTO")}) aAdd(aCpos,{"C6_DESCRI" ,,"Descrição" ,PesqPict("SC6","C6_DESCRI")}) aAdd(aCpos,{"C6_QTDVEN" ,,"Qtd.Vendida" ,PesqPict("SC6","C6_QTDVEN")}) aAdd(aCpos,{"C6_OPC" ,,"Opcionais" ,PesqPict("SC6","C6_OPC")}) aAdd(aCpos,{"C6_MEDIDA" ,,"Med./Formação" ,PesqPict("SC6","C6_MEDIDA")}) aAdd(aCpos,{"C6_ENTREG" ,,"Entrega " ,PesqPict("SC6","C6_ENTREG")}) aAdd(aCpos,{"C6_NUMOP" ,,"Nr. OP" ,PesqPict("SC6","C6_NUMOP") }) aAdd(aCpos,{"C6_ITEMOP" ,,"Item OP" ,PesqPict("SC6","C6_ITEMOP")}) aAdd(aCpos,{"C6_QTDENT" ,,"Qtd.Entregue" ,PesqPict("SC6","C6_QTDENT")}) aAdd(aCpos,{"C6_CLI" ,,"Cod.Cliente" ,PesqPict("SC6","C6_CLI")}) aAdd(aCpos,{"C6_NOTA" ,,"Nr.N Fiscal" ,PesqPict("SC6","C6_NOTA")}) aAdd(aCpos,{"C6_SERIE" ,,"Serie NF" ,PesqPict("SC6","C6_SERIE")}) aAdd(aCpos,{"C6_DATFAT" ,,"Data NF" ,PesqPict("SC6","C6_DATFAT")}) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³ Construcao do MarkBrowse ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oMark:=FWMarkBrowse():NEW() // Cria o objeto oMark - MarkBrowse oMark:SetAlias(cAliasTRB) // Define a tabela do MarkBrowse oMark:SetDescription(cTitBrow) // Define o titulo do MarkBrowse oMark:SetFieldMark("C6_OK") // Define o campo utilizado para a marcacao oMark:SetFilterDefault() // Define o filtro a ser aplicado no MarkBrowse oMark:SetFields(aCpos) // Define os campos a serem mostrados no MarkBrowse oMark:SetSemaphore(.F.) // Define se utiliza marcacao exclusiva //oMark:DisableDetails() // Desabilita a exibicao dos detalhes do MarkBrowse //oMark:DisableConfig() // Desabilita a opcao de configuracao do MarkBrowse //oMark:DisableReport() // Desabilita a opcao de imprimir do MarkBrowse oMark:Activate() // Ativa o MarkBrowse //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Restaura condicao original ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ dbSelectArea(cAliasTRB) dbCloseArea(cAliasTRB) dbSelectArea(cAliasTMP) dbCloseArea(cAliasTMP) fErase(_cArq+".DBF") dbSelectArea("SC6") RetIndex("SC6") dbClearFilter() aRotina := ACLONE(aBkRotina) Return()
Por favor Acessar ou Registrar para participar da conversa.
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
Tempo para a criação da página:0.078 segundos