1Using this page #
(IsVoucher) {
- This page enters vouchers. As you type, the voucher works out the price, discount, tax, sundries and totals - the read-only fields - exactly as the voucher screen does. A rate or a discount you type is kept.
- Save (F5) saves through the voucher screen's own writer: its numbering, your rights on the voucher type, the price lock, the date and sundry rules. What the page keeps in its own tables is saved in the same step - all of it or none. (_linkInfo?.Enabled == true) {
- Load from linked (F7) lists the earlier vouchers waiting to be linked - - as Voucher Manager sets it for . Tick one or more and press Load (F5) : their pending lines replace the grid's lines, and Save stores the link, so the earlier vouchers are used up as on the voucher screen. (_linkInfo.Rules.Count > 0) {
- The voucher type's rules, checked again on Save: " ", _linkInfo.Rules) }
- Take the link off keeps the lines but stops them using up the earlier vouchers. }
- When the party's credit check stops the save and the party's credit Mode is Approval (Ledger Account master -> Credit Limit), the page offers Request approval (F5) : the request goes to the Credit Approvals desk, and once it is granted Save (F5) goes through. Any other mode simply stops the save. }
- Find (F2) lists the ; type to search, then pick one to open it.
- Add (F3) starts a new record with its starting values; Modify (F4) changes the one on screen.
- Save (F5) checks every rule, lists every problem at once, and saves only when there are none. The page then stays on the saved record.
- Cancel (Esc) drops what you typed; in view mode Esc closes the page. (LinkRules.Count > 0) {
- Load rows from ( ", ", LinkRules.Select(r => r.ButtonText.Replace("Load from ", string.Empty)))): in Add (F3) or Modify (F4), the button (F7 for the first) lists the records of the other page that meet the rule's conditions, with what is still pending. Tick a record for all its rows, or tick rows and change Take ; Load (F5) puts them in the grid with a link mark. Save (F5) checks the conditions and the pending again, so a row never takes more than is left (plus the rule's tolerance, setting 326).
- Deleting this record gives back what it took. A record other records loaded from cannot be deleted, nor its rows lowered below what they took. }
- Tab or Enter moves to the next field. In a grid, Enter on the last column of the last row adds a row; the bin removes a row.
- A list that comes from a master - ledgers, items, units, warehouses, employees, bill sundries, transaction classes or a custom table - has + Create new ... at the foot of its popup (in a grid, the + in the cell). It opens that master ready to add; after you save there, the list reloads and the new entry is put in the field. (IsVoucher) {
- Print (Ctrl+P) prints the saved voucher the voucher screen's way: the formats set up for (and their groups), System Print . A format remembered on this computer prints straight away - Silent to a printer through the InvoiceNET Print Agent, or Preview; otherwise the dialog lists the formats with Printer, Copies and Remember. Print options (Ctrl+Shift+P) always opens the dialog. In it: Print (F5), Preview, Download, Share (F6) to WhatsApp, e-mail or any app, Cancel (Esc).
- Printing needs this page's Print right and the voucher type's Print right (Re-print once it has been printed); a status may forbid printing. When Voucher Manager sets Print Voucher On Save , Save (F5) prints as Ctrl+P does. } else if (PrintOn) {
- Print (Ctrl+P) prints the record on screen on the sheet the designer laid out, the company band and the column headings repeated on every page. Save first - a record being typed is not printed. }
2Fields #
(var c in _bundle.Page.HeaderControls.Where(x => x.HasValue)) {
- }
3? StudioRules.GridKey(grid) : grid.Title) (grid) #
(grid.MinRows > 0 || grid.MaxRows > 0) {
- Rows: . } (grid.UniqueColumns?.Count > 0) {
- The same " + ", grid.UniqueColumns) may not be entered twice. } (var c in grid.Controls.Where(x => x.HasValue)) {
- }
4Buttons and automatic steps #
(var t in StudioActions.All(_bundle.Page)) {
- : "Button " + t.Item2.Label) - }
5Approval #
- A record is sent for approval ? "when it is saved" : "with the button") ? "" : "when " + apAct.When). It then goes through level in order: ", then ", apAct.Levels.Select((l, i) => StudioActions.LevelTitle(apAct, i + 1))).
- Each level is decided by any one of its approvers, from the Approvals inbox or the bell - the link opens the record here with Approve and Reject . The person who asked never decides it.
- While it waits nobody can change or delete it. A change to an approved or rejected record sends it for approval again.
- An approver opens the link when the page is on their menu (User Manager -> Menu Definition) and they hold its View right. Settings -> Approval Alert Settings -> Approval links open the record for its approvers (off by default) lets the link open the one record for the approvers of the level waiting without that.
6Rights #
- An administrator gives rights in User Manager -> Permissions -> InvoiceNET® Studio , on the row : View opens the page and puts it on the menu, Create adds records, Alter changes them, Delete deletes them, Print prints them.
- You hold:
7If something does not work #
"There is no approved SQL source ... in this company - it may have been withdrawn."
- Why
- The popup reads a view or function C-Land approved for the serial, and it is not (or no longer) in this company.
- What to do
- Ask your administrator: C-Land applies it again from Licence Admin, or the designer chooses another source.
"The SQL source ... was changed in the database after it was approved, so it is not read ..."
- Why
- The view or function in the database is no longer the one C-Land approved (somebody altered it by hand), so the page refuses to read it.
- What to do
- Ask C-Land to apply it again from Licence Admin (Apply again) - that puts back the approved version.
A popup on an SQL function is empty until another field is filled
- Why
- The function's parameters come from fields of the page; while those are blank the function lists nothing that matches.
- What to do
- Fill the fields it depends on first - the list is read again with their values.
"... is not assigned to this company ..." / "... ended on ..." / "... has been withdrawn ..." (on a page from a custom module)
- Why
- This page came with a custom module, and runs under that module rather than InvoiceNET® Studio. The module is not (or no longer) assigned to this company.
- What to do
- Contact C-Land to have the module assigned or renewed.
"The page ... has been switched off in InvoiceNET® Studio." (a page from a custom module)
- Why
- A custom module switches its designs off when it is taken off the company or the item is taken out of it. The records it kept are untouched.
- What to do
- Contact C-Land - assigning the module again switches the page back on.
"Requested action denied due to security restrictions. This needs the View right on '...' in User Manager (InvoiceNET® Studio tab)."
- Why
- Each designed page has a right of its own, named by its code. Without View the page does not open and is not on the menu.
"... needs the Create right ..." / "... the Alter right ..." / "... the Delete right ..." / "... the Print right ..."
- Why
- Adding a record needs Create, changing one needs Alter, deleting one (or removing rows of a table saved on its own) needs Delete, printing one needs Print - each on the page's own row.
"The page ... has not been published yet."
- Why
- The design exists in InvoiceNET® Studio but no version of it has been published, so there is nothing for users to open.
- What to do
- The designer publishes it from Tools & Utilities > InvoiceNET® Studio.
"The page ... has been switched off in InvoiceNET® Studio."
- Why
- The designer marked the design inactive. Its menu entry is hidden and the page refuses to open; its records are kept.
- What to do
- Ask the designer to switch it on again.
"There is no designed page ..."
- Why
- The design was deleted, or the address was typed wrong.
- What to do
- Open the page from the menu (Designed Pages).
"This page was published again (version ...) while you had it open ..."
- Why
- The designer published a new version while you were typing, and the rules may have changed. The save is refused so nothing is written under the old rules.
- What to do
- Copy anything long you typed, open the page again from the menu, and enter it again.
"Choose the party first - ... picks its sources after the party."
- Why
- Voucher Manager sets this voucher type to list its sources after the party, so only that party's earlier vouchers are offered.
- What to do
- Choose the Party, then press Load from linked (F7).
"No earlier voucher is waiting to be linked."
- Why
- Nothing of the source voucher types is pending for what is typed - every line is used up, the vouchers are of another branch or status, or another voucher is already loading them.
- What to do
- Check the party and the date. The Linked Transactions menu shows what is still pending.
"... does not link to earlier vouchers (Voucher Manager > Enable Linked Transaction)." / "Linked Transactions is not on this company's licence." / "Accounting vouchers do not link to earlier vouchers."
- Why
- Load from linked follows the voucher type: linking must be switched on for it in Voucher Manager, and Linked Transactions must be on the licence.
- What to do
- An administrator switches it on in Voucher Manager; the licence is extended in Admin > Subscription and Add-ons.
"Pick sources of one voucher type at a time (...)" / "... must link to an earlier voucher - Not applicable is not allowed when the link is compulsory."
- Why
- The ticked vouchers are of different types, or Not applicable was ticked where the voucher type's link is compulsory (Voucher Manager > Linked Transaction properties) - as on the desktop, a compulsory link needs a real source.
- What to do
- Tick vouchers of one type, and tick the earlier voucher. If this voucher really has none, the voucher type's link must be made optional in Voucher Manager.
"... needs its source: Load from linked (F7) and pick the earlier voucher - Not applicable is not allowed when the link is compulsory."
- Why
- The voucher type's link is compulsory (Voucher Manager > Linked Transaction properties) and no earlier voucher is loaded - as on the desktop, it needs a real source.
- What to do
- Press Load from linked (F7) and tick the earlier voucher. If this voucher really has none, the voucher type's link must be made optional in Voucher Manager.
"...: the quantity can only be reduced from the source's ... (now ...)" / "... must stay ..." / "... can only be increased ..." (also for the rate)
- Why
- The voucher type's Qty and Rate options in Voucher Manager, checked against the pending quantity and rate loaded from the source.
- What to do
- Put the quantity (or rate) back within the source's figure, or Take the link off.
"Line ...: ... is not on the source vouchers ..." / "... takes only the lines loaded from its sources ..."
- Why
- The voucher type allows lines only for items the sources have (or only the loaded lines).
- What to do
- Remove the line, or Load from linked (F7) again.
"Credit Limit variation ! ..." / "Credit Period variation ! ..." (and the Credit check stopped this save window)
- Why
- The party is over its credit limit (or has overdue bills). When the party's credit Mode is Approval (Ledger Account master > Credit Limit) the page offers Request approval (F5), which sends a request to the Credit Approvals desk.
- What to do
- Send the request, wait for it to be granted, then Save (F5) again. With any other Mode, receive a payment first or ask an administrator.
"'...' is set to stop at its credit limit (... Mode ...). ..."
- Why
- The party's credit Mode is not Approval, so a stopped voucher cannot ask for an approval.
- What to do
- An administrator sets the Mode to Approval on the ledger's Credit Limit, or the party pays first.
"Fill ... first - the sources are those of the same ...."
- Why
- The link rule offers only records whose field matches this record's (the same party, the same project), so the field must be filled first.
- What to do
- Fill the field, then press Load from (F7) again.
"Save the record first - the new voucher loads it as saved."
- Why
- Create a voucher from this record loads the record as it is saved, so a new or unsaved record has nothing to load yet.
- What to do
- Save (F5), then press the button again.
"This page has no link rule ... - ask the designer to publish it again." / "The record could not be loaded: ..."
- Why
- The page was opened by Create a voucher from this record, but the rule it names is gone, or nothing of the record is pending any more.
- What to do
- Load from the rule's button by hand, or ask the designer to publish both pages again.
"Nothing of ... is waiting to be loaded under this rule's conditions."
- Why
- Every record of the other page is used up, or none meets the rule's conditions - the match, the dates, the branch, approval or the rule's own condition.
- What to do
- Check the fields the rule matches on and the date. The designer lists the rule's conditions in Links; the picker shows them in words.
"Load from ...: ... taken from one source row where ... is pending ..."
- Why
- The rows loaded from one source line take more than is left on it - another record took some meanwhile, or the quantity was raised. The tolerance (setting 326) allows a little more when the rule sets one.
- What to do
- Lower the quantity to what is pending, or load again to see what is left.
"...: the quantity stays ... as loaded" / "... can only be increased ..." / "the rate stays ... as on the source" / "... is above the source's ..."
- Why
- The link rule's quantity, rate and amount settings, checked again at Save.
- What to do
- Put the value back as the rule allows, or remove the row and load again.
"... needs at least one row from Load from ..." / "... rows come only from Load from ... - remove it." / "... takes one record per record ..."
- Why
- The rule makes a source compulsory, takes rows only from sources, or allows one source record per record.
- What to do
- Load from the source, remove the rows of your own, or keep one source record.
"The quantity cannot go below ... - ... has taken that much" / "... a row ... loaded from cannot be removed" / "Other records loaded from this one ... - remove those rows first"
- Why
- Other records loaded rows from this one. Its rows cannot go below what they took, nor be removed, and the record cannot be deleted while they hold it.
- What to do
- Change or delete the records that loaded from it first (their link mark names them), then change this one.
"Linking by value is switched off for this company (setting 327)"
- Why
- This rule takes an amount pending, and the company has switched linking by value off.
- What to do
- An administrator switches setting 327 on in Linked Transactions > Linked Transactions Settings, or the designer changes the rule to take quantities.
"Printing is not allowed in this voucher's current status."
- Why
- Voucher Manager's statuses can switch Print off for a status, and this voucher is in one of them.
- What to do
- Change the voucher's status, or ask an administrator to allow printing in it (Voucher Manager > statuses).
A refusal naming the Print or Re-print right of the voucher type
- Why
- Besides this page's Print right, a voucher prints under its voucher type's rights: Print the first time, Re-print once it has been printed.
- What to do
- An administrator ticks it in User Manager > Permissions on the voucher type.
"The saved print format '...' is no longer available for ... - pick one below."
- Why
- This computer remembered a format (Remember ... on this computer) that has since been removed or hidden.
- What to do
- Pick a format in the dialog; tick Remember again to save the new choice.
"Direct printing is not set up on this computer ..." / "Could not print to ...: ... The document was opened in the browser's print dialog instead."
- Why
- Printing straight to a printer goes through the InvoiceNET Print Agent on this computer. It is not paired, not running, or the printer refused.
- What to do
- Pair it in Settings > Local Printing, or print through the browser's dialog.
"Document opened in a new tab." but nothing appears
- Why
- The browser blocked the new tab as a pop-up.
- What to do
- Allow pop-ups for this site, then Preview or Print again.
"... is required." / "... must be at least ..." / "... must be inside the financial year ..." and the other numbered problems
- Why
- The rules the designer gave each field. Every problem is listed at once and marked on its field (and its tab); the server checks the same rules again.
- What to do
- Work down the list. The field's own rules are written in the Fields part of this guide.
"... allows at most ... characters."
- Why
- The text is longer than the database column can hold.
- What to do
- Shorten it. A designer can widen the column in Custom Table Designer.
"... '...' is already used by another record." / "Another record already has the same ..."
- Why
- The field, or a combination of fields, must be unique across all the records of this page.
- What to do
- Use another value, or Find the record that already has it.
"..., row ...: the same ... is entered twice."
- Why
- The grid does not allow the same value (or combination) on two rows.
- What to do
- Change or remove one of the two rows.
"...: enter at least ... rows." / "no more than ... rows are allowed."
- Why
- The grid has a least or most number of rows.
- What to do
- Add or remove rows. A row you never typed into does not count.
"'...' cannot be kept in ... (...)"
- Why
- The value does not fit the column's type - text in a number column, an impossible date.
- What to do
- Correct the value. If it keeps happening on a valid value, the design binds the field to the wrong kind of column - tell the designer.
"The key expression gave an empty value - fill the fields it reads."
- Why
- The record's key is made from other fields, and those are empty.
- What to do
- Fill the fields the key is made from (the designer can tell you which).
"This record still has ... rows in .... Remove them first ..."
- Why
- The design keeps a child table's rows instead of deleting them with the record.
- What to do
- Remove those rows (Modify, the bin on each row, Save), then delete the record.
"The record was saved, but ... was not: ..."
- Why
- A table saved on its own (an independent grid) failed after the record itself was saved.
- What to do
- Read the reason, correct the grid, and save again - the record is already there.
"The record is not there any more - somebody may have deleted it."
- Why
- Someone deleted it while you had it open.
- What to do
- Find (F2) again.
I made a new entry with + Create new, but the field is still blank
- Why
- The list reloads after the save and puts the new entry in the field only when it is in the list: a list that follows another field shows only the matching rows, an inactive entry is not listed, and a voucher's transaction classes are only those of its type.
- What to do
- Pick it from the list (fill the field it follows first). For a transaction class, add it to the voucher type in Voucher Manager.
A drop-down or popup is empty, or shows only some choices
- Why
- Its list may follow another field (cascading): it shows only the rows that match that field. A list longer than 2,000 rows is cut there.
- What to do
- Fill the field it follows first. Type to search inside the list.
"Save (F5) or Cancel (Esc) first - the record being typed is not printed."
- Why
- Print prints a saved record. While you add or change one, what is on screen is not saved yet, so it is not printed.
- What to do
- Save (F5) - the page stays on the saved record - then Print (Ctrl+P). Or Cancel (Esc) to print the record as it was.
"Open a record first - Find (F2) - then print it."
- Why
- There is no saved record on screen to print.
- What to do
- Find (F2) the record and open it, then Print (Ctrl+P).
There is no Print button
- Why
- The designer switched printing off for this page (Print layout > Print button).
- What to do
- Ask the designer to switch it on in InvoiceNET® Studio and publish again.
The printout has the web address or the date at the top, or prints over the page footer
- Why
- The browser adds its own headers and footers unless they are turned off in its print dialog.
- What to do
- In the print dialog open More settings and untick Headers and footers. The page's own footer already says when it was printed and Page N of M.
A total in the grid's last row looks wrong, or a column shows none
- Why
- Each column's totals row shows what the designer chose: number and money columns are summed; others can show a count, an average, the smallest or the largest - or nothing. The empty ready row at the end never counts.
- What to do
- Hover the figure to see what it is. A different choice is made by the designer (the column's Totals row setting).
"InvoiceNET® Studio is not on this licence ..."
- Why
- A designed page runs under InvoiceNET® Studio licence, and the licence does not hold it now.
- What to do
- An administrator adds InvoiceNET® Studio in Admin > Subscription and Add-ons, or asks C-Land. The records stay; the page opens again once it is added.
Save and Delete do nothing in the preview
- Why
- A preview shows the draft exactly as users will see it, but writes nothing.
- What to do
- Publish the design, then use the page from the menu.
"Choose the party." / "Add at least one product line." / "Every product line needs a quantity above zero."
- Why
- A voucher page enters a real voucher, and an inventory voucher needs its party and at least one line with a quantity.
- What to do
- Fill the party and the product lines, then Save (F5) again.
"An accounting voucher needs at least two lines ..." / "The debits (...) and the credits (...) must be equal." / "Every account line needs an amount above zero."
- Why
- An accounting voucher (journal, payment, receipt, contra) balances: what is debited equals what is credited, over at least two accounts.
- What to do
- Correct the amounts or the Dr / Cr of a line until both sides are equal.
"Line ...: there is no item called ..." / "Sundry ...: there is no bill sundry called ..." (the yellow panel)
- Why
- The voucher could not find the product or the bill sundry typed, so that line is left out of the figures.
- What to do
- Pick the item or the sundry from its list instead of typing the name.
"The transaction class ... could not be read."
- Why
- The class chosen (or the party's own class) is not a transaction class of this voucher type, or it was switched off.
- What to do
- Pick a class from the Class list - it shows only the classes of this voucher type.
"The voucher could not be worked out: ..."
- Why
- The server could not work out the voucher's figures (rates, tax, sundries) for what is typed. The figures on screen are from the last time it could.
- What to do
- Read the reason after the colon and correct that field. Save works the voucher out again, so nothing wrong is saved.
A message from the voucher save itself - the GST state of the party, stock, the credit limit, the price limits, the voucher number
- Why
- A voucher page saves through the voucher screen's own writer, so its messages are the voucher screen's. E.g. "Customer/Supplier selected in this transaction belongs to same state and cannot collect/pay IGST Tax" means the class is an inter-state class for a party of the same state.
- What to do
- Correct it as on the voucher screen - here, choose the local (intra-state) class. Nothing of the voucher, nor of the page's own tables, was saved.
"... is not licensed for this company - '...' vouchers cannot be saved."
- Why
- The voucher type belongs to a module the licence does not hold.
- What to do
- An administrator adds the module in Admin > Subscription and Add-ons, or the designer uses another voucher type.
"Saved with a stock warning: ..." / "... a price warning ..." / "... a profit warning ..."
- Why
- The voucher was saved; the writer noticed something the voucher screen also warns about.
- What to do
- Read the warning. Change the voucher (Modify, F4) if it should not stand.
"That voucher is a ... - this page deletes only ..."
- Why
- A voucher page only touches vouchers of its own type.
- What to do
- Open the voucher on its own screen, or on the page made for its type.
"... Its rows in the page's own tables could not be removed: ..."
- Why
- The voucher was deleted, but the rows the page keeps beside it in its own tables were not.
- What to do
- Tell the designer: those rows are left over and can be removed in the table itself. The voucher is gone either way.
"Voucher pages are not available on this server."
- Why
- The API this company uses is older than voucher pages.
- What to do
- Ask C-Land to update the server.
"This record is waiting for approval (level ...) - it cannot be changed ..." / "... cannot be deleted ..."
- Why
- The page sent the record for approval. While a level is deciding, nobody may change or delete it.
- What to do
- Ask the approvers named in the line to decide it (they find it in the Approvals inbox and the bell). Once decided it can be changed again - a change sends it for approval anew.
"You have not been given this page" (opening an approval link)
- Why
- The approval link opens the designed page, and the page is not on your menu (Menu Definition) - by default an approver needs the page on their menu and its View right.
- What to do
- Ask an administrator to add the page on your Menu Definition tab and give View on it (InvoiceNET® Studio tab) - or to switch on Approval links open the record for its approvers in Settings > Approval Alert Settings, which opens just that record for the approvers of the level waiting.
"You asked for this approval - somebody else decides it."
- Why
- The person who sent a record for approval never decides it, at any level.
- What to do
- Leave it to the approvers of the level waiting.
"It waits for ... - you are not one of its approvers."
- Why
- Each level is decided by its own users or user groups, in order. You are not among the ones of the level waiting now.
- What to do
- Wait for that level; you are asked when your level is reached. If you should be one of them, ask the designer to add you or your group to the level.
"Say why it is rejected - the person who asked reads it."
- Why
- A rejection needs remarks.
- What to do
- Type the reason in Remarks, then press Reject again.
"Not sent for approval - ... has nobody to decide it ..." / "... (the next level) has nobody to decide it ..."
- Why
- The level's users and groups resolve to nobody - a group was emptied or switched off, or the only approver is the person asking.
- What to do
- Ask the designer to name approvers for the level in InvoiceNET® Studio (the page's Request approval action). Nothing was sent or recorded.
"The e-mail ... was not sent: ..." / "... it has no valid address to go to."
- Why
- The page saved the record, but its e-mail did not go: the mail server refused it, or the address field was empty or not an address.
- What to do
- Check the address on the record, and the account in Settings > Mail Accounts. Administration > Notification Log keeps the attempt and can send it again.
"Save (F5) first - the button's e-mail ..." / "... request for approval works on the saved record."
- Why
- A button that e-mails or asks for approval works on the record as saved, not on what is being typed.
- What to do
- Save, then press the button again.
"Nothing was done - the button's condition does not hold for this record."
- Why
- The button's action runs only when its condition holds, and the saved record does not meet it.
- What to do
- Read the button's line or the help's Buttons list for the condition.
"This is a panel - it opens from ..." / "The panel ... has no list of its own."
- Why
- A Custom Fields panel belongs to a master or a voucher type; it has no page or list of its own.
- What to do
- Open a saved record on that screen and press Custom Fields (or the panel's button on a saved voucher).
"Somebody saved these fields for this record a moment ago ..." / "These fields belong to another record ..."
- Why
- Two people filled the panel for the same record at once, or the panel was opened for a different record than the one saved.
- What to do
- Close the panel and open it again from the record - it then shows what was saved.
"Open the panel from its screen ..." / "Save the record first - its Custom Fields belong to a saved record."
- Why
- A panel keeps its fields under a saved record's key, so the record must be saved first.
- What to do
- Save the master or the voucher, then open Custom Fields.
This is the help InvoiceNET® ERP shows beside the Studio Page Runtime screen. Whether you have the screen depends on the modules of your licence and the rights your administrator has given you.
See this screen for yourself
The demo is the real product, with a company of your own.