Abstract:
A user interface features a single, generic input field configured to receive multiple types of available input information. In various embodiments, the generic input field of the interface may include a drop-down menu offering user selection from a plurality of available input types. The interface may reduce an amount of time consuming, error-prone manual activity required to navigate between, select, and enter data into multiple fields located in different regions of a screen. Embodiments may be particularly suited for interfaces with portable devices having small displays and cramped input environments (e.g. small keys, touchscreens, touchpads).

Description:
BACKGROUND 
       [0001]    Embodiments of the present invention relate to user interfaces, and in particular, to the manner in which data is input by a user into a user interface. 
         [0002]    Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. 
         [0003]    Conventionally, when filling out a complex business document, a user must manually access a plurality of input fields and then enter data thereto. Often, one or more of these input fields are text fields requiring a user to type in characters utilizing a keyboard. 
         [0004]    Thus an input sequence to a conventional user interface may typically comprise: 
         [0005]    manually navigating to the input field in the document with a mouse or other input device (e.g. TAB key of a keyboard); 
         [0006]    entering the desired text in the field; and then 
         [0007]    manually navigating to the next field by using the mouse or other input device. 
         [0008]    Such activities involve substantial physical activity and coordination, with the user having to visually locate multiple input fields, navigate to access those input fields (e.g. by pointing, clicking), and then enter relevant information into those input fields (e.g. by typing). 
         [0009]    Furthermore, some input fields may require entry of mandatory data. These mandatory input fields could be distributed across a complex business document, or hidden on inactive screens of a multi-screen application. 
         [0010]    Manual activity in identifying and navigating to a plurality of input fields may be both time-consuming and error-prone, particularly where the user is outside of a standard workplace environment (e.g. on a train) and/or attempting to enter relevant information into a hand-held device having a small screen and keyboard (e.g. a smart phone). 
         [0011]    The present disclosure addresses these and other issues by providing user interfaces having a generic input field. 
       SUMMARY 
       [0012]    A user interface features a single, generic input field configured to receive multiple types of available input information. In various embodiments, the generic input field of the interface may include a drop-down menu offering user selection from a plurality of available input types. The interface may reduce an amount of time consuming, error-prone manual activity required to navigate between, select, and enter data into multiple fields located in different regions of a screen. Embodiments may be particularly suited for interfaces with portable devices having small displays and cramped input environments (e.g. small keys, touchscreens, touchpads). 
         [0013]    An embodiment of a computer-implemented method comprises providing an interface engine in communication with a stored document comprising a plurality of available input information types, and causing the interface engine to display a single input field on a screen. In response to a first input to the single input field, the view engine is caused to display a list of the plurality of available input information types. In response to a second input to the list, causing the interface engine to enter a particular input information type into the stored document. 
         [0014]    An embodiment of a non-transitory computer readable storage medium embodies a computer program for performing a method, said method comprising providing an interface engine in communication with a stored document comprising a plurality of available input information types, and causing the interface engine to display a single input field on a screen. In response to a first input to the single input field, the view engine is caused to display a list of the plurality of available input information types. In response to a second input to the list, causing the interface engine to enter a particular input information type into the stored document. 
         [0015]    An embodiment of a computer system comprises one or more processors and a software program executable on said computer system. The software program is configured to provide an interface engine in communication with a stored document comprising a plurality of available input information types, and to cause the interface engine to display a single input field on a screen. In response to a first input to the single input field, the view engine is caused to display a list of the plurality of available input information types. In response to a second input to the list, the interface engine is caused to enter a particular input information type into the stored document. 
         [0016]    According to certain embodiments, the interface engine may display a required input information type in the list, in a manner different from an optional input information type. 
         [0017]    In some embodiments, the interface engine may display the required input information type in the list, in a color different from the optional input information type. 
         [0018]    In particular embodiments the single input field may comprise a drop arrow, and the first input may comprise selecting the drop arrow. 
         [0019]    According to some embodiments, the stored document may comprise a database. 
         [0020]    Various embodiments may further comprise displaying an icon next to previously-selected input information types of the list. 
         [0021]    In some embodiments the user may access the input field via a touchscreen. 
         [0022]    The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of particular embodiments. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0023]      FIG. 1  shows a simplified view of a user interface according to an embodiment. 
           [0024]      FIG. 2  is a specific screen shot showing an interface according to an embodiment. 
           [0025]      FIG. 3  is a simplified flow diagram illustrating an embodiment of a method featuring user interaction with an interface comprising a generic input field. 
           [0026]      FIG. 4  illustrates the interaction of various elements in the method of  FIG. 3 . 
           [0027]      FIG. 5  illustrates hardware of a special purpose computing machine configured with a user interface according to an embodiment. 
           [0028]      FIG. 6  illustrates an example of a computer system. 
       
    
    
     DETAILED DESCRIPTION 
       [0029]    Described herein are techniques for providing a user interface. The apparatuses, methods, and techniques described below may be implemented as a computer program (software) executing on one or more computers. The computer program may further be stored on a computer readable medium. The computer readable medium may include instructions for performing the processes described below. 
         [0030]    In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein. 
         [0031]      FIG. 1  shows a simplified view of a system  100  for providing an interface according to an embodiment. In particular, a user  102  is configured with a device  104  comprising a display  106  and an input mechanism  108 . Examples of such input mechanisms include but are not limited to a touch screen, touch pad, a mouse, a keypad, or a keyboard. 
         [0032]    The user seeks to use the device to access, create, and/or edit information stored in data warehouse  110 , via an interface  111 . Accordingly a processor comprising an interface engine  112  is configured to receive inputs from the user at the interface, and in in turn to communicate information to the data warehouse  110 . In response to receipt of that information, the data warehouse may manipulate (e.g. edit, create) the stored data, and may eventually return the stored data to the interface engine, which in turn communicates it to the user via the interface. 
         [0033]      FIG. 2  shows an embodiment of a screen shot of an interface  200  according to an embodiment. In particular, a user seeks to enter data into a sales document  202  stored in a data warehouse. The sales document may be complex, comprising various types of information including: a “sold-to-party”  204 , information used to search  206  for a “sold-to-party”, a sales document type  208 , and a sales organization  210 . 
         [0034]    Certain of these input information types are required, as is indicated on the screen with an asterix (*). Other input information types are optional; those are not indicated with an asterix. 
         [0035]    According to various embodiments, the interface may include a single, generic input field  211 . This input field is configured to receive a text input from the user, and in response provide a drop-down menu  212  providing a list  213  of the various input types available in the document. 
         [0036]    In certain embodiments, required input information types could be delineated in the list. For example, in some embodiments the required input information types could be differentiated from optional input types by a different font size and/or type, by italics or underlining, and/or by colored text and/or background highlighting. 
         [0037]    Using his or her input device, the user may select from the choices of available input information types shown in the drop down menu. Having selected an input information type, the user may then provide the particular value for that input type to the interface via the generic input field. 
         [0038]    The user interface approach according to particular embodiments as described above, may be contrasted with conventional approaches. In particular, conventional interfaces may typically feature a plurality of different information types, each of which is accessed through a corresponding plurality of different input fields. The user is thus forced to separately navigate to each of those individual input fields in order to enter relevant values. And while each of the plurality of input fields of a conventional interface may include a drop menu, that drop menu offers the user a choice between different values (e.g. A, B, C) of a particular input type (e.g. Sales Organization). 
         [0039]    By comparison the drop menu of embodiments as described herein, may allow the user to choose between different input information types. Thus only a single input action (e.g. keystroke, click) in one (the generic) input field, is required in order to select the input information type. 
         [0040]    In certain embodiments, once a value for an input information type has been entered, that input information type may be so-designated in any future list provided by the single input field. For example, an icon (e.g. the check-mark  214  in  FIG. 2 ) may thereafter be displayed next to the input information type, in order to indicate its previous entry by a user. This displayed icon could serve as a reminder, rather than precluding the user from re-accessing that particular input information type (e.g. for revision or deletion). 
         [0041]    Once the value for the input information type has been entered, the interface may then allow the user to select and enter appropriate values for another input information type available in the document. 
       Example 
       [0042]      FIG. 3  is a simplified flow diagram illustrating an embodiment of a method featuring user interaction with an interface comprising a generic input field.  FIG. 4  illustrates the interaction of various elements in the method of  FIG. 3 . 
         [0043]    In particular, in a first step  301  of method  300 , a user  450  accesses the generic input field  452  and types in text (“My Text”). The generic input field has a user identification code associated therewith: (UI_ID)=“F — 1”. 
         [0044]    In a second step  302 , the user opens a drop down list  454  by clicking the drop down icon (▾)  456 . In response to this input, the interface engine  458  is triggered to execute the following routine: “FETCH_FIELD_NAMES_FROM_DB”. 
         [0000]    
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 SELECT DESC FROM TAB_FIELDS 
               
               
                   
                 WHERE  UI_ID = ,,F_1“ AND 
               
               
                   
                     LAN = ,,EN“ 
               
               
                   
                   
               
             
          
         
       
     
         [0045]    Pursuant to this routine, the interface engine  458  communicates with the TAB_FIELDS table  460  of the database (DB)  462 . The table TAB_FIELDS is a definition table filled in at design time. The columns have the following purpose/meaning: 
         [0046]    The T_REF column specifies the reference to another database table (here: TAB_PERS). 
         [0047]    The UI_ID column specifies the ID of an input field on the user interface. 
         [0048]    The LAN column is the language identifier. 
         [0049]    The F_ID column is reference to a column in the database table T_REF. 
         [0050]    The DESC column is a description/text populating the drop down menu in field with UI_ID. 
         [0051]    The interface engine  458  thus communicates with the TAB_FIELDS table  460 , in order to fetch values for the drop down list. In particular, the values in column “DESC” of the table TAB_FIELDS is selected. The selection criteria have to match the value of UI_ID (here: F — 1) and the chosen language. Thus in this example, the SELECT would return the following five (5) values: “First Name”, “Last Name”, “Town”, “Post Code” and “Street”. These five values are used to populate the drop down menu. 
         [0052]    In response to execution of this “FETCH_FIELD_NAMES_FROM_DB” routine, the interface engine in turn causes the drop down menu of the interface to display the names of input information types available from the database. Here, the target document includes input information of the following types: First Name, Last Name, Town, Post Code, and Street. 
         [0053]    To retrieve the data for the same field in another language (example here: German), a system setting would be activated to switch the language. This can be either done by an administrator setting the language, or this could be done when the user is logging on to the system and selecting his/her language at the logon screen. 
         [0054]      FIG. 4  shows that each of the types of input information is accompanied by an associated index  455 . However, these index values are not displayed to the user as part of the dropdown list. 
         [0055]    In a third step  303 , the user selects the particular input information type from the dropdown list, for which values are to be entered. For example, clicking “Post Code” causes the interface engine to execute the following routine: “enter value into DB”. 
         [0000]    
       
         
               
               
             
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 SELECT F_ID, T_REF FROM TAB_FIELDS 
               
             
          
           
               
                   
                 WHERE 
                 UI_ID = ,,F_1“ AND 
               
               
                   
                   
                 LAN = ,,EN“ AND 
               
               
                   
                   
                 INDEX = 4 
               
               
                   
                   
               
             
          
         
       
     
         [0056]    Pursuant to this routine, the interface engine  458  communicates with the TAB_FIELDS table  460  of the database (DB)  462 , in order to fetch values for the drop down list. Specifically, the data in columns “F_ID” and “T_REF” are fetched from table TAB_FIELDS. The selection criteria are now UI_ID (here: F — 1), the chosen language, and the index=4. The goal is to retrieve an identifier for the target column in the other table where the user input will be written to. The system returns now two values: 
       T_REF=“TAB_PERS” 
     F_ID=“POC” 
       [0057]    In response to execution of this “enter value into DB” routine, the interface engine in turn causes the text typed into the generic input field to be entered into the field F — 1 in the column having the ID “POC” of the table TAB_PERS  464  of the database  462 . 
         [0058]    Specifically, the table TAB_PERS holds data of personal information, and is filled via user input. The meaning of the columns in the table TAB_PERS is as follows: 
         [0059]    FNA: First Name; 
         [0060]    LNA: Last Name; 
         [0061]    TWN: Town; 
         [0062]    POC: Post Code; 
         [0063]    STR: Street. 
         [0064]    To summarize, interfaces according to various embodiments may employ a sequence of user actions to enter information that includes one or more of the following steps: 
         [0065]    navigating to the single generic input field on a screen (e.g. using a mouse, touchscreen, or touchpad); 
         [0066]    inputting the data into the single generic input field; 
         [0067]    providing an appropriate input (e.g. via a mouse click or TAB key) to open a dropdown menu with a list of possible input types; 
         [0068]    selecting the appropriate input type for the input (e.g. using arrow keys, touchpad, touchscreen, mouse); 
         [0069]    providing an input (e.g. using touchpad, touchscreen, mouse, or key) to trigger insertion of the text to the appropriate location in the document; and 
         [0070]    repeating the above steps to enter information for successive types of input information. 
         [0071]    Embodiments may offer various benefits. For example, certain embodiments may reduce an amount of manual activity by a user to enter information. Rather than being required to navigate to a plurality of fields in different locations, a user may enter information into a single, generic input field. 
         [0072]      FIG. 5  illustrates hardware of a special purpose computing machine configured to provide a user interface according to an embodiment. In particular, computer system  500  comprises a processor  502  that is in electronic communication with a non-transitory computer-readable storage medium  503 . This computer-readable storage medium has stored thereon code  505  corresponding to an interface engine. Code  504  corresponds to a database application including different types of input information available thereto. Code may be configured to reference data stored in a database of a non-transitory computer-readable storage medium, for example as may be present locally or in a remote database server. Software servers together may form a cluster or logical network of computer systems programmed with software programs that communicate with each other and work together in order to process requests. 
         [0073]    An example computer system  610  is illustrated in  FIG. 6 . Computer system  610  includes a bus  605  or other communication mechanism for communicating information, and a processor  601  coupled with bus  605  for processing information. Computer system  610  also includes a memory  602  coupled to bus  605  for storing information and instructions to be executed by processor  601 , including information and instructions for performing the techniques described above, for example. This memory may also be used for storing variables or other intermediate information during execution of instructions to be executed by processor  601 . Possible implementations of this memory may be, but are not limited to, random access memory (RAM), read only memory (ROM), or both. A storage device  603  is also provided for storing information and instructions. Common forms of storage devices include, for example, a hard drive, a magnetic disk, an optical disk, a CD-ROM, a DVD, a flash memory, a USB memory card, or any other medium from which a computer can read. Storage device  603  may include source code, binary code, or software files for performing the techniques above, for example. Storage device and memory are both examples of computer readable mediums. 
         [0074]    Computer system  610  may be coupled via bus  605  to a display  612 , such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to a computer user. An input device  611  such as a keyboard and/or mouse is coupled to bus  605  for communicating information and command selections from the user to processor  601 . The combination of these components allows the user to communicate with the system. In some systems, bus  605  may be divided into multiple specialized buses. 
         [0075]    Computer system  610  also includes a network interface  604  coupled with bus  605 . Network interface  604  may provide two-way data communication between computer system  610  and the local network  620 . The network interface  604  may be a digital subscriber line (DSL) or a modem to provide data communication connection over a telephone line, for example. Another example of the network interface is a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links are another example. In any such implementation, network interface  604  sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information. 
         [0076]    Computer system  610  can send and receive information, including messages or other interface actions, through the network interface  604  across a local network  620 , an Intranet, or the Internet  630 . For a local network, computer system  610  may communicate with a plurality of other computer machines, such as server  615 . Accordingly, computer system  610  and server computer systems represented by server  615  may form a cloud computing network, which may be programmed with processes described herein. In the Internet example, software components or services may reside on multiple different computer systems  610  or servers  631 - 635  across the network. The processes described above may be implemented on one or more servers, for example. A server  631  may transmit actions or messages from one component, through Internet  630 , local network  620 , and network interface  604  to a component on computer system  610 . The software components and processes described above may be implemented on any computer system and send and/or receive information across a network, for example. 
         [0077]    The above description illustrates various embodiments along with examples of how certain aspects may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present invention as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the invention as defined by the claims.