×
Linguagem de Programação ADVPL
Perguntas Query em check box
- will3698
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 310
- Obrigados Recebidos: 1
10 anos 9 meses atrás - 10 anos 9 meses atrás #20464
por will3698
Query em check box foi criado por will3698
Ola boa tarde !
Estou desenvolvendo uma rotina pra executar um procedimento no banco, fiz uma query, que retorna uma quantidade x de registros, preciso que esses registros apareçam em um checkbox ao usuário, pra que ele possa selecionar os que deseja, e ao confirmar seja executado um update especifico no filtro.
Estou assimilando o fonte FINA380, da totvs que faz algo parecido, pois nunca fiz isso.
Alguém tem algum fonte de exemplo, que faça esse processo ?
att
Estou desenvolvendo uma rotina pra executar um procedimento no banco, fiz uma query, que retorna uma quantidade x de registros, preciso que esses registros apareçam em um checkbox ao usuário, pra que ele possa selecionar os que deseja, e ao confirmar seja executado um update especifico no filtro.
Estou assimilando o fonte FINA380, da totvs que faz algo parecido, pois nunca fiz isso.
Alguém tem algum fonte de exemplo, que faça esse processo ?
att
Ultima edição: 10 anos 9 meses atrás por will3698.
Por favor Acessar ou Registrar para participar da conversa.
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
10 anos 9 meses atrás #20919
por mbrigagao
Respondido por mbrigagao no tópico Query em check box
Willian,
Utilize a classe FWMarkBrowse com arquivo temporário e faça o tratamento pelo numero do registro (recno)...
Vai ficar mais ou menos assim:
Espero que te ajude.
Utilize a classe FWMarkBrowse com arquivo temporário e faça o tratamento pelo numero do registro (recno)...
Vai ficar mais ou menos assim:
Static Function VK904Sel()
Local cQryTRB := ""
Local aStruSC6 := dbStruct("SC6")
Local aCpos := {}
Local aBkRotina := Aclone(aRotina)
Local cTitMBrow := cTitBrow + OemToAnsi(" | Alocação de Pedido Para Programação")
Local _cArq := "T_"+Criatrab(,.F.)
Private cAliasTRB := GetNextAlias()
Private cAliasTMP := GetNextAlias()
Private aRotina := {{"Processa","U_VK904Aloc", 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 _lAloca
// If MV_PAR01 = 1 // Permite alocar pedido ja faturado
// cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_XPROG = ' ' And ( SC6.C6_BLQ = ' ' Or SC6.C6_BLQ = 'N' )"
// Else
cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_NOTA = ' ' And SC6.C6_XPROG = ' ' And ( SC6.C6_BLQ = ' ' Or SC6.C6_BLQ = 'N' )"
// EndIf
Else
cQryTRB += "SC6.C6_FILIAL='"+cSC6Filial+"' And SC6.C6_NUMOP = ' ' And SC6.C6_NOTA = ' ' And SC6.C6_XPROG <> ' ' 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,{"Prog.Produção" ,"C6_XPROG" ,,,,PesqPict("SC6","C6_XPROG")})
aAdd(aCpos,{"Nr.Pedido" ,"C6_NUM" ,,,,PesqPict("SC6","C6_NUM")})
aAdd(aCpos,{"It.Pedido" ,"C6_ITEM" ,,,,PesqPict("SC6","C6_ITEM")})
aAdd(aCpos,{"Produto" ,"C6_PRODUTO" ,,,,PesqPict("SC6","C6_PRODUTO")})
aAdd(aCpos,{"Descrição" ,"C6_DESCRI" ,,,,PesqPict("SC6","C6_DESCRI")})
aAdd(aCpos,{"Qtd.Vendida" ,"C6_QTDVEN" ,,,,PesqPict("SC6","C6_QTDVEN")})
aAdd(aCpos,{"Opcionais" ,"C6_OPC" ,,,,PesqPict("SC6","C6_OPC")})
aAdd(aCpos,{"Med./Formação" ,"C6_MEDIDA" ,,,,PesqPict("SC6","C6_MEDIDA")})
aAdd(aCpos,{"Entrega" ,"C6_ENTREG" ,,,,PesqPict("SC6","C6_ENTREG")})
aAdd(aCpos,{"Nr. OP" ,"C6_NUMOP" ,,,,PesqPict("SC6","C6_NUMOP") })
aAdd(aCpos,{"Item OP" ,"C6_ITEMOP" ,,,,PesqPict("SC6","C6_ITEMOP")})
aAdd(aCpos,{"Qtd.Entregue" ,"C6_QTDENT" ,,,,PesqPict("SC6","C6_QTDENT")})
aAdd(aCpos,{"Cod.Cliente" ,"C6_CLI" ,,,,PesqPict("SC6","C6_CLI")})
aAdd(aCpos,{"Nr.N Fiscal" ,"C6_NOTA" ,,,,PesqPict("SC6","C6_NOTA")})
aAdd(aCpos,{"Serie NF" ,"C6_SERIE" ,,,,PesqPict("SC6","C6_SERIE")})
aAdd(aCpos,{"Data NF" ,"C6_DATFAT" ,,,,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(cTitMBrow) // 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:DisableConfig() // Desabilita a opcao de configuracao do MarkBrowse
//oMark:DisableDetails() // Desabilita a exibicao dos detalhes do MarkBrowse
oMark:DisableReport() // Desabilita a opcao de imprimir
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()
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³VK904Aloc ³ Autor ³ Marcelo Brigagao ³ Data ³ 17/08/10 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Efetiva a alocacao ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
User Function VK904Aloc()
Processa({|| DoAloc()},"Aguarde","Efetivando Alocação...")
Return()
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³ DoAloc ³ Autor ³ Marcelo Brigagao ³ Data ³ 17/08/10 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Efetiva a alocacao ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function DoAloc()
Local aRecnosSC6 := {}
Local cMarca := oMark:Mark()
Local nz := 0
dbSelectArea(cAliasTRB)
dbGoTop()
While !Eof()
If oMark:IsMark(cMarca)
aAdd(aRecnosSC6,(cAliasTRB)->C6RECNO )
EndIf
dbSkip()
EndDo
dbSelectArea("SC6")
ProcRegua(Len(aRecnosSC6))
For nz := 1 to Len(aRecnosSC6)
dbGoTo(aRecnosSC6[nz])
If _lAloca
RecLock("SC6",.F.)
SC6->C6_XPROG := _cAno+"-"+_cSemana
msUnLock()
Else
RecLock("SC6",.F.)
SC6->C6_XPROG := " "
msUnLock()
EndIf
IncProc()
Next nz
If cVersao = "11"
CloseBrowse()
Else
oMark:oBrowse:Hide()
EndIf
Return()
Espero que te ajude.
Por favor Acessar ou Registrar para participar da conversa.
- rtsouza777@hotmail.com
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 7
- Obrigados Recebidos: 0
9 anos 3 meses atrás #28802
por rtsouza777@hotmail.com
Respondido por rtsouza777@hotmail.com no tópico Query em check box
Bom dia,
Marcelo, peguei seu fonte aqui e fiz as alterações para uma necessidade que tenho aqui de liberar os movimentos pagar/receber/transferencias na SE5 para serem aprovados antes de serem conciliados... apos ajustes, marcar os registros, quando confirma-se o processo dá erro na function DoAloca que a variavel _lAloca nao existe, observando o fonte nao foi possivel identificar qual o campo "alimenta" esta variavel...
Você pode me ajudar por favor !?
Abrç!
Rodrigo Teixeira
Marcelo, peguei seu fonte aqui e fiz as alterações para uma necessidade que tenho aqui de liberar os movimentos pagar/receber/transferencias na SE5 para serem aprovados antes de serem conciliados... apos ajustes, marcar os registros, quando confirma-se o processo dá erro na function DoAloca que a variavel _lAloca nao existe, observando o fonte nao foi possivel identificar qual o campo "alimenta" esta variavel...
Você pode me ajudar por favor !?
Abrç!
Rodrigo Teixeira
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.162 segundos