Atribuir um ID exclusivo para OFORMS
Os produtos ONLYOFFICE nos permitem criar e operar facilmente com formulários preenchíveis. Em nosso post anterior, mostramos a você uma macro que converte dados CSV/TXT em uma caixa de combinação preenchível.
Desta vez, tornaremos a documentação eletrônica mais organizada criando uma macro que atribui um id único a um formulário preenchível.
Pré-requisitos
Em nosso novo projeto, implementaremos um conceito semelhante ao que usamos com a macro mencionada acima.
O código da macro é o seguinte:
function LoadFile() {
$.ajax({
url: 'file:///C:/Users/LEOPARD/Desktop/Book1.csv',
dataType: 'text',
}).done(successFunction);
}
function successFunction(data) {
var arrAllRows = data.split("\n");
var oComboBoxForm = Api.CreateComboBoxForm({ "key": "Personal information", "tip": "Choose your country", "required": true, "placeholder": "Country", "editable": false, "autoFit": false, "items": arrAllRows });
var oParagraph = Api.CreateParagraph();
oParagraph.AddElement(oComboBoxForm);
oDocument.InsertContent([oParagraph]);
}
LoadFile();
Com uma nova macro, também vamos incorporar o método InsertContent. Ele insere um elemento exatamente onde o cursor está posicionado. Porém, desta vez, o conteúdo inserido é diferente.
Construindo a macro
Para criar esse conteúdo, adicionamos a função generate. Lá, criamos a variável key e a definimos como em branco. Posteriormente, armazenará o valor gerado. Além disso, adicionamos a variável data. Contém letras maiúsculas e minúsculas e números. Esses são os blocos de construção de nossa identidade única:
function generate () {
let key = '';
const data = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
'abcdefghijklmnopqrstuvwxyz0123456789';
};
Em seguida, adicionamos um for loop que realiza 12 iterações. Cada iteração retorna um valor único. Portanto, 12 iterações produzem 12 caracteres exclusivos para o id. Então usamos o método Math.random para obter um índice exclusivo a cada iteração. Depois disso, usamos esse índice com o método charAt para recuperar um caractere exclusivo da variável data. Atribuímos o resultado à variável key e a retornamos para uso posterior. Em seguida, invocamos a função generate e atribua-o à variável id:
for (let i = 1; i <= 12; i++) {
let index = Math.floor(Math.random()
* data.length + 1);
key += data.charAt(index)
}
return key;
};
const id = generate();
Agora precisamos inserir o conteúdo gerado em nosso documento. Primeiro, direcionamos o formulário ativo:
var oDocument = Api.GetDocument();
Depois disso, criamos um parágrafo e adicionamos um elemento de texto a ele. Envolvemos nosso conteúdo gerado neste elemento passando a variável id nos parâmetros:
var oParagraph = Api.CreateParagraph();
oParagraph.AddText(id);
Então nós o inserimos. O métodoInsertContent incorpora um elemento bem na posição do cursor. Também especificamos o proprietário KeepTextOnly. Ao definí-lo como verdadeiro, podemos evitar possíveis problemas de posicionamento:
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
Todo o código da macro é o seguinte:
function generate () {
let key = '';
const data = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
'abcdefghijklmnopqrstuvwxyz0123456789';
for (let i = 1; i <= 12; i++) {
let index = Math.floor(Math.random()
* data.length + 1);
key += data.charAt(index)
}
return key;
};
const id = generate();
var oDocument = Api.GetDocument();
var oParagraph = Api.CreateParagraph();
oParagraph.AddText(id);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true })
Agora, vamos rodar nossa macro e ver como ela funciona!
Esperamos que você ache esta macro útil e a incorpore ao seu fluxo de trabalho. As macros do ONLYOFFICE são extremamente versáteis e permitem que os usuários manipulem documentos de várias maneiras. Essa macro é apenas um dos muitos exemplos do que pode ser alcançado implementando nossos métodos de API.
Nós gentilmente encorajamos você a experimentar e embarcar em seus próprios projetos. Não hesite em fazer perguntas ou compartilhar suas ideias conosco. Estamos abertos à discussão e cooperação. Boa sorte em seus esforços exploratórios!
Crie sua conta gratuita no ONLYOFFICE
Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.