Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
maiconmello
Creator III
Creator III

Copiar Objeto

Boa tarde,

Existe alguma forma de como fazer uma cópia de objeto ao abrir um documento.qvw?

Exemplo : Existe uma tabela dinâmica no meu modelo, quando abrir esse documento, a minha tabela dinâmica seja duplicada.

Seria um copiar / Colar de forma automática de um determinado objeto.

OBS: Quando abrir o documento, validar se já existe o objeto clonado, se existir, não deve clonar, caso não exista ai sim clonar o mesmo.

Para que dessa forma não fique clonando toda vez que usuário abra o documento e logo o usuário possuir 10 ,20 tabelas dinâmicas clonadas.

Maicon Mello

1 Solution

Accepted Solutions
nicolett_yuri

Maicon, a macro para clonar o gráfico é essa:

Sub CopiaGrafico

ActiveDocument.GetSheetObject("CH01").WriteXmlPropertiesFile("C:\Users\Yuri\AppData\Local\Temp\CH01.xml")

ActiveDocument.ActiveSheet.CreateObjectFromXmlPropertiesFile("C:\Users\Yuri\AppData\Local\Temp\CH01.xml")

End Sub

View solution in original post

10 Replies
nicolett_yuri

Maicon, talvez isso possa ser feito através de macros, mas qual seria o objetivo de ficar clonando os objetos?

maiconmello
Creator III
Creator III
Author

Por que o usuário quer fazer algumas coisas em alguns objetos.

Ou seja ele quer mudar algumas propriedades !

Pode me ajudar ?

nicolett_yuri

Maicon, mas o usuário já possui a possibilidade de desenvolver através do access point

maiconmello
Creator III
Creator III
Author

Yuri, você viu minha primeira postagem ??

Você entendeu o que estou precisando ??

Problema que o usuário não tem acesso as propriedades de um objeto ! Ou seja ele entra na propriedade de uma tabela, porém as opções ficam desabilitadas.

Se eu copiar o objeto, ele tem acesso normal nas propriedades do objeto , e esse objeto fica salvo somente no perfil dele.

nicolett_yuri

Qual a postagem?

Veja se você não bloqueou a edição do usuário:

Propriedades do Documento -> Aba Segurança -> Veja as opções de alteração, por exemplo: Incluir pastas.

Outras configurações de segurança: Propriedades da Pasta -> Segurança -> Habilite as opções dentro do quadro "Privilégios do usuário".

Habilite Aplicar a todas as pastas

Desabilite Apenas Leitura

Clique em aplicar.

maiconmello
Creator III
Creator III
Author

Ok Yuri , ja fiz isso , porém ainda não faz o que quero.

as propriedades ficam desabilitadas.

Exemplo : Quero colocar um subtotal de um campo via WEB, não fica habilitada essa opção.

Preciso realmente copiar o objeto via macro, pelo motivo que gostaria de clonar ao abrir o modelo. Sem que o usuário perceba que foi clonado.

pablolabbe
Luminary Alumni
Luminary Alumni

Maicon,

Quando você abre uma aplicação via web seja com interface ajax (sem plugin) ou com plugin, seus objetos ficam "protegidos" contra modificações pelo usuário final. Este é o comportamento padrão.

Para que um usuário modifique um objeto existente ele tem que clonar o objeto, Esta cópia ele pode modificar a vontade.

O novo objeto é privado, isto é, somente o usuário que criou pode vê-lo ou modificá-lo. Para que outros usuário vejam o objeto, o usuário que o criou pode compartilhar o objeto com todos ou com usuários específicos indicando os ids de rede de cada um.

O usuário também pode criar objetos a partir do zero se ele quiser.

Não vejo sentido um recurso para clonar objeto automaticamente ao abrir a aplicação. O melhor é treinar o usuário a utilizar os recursos da ferramenta de forma adequada.

Abraço,

Pablo

maiconmello
Creator III
Creator III
Author

Bom dia Pablo, agradeço seu retorno, já tinha concluído que essa funcionalidade é exatamente isso que você esta me dizendo, bacana, agora confirmou mesmo a minha dedução !

Porém , o cliente quer uma solução em um objeto que ele clone automaticamente quando usuário abre a sua aplicação !

A questão não seria o treinar o usuário ou não, pois vejo que é um processo simples ! Porém o cliente quer que isso seja transparente para usuário, só isso !!!

Mas de qualquer forma agradeço mais uma vez pelo retorno !

Maicon

nicolett_yuri

Maicon, a macro para clonar o gráfico é essa:

Sub CopiaGrafico

ActiveDocument.GetSheetObject("CH01").WriteXmlPropertiesFile("C:\Users\Yuri\AppData\Local\Temp\CH01.xml")

ActiveDocument.ActiveSheet.CreateObjectFromXmlPropertiesFile("C:\Users\Yuri\AppData\Local\Temp\CH01.xml")

End Sub