- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Copiar cadastro de clientes
×
Linguagem de Programação ADVPL
Perguntas Copiar cadastro de clientes
- marcelo.silva
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 94
- Obrigados Recebidos: 0
9 anos 8 meses atrás #27315
por marcelo.silva
Copiar cadastro de clientes foi criado por marcelo.silva
Boa tarde,
Preciso de uma ajuda na customização de um fonte que copie o cadastro de um cliente caso exista na base. Exemplo, no caso do cliente ter mais de uma loja, eu digitaria o cnpj se encontrar o sistema já informa que existe, esse fonte copia os campos, nome, razão, email... eu digitaria o mesmo codigo diferenciando a loja. O ideal seria se existisse no padrão a opção Copiar mas não tem.
Preciso de uma ajuda na customização de um fonte que copie o cadastro de um cliente caso exista na base. Exemplo, no caso do cliente ter mais de uma loja, eu digitaria o cnpj se encontrar o sistema já informa que existe, esse fonte copia os campos, nome, razão, email... eu digitaria o mesmo codigo diferenciando a loja. O ideal seria se existisse no padrão a opção Copiar mas não tem.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
9 anos 8 meses atrás #27317
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Copiar cadastro de clientes
Veja se te ajuda, este codigo inclui o mesmo cliente na tela de inclusao nas demais empresas do grupo:
User Function M030INC()
Local aArea := GetArea()
// Joga todos os dados do Cliente atual nas demais empresas
aDados := {}
For nI := 1 To SA1->(FCount())
AAdd(aDados, {SA1->(FieldName(nI)),SA1->(FieldGet(nI))} )
Next
If Type("M->A1_COD") <> "U"
cCodigo := M->A1_COD
cLoja := M->A1_LOJA
Else
Return .t.
Endif
If cEmpAnt == '01'
cModo := 'C'
EmpOpenFile("SA102","SA1",1,.T.,'02',@cModo)
EmpOpenFile("SA103","SA1",1,.T.,'03',@cModo)
EmpOpenFile("SA104","SA1",1,.T.,'04',@cModo)
If !SA102->(dbSetOrder(1), dbSeek(xFilial("SA102")+cCodigo+cLoja))
If RecLock("SA102",.t.)
For nI := 1 To Len(aDados)
If aDados[nI,1]=='A1_FILIAL'
SA102->A1_FILIAL := xFilial("SA102")
Else
nPos := SA102->(FieldPos(aDados[nI,1]))
SA102->(FieldPut(nPos,aDados[nI,2]))
Endif
Next
SA102->(MsUnlock())
Endif
Endif
If !SA103->(dbSetOrder(1), dbSeek(xFilial("SA103")+cCodigo+cLoja))
If RecLock("SA103",.t.)
For nI := 1 To Len(aDados)
nPos := SA103->(FieldPos(aDados[nI,1]))
SA103->(FieldPut(nPos,aDados[nI,2]))
Next
SA103->(MsUnlock())
Endif
Endif
If !SA104->(dbSetOrder(1), dbSeek(xFilial("SA104")+cCodigo+cLoja))
If RecLock("SA104",.t.)
For nI := 1 To Len(aDados)
If aDados[nI,1]=='A1_FILIAL'
SA104->A1_FILIAL := '04'
Else
nPos := SA104->(FieldPos(aDados[nI,1]))
SA104->(FieldPut(nPos,aDados[nI,2]))
Endif
Next
SA104->(MsUnlock())
Endif
Endif
SA102->(dbCloseArea())
SA103->(dbCloseArea())
SA104->(dbCloseArea())
Endif
RestArea(aArea)
Return .t.
User Function M030INC()
Local aArea := GetArea()
// Joga todos os dados do Cliente atual nas demais empresas
aDados := {}
For nI := 1 To SA1->(FCount())
AAdd(aDados, {SA1->(FieldName(nI)),SA1->(FieldGet(nI))} )
Next
If Type("M->A1_COD") <> "U"
cCodigo := M->A1_COD
cLoja := M->A1_LOJA
Else
Return .t.
Endif
If cEmpAnt == '01'
cModo := 'C'
EmpOpenFile("SA102","SA1",1,.T.,'02',@cModo)
EmpOpenFile("SA103","SA1",1,.T.,'03',@cModo)
EmpOpenFile("SA104","SA1",1,.T.,'04',@cModo)
If !SA102->(dbSetOrder(1), dbSeek(xFilial("SA102")+cCodigo+cLoja))
If RecLock("SA102",.t.)
For nI := 1 To Len(aDados)
If aDados[nI,1]=='A1_FILIAL'
SA102->A1_FILIAL := xFilial("SA102")
Else
nPos := SA102->(FieldPos(aDados[nI,1]))
SA102->(FieldPut(nPos,aDados[nI,2]))
Endif
Next
SA102->(MsUnlock())
Endif
Endif
If !SA103->(dbSetOrder(1), dbSeek(xFilial("SA103")+cCodigo+cLoja))
If RecLock("SA103",.t.)
For nI := 1 To Len(aDados)
nPos := SA103->(FieldPos(aDados[nI,1]))
SA103->(FieldPut(nPos,aDados[nI,2]))
Next
SA103->(MsUnlock())
Endif
Endif
If !SA104->(dbSetOrder(1), dbSeek(xFilial("SA104")+cCodigo+cLoja))
If RecLock("SA104",.t.)
For nI := 1 To Len(aDados)
If aDados[nI,1]=='A1_FILIAL'
SA104->A1_FILIAL := '04'
Else
nPos := SA104->(FieldPos(aDados[nI,1]))
SA104->(FieldPut(nPos,aDados[nI,2]))
Endif
Next
SA104->(MsUnlock())
Endif
Endif
SA102->(dbCloseArea())
SA103->(dbCloseArea())
SA104->(dbCloseArea())
Endif
RestArea(aArea)
Return .t.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- marcelo.silva
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 94
- Obrigados Recebidos: 0
9 anos 8 meses atrás #27374
por marcelo.silva
Respondido por marcelo.silva no tópico Copiar cadastro de clientes
Claro que ajuda, muito obrigado cara
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Copiar cadastro de clientes
Tempo para a criação da página:0.133 segundos