Here is a sample check (cheque) layout you can play with.
Just make sure you change the Object number before you import.
Also, note that some changes may be specific to the client it was designed for but I am sure you can work around that.
Rgds,
Colin
If i wasn’t such a tightwad i would pay the fee and upgrade so i can send attachments, however, in the meantime, just copy and paste the following.
OBJECT Report 1401 Check
{
OBJECT-PROPERTIES
{
Date=28-09-05;
Time=12:00:00;
Modified=Yes;
Version List=NAVW14.00,NAVGB4.00;
}
PROPERTIES
{
CaptionML=[ENU=Check;
ENG=Cheque];
BottomMargin=1000;
LeftMargin=0;
OnInitReport=BEGIN
/// V4M1
CompanyInfo.GET();
IF CompanyInfo.“Default Bank Account Cheques” <> ‘’ THEN
BankAcc2.“No.” := CompanyInfo.“Default Bank Account Cheques”;
END;
OnPreReport=BEGIN
InitTextVariable;
END;
Orientation=Portrait;
PaperSize=A4 210 x 297 mm;
HorzGrid=210;
}
DATAITEMS
{
{ PROPERTIES
{
DataItemTable=Table81;
DataItemTableView=SORTING(Journal Template Name,Journal Batch Name,Posting Date,Document No.);
DataItemVarName=VoidGenJnlLine;
OnPreDataItem=BEGIN
IF CurrReport.PREVIEW THEN
ERROR(Text000);
IF UseCheckNo = ‘’ THEN
ERROR(Text001);
IF TestPrint THEN
CurrReport.BREAK;
IF NOT ReprintChecks THEN
CurrReport.BREAK;
IF (GETFILTER(“Line No.”) <> ‘’) OR (GETFILTER(“Document No.”) <> ‘’) THEN
ERROR(
Text002,FIELDCAPTION(“Line No.”),FIELDCAPTION(“Document No.”));
SETRANGE(“Bank Payment Type”,“Bank Payment Type”::“Computer Check”);
SETRANGE(“Check Printed”,TRUE);
END;
OnAfterGetRecord=BEGIN
CheckManagement.VoidCheck(VoidGenJnlLine);
END;
ReqFilterFields=Journal Template Name,Journal Batch Name,Posting Date;
}
SECTIONS
{
}
}
{ PROPERTIES
{
DataItemTable=Table81;
DataItemTableView=SORTING(Journal Template Name,Journal Batch Name,Posting Date,Document No.);
DataItemVarName=GenJnlLine;
OnPreDataItem=BEGIN
GenJnlLine.COPY(VoidGenJnlLine);
CompanyInfo.GET;
IF NOT TestPrint THEN BEGIN
FormatAddr.Company(CompanyAddr,CompanyInfo);
BankAcc2.GET(BankAcc2.“No.”);
BankAcc2.TESTFIELD(Blocked,FALSE);
COPY(VoidGenJnlLine);
SETRANGE(“Bank Payment Type”,“Bank Payment Type”::“Computer Check”);
SETRANGE(“Check Printed”,FALSE);
END ELSE BEGIN
CLEAR(CompanyAddr);
FOR i := 1 TO 5 DO
CompanyAddr[i] := Text003;
END;
ChecksPrinted := 0;
SETRANGE(“Account Type”,GenJnlLine.“Account Type”::“Fixed Asset”);
IF FIND(’-’) THEN
GenJnlLine.FIELDERROR(“Account Type”);
SETRANGE(“Account Type”);
END;
OnAfterGetRecord=BEGIN
IF OneCheckPrVendor AND (GenJnlLine.“Currency Code” <> ‘’) AND
(GenJnlLine.“Currency Code” <> Currency.Code)
THEN BEGIN
Currency.GET(GenJnlLine.“Currency Code”);
Currency.TESTFIELD(“Conv. LCY Rndg. Debit Acc.”);
Currency.TESTFIELD(“Conv. LCY Rndg. Credit Acc.”);
END;
IF NOT TestPrint THEN BEGIN
IF Amount = 0 THEN
CurrReport.SKIP;
TESTFIELD(“Bal. Account Type”,“Bal. Account Type”::“Bank Account”);
IF “Bal. Account No.” <> BankAcc2.“No.” THEN
CurrReport.SKIP;
IF (“Account No.” <> ‘’) AND (“Bal. Account No.” <> ‘’) THEN BEGIN
BalancingType := “Account Type”;
BalancingNo := “Account No.”;
RemainingAmount := Amount;
IF OneCheckPrVendor THEN BEGIN
ApplyMethod := ApplyMethod::MoreLinesOneEntry;
GenJnlLine2.RESET;
GenJnlLine2.SETCURRENTKEY(“Journal Template Name”,“Journal Batch Name”,“Posting Date”,“Document No.”);
GenJnlLine2.SETRANGE(“Journal Template Name”,“Journal Template Name”);
GenJnlLine2.SETRANGE(“Journal Batch Name”,“Journal Batch Name”);
GenJnlLine2.SETRANGE(“Posting Date”,“Posting Date”);
GenJnlLine2.SETRANGE(“Document No.”,“Document No.”);
GenJnlLine2.SETRANGE(“Account Type”,“Account Type”);
GenJnlLine2.SETRANGE(“Account No.”,“Account No.”);
GenJnlLine2.SETRANGE(“Bal. Account Type”,“Bal. Account Type”);
GenJnlLine2.SETRANGE(“Bal. Account No.”,“Bal. Account No.”);
GenJnlLine2.SETRANGE(“Bank Payment Type”,“Bank Payment Type”);
GenJnlLine2.FIND(’-’);
RemainingAmount := 0;
END ELSE
IF “Applies-to Doc. No.” <> ‘’ THEN
ApplyMethod := ApplyMethod::OneLineOneEntry
ELSE
IF “Applies-to ID” <> ‘’ THEN
ApplyMethod := ApplyMethod::OneLineID
ELSE
ApplyMethod := ApplyMethod::Payment;
END ELSE
IF “Account No.” = ‘’ THEN
FIELDERROR(“Account No.”,Text004)
ELSE
FIELDERROR(“Bal. Account No.”,Text004);
CLEAR(CheckToAddr);
ContactText := ‘’;
CLEAR(SalesPurchPerson);
CASE BalancingType OF
BalancingType::“G/L Account”:
BEGIN
CheckToAddr[1] := GenJnlLine.Description;
END;
BalancingType::Customer:
BEGIN
Cust.GET(BalancingNo);
IF Cust.Blocked = Cust.Blocked::All THEN
ERROR(Text064,Cust.FIELDCAPTION(Blocked),Cust.Blocked,Cust.TABLECAPTION,Cust.“No.”);
Cust.Contact := ‘’;
FormatAddr.Customer(CheckToAddr,Cust);
IF BankAcc2.“Currency Code” <> “Currency Code” THEN
ERROR(Text005);
IF Cust.“Salesperson Code” <> ‘’ THEN BEGIN
ContactText := Text006;
SalesPurchPerson.GET(Cust.“Salesperson Code”);
END;
END;
BalancingType::Vendor:
BEGIN
Vend.GET(BalancingNo);
IF Vend.Blocked IN [Vend.Blocked::All,Vend.Blocked::Payment] THEN
ERROR(Text064,Vend.FIELDCAPTION(Blocked),Vend.Blocked,Vend.TABLECAPTION,Vend.“No.”);
Vend.Contact := ‘’;
FormatAddr.Vendor(CheckToAddr,Vend);
IF BankAcc2.“Currency Code” <> “Currency Code” THEN
ERROR(Text005);
IF Vend.“Purchaser Code” <> ‘’ THEN BEGIN
ContactText := Text007;
SalesPurchPerson.GET(Vend.“Purchaser Code”);
END;
END;
BalancingType::“Bank Account”:
BEGIN
BankAcc.GET(BalancingNo);
BankAcc.TESTFIELD(Blocked,FALSE);
BankAcc.Contact := ‘’;
FormatAddr.BankAcc(CheckToAddr,BankAcc);
/// V4M1 … BEGIN
AccountNo := BankAcc.“No.”;
/// V4M1 … END
IF BankAcc2.“Currency Code” <> BankAcc.“Currency Code” THEN
ERROR(Text008);
IF BankAcc.“Our Contact Code” <> ‘’ THEN BEGIN
ContactText := Text009;
SalesPurchPerson.GET(BankAcc.“Our Contact Code”);
END;
END;
&nb