Ir para conteúdo
Fórum Script Brasil

rmcs

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre rmcs

rmcs's Achievements

0

Reputação

  1. Boa tarde, Eu precisava de uma ajuda vossa. Criaram este documento para mim, no excell do Google Docs. Que contem um Sript abaixo, indicado. Contudo agora ao executar ele da um erro de getvalue. E eu não sei como resolver, alguém me pode ajudar? É possivel ter este documento em excell? Se quiserem posso partilhar o ficheiro para consultarem. o código: function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ {name: "Pesquisa LinkB2B", functionName: "searchLB2B"} ]; ss.addMenu("Faceira", menuEntries); } function searchLB2B() { //Browser.msgBox("Isto vai permitir fazer uma pesquisa e importar todos os resultados!"); var sheet = SpreadsheetApp.getActiveSpreadsheet(); var filtro = ""; var textoLivre = sheet.getRangeByName("TextoLivre").getValue(); if(textoLivre) { var textos = textoLivre.split(" "); for(var j in textos) { var texto = textos[j]; if(texto) filtro = filtro + " AND (E.pesquisar LIKE '% "+texto+" %')"; } } var distrito = sheet.getRangeByName("Distrito").getValue(); if(distrito) filtro = filtro + " AND (E.distrito LIKE '"+distrito+"')"; var concelho = sheet.getRangeByName("Concelho").getValue(); if(concelho) filtro = filtro + " AND (E.concelho LIKE '"+concelho+"')"; var freguesia = sheet.getRangeByName("Freguesia").getValue(); if(freguesia) filtro = filtro + " AND (E.freguesia LIKE '"+freguesia+"')"; // Refine so that it sends also the settings asked var baseUrl = "http://www.linkb2b.pt/pesquisar.php#pesquisaavancada-tab"; var paginaInicial = sheet.getRangeByName("PaginaInicial").getValue(); var paginaFinal = sheet.getRangeByName("PaginaFinal").getValue(); var urlsFound = []; for(var i=paginaInicial; i<=paginaFinal; i++) { var payload = { "indiceActual" : i, "q": textoLivre, "filtro": filtro }; var options = { "method" : "post", "payload" : payload }; var htmlResponse = UrlFetchApp.fetch(baseUrl, options).getContentText(); var foundInThisPage = 0; while(htmlResponse.indexOf("<form id=empresa") > 0) { var firstFormPlace = htmlResponse.indexOf("<form id='empresa"); htmlResponse = htmlResponse.substring(firstFormPlace + 18); var firstActionPlace = htmlResponse.indexOf(" action='"); htmlResponse = htmlResponse.substring(firstActionPlace + 9); var firstActionEnd = htmlResponse.indexOf("'"); var actionUrl = htmlResponse.substring(0,firstActionEnd); urlsFound.push(actionUrl); foundInThisPage++; } if(foundInThisPage < 10) break; } for (var i in urlsFound) { importLB2B(urlsFound); } } function importLB2B(url) { var html = UrlFetchApp.fetch(url).getContentText(); if(html.indexOf("<div id='link-power_encerrada_emp'>ENCERRADA</div>") != -1) return; var nif = importLB2BField(html, 'NIF'); var entidade = importLB2BField(html, 'Entidade'); var cae = importLB2BField(html, 'CAE'); var morada = importLB2BField(html, 'Morada'); var localidade = importLB2BField(html, 'Localidade'); var codigoPostal = importLB2BField(html, 'Código Postal'); var links = importLB2BLinks(html); var emailLink = importLB2BSpetialUrl(html, 'email'); var telefoneLink = importLB2BSpetialUrl(html, 'telefone'); insertResult(nif, entidade, cae, morada, localidade, codigoPostal, links, emailLink, telefoneLink); } function importLB2BField(html, fieldName) { return getFirstParagraphAfterText(html, '<h3>' + fieldName + '</h3>'); } function importLB2BSpetialUrl(html, type) { var subHtml = getFirstParagraphAfterText(html, '<img src="http://www.linkb2b.pt/images/contact-'+type+'.png"'); if(subHtml == '') return ''; var srcStartPos = subHtml.indexOf("src='")+5; subHtml = subHtml.substring(srcStartPos); var srcEndPos = subHtml.indexOf("'"); return subHtml.substring(0,srcEndPos); } function importLB2BLinks(html) { var textPos = html.indexOf('<h3>Links</h3>'); if(textPos < 0) return ''; var links = ""; var subHtml = html.substring(textPos); var finishingDivPos = subHtml.indexOf("<div class="); subHtml = subHtml.substring(0,finishingDivPos); while(subHtml.indexOf('href=') > 0) { subHtml = subHtml.substring(subHtml.indexOf('href=')+6); var hrefEndPos = subHtml.indexOf("'"); var currentLink = subHtml.substring(0,hrefEndPos); if(links) links = links + "\n"; links = links + currentLink; } return links; } function getFirstParagraphAfterText(html, text) { var textPos = html.indexOf(text); if(textPos < 0) return ''; var subHtml = html.substring(textPos); var pStartPos = subHtml.indexOf('<p>') + 3; var pEndPos = subHtml.indexOf('</p>'); return subHtml.substring(pStartPos, pEndPos); } function insertResult(nif, entidade, cae, morada, localidade, codigoPostal, links, emailLink, telefoneLink) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Resultados'); if(sheet == null) { sheet = ss.insertSheet('Resultados'); var firstRow = sheet.getLastRow(); sheet.getRange(firstRow+1,1,1,9).setValues([['nif','entidade','cae','morada','localidade','codigoPostal','links','email','telefone]]); } var lastRow = sheet.getLastRow(); sheet.getRange(lastRow+1, 1, 1, 7).setValues([[nif,entidade,cae,morada,localidade,codigoPostal,links]]); //if(emailLink) // sheet.insertImage(emailLink,8,lastRow+1); //if(telefoneLink) // sheet.insertImage(telefoneLink,9,lastRow+1); }
  2. Boas pessoal, estou com um problema que não consigo resolver e precisava muito do vosso auxilio. Tenho um formulario com relacionamento de tabelas criados a funcionar correctamente. Acontece que estou a querer criar uma caixa de texto a parte, onde pretendo que ele me devolva um número no caso de o texto de uma caixa surja com o que pretendo. Explicando melhor: Tenho um um form, com nome cliente, Dentro desse form esta uma tabela que tem: Tipo de Negócio, Desconto, Valor No tipo de Negócio, eu coloco lá o que quero e por exemplo vou escrever lá P2000 O que pretendo é criar uma caixa de texto em que ele me diga: se o Tipo de Négócio for P2000 então devolve um número 2. Isto porque? Para diferenciar os produtos em que tenho P1000 será 1 o P2000 será 2 e o P3000 será 3. Estou a colocar esta função na Origem do Controlo em folha de propriedades atraves do construtor de expressões: = iff (([Tbl_Negocios]![Tipo de Negócio]) = P2000,2) mas não dá nada, dá erro e precisava de ajuda urgentemete. Muito obrigado
  3. Boas. O que me indicou é uma combo box e definitivamente não era isso que queria. O que pretendia era criar um botão no painel principal que criei, onde ao clicar no botaão ( Pesquisa por código de cliente ) eu digite o codigo do cliente e ele me abra o formulario especifico desse cliente. Tenho outro botao que é abrir formularios, ai esta tudo bem. O que eu presiso é de um botão onde possa digitar o código do respectivo cliente e ele me devolva o formulário do cliente em vez de abrir os formularios e pesquisar o que pretendo. Muito Obrigado
  4. Obrigado. Vou analisar. :)
  5. Boa noite. Não vou duvidar, mas não consegui encontrar nada. Talvez também pelo facto de não saber trabalhar tão bem no access a não ser pelas opções que o proprio oferece. Não sei nada de códigos, talvez ate aja exemplos aqui no site, mas como alterar ou alterar o que? Dai precisar de ajuda. Obrigado
  6. Boa tarde, venho por este meio solicitar a vossa ajuda, tendo en conta que eu não estou a conseguir resolver. Eu tenho um formulário com um conjunto de informações de clientes e pretendia criar um botão, no formulário principal de pesquisa de cliente por código, onde ao digitar o codigo do cliente ele me devolve-se o formulario do cliente que diz respeito essse codigo. alguém me pode ajudar? Muito obrigado
×
×
  • Criar Novo...