/314120050310164444 { .title "/OBJECT" .id 314120050310164444 .tags {database field} .body { [p { }] } } /314120050310164229 { .title "/OBJECT.odb_base" .id 314120050310164229 .tags {database field} .body { [p { }] } } /314120050310164236 { .title "/OBJECT.odb_deriveds" .id 314120050310164236 .tags {database field} .body { [p { }] } } /314120050310164242 { .title "/OBJECT.odb_deriveds.index" .id 314120050310164242 .tags {database field} .body { [p { }] } } /3141200503101164249 { .title "/OBJECT.odb_deriveds.index/id" .id 3141200503101164249 .tags {database field} .body { [p { }] } } /314120050310164258 { .title "/OBJECT.odb_deriveds.index/name" .id 314120050310164258 .tags {database field} .body { [p { }] } } /314120050310164305 { .title "/OBJECT.odb_deriveds.index/description" .id 314120050310164305 .tags {database field} .body { [p { }] } } /314120050310164214 { .title "/OBJECT.odb_deriveds.index/interactive" .id 314120050310164214 .tags {database field} .body { [p { }] } } /314120050310164221 { .title "/OBJECT.odb_deriveds.index/name/folder" .id 314120050310164221 .tags {database field} .body { [p { }] } } /314120050310164331 { .title "/OBJECT.odb_deriveds.index/description/folder" .id 314120050310164331 .tags {database field} .body { [p { }] } } /314120050310164342 { .title "/OBJECT.name" .id 314120050310164342 .tags {database field} .body { [h2 "Object Names"] [p { All NV2 objects have a [qw_field_name .name] field that is used to identify the object. For example, this is the field you use for so-called account [qw_term numbers]. }] [ul { [li { [p { All NV2 objects have a [qw_field_name .name] field. }] [p { Names are used to identify objects such as accounts, reports, journals, users, and so on. Traditionally in accounting, general ledger accounts, and often customer, vendor, inventory accounts, and so on, are identified using account [qw_term numbers]. The [qw_field_name .name] field serves this purpose is NV2, but you can use any characters in a name, including digits if you want to continue using numbers to identify accounts or other object types. }] }] [li { [p { The name uniquely identifies an object within a context. }] [p { NV2 objects are organized in a parent/child hierarchy. Two objects with the same parent cannot have the same name. For example, two customers cannot have the same name. But two objects with different parents can have the same name. For example, a customer can have the same name as a vendor. Or an expense account can have the same name as a customer or vendor. }] }] [li { [p { Names are not always filled in. }] [p { It makes sense for some objects to always have a name, such as accounts, journals, reports, and users. But although all objects have a [qw_field_name .name] field, objects such as sessions, transactions, and audit records do not usually have their name filled in. It is always permissable to have any number of objects with empty names under the same parent object in the hierarchy. }] }] [li { [p { Any characters can be used in a name. }] [p { You can use letters, digits, special characters, and even spaces. However, we recommend that you use letters and digits and stay away from special characters, especially spaces. If you really want to separate different components of a name for the purpose of readability, then a hyphen or dot is usually a good choice. Leading or internal spaces are not touched, but trailing spaces are automatically stripped from the name. }] }] [li { [p { An object name is [qw_term "case-insensitive"]. }] [p { Names are always converted to upper case so that there is never confusion between upper and lower case in the name field. }] }] [li { [p { Names can be of any length. }] [p { There is no limit to the length of a name. However, we recommend short names where possible. Note that objects also have a [qw_field_name .description] field and like names, objects can be sorted and selected by description. }] }] [li { [p { You can change the name. }] [p { Names can be changed. You might select names when first setting up your database and later feel that the names were inappropriate choices. The good news is that you can change the names. NV2 objects will respond to the changes in real-time. For example, when accounts are sorted by name in tables, they will move instantly as their names are changed. }] [p { Note that it may not always be a good idea to change the name of an object such as an account. You may have external hard-copies of account ledgers or reports that use the old name. In any case, NV2 maintains a complete audit trail that records all changes including the before and after values when you change the name of a report, journal, account, user, and so on. }] [p { Changing a name is not a problem for NV2 because, as an object-oriented database, internal object ids are used. Changing the name of an object doies not change the object itself. }] }] }] } } /314120050310164347 { .title "/OBJECT.description" .id 314120050310164347 .tags {database field} .body { [h2 "Object Descriptions"] [p { All NV2 objects have a [qw_field_name .description] field. This is field is used for a general description of the object. What you use will depend on the type of object. For example, for a vendor or customer account you might enter the company name in the description. use the description for the For an inventory account, you might enter the name of the product. But descriptions are also useful on transactions, especially since the description of a transaction is displayed on account ledgers and account ledgers can be sorted by description. }] [p { Any characters can be entered in a description and there is not pre-set limit to the length of the description. }] } } /314120050310164354 { .title "/OBJECT.notes" .id 314120050310164354 .tags {database field} .body { [p { All objects have notes. }] [p { Notes allow unlimited free-form comments to be added to an object whether it is a report, account, transaction, or anything else. }] } } /314120050310164359 { .title "/OBJECT.clientdata" .id 314120050310164359 .tags {database field} .body { [p { All objects have a [qw_field_name .clientdata] field. }] [p { The [qw_field_name .clientdata] field is reserved for internal use. Do not attempt to change this field. }] } } /314120050310164405 { .title "/OBJECT.folder" .id 314120050310164405 .tags {database field} .body { [p { }] } } /314120050310164418 { .title "/OBJECT.access_froms" .id 314120050310164418 .tags {database field} .body { [p { Every NV2 object has an [qw_field_name .access_froms] field. Each row in a user access table attaches to the object for which access is granted. The [qw_field_name .access_froms] represents the other side of this relation. That is, it shows who has been granted access to this object. }] [ul { [li {[link .chm $::qw_manual_file .id 150220040802153512 {More on Security}]}] }] } } /314120050310164423 { .title "/OBJECT.access_froms.index" .id 314120050310164423 .tags {database field} .body { [p { }] } } /314120050310164432 { .title "/OBJECT.access_froms.index/id" .id 314120050310164432 .tags {database field} .body { [p { }] } } /314120050310113052 { .title "/OBJECT/SYSTEM/SESSION" .id 314120050310113052 .tags {database field} .body { [p { A new session object is added to a database each time a user logs into the database. }] } } /314120050310112919 { .title "/OBJECT/SYSTEM/SESSION.user" .id 314120050310112919 .tags {database field} .body { [p { The user. }] } } /314120050310112928 { .title "/OBJECT/SYSTEM/SESSION.login_date" .id 314120050310112928 .tags {database field} .body { [p { The login date. }] } } /314120050310112936 { .title "/OBJECT/SYSTEM/SESSION.logout_date" .id 314120050310112936 .tags {database field} .body { [p { The logout date. }] } } /314120050310112943 { .title "/OBJECT/SYSTEM/SESSION.state" .id 314120050310112943 .tags {database field} .body { [p { The state. }] } } /314120050310112951 { .title "/OBJECT/SYSTEM/SESSION.hostname" .id 314120050310112951 .tags {database field} .body { [p { The hostname. }] } } /314120050310112959 { .title "/OBJECT/SYSTEM/SESSION.serial" .id 314120050310112959 .tags {database field} .body { [p { The serial number. }] } } /314120030330095440 { .title "/OBJECT/WORKSTATION/LOGIN" .id 314120030330095440 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095432 { .title "/OBJECT/WORKSTATION/LOGIN.server" .id 314120030330095432 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095433 { .title "/OBJECT/WORKSTATION/LOGIN.port" .id 314120030330095433 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095434 { .title "/OBJECT/WORKSTATION/LOGIN.directory" .id 314120030330095434 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095435 { .title "/OBJECT/WORKSTATION/LOGIN.access" .id 314120030330095435 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095436 { .title "/OBJECT/WORKSTATION/LOGIN.user" .id 314120030330095436 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095437 { .title "/OBJECT/WORKSTATION/LOGIN.password" .id 314120030330095437 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095438 { .title "/OBJECT/WORKSTATION/LOGIN.autoopen" .id 314120030330095438 .tags {database field} .body { [p { Workstation login object. }] } } /314120030330095439 { .title "/OBJECT/WORKSTATION/LOGIN.state" .id 314120030330095439 .tags {database field} .body { [p { The [qw_field_name state] field of a workstation login row displays whether the database corresponding to the row is currently open or closed. }] [p { Changing the value of the [qw_field_name state] will change the state of the database: }] [ul { [li { [p { Change the state to [qw_field_value "open"] to open the database. }] [p { Changing the state to open will attempt to open the database. If the database is already open then this has no effect. }] }] [li { [p { Change the state to [qw_field_value "closed"] to close the database. }] [p { Changing the state to closed will close the database. If the database is already closed then this has no effect. }] [p { You can also close a database by simply pressing the close button in the upper-right corner of the main database window. }] [p { All databases are also automatically closed when you shut NewViews. }] }] }] } }