BRPI0615572A2 - designação, ajuste e descoberta de parámetros para documentos de planilha - Google Patents

designação, ajuste e descoberta de parámetros para documentos de planilha Download PDF

Info

Publication number
BRPI0615572A2
BRPI0615572A2 BRPI0615572-3A BRPI0615572A BRPI0615572A2 BR PI0615572 A2 BRPI0615572 A2 BR PI0615572A2 BR PI0615572 A BRPI0615572 A BR PI0615572A BR PI0615572 A2 BRPI0615572 A2 BR PI0615572A2
Authority
BR
Brazil
Prior art keywords
parameter
spreadsheet
parameters
folder
network
Prior art date
Application number
BRPI0615572-3A
Other languages
English (en)
Inventor
Eran Megiddo
Daniel Y Parish
Daniel Battagin
Robert L Archer
Amarinder Singh Grewal
Justin Frederick Rockwood
Sean Boon
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0615572A2 publication Critical patent/BRPI0615572A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

DESIGNAçAO, AJUSTE E DESCOBERTA DE PARAMETROS PARA DOCUMENTOS DE PLANILHA Para aplicações de planilha independentes e/ou serviços de planilha com base na Rede, a capacidade para designar, descobrir e ajustar parâmetros para documentos de planilha é provida. Quando criando um documento de planilha, a capacidade para designar certas células ou faixas de célu- las como parâmetros para uma planilha é habilitada. Além do mais, se visto em uma aplicação de planilha independente ou via um serviço de Rede, a capacidade para descobrir esses parâmetros através da interface do usuário ou modelo de objeto é provida. A capacidade para ajustar ou mudar esses pa- râmetros um de cada vez ou em lote e conduzir as mudanças no modelo de cálculo é também provida. Dessa maneira, quer visto em uma aplicação de planilha independente ou via um serviço de renderização da Rede, o efeito dos parâmetros inseridos pelo usuário pode ser calculado e visto de uma vez. A capacidade de suspender o recálculo de uma pasta até que todos os valores relevantes, tal como um conjunto atual de parâmetros, sejam obtídos é também habilitada.

Description

"DESIGNAÇÃO, AJUSTE E DESCOBERTA DE PARÂMETROSPARA DOCUMENTOS DE PLANILHA"
CAMPO DA INVENÇÃO
A presente invenção refere-se à designação, ajustee descoberta de parâmetros para documentos, tal como plani-lhas, ou pastas.
ANTECEDENTES DA INVENÇÃO
Software de planilha, tal como o software EXCEL daMICROSOFT, opera para simular planilhas de papel, também al-gumas vezes chamadas modelos, ou pastas, nas quais colunasde números são operadas matematicamente, por exemplo, soma-das, multiplicadas, etc., para orçamentos, projetos, modelose outras tarefas. Uma interface típica de usuário do softwa-re da planilha aparece na tela como uma matriz de linhas ecolunas, as interseções das quais são chamadas "células". Ascélulas podem ser preenchidas com legendas, valores numéri-cos ou fórmulas. Legendas são texto descritivo tais como"renda econômica" e "vendas brutas". Os valores são os dadosnuméricos reais e as fórmulas comandam a planilha para exe-cutar cálculos específicos com base nos valores; por exem-plo, a fórmula SOMAR CÉLULAS A5 A AlO pode fazer com que osoftware da planilha some as células encontradas na colunaA, linhas 5 a 10. As fórmulas permitem relações mútuas dascélulas, e elas são fáceis de criar. Por exemplo, alguém po-de meramente apontar para uma célula e clicar, e a seguirpressionar uma tecla (+, -, etc.) de qualquer operação arit-mética planejada para afetar a célula. Por exemplo, a cria-ção de uma fórmula poderia ser "os conteúdos dessa célulaMAIS os conteúdos dessa célula DIVIDIDOS PELOS conteúdos dapróxima célula até a esquerda".
Depois que os números são adicionados ou altera-dos, as fórmulas geralmente recalculam os dados automatica-mente ou na iniciação do usuário, por exemplo, com o apertode uma tecla. Isso pode criar um efeito de "ondulação" derecálculo por todas as múltiplas células. Desde que os con-teúdos de qualquer célula podem ser calculados com ou copia-dos para qualquer outra célula, um total de uma coluna podeser usado como um item de detalhe em uma outra coluna. Porexemplo, o total de uma coluna de itens de despesa pode sertransportado para uma coluna de resumo mostrando todas asdespesas. Se os conteúdos de uma célula na coluna de deta-lhes mudam, sua coluna de total muda, o que é então copiadopara a coluna de resumo e o total do resumo muda.
Uma ferramenta poderosa para banqueiros, correto-res de ações, economistas e semelhantes, um tal efeito deondulação deixa um usuário criar um projeto ou modelo, seassociar em suposições diferentes sobre o modelo, isto é,mudar parâmetros e imediatamente ver o impacto na linha in-ferior. Essa capacidade de "o que se?" torna a planilha in-dispensável para orçamentos, projetos e outras tarefas combase em equação. A capacidade de "o que se?" assim permiteque os usuários mudem parâmetros básicos, tal como taxa deinteresse, de um modelo matemático, tal como o crescimentoda conta bancária com o tempo. 0 "o que se?" similarmentepermite que um usuário mude fatos básicos, tal como saldoinicial da conta bancária, as fórmulas correlacionando ascélulas, tal como calculando o interesse com ou sem uma fór-mula que compõe o interesse, e até mesmo os nomes das célu-las para lidar com cenários matemáticos diferentes.
Assim, atualmente, qualquer informação com relação às células de uma planilha pode ser alterada pelo usuário,de modo que o usuário pode ver como a alteração funciona nomodelo geral. Entretanto, a realidade é que, de forma geral,depois que um modelo está configurado, certos aspectos domodelo não são planejados para mudança. Por exemplo, podeser conhecido pelo usuário, no exemplo de crescimento acimadescrito, que o saldo inicial da conta bancária é $2000 eque tal fato não mudará. Dessa maneira, aparentaria ser umacapacidade desnecessária da planilha que tal fato pudesseser alterado. Similarmente, as células com as legendas ne-las, embora alteráveis, não mudam o resultado do cálculo daforma de crescimento, isto é, se uma certa coluna ou valor élegendado "taxa de crescimento" ou "taxa de interesse" não érelevante para as fórmulas básicas. Aparenta difícil, por-tanto, distinguir sob o modelo de planilha atual, entre cé-lulas planejadas como parâmetros para adaptação sob diferen-tes suposições e essas planejadas como posições inalteráveisou dadas partes do modelo.
Isso tende a ser satisfatório e bom para o criadorda planilha em questão, porque o criador geralmente se Iem-bra quais os parâmetros relevantes são para adaptação. En-tretanto, tão logo um terceiro usuário não relacionado comsua criação veja a planilha e o modelo que ela representa,esse terceiro usuário terá que passar por um exercício difí-cil de verificação de quais células foram planejadas comoparâmetros e quais não foram. Tal terceiro usuário pode nãosaber, por exemplo, que um saldo inicial de $2000 é uma par-te dada do modelo. Além do mais, à medida que um modelo ma-temático se torna menos trivial do que o exemplo de cresci-mento dado aqui, mesmo o criador do modelo pode ter dificul-dade em lembrar quais partes do documento são parâmetros equais não são.
Dessa maneira, atualmente, um usuário de uma pla-nilha não pode designar explicitamente uma célula de umaplanilha como um parâmetro. Por uma razão similar, um usuá-rio não pode descobrir quais partes da planilha são parâme-tros. E ainda .adicionalmente, por razões similares, um usuá-rio não pode alterar ou ajustar parâmetros, como tal, istoé, como distinto das partes do modelo que não são parâme-tros. Essas deficiências associadas com os parâmetros dosdocumentos de planilha descritos permanecem não resolvidasna técnica.
Além do mais, historicamente, as planilhas têm si-do aplicações independentes, onde um usuário fica co-localizado com um computador local tendo um processador exe-cutando o software da planilha instalado no computador lo-cal, tal como seria o caso para qualquer um dos cenários a-cima descritos.
Com o advento e a explosão da Internet, entretan-to, os usuários de computador se acostumaram a acessar, demaneira conveniente, virtualmente qualquer tipo de documentoeletrônico a partir de virtualmente qualquer localização. Emparticular, a proliferação da Rede mundial (a "Rede") e pro-gramas de aplicação de navegador da Rede tornou muito conve-niente o acesso a muitos tipos de documentos, tal como docu-mentos de texto e gráfico. Através de um programa de aplica-ção de navegador da Rede, um usuário pode acessar e visuali-zar muitos tipos de documentos eletrônicos sem a necessidadede qualquer software adicional, incluindo documentos de pla-nilha.
Assim, por exemplo, um usuário pode criar um docu-mento de planilha em uma máquina local, "publicar" esse do-cumento de planilha em um servidor, do qual qualquer usuárioautorizado pode ver o documento de planilha via um navegadorda Rede. Quando renderizada no navegador da Rede, a planilhaé exibida em uma maneira que é substancialmente similar àplanilha quando exibida por um programa de aplicação de pla-nilha. Entretanto, atualmente, similar às deficiências deaplicação do cliente acima descritas, os usuários não podemdesignar quaisquer células como parâmetros quando criando umdocumento de planilha para visualização em um navegador daRede também. Por razões similares, os usuários não podemdescobrir quais parâmetros se aplicam à planilha e não podemajustar ou alterar esses parâmetros.
Dessa maneira, não é atualmente possível para osusuários bloquear um modelo em uma planilha e tornar somentecertas células editáveis. Essas células na realidade são osparâmetros de "função" que podem ser alterados. 0 modelo daplanilha representa a função ou funções. Embora exista atu-almente uma maneira para bloquear uma planilha e tornar so-mente certas células editáveis, esse é um bloqueio conduzidopela interface do usuário (UI) onde não existe mecanismo pa-ra designar explicitamente certas células como os parâmetrosem uma planilha ou ter esse mecanismo acompanhando o movi-mento das células e a mudança da pasta. Desde que não existemaneira de designar células como parâmetros, também não e-xiste maneira de chamar uma planilha para consultar os parâ-metros disponíveis na planilha. Além do mais, no caso deprodutos de servidor de planilha existentes, ainda não épossível editar células de forma alguma. Esses e outros pro-blemas de funcionalidade da planilha descritos aqui deixamproblemas não resolvidos na técnica.
SUMÁRIO DA INVENÇÃO
Em vista do precedente, para aplicações de plani-lha independentes e/ou serviços de planilha com base na Re-de, a invenção provê a capacidade de designar, descobrir eajustar parâmetros para documentos de planilha. Em váriasmodalidades não.limitadoras, quando criando um documento deplanilha, a invenção provê a capacidade de designar certascélulas ou faixas de células como parâmetros em uma plani-lha. Além do mais, se vista em uma aplicação de planilha in-dependente ou via um serviço de Rede, a invenção provê a ca-pacidade de descobrir esses parâmetros através da interfacedo usuário ou modelo do objeto. Além do mais, a capacidadede ajustar ou alterar esses parâmetros um de cada vez ou emlote e conduzir as mudanças para o modelo de cálculo é tam-bém provida. Dessa maneira, se vista em uma aplicação deplanilha independente ou via um serviço de Rede, o efeitodos parâmetros inseridos pelo usuário pode ser calculado evisto de uma vez. A invenção também suporta a capacidade desuspender o recálculo de uma pasta até que todos os valoresrelevantes, tal como parâmetros, sejam obtidos.
Outros aspectos da presente invenção são descritosabaixo.
BREVE DESCRIÇÃO DOS DESENHOS
A designação, descoberta e ajuste de parâmetrospara documentos de planilha de acordo com a invenção sãotambém descritos com referência aos desenhos acompanhantesnos quais:
A figura 1 é um diagrama de blocos representandoum ambiente do sistema de computação não limitador exemplarno qual a presente invenção pode ser implementada,
A figura 2 é um diagrama de blocos representandoum ambiente de rede exemplar no qual a presente invenção po-de ser implementada,
As figuras 3A e 3B juntas ilustram uma arquiteturaexemplar de cliente e servidor para criar e visualizar docu-mentos de planilha via aplicações independentes e serviçosde renderização da Rede de acordo com várias implementaçõesda invenção,
As figuras 4A, 4B e 4C ilustram imagens de telaexemplares não limitadoras de vários aspectos da designação,descoberta e ajuste de parâmetros da pasta de acordo com ainvenção,
As figuras 5A, 5B, 5C, 5D, 5E, 5F, 5G, 5H, 51, 5Je 5K ilustram uma seqüência de imagens de tela não limitado-ra exemplar da autoria de uma pasta e designação de parâme-tros, até a descoberta da lista de parâmetros associada como documento, e renderização da pasta via a Rede permitindo aedição dos parâmetros apresentados na lista de parâmetros deacordo com a invenção,
A figura 6 ilustra um diagrama de fluxo exemplarilustrando como um usuário pode designar, descobrir e editarparâmetros de acordo com a invenção e
As figuras 7A, 7B, 8A, 8B, 9A, 9B, 10A, 10B, IlAf11B, 12A e 12B ilustram maneiras exemplares nas quais o có-digo de interface similar pode ser provido para realizar ob-jetivo (s) similar(es) ou equivalente(s) de qualquer (quais-quer) interface(s) de acordo com a invenção.
DESCRIÇÃO DETALHADA DAS MODALIDADES ILUSTRATIVASVisão geral
Como discutido acima, se com base em uma aplicaçãode planilha independente ou um serviço de planilha do servi-dor de Rede, não é atualmente possível para os usuários blo-quear um modelo em uma planilha e tornar editável somentecélulas representando parâmetros. Com aplicações de planilhaindependentes, embora exista uma maneira para bloquear umaplanilha e tornar editáveis somente certas células, tal fun-cionalidade é conduzida pela UI sem relação aos parâmetros,designados como tal. Também não existe maneira de chamar umaplanilha para consultar os parâmetros disponíveis nela. Alémdo mais, no caso dos servidores de planilha com base na Redeque possibilitam a renderização dos documentos de planilha,não é atualmente possível editar células absolutamente. Des-sa maneira, a invenção provê a capacidade de designar certascélulas das planilhas como parâmetros no momento do projeto,de modo que quando o documento é visto via uma aplicação in-dependente ou serviço de planilha com base na Rede, o clien-te ou servidor, respectivamente, é capaz de descobrir quais células são parâmetros e prover UI alternada, ou modelo doobjeto (OM) , para editar os valores nessas células especifi-camente designados como parâmetros.
Ambientes em Rede e Distribuídos Exemplares
Com referência agora aos desenhos, nos quais nume-rais semelhantes representam elementos semelhantes, váriosaspectos da presente invenção serão descritos. Em particu-lar, a figura Iea discussão correspondente são planejadaspara prover uma breve descrição geral de um ambiente de com-putação adequado no qual modalidades da invenção podem serimplementadas. Embora a invenção seja descrita no contextogeral de módulos de programa que executam no servidor e sis-temas de computador pessoal, aqueles versados na técnica re-conhecerão que a invenção pode também ser implementada emcombinação com outros tipos de sistemas de computador e mó-dulos de programa.
De forma geral, módulos de programa incluem roti-nas, programas, componentes, estruturas de dados e outrostipos de estruturas que executam tarefas particulares ou im-plementam tipos de dados abstratos particulares. Alem domais, aqueles versados na técnica verificarão que a invençãopode ser praticada com outras configurações de sistema decomputador, incluindo dispositivos de mão, sistemas de mui-tiprocessador, eletrônica de consumidor programável ou combase em microprocessador, minicomputadores, computadores degrande porte e semelhantes. A invenção pode também ser pra-ticada nos ambientes de computação distribuídos onde as ta-refas são executadas por dispositivos de processamento remo-to que são ligados através de uma rede de comunicações. Emum ambiente de computação distribuído, módulos de programapodem estar localizados em ambos os meios de armazenamentode memória local e remota.
Com referência agora à Figura 1, uma arquiteturade computador ilustrativa para um computador 2 utilizada nasvárias modalidades da invenção será descrita. A arquiteturade computador mostrada na figura 1 ilustra um computadorconvencional de mesa ou laptop, incluindo uma unidade deprocessamento central 5 ("CPU"), uma memória do sistema 7,incluindo uma memória de acesso aleatório 9 ("RAM") e umamemória somente de leitura ("ROM") 11 e um barramento dosistema 12 que une a memória na CPU 5. Um sistema básico deentrada/saída contendo as rotinas básicas que ajudam atransferir a informação entre elementos dentro do computa-dor, tal como durante a partida, é armazenado na ROM 11. 0computador 2 também inclui um dispositivo de armazenamentoem massa 14 para armazenar um sistema operacional 16, pro-gramas aplicativos e outros módulos de programa, que serãodescritos em mais detalhes abaixo.
O dispositivo de armazenamento em massa 14 é co-nectado na CPU 5 através de um controlador de armazenamentoem massa (não mostrado) conectado no barramento 12. 0 dispo-sitivo de armazenamento em massa 14 e seus meios legíveispor computador associados provêem armazenamento não volátilpara o computador 2. Embora a descrição dos meios legíveispor computador contida aqui se refira a um dispositivo dearmazenamento em massa, tal como um disco rígido ou unidadede CD-ROM, deve ser verificado por aqueles versados na téc-nica que meios legíveis por computador podem ser quaisquermeios disponíveis que podem ser acessados pelo computador 2.
Por meio de exemplo, e não limitação, meios legí-veis por computador podem compreender meios de armazenamento no computador e meios de comunicação. Meios de armazenamentono computador incluem ambos meios voláteis e não voláteis,removíveis e não removíveis implementados em qualquer métodoou tecnologia para armazenamento de informação tais comoinstruções legíveis pelo computador, estruturas de dados,módulos do programa ou outros dados. Meios de armazenamentono computador incluem, mas não são limitados a, RAM, ROM,EPROM, EEPROM, memória flash ou outra tecnologia de memóriade estado sólido, CD-ROM, discos versáteis digitais ("DVD")ou outro armazenamento ótico, cassetes magnéticos, fita mag-nética, armazenamento de disco magnético ou outros disposi-tivos de armazenamento magnético ou qualquer outro meio quepossa ser usado para armazenar a informação desejada e quepossa ser acessado pelo computador 2.
De acordo com várias modalidades da invenção, ocomputador 2 pode operar em um ambiente em rede usando cone-xões lógicas para computadores remotos através de uma rede18, tal como a Internet. O computador 2 pode se conectar narede 18 através de uma unidade de interface de rede 20 co-nectada no barramento 12. Deve ser verificado que a unidadede interface de rede 20 pode também ser utilizada para seconectar em outros tipos de redes e sistemas de computadorremoto. O computador 2 pode também incluir um controlador deentrada/saida 22 para receber e processar a entrada de umnúmero de outros dispositivos, incluindo um teclado, mouseou caneta eletrônica (não mostrada na figura 1). Similarmen-te, um controlador de entrada/saida 22 pode prover saída pa-ra uma tela de exibição, uma impressora ou outro tipo dedispositivo de saída.
Como mencionado brevemente acima, um número de mó-dulos de programa e arquivos de dados pode ser armazenado nodispositivo de armazenamento em massa 14 e RAM 9 do computa-dor 2, incluindo um sistema operacional 16 adequado paracontrolar a operação de um computador pessoal em rede. Odispositivo de armazenamento em massa 14 e RAM 9 pode tambémarmazenar um ou mais módulos de programa. Em particular, odispositivo de armazenamento em massa 14 e a RAM 9 podem ar-mazenar um programa de aplicação de navegador da Rede 10.Como conhecido para aqueles versados na técnica, o programade aplicação do navegador da Rede 10 é operativo para soli-citar, receber, renderizar e prover interatividade com docu-mentos eletrônicos, tal como uma página da Rede 24 que foiformatada usando HTML. Além do mais, o programa de aplicaçãodo navegador da Rede 10 pode ser operativo para executar ro-teiros contidos na página da Rede 24, tal como roteiros ex-pressos utilizando a linguagem JAVA SCRIPT de SUNMICROSYSTEMS, INC. De acordo com uma modalidade da invenção,o programa de aplicação do navegador da Rede 10 compreende oprograma de aplicação do navegador da Rede INTERNET EXPLORERda MICROSOFT CORPORATION. Deve ser verificado, entretanto,que outros programas de aplicação de navegador da Rede deoutros fabricantes podem ser utilizados para personificar osvários aspectos da presente invenção, tal como a aplicaçãode navegador da Rede FIREFOX de MOZILLA FOUNDATION.
Como será descrito em maiores detalhes abaixo, apágina da Rede 24 pode compreender uma representação visívelde um documento de planilha. Em particular, a página da Rede24 pode incluir HTML e roteiros que, quando exibidos pelaaplicação do navegador da Rede 10, provêem uma exibição vi-sual para uma planilha. Além do mais, os roteiros incluídosna página da Rede 24 permitem que um usuário do computadorinteraja com a exibição provida pela aplicação do navegadorda Rede 10 e modifique a planilha. Da exibição visual provi-da pela aplicação do navegador da Rede 10, o usuário podetambém ter permissão para solicitar que o arquivo de plani-lha nativo seja aberto em um programa de aplicação de plani-lha 26. Em resposta a uma tal solicitação, a aplicação daplanilha 26 será lançada e o arquivo de planilha nativo cor-respondendo com a planilha expresso pela página da Rede 24será carregado pelo programa de aplicação de planilha 26. 0programa de aplicação de planilha 26 pode compreender o pro-grama de aplicação de planilha EXCEL da MICROSOFTCORPORATION ou um outro programa de aplicação de planilha deum outro fabricante. Detalhes adicionais quanto ao processopara visualização e interação com uma planilha de dentro docontexto de uma aplicação do navegador da Rede 10 serão ago-ra providos com relação à figura 2.
Com referência agora à figura 2, um diagrama dearquitetura de rede será descrito que ilustra um ambienteoperacional para as várias modalidades da invenção. Comomostrado na figura 2, o computador 2 é conectado em uma rede18. Também conectado na rede 18 está um servidor de aplica-ção 30. O servidor de aplicação 30 compreende um computadorservidor que pode conter alguns ou todos os componentes decomputação convencionais descritos acima com relação à figu-ra 1. Adicionalmente, o servidor de aplicação 30 é operativopara executar uma aplicação do servidor da Rede para recebere responder a solicitações por documentos armazenados em ouacessíveis para o servidor de aplicação 30. Além do mais, oservidor de aplicação 30 é operativo para receber e respon-der a solicitações por páginas geradas por uma aplicação daRede 34. Deve ser verificado que a aplicação da Rede 34 podecompreender código executável no servidor de aplicação 30,código executável para comunicação com outros computadores epode incluir modelos, gráficos, arquivos de áudio e outroconteúdo conhecido para aqueles versados na técnica.
De acordo com um aspecto da invenção, a aplicaçãoda Rede 34 é operativa para prover uma interface para um u-suário do computador 2 interagir com uma planilha ou pastaacessível via a rede 18. Em particular, a aplicação da Rede34 utiliza uma interface de programação de aplicação ("API")do servidor 38. De acordo com essa modalidade da invenção, aAPI do servidor 38 é operativa para possibilitar a comunica-ção com um servidor de cálculo de planilha 32. 0 servidor decálculo de planilha 32 é operativo para executar um programado servidor de cálculo de planilha 40. O programa do servi-dor de cálculo de planilha 40 compreende um programa execu-tável para recuperar e calcular planilhas e tal como a pasta44 armazenada na base de dados 42. Deve ser verificado quenas modalidades da invenção descritas aqui, o programa doservidor de cálculo da planilha 40 compreende um servidor decálculo ("CS" como abreviado aqui), tal como o programaEXCEL CALCULATION SERVER da MICROSOFT CORPORATION. Entretan-to, outros programas para calcular uma planilha em um compu-tador servidor podem ser utilizados. Também deve ser verifi-cado que o servidor de cálculo 32 pode incluir muitos doscomponentes convencionais de hardware e software discutidos acimacom relação à figura 1.
Como será discutido em maiores detalhes abaixo, ocomputador 2 pode transmitir uma solicitação para o servidorde aplicação 30 para ver a pasta 44 dentro do contexto daaplicação do navegador da Rede 10. Em resposta a uma tal so-licitação, a aplicação da Rede 34 se comunica com o servidorde cálculo 32 através da API do servidor 38. Em particular,a aplicação da Rede 34 solicita do servidor de cálculo 32 apasta apropriada 44. Como será discutido em maiores detalhesabaixo, em resposta a uma tal solicitação, o programa doservidor de cálculo 40 recupera a pasta 44 e converte a pas-ta 44 em um formato de documento de planilha, tal como umformato de documento com base em XML. Como conhecido paraaqueles versados na técnica, formatos com base em XML com-preendem um esquema da linguagem de marcação para expressaros conteúdos de uma planilha. Depois que o programa do ser-vidor de cálculo de planilha 40 tiver convertido a pasta so-licitada 44 para o formato de documento de planilha, o ar-quivo formatado do documento de planilha é retornado para aaplicação da Rede 34.
Depois que a aplicação da Rede 34 tiver recebidodo servidor de cálculo 32 a representação formatada do docu-mento da planilha da pasta 44, o servidor da aplicação 30utiliza o renderizador de Rede da planilha 36 para convertera planilha formatada em uma representação da planilha quepode ser renderizada pela aplicação do navegador da Rede 10.Em particular, o renderizador de Rede da planilha 36 conver-te o documento formatado em um documento contendo HTML quepode ser renderizado pela aplicação do navegador da Rede 10para exibir a planilha. Além disso, de acordo com modalida-des da invenção, o renderizador de Rede da planilha 36 é ca-paz de produzir HTML que, quando renderizado pela aplicaçãodo navegador da Rede 10, aparenta substancialmente similar àsaída da aplicação da planilha 26 quando utilizado para vera mesma pasta 44. Depois que o renderizador de Rede da pla-nilha 36 tiver completado a renderização do arquivo, ele éretornado pelo servidor de aplicação 30 para o computador 2onde ele pode ser renderizado pela aplicação do navegador deRede 10.
Como também será discutido em maiores detalhes a-baixo, o renderizador de Rede da planilha 36 pode também seroperativo para renderizar no arquivo da linguagem de marca-ção um ou mais roteiros para permitir que o usuário do com-putador 2 interaja com a planilha dentro do contexto da a-plicação do navegador da Rede 10. A fim de prover essa fun-cionalidade, o renderizador de Rede da planilha 36 é opera-tivo para renderizar o código de roteiro que é executávelpela aplicação do navegador da Rede 10 na página de Rede re-tornada. Os roteiros podem prover funcionalidade, por exem-plo, para permitir que um usuário veja uma porção maior daplanilha, para modificar tabelas pivô contidas dentro daplanilha, para carregar a versão nativa da planilha na apli-cação de planilha 26 e para executar outras funções.
A fim de prover interatividade com a planilha den-tro do contexto da aplicação do navegador da Rede 10, a a-plicação do navegador da Rede 10 recebe entrada do usuário.Em resposta a certos tipos de entrada do usuário, os rotei-ros podem ser executados. Quando um roteiro é executado, umaresposta pode ser transmitida para o servidor de aplicação30 indicando um elemento dentro da planilha que foi influen-ciado, para identificar o tipo de interação que foi feita epara também identificar para a aplicação da Rede 34 a funçãoque deve ser executada no elemento apropriado. Em respostaao recebimento de uma tal solicitação, a aplicação de Redepode fazer solicitações adicionais para o servidor de cálcu-lo 32 por uma pasta atualizada 44. Em resposta a isso, oprograma do servidor de cálculo da planilha 40 pode recalcu-lar a pasta 44 em vista da ação do usuário e prover uma re-presentação formatada do documento da planilha da pasta atu-alizada para a aplicação da Rede 34. O renderizador de Rededa planilha 36 fica então operativo para renderizar a pastaatualizada em um formato que pode ser renderizado pela apli-cação do navegador de Rede 10. A aplicação de Rede 34 ficaentão operativa para transmitir a planilha atualizada para ocomputador 2 onde ela pode ser renderizada pela aplicação donavegador de Rede 10. Esse processo pode ser repetido qual-quer número de vezes quando o usuário interage com a plani-lha dentro do contexto da aplicação do navegador de Rede 10.
Quando um usuário tiver terminado de editar a planilha den-tro da aplicação do navegador de Rede 10, quaisquer mudançasfeitas na planilha podem ser propagadas através de qualqueruma ou mais dentre a aplicação de Rede 34, o servidor decálculo 32 e a pasta 44 armazenados na base de dados 42. De-talhes adicionais quanto a esses vários processos, incluindoimplementações exemplares para designar, descobrir e ajustarparâmetros da pasta são providos abaixo.
Designação, Descoberta e Ajuste dos Parâmetros doDocumento da Planilha
Com referência agora às figuras 3A e 3B, uma roti-na ilustrativa 300 será descrita ilustrando um processo paraver e interagir com uma planilha de dentro do contexto de umprograma de aplicação de navegador de Rede. Deve ser verifi-cado que embora as modalidades da invenção descritas aquisejam apresentadas no contexto de um programa de aplicaçãode navegador de Rede, a invenção pode ser utilizada em ou-tros tipos de programas de aplicação que suportam a renderi-zação dos documentos da linguagem de marcação. Por exemplo,as modalidades da invenção descritas aqui podem ser utiliza-das dentro de um programa de aplicação gerenciador de infor-mação pessoal, um programa de aplicação de apresentação, umprograma de aplicação de projeto auxiliado por computador oudesenho ou um programa de aplicação da base de dados a fimde permitir a renderização de e a interação com um documentosem requerer um programa de aplicação dedicado.
Quando lendo a discussão das rotinas apresentadasaqui, deve ser verificado que as operações lógicas das vá-rias modalidades da presente invenção são implementadas (1)como uma seqüência de ações implementadas no computador oumódulos do programa funcionando em um sistema de computaçãoe/ou (2) como circuitos lógicos de máquina interligados oumódulos do circuito dentro do sistema de computação. A im-plementação é uma questão de escolha dependente das exigên-cias de desempenho do sistema de computação que implementa ainvenção. Dessa maneira, as operações lógicas ilustradas nasfiguras 3 e 6 e compondo as modalidades da presente invençãodescrita aqui são citadas de maneira variada como operações,dispositivos estruturais, ações ou módulos. Será reconhecidopor alguém versado na técnica que essas operações, disposi-tivos estruturais, ações e módulos podem ser implementadosem software, em firmware, em lógica digital de uso especiale qualquer combinação desses sem se desviar do espirito e doescopo da presente invenção como recitado dentro das reivin-dicações anexas a ela.
A rotina 300 começa na operação 302, onde o compu-tador cliente 2 transmite para o servidor da aplicação 30uma solicitação pela pasta 44. A solicitação pode ser trans-mitida pelo computador 2 em resposta a um usuário solicitan-do através da aplicação do navegador da Rede 10 que a pasta44 seja aberta para visualização e edição dentro da aplica-ção do navegador da Rede 10. Deve ser verificado que o ser-vidor de aplicação 30 pode prover uma interface com base naRede 30 para permitir que um usuário veja as pastas disponí-veis e selecione uma das pastas para visualização e edição.
Da operação 302, a rotina 300 continua para a ope-ração 304, onde o servidor de aplicação 30 transmite uma so-licitação para o servidor de cálculo 32 pela pasta 44. Emparticular, a aplicação de Rede 34 pode utilizar a API doservidor 38 para se comunicar com o programa do servidor decálculo da planilha 40. Através dessa trajetória de comuni-cação, uma solicitação pode ser feita pela pasta 44.
Da operação 304, a rotina 300 continua para a ope-ração 306, onde o programa do servidor de cálculo da plani-lha 40 recupera a pasta solicitada 44 da base de dados 42. Oprograma do servidor de cálculo da planilha 40 então calculaos conteúdos da pasta 44 na operação 308. A operação de cál-culo 308 pode incluir cálculos similares a esses executadospor uma aplicação de planilha 26 quando recalculando a pasta44 .
Depois que o servidor de cálculo 32 tiver calcula-do a pasta 44, o programa do servidor de cálculo de planilha40 fica também operativo para converter a pasta calculadapara um formato apropriado, tal como um formato com base emXML. Um formato em XML, ou com base em marcação, compreendeum esquema da linguagem de marcação para descrever os conte-údos de uma planilha. Deve ser verificado que, de acordo comaspectos da invenção, somente uma porção da pasta 44 é con-vertida para o formato XML. Isso permite que somente umaporção exibivel da planilha seja retornada para o computador2. Porções adicionais podem ser solicitadas através da in-terface provida pela página da Rede 24. Alternativamente,toda a pasta 44 pode ser convertida para o formato XML e re-tornada para o servidor de aplicação 30.
Na operação 312, o servidor de cálculo 32 respondepara a solicitação do servidor de aplicação 30 com a pastaformatada em XML. A rotina 300 então continua para a opera-ção 314, onde o renderizador de Rede da planilha 36 execu-tando no servidor de aplicação 30 converte a pasta formatadaem XML para um formato que pode ser renderizado e exibidopela aplicação do navegador da Rede 10. Em particular, orenderizador de Rede da planilha 36 converte a pasta em XMLpara uma página de Rede 24 que inclui ambos HTML e os rotei-ros. O HTML é utilizado pelo navegador de Rede 10 para exi-bir os conteúdos da pasta solicitada 44. Os roteiros são u-tilizados pela aplicação do navegador da Rede 10 para permi-tir que um usuário interaja com a versão renderizada da pla-nilha dentro do contexto da aplicação do navegador da Rede 10.
Da operação 314, a rotina 300 continua para a ope-ração 316, onde o servidor de aplicação responde para a so-licitação original do computador 2 para a pasta 44. Em par-ticular, o servidor de aplicação 30 transmite a página daRede 24 para o computador 2 que inclui o HTML e roteiros ne-cessários para ver e interagir com a pasta 44 dentro do con-texto da aplicação do navegador da Rede 10.
Depois que o computador 2 recebeu a página de Rede24, a aplicação do navegador da Rede 10 fica operativa pararenderizar os conteúdos da página de Rede 24. Em particular,o HTML é renderizado a fim de prover uma visão da pasta 44que é substancialmente similar a essa que seria provida pelaaplicação de planilha 26 se a mesma pasta 44 fosse abertautilizando a aplicação de planilha 26. Além do mais, a apli-cação do navegador da Rede 10 é operativa para renderizar osroteiros de modo que um usuário do computador 2 pode intera-gir com a planilha dentro do contexto da aplicação do nave-gador da Rede 10.
Com referência agora à figura 3B, uma rotina ilus-trativa 320 será descrita que ilustra vários aspectos da in-venção para permitir que um usuário interaja com uma pastarenderizada dentro do contexto da aplicação do navegador daRede 10. A rotina 320 começa na operação 322, onde os conte-údos da página de Rede 24, incluindo o HTML necessário paraexibir a página de Rede e os roteiros necessários para per-mitir que um usuário interaja com a planilha são renderiza-dos. A rotina 320 então continua para a operação 324, onde aaplicação do navegador da Rede 10 recebe entrada do usuáriopara interagir com a planilha exibida. Por exemplo, a apli-cação do navegador da Rede 10 pode receber do usuário a en-trada modificando os conteúdos de uma tabela pivô, solici-tando que uma outra planilha em uma pasta seja exibida, parasalvar quaisquer modificações na planilha ou para executaroutras funções. Deve ser verificado que um ou mais roteirospodem ser executados pela aplicação do navegador da Rede 10para receber a entrada e executar a comunicação com o servi-dor da aplicação 30 necessária para fazer com que a intera-ção seja executada.
Depois que a entrada foi recebida de um usuário naoperação 324, o roteiro apropriado transmite os dados para oservidor de aplicação 30 identificando a ação particular a-dotada pelo usuário na operação 326. Na operação 328, o ser-vidor de aplicação 30 determina a ação particular adotadapelo usuário. Depois que a ação solicitada foi identificada,o servidor de aplicação 30 transmite para o servidor de cál-culo 32 um comando solicitando que a ação particular sejaadotada na pasta especifica. Como discutido acima, o servi-dor de aplicação 30 se comunica com o servidor de cálculo 32através da API do servidor 38.
Em resposta ao recebimento da solicitação do servidor de aplicação 30 para executar um comando na pasta atu-al, o programa do servidor de cálculo da planilha 40 executaa ação solicitada na pasta 44. Por exemplo, se um usuáriosolicitou que elementos dentro de uma tabela pivô sejam re-organizados, o servidor de cálculo da planilha 40 executa areorganização atual dos elementos. Depois que a ação foi e-xecutada, o programa do servidor de cálculo da planilha 40recalcula a pasta na operação 332. A pasta recalculada re-flete as mudanças feitas pelo usuário na pasta atualmenteaberta através da aplicação do navegador da Rede 10.Depois que a pasta 44 foi recalculada, em 334, oservidor de cálculo 32 converte a pasta recalculada para oformato XML. Esse processo é descrito acima com referência àfigura 3A. Depois que a pasta recalculada foi convertida pa-ra o formato XML, a pasta recalculada é transmitida do ser-vidor de cálculo 32 para o servidor de aplicação 30. No ser-vidor de aplicação 30, o renderizador de Rede da planilha 36converte a versão XML da planilha recalculada para um forma-to que pode ser renderizado pela aplicação do navegador daRede 10. A versão que pode ser renderizada da planilha re-calculada é então transmitida para a aplicação do navegadorda Rede 10 onde ela pode ser renderizada e exibida para umusuário. Esse processo é descrito acima com referência à fi-gura 3A e operações 312-318. Detalhes de implementação nãolimitadores exemplares para os processos para designar, a-justar, editar e descobrir parâmetros da pasta de acordo coma invenção serão agora descritos em mais detalhes abaixo.
Designação, Ajuste, Edição e Descoberta dos Parâ-metros da Pasta
Como descrito, de acordo com a invenção, um autorde pasta pode especificar células e/ou filtros como parâme-tros editáveis. Um servidor, por exemplo, um servidor de a-plicação de planilha que, entre outras coisas, renderiza do-cumentos de planilha para exibição via um navegador de Rede,pode então expor os parâmetros editáveis através da interfa-ce do usuário (UI) e através de uma interface de programaçãode aplicação (API) dos serviços de rede. Em um aspecto dainvenção, um cliente da planilha pode ser usado para criaruma experiência para parâmetros da pasta permitindo a desig-nação de células e filtros como parâmetros.
Como mencionado nos antecedentes, servidores deaplicação atuais não permitem a edição em linha de valoresde célula, entretanto, existem numerosos cenários de consu-midor para os quais a capacidade de mudar um subconjunto es-pecifico de valores de célula é poderosa. Isso inclui, porexemplo, modelos de cálculo bem definidos simples (por exem-plo, calculadores de hipoteca) e análise o que se (por exem-plo, mudar a taxa de crescimento no ano da receita por ano) .Um tal aspecto pode ser usado tanto por usuários finais de-sejando mudar os valores como parte da experiência de rende-rização de Rede do servidor de aplicação, bem como pela APIdos serviços de Rede para descobrir, recuperar e ajus-tar/editar valores de parâmetro específicos.
A aplicação do cliente da planilha de acordo com ainvenção provê o usuário com maneira (s) para designar quaiscélulas são parâmetros. Os usuários podem então descobrirquais células são parâmetros e editar as células correspon-dentes. Embora, em uma modalidade da invenção, somente oservidor exponha parâmetros (onde a funcionalidade de desig-nação do parâmetro do cliente se torna parte da publicaçãodas pastas para o servidor), a presente invenção consideramodalidades alternadas onde uma aplicação de cliente de pla-nilha expõe os parâmetros também, isto é, permite a desco-berta, recuperação e ajuste dos parâmetros.
Aqui são descritas técnicas permitindo que autores dapasta especifiquem células específicas como parâmetros nocliente da planilha. O servidor de aplicação, por sua vez,suporta mudança dos valores nessas células através de UI ouOM. Tal funcionalidade pode também ser suportada pelo clien-te da planilha.
Existe uma variedade de maneiras para expor parâ-metros para um usuário como pode ser verificado por alguémversado na técnica. Por exemplo, em uma modalidadé exemplarnão limitadora, painéis podem ser utilizados. Por exemplo,painéis atuais, tal como painéis de inteligência de negócios(BI) são construídos usando várias partes de Rede de rende-rização de dados (por exemplo, componentes de Rede de escri-tório (OWC), dos serviços de relatório do servidor SQL) e édesejável filtrar todas as visualizações de dados diferentesem sincronismo. Isso pode ser realizado ligando todas aspartes da Rede em um único valor de 'parâmetro'.
Pastas de planilha podem assim ser incorporadasnesses painéis de acordo com a invenção de modo que as pas-tas podem rechaçar filtros e parâmetros de nível de páginasimilares, possibilitando os seguintes cenários, cada um dosquais é exemplar e não limitador: (1) prover usuários finaiscom UI e OM no cliente de planilha para definir certas célu-las como parâmetros, (2) persistir a informação do parâmetrono arquivo da planilha de modo que o servidor de aplicaçãopode expor os parâmetros através da UI e da API dos serviçosde rede, (3) designar a UI do aspecto e pontos de entradapara tornar claro para o usuário final que o aspecto é pla-nejado para cenários de cliente/servidor de planilha e (4)habilitar cenários do servidor de aplicação incluindo cons-trução de painéis BI usando uma parte da Rede de filtro (oufracionador) para conduzir completamente os parâmetros dapasta de acordo com comunicações apropriadas entre as partesdo sistema. Em um aspecto, a invenção assim provê um contro-le do fracionador que provê valores para parâmetros.
Por exemplo, suponha que uma companhia reúna dadose crie relatórios de planilha com base nos dados do ponto devendas para fabricantes, analistas da bolsa de valores, cor-retores e varejistas e esses relatórios são distribuídos viaa Rede como arquivos HTML. Como arquivos HTML, esses relató-rios são completamente estáticos - não existe maneira defiltrar os dados ou explorar os dados dentro do relatório afim de encontrar a resposta para uma questão de negócios.Por essa razão, a companhia gera acima de 1 milhão dessesrelatórios para seus clientes de modo que caso o cliente de-seje quase qualquer relatório imaginável, ele estará dispo-nível. 0 resultado disso é que somente 3-5% dos relatóriosque companhias tal como essa geram são usados em uma baseconsistente e quando modificações minoritárias são necessá-rias que essas companhias não previram, um analista devecriar e trabalhar o novo relatório manualmente - um processo caro e longo.
Com o servidor de aplicação e as partes de Rede daplanilha da invenção, tais companhias serão capazes de redu-zir grandemente o número de relatórios que são gerados paraseus clientes, que tanto economizará o dinheiro da companhiaquanto tornará mais fácil para os clientes encontrarem a in-formação que eles estão procurando. Ao invés de criar todosos relatórios imagináveis que um cliente poderia desejar,com a invenção, a companhia será capaz de criar um conjuntobásico de relatórios que extraem os dados das fontes de da-dos corretas para as pastas da planilha no servidor. Essesrelatórios serão relatórios básicos, tal como "vendas YTD",que os clientes serão capazes de facilmente entender ao in-vés da multidão de relatórios atuais ("vendas YTD NW", "SW","NE", "SE", "por produto", "por produto NW", "por produtoNE", "por produto SW", "por produto SE", etc.). Com parame-terização simples, os clientes serão capazes de personalizaresses relatórios e filtrar nas várias dimensões de modo aver a informação que os interessa mais. Além disso, se umcliente deseja ver os detalhes de um relatório especifico,ou os "10 mais" para uma linha de produto especifica, o cli-ente será capaz de fazer isso imediatamente dentro do rela-tório existente e não terá que solicitar que um novo relató-rio seja gerado pela companhia.
Para um outro uso exemplar da invenção, John criarelatórios de vendas semanais para sua gerência superior.Hoje, John tem uma pasta com conexões para dados externos ea cada semana ele renova os dados e a seguir vários tiramcapturas instantâneas da pasta filtrada para as várias regi- ões nas quais eles trabalham. Ele então cola essas imagensem um e-mail e envia o correio resumido para a gerência.
Depois de instalar o software de planilha da in-venção, entretanto, John reprocessa a sua pasta para torná-la mais legível do que antes. Ele também tem uma única célu-la que diz a região no topo da sua pasta. Durante uma açãode publicação em um servidor de planilha, John ajusta certascélulas para serem parâmetros e decide ajustar a célula daregião como um parâmetro da pasta. Quando a pasta carrega noservidor de aplicação, seu gerente vê um novo painel de ta-refa aparecer que contém um campo de região editável. Os ge-rentes podem inserir as regiões diferentes, clicar aplicar ever os dados e a pasta atualizados para a região que elesinseriram.
Para um outro exemplo, Samantha está construindoum painel para os VPs seniores na sua organização e desejaque ele exiba indicadores de desempenho essenciais (KPIs),gráficos e folhas de dados, todos construídos de um únicocontrole de filtro fácil de gerenciar. Samantha configurauma página com vários servidores de aplicação, alguns KPIs eum controle de filtro (fracionador). Samantha então chega aofim e atribui o controle de filtro para conduzir os valoresde filtro para o nome do projeto nas várias partes na pági-na. Isso permite que os gerentes filtrem por projetos dife-rentes e vejam todas as partes do painel atualizadas de a-cordo.
Em uma modalidade não limitadora, somente um sub-conjunto de células pode ser selecionado para ser parâme-tros. Como eles são selecionados, quando e onde a lista deparâmetros disponíveis está armazenada e o OM relacionadocom o aspecto do parâmetro são descritos em mais detalhesabaixo.
Em uma modalidade, em um diálogo determinado porum usuário publicando um documento, a UI para especificarparâmetros da pasta inclui dois diálogos: um diálogo mos-trando os parâmetros definidos existentes na pasta e um diá-logo com uma lista de referências de nome disponíveis paraescolher para os parâmetros (onde nem todas as células podemser selecionadas como parâmetros, embora como mencionado a-cima, esse não precise ser o caso).
0 diálogo é iniciado como parte dos diálogos deajuste do servidor de publicação/gerenciamento e pode estarem qualquer forma adequada, tal como um diálogo tabulado,diálogos de classe existentes (tendo capacidades de ordena-ção) , etc.
Com a entrada, os parâmetros atuais definidos napasta atual são carregados em uma lista. Se não existem pa-râmetros definidos na pasta atual, a lista está vazia. Emqualquer caso, nenhum parâmetro é selecionado na lista com aprimeira entrada no diálogo.
Em uma implementação exemplar não limitadora, alista de parâmetros inclui qualquer um ou mais dos seguin-tes: (A) nome: o nome do parâmetro adotado (por padrão, alista pode ser classificada por nome na ordem ascendente (A-Z)), (B) valor: retorna uma constante de seqüência, o valoratual para o qual o nome se refere ou um código de erro, (C)comentário: quaisquer comentários associados com o nome e(D) se refere a: a qual nome, no qual o parâmetro é baseado,atualmente se refere.
Em uma modalidade não limitadora, a lista de parâ-·metros funciona como um controle de lista padrão. Por exem-plo, é possível selecionar um ou mais parâmetros na listapelo único clique no parâmetro (em qualquer lugar na linha)e múltiplas seleções estão disponíveis similares ao compor-tamento de controle de lista normal com o mouse e o teclado.Por exemplo, um parâmetro pode ser selecionado (por exemplo,com o ponteiro do mouse ou teclas de seta), o parâmetro podeser selecionado além de quaisquer outros parâmetros já sele-cionados, o parâmetro pode ser selecionado além de quaisqueroutros parâmetros já selecionados mais os parâmetros no meioda seleção e uma seleção prévia e os parâmetros podem serselecionados pelo clique movendo com o ponteiro do mouse.
Em uma outra modalidade não limitadora, um botãode "adicionar" ou função verifica para ver se existe pelomenos um nome válido e dispara um diálogo de parâmetro deadição e um botão "deletar" permite que o usuário delete umou mais parâmetros que foram previamente adicionados. Simi-larmente, pressionar o botão "deletar" quando um ou mais pa-râmetros são selecionados iniciará a deleção desses parâme-tros (da lista e no salvamento do arquivo). Quando retornan-do do diálogo do parâmetro de adição, em uma modalidade nãolimitadora exemplar, os parâmetros verificados ficam na baseda lista classificados de acordo com a mesma ordem que elesapareceram no diálogo do parâmetro de adição.
Em uma modalidade não limitadora exemplar, um usu-ário pode ordenar parâmetros pelo uso dos botões de seta pa- ra cima e para baixo e em uma outra modalidade não limitado-ra exemplar, arrastar e soltar se parâmetros podem ser im-plementados como um modo de ordenação dos parâmetros.
Com relação ao armazenamento de parâmetros, qual-quer modo convencionalmente conhecido para armazenar e asso-ciar os parâmetros designados com a pasta pode ser utiliza-do. Para uma implementação não limitadora exemplar, parâme-tros da pasta podem ser armazenados em uma propriedade dodocumento, tal como uma propriedade de documento oculta e/ouno arquivo da pasta. O primeiro permite fácil extração dosparâmetros pelo servidor de aplicação e possibilita a rápidarecuperação para configuração de painéis com controles defracionador e soluções adicionais. Parâmetros da pasta podemser armazenados quando salvando ou publicando um arquivo.
Em uma modalidade não limitadora exemplar, a in-formação que é armazenada para cada parâmetro é a mesma quea informação inserida para cada usuário, embora informaçãoadicional possa também ser armazenada, isto é, formatos dearmazenamento de parâmetro são extensíveis de acordo com ainvenção. As propriedades seguintes podem também ser armaze-nadas para cada parâmetro: o nome definido e a ordem na qualos nomes aparecerão na UI ou OM do servidor de aplicação.
Em modalidades não limitadoras exemplares, a cole-ção de ServerParameters do ServerParameters no nível da pas-ta pode incluir o seguinte da tabela Ieo objeto ServerPa-rameter pode incluir os elementos abaixo na tabela II:
<table>table see original document page 33</column></row><table><table>table see original document page 34</column></row><table>
Tabela I - Coleção ServerParameters de ServerPara-
meters<table>table see original document page 35</column></row><table>
Tabela II - elementos do objeto ServerParameter
Edição de Conteúdos de uma Célula via o Servidorde Aplicação
Essa seção descreve, de forma geral, a capacidadede um usuário editar os conteúdos de uma célula via o servi-dor de aplicação, através de um filtro do servidor de portalSharePoint (SPS) ou um painel de tarefa do parâmetro da pró-pria pasta do servidor de aplicação. Alguém versado na téc-nica pode verificar, entretanto, que mecanismos conhecidosalternados para editar o conteúdo de uma célula podem serutilizados de acordo com a invenção e que os detalhes de im-plementação seguintes são apresentados com finalidades ilus-trativas .
Para algum antecedente, o SPS é usado para algumastarefas executadas por um servidor da planilha. O servidorde aplicação, como descrito em modalidades exemplares aqui,é uma parte da Rede que, entre outras coisas, renderiza pas-tas da planilha, por exemplo, como linguagem de marcação dehipertexto dinâmica (DHTML). O servidor de cálculo (CS) é omecanismo de cálculo e geralmente compreende os componentesdo segundo plano de um servidor de planilha. Como descritoaqui, um primeiro plano da Rede (WFE) inclui os componentesvirados para o primeiro plano do servidor de planilha, in-cluindo: o servidor de aplicação, interfaces de programaçãode aplicação (APIs) e proxy.
Como descrito na seção prévia, parâmetros da pastade acordo com a invenção incluem uma maneira para um autorda pasta selecionar um subconjunto de células na sua pasta emarcá-lo como editável pelo usuário. Essas células podem en-tão ser salvas nas propriedades do documento da pasta e ex-postas para o usuário final através de um painel de tarefano próprio servidor de aplicação ou através de um filtroSPS. Essa seção descreve uma variedade de implementações nãolimitadoras exemplares para essas soluções.
A figura 4A ilustra uma imagem de tela da UI nãolimitadora exemplar ilustrando o servidor de aplicação com15 parâmetros de acordo com a invenção. Com a invenção, os usu-ários são capazes de ajustar parâmetros usando o servidor deaplicação sem requerer uma transferência de componente.
Sob esse aspecto, a invenção suporta uma variedadede cenários de parameterização de modo que os usuários podemcompletar tarefas comuns sem ter que retornar para o softwa-re do cliente da planilha. Por exemplo, a parameterizaçãofuncionará com uma interface do fracionador de SPS como des-crito aqui. Sob esse aspecto, a invenção permite que os usu-ários obtenham parâmetros do servidor de aplicação para con-duzir outras partes da Rede.
Para alguns cenários não limitadores exemplaresque podem ser realizados de acordo com o servidor de aplica-ção da invenção, a tarefa de construir uma pasta com célulaseditáveis é considerada. Por exemplo, suponha que John criarelatórios de vendas semanais para sua gerência superior.Atualmente, John tem uma pasta com conexões para dados ex-ternos e a cada semana ele renova os dados e a seguir váriostomam capturas instantâneas da pasta filtradas para as vá-rias regiões nas quais eles trabalham. Ele então cola essasimagens em um e-mail e envia o correio resumido para a ge-rência.
Depois de instalar o software apropriado, entre-tanto, John critica a popularidade dos dados da folha e re-processa essa pasta usando dados da folha para torná-la maislegível do que antes. Ele também tem uma célula única quediz a região no topo da sua pasta. Durante uma publicação noservidor de planilha, John verifica que ele pode ajustarcertas células para serem parâmetros via a invenção e decideajustar a célula da região como um parâmetro da pasta. Quan-do a pasta carrega no servidor de aplicação, John é excitadoa ver uma nova face da tarefa aparecer que contém um campode região editável. John entra em 'sul' e clica 'aplicar' eassiste quando o servidor de aplicação renova com os dadostodos atualizados para a região sul. Agora, John não temmais que emitir esses correios de estado semanalmente nova-mente .
Para um outro cenário, a invenção possibilita aconstrução de um painel. Por exemplo, Sam está construindoum painel para os VPs seniores na sua organização e desejaque ele exiba indicadores de desempenho essenciais (KPIs),gráficos e folhas de dados, todos construídos de um únicocontrole de filtro fácil de lidar. De acordo com a presenteinvenção, Sam configura uma página com vários servidores deaplicação 'expostos', alguns KPIs e um controle de fraciona-dor de SPS. Sam então termina e atribui o controle do fra-cionador para receber valores de filtro de todas as váriaspartes na página e atribui cada um deles para um único con-trole de "relatório".
Agora, quando um VP vai para a página do painel eseleciona um relatório da lista, todas as folhas, gráficos eindicadores de KPI atualizam para refletir os dados nesserelatório porque Sam ajustou todas as pastas para o filtrocom base no relatório selecionado.
De acordo com implementações não limitadoras exem-plares da invenção, parâmetros da pasta podem ser salvos co-mo propriedades do documento e o CS inclui a capacidade deaplicar mudanças nas propriedades da pasta via uma API par-ticular no CS.
Em uma modalidade, a invenção provê uma interfaceque proporciona acesso via um transformador a um parâmetro eos valores ajustados para ele no fracionador sempre que ousuário submete a página.
Para configurar uma conexão entre o fracionador deSPS e um controle da invenção, em uma modalidade não limita-dora exemplar da invenção, o usuário entra no modo de dese-nho para a página em que o servidor de aplicação está e co-meça a baixar controles de filtro na "zona da parte da rededo filtro". O usuário pode então clicar em uma seta no topodireito do controle, e nesse suspenso, eles escolherão cone-xões e o menu voador (flyout) das conexões inclui uma opção"Pegar valores de filtro de", que novamente causa um voadorpara {SpreadsheetWebRenderer}.
Depois que o usuário seleciona o servidor de apli-cação, eles são induzidos a selecionar de uma lista de parâ-metros não atribuídos que o servidor de aplicação está ex-pondo, ou, se eles tentaram configurar uma conexão de umcontrole de filtro de múltiplos valores, eles recebem umamensagem indicando para eles que o servidor de aplicação nãoestá expondo quaisquer parâmetros de múltiplos valores e e-les não serão capazes de configurar uma conexão para o ser-vidor de aplicação usando esse controle de filtro. Assumindoque eles estavam tentando configurar uma conexão de um con-trole de valor único, o usuário então selecionará um parâme-tro da lista e o controle é então considerado configurado.Em uma modalidade não limitadora, se um parâmetro é conecta-do em um controle de filtro e o painel de tarefa dos parâme-tros da pasta está visível, ele fica desativado na face datarefa.
Em uma modalidade não limitadora, parâmetros decélula única aceitam um único valor do fracionador e isso éo porque para cada parâmetro, a invenção passa um indicador'SupportsSingleValue' para o fracionador. Isso significa queo fracionador somente permitirá que o usuário configure co-nexões de elementos de filtro de valor único para parâmetrosde célula única.
Em uma modalidade não limitadora exemplar, os va-lores são enviados para o CS como pares de nome-valor, demodo que nem todos os parâmetros precisam ser enviados parao CS e a ordem deles não importa. Manipulação de erro apro-priada pode ser aplicada de acordo com a invenção na eventu-alidade de um mal funcionamento.
Nas modalidades não limitadoras exemplares da in-venção, uma barra de expandir/fechar é provida ao lado, porexemplo, se ajusta para a esquerda ou direita, do painel detarefa dos parâmetros da pasta, mas à direita ou esquerda dafolha (respectivamente) e permite que o usuário oculte oumostre o painel de tarefa. A barra de ferramentas pode sercolocada acima de ambas a barra de expandir/fechar e o pai-nel de tarefa dos parâmetros da pasta.
A barra de expandir/fechar inclui uma imagem quedepende de se o painel de tarefa está fechado ou expandido ea imagem está centralizada tanto vertical quanto horizontal-mente. Nas modalidades não limitadoras exemplares, as ima-gens usadas são como segue:
Clicar na barra de expandir/fechar quando o painelde tarefa está visível, a oculta e move a barra de expan-dir/fechar para a borda à direita distante (ou borda esquer-da no modo direita para esquerda (RTL)) do servidor de apli-cação :e a grade e a barra de navegação da folha crescem nalargura junto com ela. Clicar na barra de expandir/fecharquando o painel de tarefa está oculto a revela e move a bar-ra de expandir/fechar para fora com ela e encolhe a largurada grade e da barra de navegação da folha.
O usuário também deve ser capaz de tabular para abarra de expandir/fechar e operá-la usando a tecla ENTER.O estado do painel de tarefa, seja ele fechado ouexpandido, é preservado através da postagem de retorno parao CS. Assim, se o usuário fecha o painel de tarefa e a se-guir executa uma ação que requer uma postagem de retorno pa-ra o CS, quando a página recarrega, o painel de tarefa devepermanecer fechado.
Em uma modalidade não limitadora exemplar, o pai-nel de tarefa dos parâmetros da pasta começa visível e paraa direita (esquerda no modo RTL) de todos os controles noservidor de aplicação, exceto para a barra de ferramentas(onde ela é posicionada abaixo).
Os parâmetros para exibir e o que exibir na caixade texto correspondente são passados para o servidor de a-plicação pelo CS. Em várias modalidades não limitadoras, no corpo do painel de tarefa dos parâmetros da pasta estão osnomes da faixa nomeada e as caixas de texto nas quais o usu-ário pode inserir os dados.
Para finalidades ilustrativas, uma implementaçãoexemplar da UI para o painel de tarefa é ilustrado na figura4B. Quando um usuário abre primeiro o servidor de aplicação,se existem parâmetros para essa pasta e o painel de tarefados parâmetros da pasta não está desativada via as proprie-dades da parte da Rede, então o painel de tarefa dos parâme-tros da pasta começa visível. Em uma modalidade, os parâme-tros são exibidos na mesma ordem no painel de tarefa dos pa-râmetros da pasta que a ordem na qual eles são passados parao servidor de aplicação pelo CS.
Em outras modalidades, a propriedade de descriçãoé mostrada como uma dica TTIP quando o usuário paira sobreum ícone da caixa de texto, como mostrado na figura 4C. Oícone usado pode ser o mesmo que esse usado na planilha paraindicar para o usuário que existe um comentário para essacélula. Desde que a propriedade de descrição é opcional, senenhum valor de descrição é provido, então esse ícone não émostrado e nenhuma dica será mostrada. O cursor do mouse po-de opcionalmente permanecer um ponteiro quando elevando-sesobre essa imagem.
Se existem mais parâmetros do que pode se ajustarno painel de tarefa, em uma modalidade da invenção, uma bar-ra de rolagem aparece que cobre apenas a seção do painel detarefa que contém os parâmetros e seus valores. Se o usuárioestá vendo uma pasta com parâmetros na página do observador,o painel de tarefa ficará visível. O usuário pode ocultar oumostrar esse painel de tarefa usando a barra de expan-dir/fechar. A barra de informação tem dois estados: um quan-do a página está no modo de desenho e um outro para quando apágina está no modo de visualização.
Um outro tipo de parâmetro que pode ser suportadopela presente invenção é um campo PivotTable Page, que podeaceitar múltiplos valores.
Operação do Servidor de Cálculo e Interação com oServidor de Aplicação
Como descrito acima, de acordo com a invenção, umservidor de planilha inclui a capacidade das pastas seremparameterizadas. A chamada das aplicações via o servidor deaplicação inclui a capacidade de solicitar uma lista de pa-râmetros e ajustar os seus valores. Como descrito acima, oservidor de aplicação inclui um renderizador da Rede pararenderizar pastas via a Rede. Sob esse aspecto, os parâme-tros possibilitam que os autores da pasta criem uma únicaplanilha modelo que pode mudar rapidamente seus conteúdoscom base no valor de um único ou múltiplos parâmetros.
Por exemplo, um autor de pasta projeta um calcula-dor de hipoteca e cria parâmetros de taxa de interesse,principal e entrada. 0 usuário aplica os parâmetros e as cé-lulas calculam e retornam os resultados apropriados. Os pa-râmetros também permitem que o servidor de aplicação parti-cipe de cenários de painel de inteligência de negócios (BI)nos quais uma única página da rede consiste de múltiplaspartes da rede que podem todas estar em sincronismo com baseno valor de um fracionador.
Um painel de BI é uma ferramenta para comunicar oestado e ação de condução e freqüentemente é uma mistura deinformação quantitativa apresentada como relatórios, diagra-mas, métricas e indicadores de desempenho essenciais e aná-lise qualitativa apresentada como os comentários do autor dopainel nos dados quantitativos providos.
Um parâmetro da pasta é uma variável associada comuma pasta que pode ser descoberta e ajustada chamando o ser-vidor dé aplicação. Internamente, um parâmetro é uma faixanomeada de célula única que foi "marcada" como um parâmetro.
Uma das capacidades dos painéis é que eles podemser filtrados ou fracionados com base no valor de um parâme-tro (usando a parte da rede do fracionador). Para pastas queestão sendo renderizadas em um servidor de aplicação que sãoparte de um painel de BI, o servidor de aplicação deve "atu-alizar" para refletir o parâmetro que foi atribuído para opainel de BI.
A fim de realizar isso, um mecanismo é provido deacordo com a invenção para partes da Rede para comunicarquais parâmetro(s) eles contêm e um mecanismo para ajustaros seus valor(es).
Para o servidor da planilha participar nesse cená-rio, quando um usuário muda um parâmetro, por exemplo, emuma parte do fracionador de Sharepoint, a pasta de planilhaexibida no servidor de aplicação reflete o valor do(s) fra-cionador (es) .
Como descrito aqui, a chamada das aplicações (ser-vidor de aplicação) pode solicitar ao servidor a lista deparâmetros associados com uma pasta. Em uma modalidade exem-plar, mesmo embora o ajuste de um valor de parâmetro sejaefetivamente equivalente ao ajuste do valor de uma célula,mensagens de erro são providas para o usuário que comunicamque uma operação de parâmetro falhou e não que o ajuste deum valor de célula falhou.
Em um outro aspecto da invenção, operações de pas-ta relacionadas com o ajuste de parâmetros são otimizadas.Por exemplo, o cálculo é suspenso a despeito do modo de cál-culo até que todos os valores de parâmetro tenham sido ajus-tados. Adicionalmente, a invenção garante que a definição doparâmetro (por exemplo, faixa nomeada) ainda satisfaz as e-xigências para ser um parâmetro quando a pasta é carregada.Adicionalmente, chamar as aplicações (servidor de aplicação)pode ajustar o valor (único) de um parâmetro.
Consumidores desses painéis navegarão para o pai-nel e serão capazes de mudar o parâmetro de "projeto" naparte da rede do parâmetro. Depois que o parâmetro de proje-to é alterado, todas as partes da rede na página (incluindoas partes da rede de renderização dos serviços de relatórioe do servidor de aplicação) atualizam para refletir os dadosassociados com o projeto que o consumidor do painel selecio-nou. Para o servidor de aplicação, fórmulas de dados de fo-lha podem ser usadas que adotam o valor da célula do parâme-tro como uma entrada para as funções.
Um calculador de hipoteca exige que vários parâme-tros sejam inseridos de modo a determinar o pagamento men-sal. Nesse cenário, uma pessoa cria uma pasta e cria faixasnomeadas para principal, taxa de interesse, período do em-préstimo e entrada. O usuário então bate no botão aplicar ea pasta é calculada mostrando para eles o seu pagamento men-sal .
Com relação à recuperação da informação do parâme-tro, o servidor de cálculo (CS) provê um modo para chamaraplicações para recuperar a informação do parâmetro, inclu-indo qualquer um ou mais do seguinte: nome do parâmetro, aordem do parâmetro na pasta (a fim de que o servidor de a-plicação as liste na ordem provida), o valor atual do parâ-metro e descrição do parâmetro.
O nome do parâmetro é o nome da faixa nomeada queele ocupa. A ordem do parâmetro define a ordem do parâmetropara finalidades de exibição e pode ser definida em uma va-riedade de maneiras e formatos. 0 CS pode retornar essa in-formação para chamar as aplicações (servidor de aplicação).Além do valor atual do parâmetro, cada parâmetro tem umadescrição opcional que o CS pode passar para a aplicação dechamada (servidor de aplicação) também.
0 CS provê um modo para o servidor de aplicaçãoajustar valor(es) de parâmetro para cada parâmetro na pasta.Em uma única chamada para o CS, um ou mais valores de parâ- metros podem ser ajustados. Como mencionado, em um aspectoda invenção, o cálculo pode ser suspenso até que todos osvalores de parâmetro são ajustados que são parte de uma pos-tagem de retorno. Ajustar valores para parâmetros é equiva-lente a ajustar o valor na célula via um método SetCellO.
Opcionalmente, o CS não mudará implícita ou expli-citamente os formatos de número no servidor com base no va-lor do parâmetro.
Com relação à suspensão do cálculo e renovação dedados quando uma pasta é aberta, o CS da invenção suporta acapacidade de ajustar valores de célula antes que a pastaseja calculada ou os dados sejam renovados, a despeito domodo de cálculo da pasta ou ajustes de renovação de dados.Depois que os parâmetros são ajustados,, a pasta retorna omodo de cálculo no qual ela foi criada.
Em uma modalidade, o servidor de aplicação passaparâmetros como parte da pasta aberta quando existem fracio-nadores na página que têm valores padrões. De outra forma, oservidor de aplicação não passará valores de parâmetro comoparte da sua solicitação para abrir a pasta.
Se a pasta está no modo de cálculo manual, issosignifica que a pasta potencialmente ficará em um estado decálculo "sujo", de cujo estado o usuário pode iniciar o cál-culo a fim de ver as mudanças na pasta devido aos valores deparâmetro sendo alterados.
Não é uma exigência que todos os parâmetros dapasta sejam ajustados como um resultado de uma operação deajuste de parâmetro pelo servidor de aplicação. Isso poderiaocorrer se a parte do fracionador na página da rede mapeiapara um subconjunto de parâmetros definidos na pasta. Nessecaso, os parâmetros adicionais na pasta mantêm os seus valo-res de célula padrões.
Em modalidades não limitadoras exemplares da in-venção, quando uma pasta é carregada pelo CS, o CS verificase os parâmetros definidos na pasta ainda satisfazem os cri-térios definidos para serem parâmetros. Se essa condição nãoé satisfeita, o CS retorna um erro. Essa verificação cobretodos os parâmetros na pasta, não apenas os parâmetros que oservidor de aplicação tentou ajustar. Pode ser verificadoque os critérios para ser um parâmetro podem ser ajustadosde maneira variada com base em características desejadas dosistema, por exemplo, equilibrando a certeza do sistema doque é um parâmetro e flexibilidade do usuário no ajuste deparâmetros.
Com relação ao ajuste e recuperação de parâmetrospelo mecanismo de cálculo do CS, o ajuste de um parâmetromuda o valor em uma célula e dependendo do modo de cálculono qual a pasta está (manual, automático), a pasta calculaou não calcula.
Seqüência de Imagem de Tela não Limitadora Exem-Plar
As figuras 5A a 5K ilustram uma seqüência exemplarde imagens de tela da UI ilustrativas (não limitadoras) quemostram a força da invenção em conjunto com uma experiênciade publicação na rede respeitando uma pasta que difunde ven-das com base na variável chamada crescimento (por exemplo,taxa de interesse de uma conta bancária).
Na figura 5A, a pasta 500 inclui células B3 e B4que rotulam vendas "2005" e provêem um valor de $2000 paraas vendas em 2005, respectivamente. As células C3 e C4 sãocélulas que, respectivamente, rotulam vendas "2006" e predi-zem um valor de $2200 com base na taxa de crescimento chama-da "crescimento" N2 tendo valor de 10% como mostrado na cé-lula F3. As células B3, C3, B4 e C4 são coletivamente chama-das "vendas" como indicado por N1.
Depois que a pasta 500 foi criada, como descritoacima, a figura 5B começa, via diálogo/menu 502a, a ilustrarum processo pelo qual o usuário pode publicar a pasta em umservidor de planilha, de onde usuários autorizados adicio-nais podem ver a pasta via uma rede, tal como a Rede, viauma aplicação, tal como um navegador. Como ilustrado, o usu-ário pode selecionar uma opção em 502a que publica a pasta500 em um servidor da Rede.
Depois de iniciado, o fluxo se move para a figura5C onde diálogo/menu 502b ilustra que um usuário pode esco-lher publicar um subconjunto da pasta, isto é, fazer issotal que uma porção da pasta 500, tal como uma planilha par-ticular, fique inacessível da Rede depois que a pasta 500 épublicada. Por exemplo, pode ser indesejável do ponto devista do autor da pasta compartilhar uma fórmula proprietá-ria localizada na planilha3, mas ao mesmo tempo, o autor dapasta pode desejar expor um ou mais parâmetros da planilha3para o usuário.
A seguir, como mostrado na figura 5D, um usuárioem 502c pode selecionar a aba de parâmetros do menu de diá-logo, que cria uma UI para selecionar (designar) células dapasta 500 como parâmetros. Opcionalmente, inicialmente em502d como mostrado na figura 5E, a UI inclui todos os parâ-metros possíveis para a pasta 500 de acordo com como os pa-râmetros podem ser definidos. Então, por exemplo, como mos-trado na figura 5F e de acordo com o modelo de crescimento,o usuário em 502e selecionou "crescimento" como um parâme-tro. Embora crescimento seja o único parâmetro nesse exem-plo, isso é por simplicidade de entendimento. Alguém versadona técnica pode verificar que modelos e fórmulas da plani-lha, e suposições associadas, podem ficar extremamente com-plicados e podem, portanto, implicar em dúzias ou mais deparâmetros.
Tendo selecionado crescimento como um parâmetro em502e, como mostrado em 502f da figura 5G, o usuário é retor-nado para a UI de publicação principal onde crescimento émostrado como tendo sido designado como um parâmetro. Final-mente, como mostrado na figura 5H, em 502g, o usuário publi-ca o documento no servidor de planilha engatando um elementoda UI de "publicação" correspondente. Tendo selecionado umaopção para exibir a pasta via a Rede, a pasta 500 criada viaa aplicação do cliente é exibida como uma pasta da Rede 504,como mostrado na figura 51. Uma pessoa pode ver que uma lis-ta de parâmetros LP é exibida à direita da pasta 504, queinclui o parâmetro de crescimento P e uma caixa de ediçãoEB. Como mencionado anteriormente, em uma modalidade, o cál-culo e a exibição da pasta 504 podem ser retardados, ou sus-pensos, até que um valor de parâmetro para a caixa de ediçãoEB seja inserido e aplicado. Na imagem de tela não limitado-ra mostrada na figura 51, os valores apresentados na criaçãoda pasta 500 são exibidos por padrão.
A seguir, na figura 5J, um usuário inseriu um novovalor na caixa de edição EB de 20% (ao invés dos 10% atual-mente usados no cálculo e exibição da figura 51) . Finalmen-te, o usuário aplica o novo valor inserido na caixa de edi-ção EB, e como mostrado na figura 5K, o servidor de cálculorecalcula o modelo com base no novo valor de parâmetro de20% e a pasta 506 é exibida depois que conversões apropria-das para exibir documentos com base na Rede sejam executa-das. Uma pessoa pode ver nesse caso que o valor de 2006 pro-jetado mudou para $2400 de $2200 com base em uma mudança dataxa de crescimento de 10% para 20%. Uma pessoa pode assimver a vantagem de publicar um documento de planilha em umservidor e expor os parâmetros para indivíduos com base nassuas necessidades. Por exemplo, uma companhia de hipotecapoderia desejar publicar uma calculadora de valor líquidoonde uma variedade de parâmetros (valor da casa, valor dasações, contas de aposentadoria, etc.) podem todos ser inse-ridos como parâmetros e assim individualmente adequados a umcálculo para um usuário. Ao mesmo tempo, a companhia de hi-poteca pode coletar tais dados de seus usuários e adequarmelhor suas·ofertas de serviços gerais para o usuário.
Embora a designação de parâmetros seja descrita emalgumas modalidades aqui como sendo incluídas em uma experi-ência de publicação, uma aplicação de cliente independentetambém se beneficia da designação de parâmetros de acordocom a invenção. Dessa maneira, a invenção não deve ser con-siderada como sendo limitada a um cenário de publicação deuma pasta na Rede, mas ao contrário deve ser considerada pa-ra ser definida dentro do escopo das reivindicações.
A figura 6 representa um diagrama de fluxo similarà seqüência precedente, mas sem certos detalhes limitadores.Por exemplo, em 600, um usuário escolhe criar ou editar umapasta e em 610, o usuário invoca um componente de interfacedo usuário para designar parâmetros da pasta, o que pode serfeito na etapa 620. Opcionalmente, a pasta pode ser publica-da em um servidor de Rede de documento de planilha para ren-derizar documentos de planilha via a Rede. No futuro, se odocumento da planilha incluindo os parâmetros designados éaberto pelo cliente ou visto via um renderizador da Rede,uma API particular opera em 630 para descobrir e extrair ainformação do parâmetro do documento de planilha, incluindouma lista de parâmetros que parameterizam o modelo básicorepresentado pelo documento de planilha. Então, o documentoestá pronto para exibição em 640, onde a lista de parâmetrosfica exposta e um componente de interface do usuário é apre-sentado para editar parâmetros na lista de parâmetros. A se-guir, opcionalmente, em 650, a pasta pode ela própria ser
exibida via cálculos com base em um conjunto inicial de va-lores para os parâmetros que definem a pasta, ou alternati-vamente, como descrito acima, tal cálculo pode ser suspensoaté que toda informação atual associada com o documento deplanilha seja recebida. Em 660, um usuário pode editar um oumais dos parâmetros na lista de parâmetros e solicitar apli-cação dos novos valores de parâmetro no modelo da planilha.Dessa maneira, em 670, o mecanismo de cálculo recalcula (oucalcula se suspenso) o documento de planilha com base nosnovos valores de parâmetro inseridos pelo usuário.
Implementações de Interface Exemplares
Para qualquer troca de dados entre múltiplos com-putadores, tal como dados de parâmetro de acordo com as téc-nicas da invenção e compartilhados entre dois computadores,existem interfaces para manipular as várias operações em ca-da computador que podem ser implementadas em hardware e/ousoftware e que operam para receber, enviar e/ou processar osdados de alguma maneira, de acordo com as aplicações rele-vantes e serviços sendo solicitados ou providos. Até a ex-tensão que um ou mais objetos de interface podem ser provi-dos para realizar ou implementar qualquer porção dos siste-mas e métodos para compactar e descompactar dados de marca-ção de acordo com a invenção, a invenção é planejada paraabranger todas tais modalidades e assim uma descrição geraldos tipos de interfaces que poderiam ser providas ou utili-zadas quando implementando ou executando a invenção é dada aseguir.
Uma interface de programação (ou mais simplesmen-te, interface) pode ser visualizada como qualquer mecanismo,processo, protocolo para habilitar que um ou mais segmentosde código se comuniquem com ou acessem a funcionalidade pro-vida por um ou mais outros segmentos de código. Alternativa-mente, uma interface de programação pode ser vista como umou mais mecanismo(s), método(s), chamada(s) de função, módu-lo (s), objeto (s), etc. de um componente de um sistema capazde acoplamento comunicativo com um ou mais mecanismo(s), mé-todo (s), chamada(s) de função, módulo(s), etc. de outro(s)componente(s). O termo "segmento de código" na frase prece-dente é planejado para incluir uma ou mais instruções ou li-nhas de código e inclui, por exemplo, módulos de código, ob-jetos, subrotinas, funções e assim por diante, a despeito daterminologia aplicada ou se os segmentos de código são sepa-radamente compilados ou se os segmentos de código são provi- dos como fonte, intermediário ou código de objeto, se ossegmentos de código são utilizados em um sistema de tempo deexecução ou processo ou se eles estão localizados nas mesmasmáquinas ou diferentes ou distribuídos através de múltiplasmáquinas, ou se a funcionalidade representada pelos segmen-tos de código é implementada totalmente em software, total-mente em hardware ou uma combinação de hardware e software.
Imaginariamente, uma interface de programação podeser vista genericamente, como mostrado na figura 14A ou fi-gura 14Β. A figura 14A ilustra uma interface interfacel comoum conduto através do qual o primeiro e o segundo segmentosde código se comunicam. A figura 14B ilustra uma interfacecomo compreendendo objetos de interface II e 12 (que podemou não ser parte do primeiro e do segundo segmentos de códi-go) , que possibilitam que o primeiro e o segundo segmentosde código de um sistema se comuniquem via o meio M. Na vistada figura 14B, alguém pode considerar os objetos de interfa-ce II e 12 como interfaces separadas do mesmo sistema e al-guém pode também considerar que os objetos II e 12 mais omeio M compreendem a interface. Embora as figuras 14A e 14Bmostrem fluxo bidirecional e interfaces em cada lado do flu-xo, certas implementações podem somente ter o fluxo de in-formação em uma direção (ou nenhum fluxo de informação comodescrito abaixo) ou podem somente ter um objeto de interfaceem um lado. Por meio de exemplo, e não limitação, termostais como interface de programação da aplicação (API), pontode entrada, método, função, subrotina, chamada de procedi-mento remoto e interface do modelo do objeto do componente(COM) são abrangidos dentro da definição da interface deprogramação.
Aspectos de uma tal interface de programação podemincluir o método pelo qual o primeiro segmento de códigotransmite a informação (onde "informação" é usada no seusentido mais amplo e inclui dados, comandos, solicitações,etc.) para o segundo segmento de código; o método por meiodo qual o segundo segmento de código recebe a informação e aestrutura, seqüência, sintaxe, organização, esquema, regula-ção e conteúdo da informação. Sob esse aspecto, o própriomeio de transporte básico pode ser insignificante para a o-peração da interface, quer o meio seja ligado por fiação ousem fio, ou uma combinação de ambos, contanto que a informa-ção seja transportada na maneira definida pela interface. Emcertas situações, a informação pode não ser passada em umaou ambas as direções no sentido convencional, já que atransferência da informação pode ser via um outro mecanismo(por exemplo, informação colocada em um armazenamento tempo-rário, arquivo, etc. separada do fluxo de informação entreos segmentos de código) ou não existente, como quando umsegmento de código simplesmente acessa a funcionalidade exe-cutada por um segundo segmento de código. Qualquer um ou to-dos esses aspectos podem ser importantes em uma dada situa-ção, por exemplo, dependendo de se os segmentos de códigosão parte de um sistema em uma configuração livremente aco-plada ou firmemente acoplada, e então essa lista deve serconsiderada ilustrativa e não limitadora.
Essa noção de uma interface de programação é co-nhecida para aqueles versados na técnica e é evidente a par-tir da descrição detalhada precedente da invenção. Existem,entretanto, outras maneiras para implementar uma interfacede programação e, a menos que expressamente excluído, essastambém são planejadas para serem abrangidas pelas reivindi-cações apresentadas no fim desse relatório descritivo. Taisoutras maneiras podem aparentar ser mais sofisticadas oucomplexas do que a visão simplista das figuras 14A e 14B,mas elas, contudo, executam uma função similar para realizaro mesmo resultado geral. Nós agora descreveremos brevementealgumas implementações alternativas ilustrativas de uma in-terface de programação.
A. FATORAÇÃO
Uma comunicação de um segmento de código para ou-tro pode ser realizada indiretamente rompendo a comunicaçãoem múltiplas comunicações discretas. Isso é representado es-quematicamente nas figuras 15A e 15B. Como mostrado, algumasinterfaces podem ser descritas em termos de conjuntos divi-siveis de funcionalidade. Assim, a funcionalidade da inter-face das figuras 14A e 14B pode ser fatorada para atingir omesmo resultado, justo como alguém pode matematicamente pro-ver 24, ou 2 vezes 2 vezes 3 vezes 2. Dessa maneira, comoilustrado na figura 15A, a função provida pela interface in-terfacel pode ser subdividida para converter as comunicaçõesda interface em múltiplas interfaces interface IA, interface1B, interface 1C, etc. enquanto atingindo o mesmo resultado.Como ilustrado na figura 15B, a função provida pela interfa-ce II pode ser subdividida em múltiplas interfaces lia, Ilb,I1c, etc. enquanto atingindo o mesmo resultado. Similarmen-te, a interface 12 do segundo segmento de código que recebeinformação do primeiro segmento de código pode ser fatoradaem múltiplas interfaces I2a, I2b, I2c, etc. Quando fatoran-do, o número de interfaces incluídas com o Io segmento decódigo não precisa igualar o número de interfaces incluídascom o 2o segmento de código. Em qualquer dos casos das figu-ras 15A e 15B, o espírito funcional das interfaces interfa-cel e I1 permanece o mesmo como com as figuras 14A e 14B,respectivamente. A fatoração das interfaces pode também se-guir propriedades associativas, comutativas e outras matemá-ticas tal que a fatoração pode ser difícil de reconhecer.Por exemplo, a ordenação das operações pode ser insignifi-cante, e conseqüentemente, uma função executada por uma in-terface pode ser executada bem antes de alcançar a interfa-ce, por um outro pedaço do código ou interface, ou executadapor um componente separado do sistema. Além do mais, alguémversado nas técnicas de programação pode verificar que exis-te uma variedade de maneiras de fazer chamadas de função di-ferentes que atingem o mesmo resultado.
B. REDEFINIÇÃO
Em alguns casos, pode ser possível ignorar, adi-cionar ou redefinir certos aspectos (por exemplo, parâme-tros) de uma interface de programação enquanto ainda reali-zando o resultado planejado. Isso é ilustrado nas figuras16A e 16B. Por exemplo, assuma que a interface interfacel dafigura 14A .inclua uma chamada de função Quadrado (entrada,precisão, saída), uma chamada que inclui três parâmetros,entrada, precisão e saída e que é emitida do Io segmento decódigo para o 2° segmento de código. Se o parâmetro interme-diário precisão não é de interesse em um dado cenário, comomostrado na figura 16A, ele poderia também ser ignorado ouaté mesmo substituído por um parâmetro inexpressivo (nessasituação). Alguém pode também adicionar um parâmetro adicio-nal sem interesse. Em qualquer eventualidade, a funcionali-dade do quadrado pode ser obtida, contanto que a saída sejaretornada depois que a entrada é elevada ao quadrado pelosegundo segmento de código. Precisão pode muito bem ser umparâmetro significativo para alguma porção a jusante ou ou-tra do sistema de computação; entretanto, depois que é reco-nhecido que precisão não é necessária para a finalidade li-mitada do cálculo do quadrado, ela pode ser substituída ouignorada. Por exemplo, ao invés de passar um valor de preci-são válido, um valor inexpressivo, tal como uma data de ani-versário, poderia ser passado sem adversamente afetar o re-sultado. Similarmente, como mostrado na figura 16B, a inter-face Il é substituída pela interface Il' , redefinida paraignorar ou adicionar parâmetros na interface. A interface 12pode ser similarmente redefinida como interface 12', redefi-nida para ignorar parâmetros desnecessários ou parâmetrosque podem ser processados em outro lugar. 0 ponto aqui é queem alguns casos uma interface de programação pode incluiraspectos, tal como parâmetros, que não são necessários paraalguma finalidade, e então eles podem ser ignorados ou rede-finidos ou processados em outro lugar para outras finalida-des .
C. CODIFICAÇÃO EM LINHA
Pode também ser possível intercalar alguma ou todaa funcionalidade de dois módulos de código separados tal quea "interface" entre eles muda a forma. Por exemplo, a fun-cionalidade das figuras 14A e 14B pode ser convertida para afuncionalidade das figuras 17A e 17B, respectivamente. Nafigura 17A, os Io e 2° segmentos de código prévios da figura14A são intercalados em um módulo contendo ambos deles. Nes-se caso, os segmentos de código podem ainda estar se comuni-cando, mas a interface pode ser adaptada para uma forma queé mais adequada para o módulo único. Assim, por exemplo, de-clarações formais de chamada e retorno podem não ser maisnecessárias, mas processamento similar ou resposta (s) con-forme a interface interfacel pode ainda estar em vigor. Si-milarmente, mostrado na figura 17B, parte (ou toda) da in-terface 12 da figura 14B pode ser escrita em linha na inter-face I1 para formar a interface I1". Como ilustrado, a in-terface 12 é dividida em I2a e I2b, e a porção da interfaceI2a foi codificada em linha com a interface Il para formar ainterface II". Para um exemplo concreto, considere que a in-terface Il da figura 14B executa uma função chamar quadrado(entrada, saída), que é recebida pela interface 12, que de-pois de processar o valor passado com entrada (para elevá-loao quadrado) pelo segundo segmento de código, passa de voltao resultado ao quadrado com saída. Em um tal caso, o proces-samento executado pelo segundo segmento de código (elevandoao quadrado a entrada) pode ser executado pelo primeiro seg-mento de código sem uma chamada para a interface.
D. SEPARAÇÃO
Uma comunicação de um segmento de código para ou-tro pode ser realizada indiretamente rompendo a comunicaçãoem múltiplas comunicações discretas. Isso é representado es-quematicamente nas figuras 18A e 18B. Como mostrado na figu-ra 18A, um ou mais pedaços de middleware (interface (s) deseparação, desde que elas separam funcionalidade e/ou fun-ções de interface da interface original) são providos paraconverter as comunicações na primeira interface, interfacel,para conformá-las com uma interface diferente, nesse casointerfaces interface2A, interface2B e interface2C. Isso po-deria ser feito, por exemplo, onde existe uma base instaladade aplicações designadas para se comunicar com, quer dizer,um sistema operacional de acordo com um protocolo da inter-facel, mas a seguir o sistema operacional é alterado parausar uma interface diferente, nesse caso interfaces interfa-ce2A, interface2B e interface2C. 0 ponto é que a interfaceoriginal usada pelo 2o segmento de código é alterada tal queela não é mais compatível com a interface usada pelo Io seg-mento de código e assim um intermediário é usado para tornarcompatíveis as interfaces antiga e nova. Similarmente, comomostrado na figura 18B, um terceiro segmento de código podeser introduzido com a interface de separação DIl para rece-ber as comunicações da interface Il e com a interface de se-paração DI2 para transmitir a funcionalidade da interfacepara, por exemplo, interfaces I2a e I2b, reprojetadas paratrabalhar com DI2, porém para prover o mesmo resultado fun-cional. Similarmente, DIl e DI2 podem funcionar juntas paratraduzir a funcionalidade das interfaces Il e 12 da figura14B para um novo sistema operacional, enquanto provendo omesmo resultado funcional ou similar.
E. REESCRITA
Ainda uma outra variação possível é reescrever di-namicamente o código para substituir a funcionalidade da in-terface com alguma coisa mais, porém que atinge o mesmo re-sultado geral. Por exemplo, pode existir um sistema no qualum segmento de código apresentado em uma linguagem interme-diária (por exemplo, Microsoft IL, Java ByteCode, etc.) éprovido para um compilador na hora certa (JIT) ou interpre-tador em um ambiente de execução (tal como esse provido pelaestrutura .Net, o ambiente do tempo de execução Java ou ou-tros ambientes similares do tipo de tempo de execução). 0compilador JIT pode ser escrito de modo a converter dinami-camente as comunicações do Io segmento de código para o 2°segmento de código, isto é, para conformá-los com uma inter-face diferente como possa ser requerido pelo 2o segmento decódigo (o original ou um 2° segmento de código diferente).
Isso é representado nas figuras 19A e 19B. Como pode servisto na figura 19A, essa abordagem é similar ao cenário deseparação descrito acima. Isso poderia ser feito, por exem-plo, onde uma base instalada de aplicações é designada parase comunicar com um sistema operacional de acordo com umprotocolo da interface 1, mas a seguir o sistema operacionalé alterado para usar uma interface diferente. 0 compiladorJIT poderia ser usado para conformar as comunicações instan-taneamente das aplicações com base instalada para a nova in-terface do sistema operacional. Como representado na figura19B, essa abordagem de reescrever dinamicamente a(s) inter-face (s) pode ser aplicada para dinamicamente fatorar ou deoutra forma alterar a(s) interface (s) também.
É também observado que os cenários acima descritospara realizar o mesmo resultado ou similar como uma interfa-ce via modalidades alternativas podem também ser combinadosem várias maneiras, em série e/ou em paralelo, ou com outrocódigo interposto. Assim, as modalidades alternativas apre-sentadas acima não são mutuamente exclusivas e podem sermisturadas, unidas e combinadas para produzir os mesmos ce-nários ou equivalentes aos cenários genéricos apresentadosnas figuras 14A e 14B. É também observado que, como com amaior parte das construções de programação, existem outrasmaneiras similares de realizar a mesma funcionalidade ou si-milar de uma interface que pode não ser descrita aqui, mas,contudo, é representada pelo espirito e escopo da invenção,isto é, é observado que é pelo menos parcialmente a funcio-nalidade representada por, e os resultados vantajosos possi-bilitados por, uma interface que forma a base do valor deuma interface.
Existem múltiplas maneiras de implementar a presente invenção, por exemplo, uma API apropriada, kit de fer-ramentas, código acionador, sistema operacional, controle,objeto de software independente ou transferivel, etc. quepossibilita que aplicações e serviços usem os sistemas e mé-todos para prover e habilitar parâmetros de pasta da inven-ção. A invenção considera o uso da invenção do ponto de vis-ta de uma API (ou outro objeto de software), bem como de umobjeto de software ou hardware que recebe um programa trans-ferido de acordo com a invenção. Assim, várias implementa-ções da invenção descrita aqui podem ter aspectos que sãototalmente em hardware, parcialmente em hardware e parcial-mente em software, bem como em software.
Como mencionado acima, embora modalidades exempla-res da presente invenção tenham sido descritas em conjuntocom vários dispositivos de computação e arquiteturas de re-de, os conceitos básicos podem ser aplicados em qualquerdispositivo ou sistema de computação no qual é desejável terparâmetros de pasta. Por exemplo, o(s) algoritmo(s) e as im-plementações de hardware da invenção podem ser aplicados nosistema operacional de um dispositivo de computação, providocomo um objeto separado no dispositivo, como parte de um ou-tro objeto, como um controle reutilizável, como um objetotransferivel de um servidor, como um "intermediário" entreum dispositivo ou objeto e a rede, como um objeto distribuí-do, como hardware, na memória, uma combinação de qualquer umdos precedentes, etc. Embora linguagens de programação exem-plares, nomes e exemplos sejam escolhidos aqui como repre-sentativos de várias escolhas, essas linguagens, nomes e e-xemplos não são planejados para serem limitadores. Alguémversado na técnica verificará que existem numerosas maneirasde prover código de objeto e nomenclatura que atinge a mesmafuncionalidade, similar ou equivalente atingida pelas váriasmodalidades da invenção.
Como mencionado, as várias técnicas descritas aquipodem ser implementadas em conjunto com hardware ou softwareou, onde apropriado, com uma combinação de ambos. Assim, osmétodos e aparelhos da presente invenção, ou certos aspectosou porções dos mesmos, podem tomar a forma de código de pro-grama (isto é, instruções) personificado em meios tangíveis,tais como discos flexíveis, CD-ROMs, unidades rígidas ouqualquer outro meio de armazenamento legível por máquina,onde, quando o código do programa é carregado em e executadopor uma máquina, tal como um computador, a máquina torna-seum aparelho para a prática da invenção. No caso da execuçãodo código de programa em computadores programáveis, o dispo-sitivo de computação geralmente inclui um processador, ummeio de armazenamento legível pelo processador (incluindomemória volátil e não volátil e/ou elementos de armazenamen-to) , pelo menos um dispositivo de entrada e pelo menos umdispositivo de saída. Um ou mais programas que podem imple-mentar ou utilizar os parâmetros da pasta da presente inven-ção, por exemplo, através do uso de uma API de processamentode dados, controles reutilizáveis ou semelhantes, são prefe-rivelmente implementados em uma linguagem de programação o-rientada a objetos ou de alto nível procedural para se comu-nicar com um sistema de computador. Entretanto, o(s) progra-mais) pode(m) ser implementado(s) em linguagem assembly oude máquina, se desejado. Em qualquer caso, a linguagem podeser uma linguagem compilada ou interpretada e combinada comimplementações de hardware.
Os métodos e aparelhos da presente invenção podemtambém ser praticados via comunicações personificadas naforma de código do programa que é transmitido através de al-gum meio de transmissão, tal como através de fiação ou cabe-amento elétrico, através de fibra ótica ou via qualquer ou-tra forma de transmissão, onde, quando o código do programaé recebido e carregado em e executado por uma máquina, talcomo uma EPROM, um arranjo de portão, um dispositivo lógicoprogramável (PLD), um computador cliente, etc., a máquina setorna um aparelho para a prática da invenção. Quando imple-mentado em um processador de uso geral, o código do programacombina com o processador para prover um aparelho único queopera para invocar a funcionalidade da presente invenção.
Adicionalmente, quaisquer técnicas de armazenamento usadasem conjunto com a presente invenção podem ser invariavelmen-te uma combinação de hardware e software.
Embora a presente invenção tenha sido descrita emconjunto com as modalidades preferidas das várias figuras, épara ser entendido que outras modalidades similares podemser usadas ou modificações e adições podem ser feitas na mo-dalidade descrita para executar a mesma função da presenteinvenção sem se afastar dela. Por exemplo, embora ambientesde rede exemplares da invenção sejam descritos no contextode um ambiente de rede, tal como um ambiente em rede não hi-erárquico, alguém versado na técnica reconhecerá que a pre-sente invenção não é limitada a isso, e que os métodos, comodescrito no presente pedido podem se aplicar a qualquer dis-positivo ou ambiente de computação, tal como um console dejogos, computador de mão, computador portátil, etc., querligado por fiação ou sem fio e pode ser aplicado em qualquernúmero de tais dispositivos de computação conectados via umarede de comunicações e interagindo através da rede. Além domais, deve ser enfatizado que uma variedade de plataformasde computador, incluindo sistemas operacionais de dispositi-vo de mão e outros sistemas operacionais específicos da a-plicação são considerados, especialmente à medida que o nú-mero de dispositivos em rede sem fio continua a proliferar.
Embora modalidades exemplares se refiram à utili-zação da presente invenção no contexto de construções delinguagem de programação particular, a invenção não é de talforma limitada, mas de preferência pode ser implementada emqualquer linguagem para prover e possibilitar parâmetros depasta de acordo com a invenção. Ainda adicionalmente, a pre-sente invenção pode ser implementada em ou através de umapluralidade de circuitos integrados de processamento ou dis-positivos e o armazenamento pode ser similarmente efetuadoatravés de uma pluralidade de dispositivos. Portanto, a pre-sente invenção não deve ser limitada a qualquer modalidadeúnica, mas preferivelmente deve ser interpretada na amplitu-de e escopo de acordo com as reivindicações anexas.

Claims (20)

1. Método para designar pelo menos uma célula deum documento de planilha representando um modelo como um pa-râmetro, onde o método é executável por pelo menos um pro-cessador de um sistema de computação, CARACTERIZADO pelo fa-to de que compreende:via um componente da interface do usuário associa-do com o software de autoria do documento da planilha, de-signar pelo menos uma célula de uma pluralidade de célulasrepresentadas pelo documento de planilha como um parâmetroeditável do modelo.
2. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que qualquer célula não designadade acordo com a dita designação não é editável.
3. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que também compreende:armazenar informação do parâmetro com o documentode planilha incluindo informação representando a pelo menosuma célula que é designada de acordo com a dita designação.
4. Método, de acordo com a reivindicação 3,CARACTERIZADO pelo fato de que também compreende:solicitar a informação de parâmetro armazenada como documento da planilha.
5. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que também compreende:via o componente da interface do usuário, exibir ainformação do parâmetro como uma lista de parâmetros.
6. Método, de acordo com a reivindicação 5,CARACTERIZADO pelo fato de que a dita exibição da informaçãodo parâmetro como uma lista de parâmetros inclui exibir umalista de nomes de parâmetro e controles de interface do usu-ário, por meio do que cada nome de parâmetro inclui um con-trole de interface do usuário para receber entrada que editaum valor associado com uma célula do documento de planilharepresentada pelo nome do parâmetro.
7. Dispositivo de computação, CARACTERIZADO pelofato de que compreende dispositivo para executar o método dotipo definido na reivindicação 1.
8. Método para descobrir uma lista de parâmetrosassociada com um modelo representado por um documento deplanilha, onde o método é executável por pelo menos um pro-cessador de um sistema de computação, CARACTERIZADO pelo fa-to de que compreende:recuperar a lista de parâmetros associada com omodelo representado pelo documento de planilha, onde cadaparâmetro corresponde com uma célula do documento de plani-lha, tal que uma célula do documento de planilha associadacom um parâmetro da lista de parâmetros é editável.
9. Método, de acordo com a reivindicação 8,CARACTERIZADO pelo fato de que qualquer célula do documentode planilha não associada com um parâmetro da lista de parâ-metros não é editável.
10. Método, de acordo com a reivindicação 8,CARACTERIZADO pelo fato de que a dita recuperação incluidescobrir a lista de parâmetros via uma interface de progra-mação de aplicação.
11. Método, de acordo cora a reivindicação 8,CARACTERIZADO pelo fato de que a dita recuperação também in-clui exibir a lista de parâmetros via um elemento da inter-face do usuário exibido geralmente adjacente ao documento deplanilha com o qual a lista de parâmetros está associada.
12. Método, de acordo com a reivindicação 11,CARACTERIZADO pelo fato de que o elemento da interface dousuário é um painel de tarefas.
13. Método, de acordo com a reivindicação 8,CARACTERIZADO pelo fato de que a dita recuperação inclui so-licitar a lista de parâmetros via um componente da interfacedo usuário.
14. Método, de acordo com a reivindicação 13,CARACTERIZADO pelo fato de que a dita solicitação inclui so-licitar a exibição da lista de parâmetros via pelo menos umcomando de menu do componente da interface do usuário.
15. Método, de acordo com a reivindicação 8,CARACTERIZADO pelo fato de que a dita recuperação inclui e-xibir a lista de parâmetros como uma lista de nomes de parâ-metro e controles da interface do usuário, onde cada nome doparâmetro está associado com pelo menos um controle de in-terface do usuário para receber entrada que edita um valorassociado com uma célula do documento de planilha represen-tada pelo nome do parâmetro.
16. Dispositivo de computação, CARACTERIZADO pelofato de que compreende dispositivo para executar o método dotipo definido na reivindicação 8.
17. Método para edição de um parâmetro de uma lis-ta de parâmetros associada com um modelo representado por umdocumento de planilha, onde o método é executável por pelomenos um processador de um sistema de computação,CARACTERIZADO pelo fato de que compreende:via um componente da interface do usuário, editarpelo menos um parâmetro da lista de parâmetros associada como modelo representado pelo documento de planilha, onde cadaparâmetro corresponde com uma célula do documento de plani-lha, tal que uma célula do documento de planilha associadacom um parâmetro da lista de parâmetros é editável.
18. Método, de acordo com a reivindicação 17,CARACTERIZADO pelo fato de que também compreende:suspender o cálculo do modelo até que toda infor-mação associada com o modelo fique atual por pelo menos umdentre automaticamente obter a informação atual associadacom o modelo ou receber a informação atual de um usuário viaa dita edição.
19. Método, de acordo com a reivindicação 18,CARACTERIZADO pelo fato de que a dita suspensão também com-preende suspender a exibição do documento de planilha com-pleto até que toda informação associada com o modelo fiqueatual por pelo menos um dentre automaticamente obter a in-formação atual associada com o modelo ou receber a informa-ção atual de um usuário via a dita edição.
20. Dispositivo de computação, CARACTERIZADO pelofato de que compreende dispositivo para executar o método dotipo definido na reivindicação 17.
BRPI0615572-3A 2005-09-09 2006-09-06 designação, ajuste e descoberta de parámetros para documentos de planilha BRPI0615572A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/223,180 US7752536B2 (en) 2005-09-09 2005-09-09 Designating, setting and discovering parameters for spreadsheet documents
US11/223.180 2005-09-09
PCT/US2006/035168 WO2007030769A2 (en) 2005-09-09 2006-09-06 Designating, setting and discovering parameters for spreadsheet documents

Publications (1)

Publication Number Publication Date
BRPI0615572A2 true BRPI0615572A2 (pt) 2011-05-24

Family

ID=37836545

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0615572-3A BRPI0615572A2 (pt) 2005-09-09 2006-09-06 designação, ajuste e descoberta de parámetros para documentos de planilha

Country Status (16)

Country Link
US (1) US7752536B2 (pt)
EP (1) EP1920356A4 (pt)
JP (1) JP5255443B2 (pt)
KR (1) KR101312881B1 (pt)
CN (1) CN101258490B (pt)
AU (1) AU2006287357B2 (pt)
BR (1) BRPI0615572A2 (pt)
CA (1) CA2618211C (pt)
IL (1) IL189152A (pt)
MY (1) MY155037A (pt)
NO (1) NO20080596L (pt)
NZ (1) NZ594997A (pt)
RU (1) RU2421797C2 (pt)
TW (1) TWI416342B (pt)
WO (1) WO2007030769A2 (pt)
ZA (1) ZA200802171B (pt)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010779B2 (en) * 2001-08-16 2006-03-07 Knowledge Dynamics, Inc. Parser, code generator, and data calculation and transformation engine for spreadsheet calculations
US7716231B2 (en) * 2004-11-10 2010-05-11 Microsoft Corporation System and method for generating suggested alternatives for visual or audible submissions
US7640490B2 (en) * 2004-12-20 2009-12-29 Microsoft Corporation Method, system, and computer-readable medium for controlling the calculation of volatile functions in a spreadsheet
WO2006095365A2 (en) * 2005-03-11 2006-09-14 Suresh Sambandam A system and method of defining a hierarchical datamodel and related computation and instruction rules using spreadsheet like user interface
US7587665B2 (en) * 2005-03-15 2009-09-08 Microsoft Corporation Method and computer-readable medium for providing spreadsheet-driven key performance indicators
US20070061699A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Named object view of electronic data report
US20110145689A1 (en) * 2005-09-09 2011-06-16 Microsoft Corporation Named object view over multiple files
US20090006466A1 (en) * 2005-12-09 2009-01-01 Microsoft Corporation Managing extensible value types in spreadsheet cells
US8161372B2 (en) 2005-12-09 2012-04-17 Microsoft Corporation Extensible value types in cells
US8904340B2 (en) 2007-02-13 2014-12-02 International Business Machines Corporation Use of temporary optimized settings to reduce cycle time of automatically created spreadsheets
US20090019348A1 (en) * 2007-07-13 2009-01-15 Rodney Kuhn Haffnerson King Fractal Grid Hierarchical Presentation Of Information
US10133719B2 (en) * 2007-09-28 2018-11-20 Microsoft Technology Licensing, Llc Spreadsheet workbook part libraries
US8190987B2 (en) * 2007-10-25 2012-05-29 Microsoft Corporation Private views of data and local calculations during real time collaboration
US8407668B2 (en) * 2007-10-26 2013-03-26 Microsoft Corporation Model based spreadsheet scripting language
US8006175B2 (en) * 2007-10-29 2011-08-23 Microsoft Corporation Calculation of spreadsheet data
US9501453B2 (en) * 2007-12-23 2016-11-22 Salesforce.Com Inc. Method and system for a flexible-data column user interface
US20090305200A1 (en) * 2008-06-08 2009-12-10 Gorup Joseph D Hybrid E-Learning Course Creation and Syndication
US8239357B1 (en) * 2008-09-12 2012-08-07 Ryan, LLC Method and system for extracting information from electronic data sources
US9229922B2 (en) * 2008-09-30 2016-01-05 Apple Inc. Token representation of references and function arguments
US20100107095A1 (en) * 2008-10-24 2010-04-29 Microsoft Corporation Template-based calculator application
US8195792B2 (en) * 2009-01-16 2012-06-05 Microsoft Corporation Interfacing distinct services for providing web based document manipulation access
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US9298686B2 (en) * 2009-05-14 2016-03-29 Golub Capital, Llc System and method for simulating discrete financial forecast calculations
US10198523B2 (en) * 2009-06-03 2019-02-05 Microsoft Technology Licensing, Llc Utilizing server pre-processing to deploy renditions of electronic documents in a computer network
US20100332969A1 (en) * 2009-06-29 2010-12-30 Ramprabhu Jayaraman Dynamic Use of Device Theme Parameters for Rendering Markup Content
US20110167057A1 (en) * 2010-01-04 2011-07-07 Accenture Global Services Gmbh Modularized service level agreement reporting
TWI417750B (zh) * 2010-03-25 2013-12-01 Tatung Co 取代資料庫存取的方法
US8892614B2 (en) * 2010-06-07 2014-11-18 Texas Instruments Incorporated Calculator with dynamic computation environment
US8825745B2 (en) * 2010-07-11 2014-09-02 Microsoft Corporation URL-facilitated access to spreadsheet elements
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US9747270B2 (en) 2011-01-07 2017-08-29 Microsoft Technology Licensing, Llc Natural input for spreadsheet actions
US8566740B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Interactive data forecasting features for a graphical user interface
US9721030B2 (en) * 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US9110957B2 (en) 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data mining in a business intelligence document
US9024952B2 (en) 2010-12-17 2015-05-05 Microsoft Technology Licensing, Inc. Discovering and configuring representations of data via an insight taxonomy
US9336184B2 (en) 2010-12-17 2016-05-10 Microsoft Technology Licensing, Llc Representation of an interactive document as a graph of entities
US9864966B2 (en) 2010-12-17 2018-01-09 Microsoft Technology Licensing, Llc Data mining in a business intelligence document
US9104992B2 (en) 2010-12-17 2015-08-11 Microsoft Technology Licensing, Llc Business application publication
US9171272B2 (en) 2010-12-17 2015-10-27 Microsoft Technology Licensing, LLP Automated generation of analytic and visual behavior
US9304672B2 (en) 2010-12-17 2016-04-05 Microsoft Technology Licensing, Llc Representation of an interactive document as a graph of entities
US9111238B2 (en) 2010-12-17 2015-08-18 Microsoft Technology Licensing, Llc Data feed having customizable analytic and visual behavior
US9069557B2 (en) 2010-12-17 2015-06-30 Microsoft Technology Licensing, LLP Business intelligence document
US20130080603A1 (en) 2011-09-27 2013-03-28 Microsoft Corporation Fault Tolerant External Application Server
US9355072B2 (en) * 2011-09-28 2016-05-31 Google Inc. Recursive embedding by URL parameterization
US9069748B2 (en) * 2011-10-04 2015-06-30 Microsoft Technology Licensing, Llc Selective generation and display of data items associated with a spreadsheet
US8990675B2 (en) 2011-10-04 2015-03-24 Microsoft Technology Licensing, Llc Automatic relationship detection for spreadsheet data items
US9588953B2 (en) 2011-10-25 2017-03-07 Microsoft Technology Licensing, Llc Drag and drop always sum formulas
US10546057B2 (en) * 2011-10-28 2020-01-28 Microsoft Technology Licensing, Llc Spreadsheet program-based data classification for source target mapping
US9053083B2 (en) 2011-11-04 2015-06-09 Microsoft Technology Licensing, Llc Interaction between web gadgets and spreadsheets
US9171099B2 (en) 2012-01-26 2015-10-27 Microsoft Technology Licensing, Llc System and method for providing calculation web services for online documents
US20130283147A1 (en) * 2012-04-19 2013-10-24 Sharon Wong Web-based collaborative document review system
US9286284B2 (en) * 2012-10-15 2016-03-15 International Business Machines Corporation Data filtering based on a cell entry
US8856234B2 (en) * 2013-02-28 2014-10-07 Workiva Llc System and method for performing distributed asynchronous calculations in a networked environment
US10140269B2 (en) 2013-03-12 2018-11-27 Microsoft Technology Licensing, Llc Viewing effects of proposed change in document before committing change
US10360297B2 (en) 2013-06-14 2019-07-23 Microsoft Technology Licensing, Llc Simplified data input in electronic documents
US20140372856A1 (en) 2013-06-14 2014-12-18 Microsoft Corporation Natural Quick Functions Gestures
US10664652B2 (en) 2013-06-15 2020-05-26 Microsoft Technology Licensing, Llc Seamless grid and canvas integration in a spreadsheet application
US9116931B2 (en) * 2013-07-12 2015-08-25 Logic9S, Llc Integrated, configurable, analytical, temporal, visual electronic plan system
US9026897B2 (en) * 2013-07-12 2015-05-05 Logic9S, Llc Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system
US20150135054A1 (en) * 2013-11-14 2015-05-14 Microsoft Corporation Comments on Named Objects
US9990348B2 (en) * 2014-05-05 2018-06-05 Prasath Nayanar Chandrasekaran System and method for managing data using a spreadsheet model
US10140352B2 (en) * 2014-07-17 2018-11-27 Oracle International Corporation Interfacing with a relational database for multi-dimensional analysis via a spreadsheet application
US9910843B2 (en) * 2015-02-03 2018-03-06 Intuit Inc. Systems, methods and articles for a web-based spreadsheet application
US9959098B1 (en) 2015-03-15 2018-05-01 Sigma Sciences Limited Data processing systems and methods
US10546055B2 (en) * 2016-10-20 2020-01-28 Microsoft Technology Licensing, Llc Join with format modification by example
US10540153B2 (en) 2016-12-03 2020-01-21 Thomas STACHURA Spreadsheet-based software application development
US10216494B2 (en) 2016-12-03 2019-02-26 Thomas STACHURA Spreadsheet-based software application development
US11726753B2 (en) 2016-12-03 2023-08-15 Thomas STACHURA Spreadsheet-based software application development
US10452751B2 (en) 2017-01-09 2019-10-22 Bluebeam, Inc. Method of visually interacting with a document by dynamically displaying a fill area in a boundary
US11150635B2 (en) * 2017-10-02 2021-10-19 Fisher-Rosemount Systems, Inc. Projects within a process control asset management system
US11699032B2 (en) * 2017-11-03 2023-07-11 Microsoft Technology Licensing, Llc Data set lookup with binary search integration and caching
PL3718000T3 (pl) * 2017-12-03 2024-02-05 Thomas Stachura Tworzenie aplikacji programowej w oparciu o arkusz kalkulacyjny
US11714394B2 (en) * 2018-09-28 2023-08-01 Fisher-Rosemount Systems, Inc Bulk commissioning of field devices within a process plant
WO2020077152A1 (en) 2018-10-11 2020-04-16 Dealvector, Inc. Effective deployment of spreadsheets in browser environments
US11429557B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Templatization of spreadsheets in browser environments
US11429558B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Mapping tests of spreadsheets in server-browser environments
CN112883698B (zh) * 2021-03-22 2024-02-06 京东科技控股股份有限公司 图表生成方法、装置、计算机设备和存储介质
CN116050362B (zh) * 2023-03-23 2023-07-04 青岛诺亚信息技术有限公司 一种Web表格动态数据绑定方法、介质及***

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9009930D0 (en) 1990-05-02 1990-06-27 Int Computers Ltd Electronic spreadsheet
US5095429A (en) * 1990-08-28 1992-03-10 Pillar Corporation Method for prioritizing data in financial information system
US5371675A (en) 1992-06-03 1994-12-06 Lotus Development Corporation Spreadsheet program which implements alternative range references
JPH0737008A (ja) 1993-06-29 1995-02-07 Hitachi Ltd 表計算処理装置の表示制御方法
US5727161A (en) 1994-09-16 1998-03-10 Planscan, Llc Method and apparatus for graphic analysis of variation of economic plans
GB9516977D0 (en) * 1995-08-17 1995-10-18 Dreamware Design & Dev Ltd Processing apparatus and method and computer software therefor
US5890174A (en) 1995-11-16 1999-03-30 Microsoft Corporation Method and system for constructing a formula in a spreadsheet
JPH10340172A (ja) * 1997-06-06 1998-12-22 Sharp Corp データ処理装置及びデータ処理装置制御プログラムを記憶した媒体
US5987481A (en) 1997-07-01 1999-11-16 Microsoft Corporation Method and apparatus for using label references in spreadsheet formulas
US6460059B1 (en) 1998-08-04 2002-10-01 International Business Machines Corporation Visual aid to simplify achieving correct cell interrelations in spreadsheets
EP1037157A1 (en) 1999-03-05 2000-09-20 International Business Machines Corporation Method and system for processing different cell protection modes in an electronic spreadsheet
JP2001118009A (ja) * 1999-10-18 2001-04-27 Internatl Business Mach Corp <Ibm> 電子帳票の取得方法、電子帳票システム、電子帳票を取得するプログラムを格納した記憶媒体
CA2311866A1 (en) 2000-01-06 2001-07-06 International Business Machines Corporation Method and system in an electronic spreadsheet for adding or removing elements from a cell named range according to different modes
JP2001357088A (ja) * 2000-06-16 2001-12-26 Denso Corp パラメトリック機能を有する3次元モデリングシステムと、同システムによるパラメータ編集方法
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
JP2003050964A (ja) * 2000-11-30 2003-02-21 Kokusai Zunou Sangyo Kk 表計算ウェブサーバシステムおよび表計算ウェブシステム
US7206997B2 (en) 2000-12-18 2007-04-17 General Motors Corporation Functional visualization of spreadsheets
US6409059B1 (en) * 2001-01-11 2002-06-25 Nathaniel Calvert Hand and finger thimbles
US20030033329A1 (en) 2001-06-22 2003-02-13 Bergman Eric D. Method and apparatus for entry and editing of spreadsheet formulas
US20030120999A1 (en) 2001-12-21 2003-06-26 Miller Michelle A. Calculating in spreadsheet cells without using formulas
US7266763B2 (en) 2002-11-26 2007-09-04 Microsoft Corporation User defined spreadsheet functions
US7205957B2 (en) * 2003-08-18 2007-04-17 Via Technologies, Inc. Mechanism for adjusting the operational parameters of a component with minimal impact on graphics display

Also Published As

Publication number Publication date
EP1920356A2 (en) 2008-05-14
US7752536B2 (en) 2010-07-06
IL189152A0 (en) 2008-08-07
WO2007030769A2 (en) 2007-03-15
CN101258490B (zh) 2013-01-23
US20070061698A1 (en) 2007-03-15
TWI416342B (zh) 2013-11-21
CA2618211C (en) 2014-02-25
JP2009508237A (ja) 2009-02-26
EP1920356A4 (en) 2017-10-04
JP5255443B2 (ja) 2013-08-07
CA2618211A1 (en) 2007-03-15
WO2007030769A3 (en) 2007-05-31
KR101312881B1 (ko) 2013-09-30
MY155037A (en) 2015-08-28
RU2008108992A (ru) 2009-09-20
NO20080596L (no) 2008-04-01
AU2006287357A1 (en) 2007-03-15
RU2421797C2 (ru) 2011-06-20
ZA200802171B (en) 2009-08-26
NZ594997A (en) 2013-02-22
IL189152A (en) 2012-05-31
AU2006287357B2 (en) 2011-03-24
TW200723028A (en) 2007-06-16
CN101258490A (zh) 2008-09-03
KR20080043327A (ko) 2008-05-16

Similar Documents

Publication Publication Date Title
BRPI0615572A2 (pt) designação, ajuste e descoberta de parámetros para documentos de planilha
US10565300B2 (en) Methods and systems for creating, interacting with, and utilizing a superactive document
US10466971B2 (en) Generation of an application from data
US20230236805A1 (en) Systems and Methods for Development and Deployment of Software Platforms Having Advanced Workflow and Event Processing Components
US8904342B2 (en) System and method for rapid development of software applications
EP1922604B1 (en) Command user interface for displaying selectable functionality controls in a database application
CN116225399A (zh) 基于电子表格的软件应用程序开发
CN111819534A (zh) 基于电子表格的软件应用程序开发
US20120066574A1 (en) System, Apparatus, and Method for Inserting a Media File into an Electronic Document
US20170010869A1 (en) Multistage customizing of web-based application in a browser independent of platform and operating system
US20220067271A1 (en) Orchestration of crud operations for a hierarchical web service data model in a spreadsheet
US20090083617A1 (en) Input form design device and input form design method
US20060271913A1 (en) Method and system for providing a field configurable guide
US11593096B1 (en) Systems and methods for measuring complexity of applications and components in software development and deployment platforms
US7814407B1 (en) Method and system for treating data
CN117556796A (zh) 项目文档处理方法、装置、计算机设备及存储介质
US20200379786A1 (en) Keyboard interaction model for software builder canvas nodes
CN107967137A (zh) 一种数据管理方法和装置

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]

Free format text: MANTIDO O INDEFERIMENTO UMA VEZ QUE NAO FOI APRESENTADO RECURSO DENTRO DO PRAZO LEGAL