Page 344 Navigate
- App
- Base Application
- Namespace
- Microsoft.Foundation.Navigate
- Versions
- 17-28
- Source table
- 265
Procedures, 29Events, 66Obsolete, 8
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Foundation/Navigate/Navigate.Page.al2386 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Foundation.Navigate;
using Microsoft.Bank.BankAccount;
using Microsoft.Bank.Check;
using Microsoft.Bank.Ledger;
using Microsoft.CostAccounting.Ledger;
using Microsoft.EServices.EDocument;
using Microsoft.Finance.GeneralLedger.Journal;
using Microsoft.Finance.GeneralLedger.Ledger;
using Microsoft.Finance.SpendRequest;
using Microsoft.Finance.VAT.Ledger;
using Microsoft.FixedAssets.Insurance;
using Microsoft.FixedAssets.Ledger;
using Microsoft.FixedAssets.Maintenance;
using Microsoft.HumanResources.Payables;
using Microsoft.Inventory.Counting.History;
using Microsoft.Inventory.Counting.Journal;
using Microsoft.Inventory.History;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Ledger;
using Microsoft.Inventory.Reports;
using Microsoft.Inventory.Tracking;
using Microsoft.Inventory.Transfer;
using Microsoft.Projects.Project.Ledger;
using Microsoft.Projects.Project.WIP;
using Microsoft.Projects.Resources.Ledger;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.History;
using Microsoft.Purchases.Payables;
using Microsoft.Purchases.Vendor;
using Microsoft.Sales.Customer;
using Microsoft.Sales.Document;
using Microsoft.Sales.FinanceCharge;
using Microsoft.Sales.History;
using Microsoft.Sales.Receivables;
using Microsoft.Sales.Reminder;
using Microsoft.Utilities;
using System.IO;
using System.Text;
page 344 Navigate
{
AdditionalSearchTerms = 'find,search,analyze,navigate';
ApplicationArea = Basic, Suite, FixedAssets, Service, CostAccounting;
Caption = 'Find entries';
DataCaptionExpression = GetCaptionText();
DeleteAllowed = false;
InsertAllowed = false;
ModifyAllowed = false;
PageType = Worksheet;
SaveValues = true;
SourceTable = "Document Entry";
SourceTableTemporary = true;
UsageCategory = Tasks;
layout
{
area(content)
{
group(SearchBy)
{
Caption = 'Search By';
ShowCaption = false;
field(Scope; SearchBasedOn)
{
ApplicationArea = Basic, Suite;
ShowCaption = false;
Caption = 'Search By';
trigger OnValidate()
begin
UpdateFindByGroupsVisibility();
end;
}
}
group(Document)
{
Caption = 'Document';
Visible = DocumentVisible;
ShowCaption = false;
field(DocNoFilter; DocNoFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Document No.';
ToolTip = 'Specifies the document number of an entry that is used to find all documents that have the same document number. You can enter a new document number in this field to search for another set of documents.';
trigger OnValidate()
begin
SetDocNo(DocNoFilter);
ClearTrackingInfo();
ClearContactInfo();
DocNoFilterOnAfterValidate();
FilterSelectionChanged();
end;
}
field(PostingDateFilter; PostingDateFilter)
{
ApplicationArea = Basic, Suite;
Caption = 'Posting Date';
ToolTip = 'Specifies the posting date for the document that you are searching for. You can insert a filter if you want to search for a certain interval of dates.';
trigger OnValidate()
begin
SetPostingDate(PostingDateFilter);
ClearTrackingInfo();
ClearContactInfo();
PostingDateFilterOnAfterValidate();
FilterSelectionChanged();
end;
}
field(ExtDocNo2; ExtDocNo)
{
ApplicationArea = Basic, Suite;
Caption = 'External Document No.';
ToolTip = 'Specifies the document number assigned by the vendor.';
trigger OnValidate()
begin
ExtDocNoOnAfterValidate();
ClearTrackingInfo();
ClearContactInfo();
FilterSelectionChanged();
end;
}
}
group("Business Contact")
{
Caption = 'Business Contact';
ShowCaption = false;
Visible = BusinessContactVisible;
field(ContactType; ContactType)
{
ApplicationArea = Basic, Suite;
Caption = 'Business Contact Type';
ToolTip = 'Specifies if you want to search for customers, vendors, or bank accounts. Your choice determines the list that you can access in the Business Contact No. field.';
trigger OnValidate()
begin
SetDocNo('');
SetPostingDate('');
ClearTrackingInfo();
ContactTypeOnAfterValidate();
FilterSelectionChanged();
end;
}
field(ContactNo; ContactNo)
{
ApplicationArea = Basic, Suite;
Caption = 'Business Contact No.';
ToolTip = 'Specifies the number of the customer, vendor, or bank account that you want to find entries for.';
trigger OnLookup(var Text: Text): Boolean
var
Vend: Record Vendor;
Cust: Record Customer;
BankAccount: Record "Bank Account";
begin
case ContactType of
ContactType::Vendor:
if PAGE.RunModal(0, Vend) = ACTION::LookupOK then begin
Text := Vend."No.";
exit(true);
end;
ContactType::Customer:
if PAGE.RunModal(0, Cust) = ACTION::LookupOK then begin
Text := Cust."No.";
exit(true);
end;
ContactType::"Bank Account":
if PAGE.RunModal(0, BankAccount) = ACTION::LookupOK then begin
Text := BankAccount."No.";
exit(true);
end;
end;
end;
trigger OnValidate()
begin
SetDocNo('');
SetPostingDate('');
ClearTrackingInfo();
ContactNoOnAfterValidate();
FilterSelectionChanged();
end;
}
field(ExtDocNo; ExtDocNo)
{
ApplicationArea = Basic, Suite;
Caption = 'External Document No.';
ToolTip = 'Specifies the document number assigned by the vendor.';
trigger OnValidate()
begin
SetDocNo('');
SetPostingDate('');
ClearTrackingInfo();
ExtDocNoOnAfterValidate();
FilterSelectionChanged();
end;
}
}
group("Item Reference")
{
Caption = 'Item Reference';
Visible = ItemReferenceVisible;
ShowCaption = false;
field(SerialNoFilter; SerialNoFilter)
{
ApplicationArea = ItemTracking;
Caption = 'Serial No.';
ToolTip = 'Specifies the posting date of the document when you have opened the Navigate window from the document. The entry''s document number is shown in the Document No. field.';
trigger OnLookup(var Text: Text): Boolean
var
SerialNoInformationList: Page "Serial No. Information List";
begin
Clear(SerialNoInformationList);
if SerialNoInformationList.RunModal() = ACTION::LookupOK then begin
Text := SerialNoInformationList.GetSelectionFilter();
exit(true);
end;
end;
trigger OnValidate()
begin
ClearInfo();
SerialNoFilterOnAfterValidate();
FilterSelectionChanged();
end;
}
field(LotNoFilter; LotNoFilter)
{
ApplicationArea = ItemTracking;
Caption = 'Lot No.';
ToolTip = 'Specifies the number that you want to find entries for.';
trigger OnLookup(var Text: Text): Boolean
var
LotNoInformationList: Page "Lot No. Information List";
begin
Clear(LotNoInformationList);
if LotNoInformationList.RunModal() = ACTION::LookupOK then begin
Text := LotNoInformationList.GetSelectionFilter();
exit(true);
end;
end;
trigger OnValidate()
begin
ClearInfo();
LotNoFilterOnAfterValidate();
FilterSelectionChanged();
end;
}
}
group(Notification)
{
Caption = 'Notification';
InstructionalText = 'The filter has been changed. Choose Find to update the list of related entries.';
Visible = FilterSelectionChangedTxtVisible;
}
repeater(Control16)
{
Editable = false;
ShowCaption = false;
field("Entry No."; Rec."Entry No.")
{
ApplicationArea = Basic, Suite;
Visible = false;
}
field("Table ID"; Rec."Table ID")
{
ApplicationArea = Basic, Suite;
ToolTip = 'Specifies the table that the entry is stored in.';
Visible = false;
}
field("Table Name"; Rec."Table Name")
{
ApplicationArea = Basic, Suite;
Caption = 'Related Entries';
trigger OnDrillDown()
begin
ShowRecords();
end;
}
field("No. of Records"; Rec."No. of Records")
{
ApplicationArea = Basic, Suite;
Caption = 'No. of Entries';
DrillDown = true;
trigger OnDrillDown()
begin
ShowRecords();
end;
}
}
group(Source)
{
Caption = 'Source';
field(DocType; DocType)
{
ApplicationArea = Basic, Suite;
Caption = 'Document Type';
Editable = false;
Enabled = DocTypeEnable;
ToolTip = 'Specifies the type of the selected document. Leave the Document Type field blank if you want to search by posting date. The entry''s document number is shown in the Document No. field.';
}
field(SourceType; SourceType)
{
ApplicationArea = Basic, Suite;
Caption = 'Source Type';
Editable = false;
Enabled = SourceTypeEnable;
ToolTip = 'Specifies the source type of the selected document or remains blank if you search by posting date. The entry''s document number is shown in the Document No. field.';
}
field(SourceNo; SourceNo)
{
ApplicationArea = Basic, Suite;
Caption = 'Source No.';
Editable = false;
Enabled = SourceNoEnable;
ToolTip = 'Specifies the source number of the selected document. The entry''s document number is shown in the Document No. field.';
}
field(SourceName; SourceName)
{
ApplicationArea = Basic, Suite;
Caption = 'Source Name';
Editable = false;
Enabled = SourceNameEnable;
ToolTip = 'Specifies the source name on the selected entry. The entry''s document number is shown in the Document No. field.';
}
}
}
}
actions
{
area(processing)
{
group(Process)
{
Caption = 'Process';
action(Show)
{
ApplicationArea = Basic, Suite;
Caption = '&Show Related Entries';
Enabled = ShowEnable;
Image = ViewDocumentLine;
ToolTip = 'View the related entries of the type that you have chosen.';
trigger OnAction()
begin
ShowRecords();
end;
}
action(Find)
{
ApplicationArea = Basic, Suite;
Caption = 'Find';
Image = Find;
ToolTip = 'Apply a filter to search on this page.';
trigger OnAction()
begin
FindPush();
FilterSelectionChangedTxtVisible := false;
end;
}
action(Print)
{
ApplicationArea = Basic, Suite;
Caption = '&Print';
Ellipsis = true;
Enabled = PrintEnable;
Image = Print;
ToolTip = 'Prepare to print the document. A report request window for the document opens where you can specify what to include on the print-out.';
trigger OnAction()
var
ItemTrackingNavigate: Report "Item Tracking Navigate";
DocumentEntries: Report "Document Entries";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforePrint(Rec, SearchBasedOn, TempRecordBuffer, ItemTrackingFilters, DocNoFilter, PostingDateFilter, IsHandled);
if IsHandled then
exit;
if ItemTrackingSearch() then begin
Clear(ItemTrackingNavigate);
ItemTrackingNavigate.TransferDocEntries(Rec);
ItemTrackingNavigate.TransferRecordBuffer(TempRecordBuffer);
ItemTrackingNavigate.SetTrackingFilters(ItemTrackingFilters);
ItemTrackingNavigate.Run();
end else begin
DocumentEntries.TransferDocEntries(Rec);
DocumentEntries.TransferFilters(DocNoFilter, PostingDateFilter);
DocumentEntries.Run();
end;
end;
}
}
group(FindGroup)
{
Caption = 'Find by';
action(FindByDocument)
{
ApplicationArea = Basic, Suite;
Caption = 'Find by Document';
Image = Documents;
ToolTip = 'View entries based on the specified document number.';
Visible = false;
trigger OnAction()
begin
SearchBasedOn := SearchBasedOn::Document;
UpdateFindByGroupsVisibility();
end;
}
action(FindByBusinessContact)
{
ApplicationArea = Basic, Suite;
Caption = 'Find by Business Contact';
Image = ContactPerson;
ToolTip = 'Filter entries based on the specified contact or contact type.';
Visible = false;
trigger OnAction()
begin
SearchBasedOn := SearchBasedOn::"Business Contact";
UpdateFindByGroupsVisibility();
end;
}
action(FindByItemReference)
{
ApplicationArea = Basic, Suite;
Caption = 'Find by Item Reference';
Image = ItemTracking;
ToolTip = 'Filter entries based on the specified serial, lot or package number.';
Visible = false;
trigger OnAction()
begin
SearchBasedOn := SearchBasedOn::"Item Reference";
UpdateFindByGroupsVisibility();
end;
}
}
}
area(Promoted)
{
group(Category_Process)
{
Caption = 'Process', Comment = 'Generated from the PromotedActionCategories property index 1.';
actionref(Show_Promoted; Show)
{
}
actionref(Find_Promoted; Find)
{
}
actionref(Print_Promoted; Print)
{
}
}
group(Category_Category4)
{
Caption = 'Find By', Comment = 'Generated from the PromotedActionCategories property index 3.';
}
group(Category_Report)
{
Caption = 'Report', Comment = 'Generated from the PromotedActionCategories property index 2.';
}
}
}
trigger OnInit()
begin
SourceNameEnable := true;
SourceNoEnable := true;
SourceTypeEnable := true;
DocTypeEnable := true;
PrintEnable := true;
ShowEnable := true;
DocumentVisible := true;
SearchBasedOn := SearchBasedOn::Document;
OnAfterOnInit(Rec);
end;
trigger OnOpenPage()
begin
UpdateFindByGroupsVisibility();
UpdateForm := true;
FindRecordsOnOpen();
end;
var
[SecurityFiltering(SecurityFilter::Filtered)]
BankAccount: Record "Bank Account";
[SecurityFiltering(SecurityFilter::Filtered)]
Cust: Record Customer;
[SecurityFiltering(SecurityFilter::Filtered)]
Vend: Record Vendor;
[SecurityFiltering(SecurityFilter::Filtered)]
IssuedReminderHeader: Record "Issued Reminder Header";
[SecurityFiltering(SecurityFilter::Filtered)]
IssuedFinChrgMemoHeader: Record "Issued Fin. Charge Memo Header";
[SecurityFiltering(SecurityFilter::Filtered)]
TransShptHeader: Record "Transfer Shipment Header";
[SecurityFiltering(SecurityFilter::Filtered)]
TransRcptHeader: Record "Transfer Receipt Header";
[SecurityFiltering(SecurityFilter::Filtered)]
DirectTransHeader: Record "Direct Trans. Header";
[SecurityFiltering(SecurityFilter::Filtered)]
GLEntry: Record "G/L Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
VATEntry: Record "VAT Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
CustLedgEntry: Record "Cust. Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
DtldCustLedgEntry: Record "Detailed Cust. Ledg. Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
VendLedgEntry: Record "Vendor Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
DtldVendLedgEntry: Record "Detailed Vendor Ledg. Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
EmplLedgEntry: Record "Employee Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
DtldEmplLedgEntry: Record "Detailed Employee Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
ItemLedgEntry: Record "Item Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
PhysInvtLedgEntry: Record "Phys. Inventory Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
ResLedgEntry: Record "Res. Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
JobLedgEntry: Record "Job Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
JobWIPEntry: Record "Job WIP Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
JobWIPGLEntry: Record "Job WIP G/L Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
ValueEntry: Record "Value Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
BankAccLedgEntry: Record "Bank Account Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
CheckLedgEntry: Record "Check Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
ReminderEntry: Record "Reminder/Fin. Charge Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
FALedgEntry: Record "FA Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
MaintenanceLedgEntry: Record "Maintenance Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
InsuranceCovLedgEntry: Record "Ins. Coverage Ledger Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
CapacityLedgEntry: Record Microsoft.Manufacturing.Capacity."Capacity Ledger Entry";
TempRecordBuffer: Record "Record Buffer" temporary;
[SecurityFiltering(SecurityFilter::Filtered)]
CostEntry: Record "Cost Entry";
[SecurityFiltering(SecurityFilter::Filtered)]
IncomingDocument: Record "Incoming Document";
[SecurityFiltering(SecurityFilter::Filtered)]
PostedGenJournalLine: Record "Posted Gen. Journal Line";
[SecurityFiltering(SecurityFilter::Filtered)]
SpendRequestToGLLink: Record "Spend Request to G/L Link";
[SecurityFiltering(SecurityFilter::Filtered)]
PostedInvtRcptHeader: Record "Invt. Receipt Header";
[SecurityFiltering(SecurityFilter::Filtered)]
PostedInvtShptHeader: Record "Invt. Shipment Header";
ItemTrackingFilters: Record Item;
NewItemTrackingSetup: Record "Item Tracking Setup";
FilterTokens: Codeunit "Filter Tokens";
ItemTrackingNavigateMgt: Codeunit "Item Tracking Navigate Mgt.";
Window: Dialog;
DocType: Text[100];
SourceType: Text[30];
SourceNo: Code[20];
SourceName: Text[100];
ShowEnable: Boolean;
PrintEnable: Boolean;
DocTypeEnable: Boolean;
SourceTypeEnable: Boolean;
SourceNoEnable: Boolean;
SourceNameEnable: Boolean;
UpdateForm: Boolean;
DocumentVisible: Boolean;
BusinessContactVisible: Boolean;
ItemReferenceVisible: Boolean;
FilterSelectionChangedTxtVisible: Boolean;
#pragma warning disable AA0470
PageCaptionTxt: Label 'Selected - %1';
#pragma warning restore AA0470
#pragma warning disable AA0074
Text000: Label 'The business contact type was not specified.';
Text001: Label 'There are no posted records with this external document number.';
Text002: Label 'Counting records...';
Text013: Label 'There are no posted records with this document number.';
Text014: Label 'There are no posted records with this combination of document number and posting date.';
Text015: Label 'The search results in too many external documents. Specify a business contact no.';
Text016: Label 'The search results in too many external documents. Use Navigate from the relevant ledger entries.';
#pragma warning restore AA0074
PostedSalesInvoiceTxt: Label 'Posted Sales Invoice';
PostedSalesCreditMemoTxt: Label 'Posted Sales Credit Memo';
PostedSalesShipmentTxt: Label 'Posted Sales Shipment';
IssuedReminderTxt: Label 'Issued Reminder';
IssuedFinanceChargeMemoTxt: Label 'Issued Finance Charge Memo';
PostedPurchaseInvoiceTxt: Label 'Posted Purchase Invoice';
PostedPurchaseCreditMemoTxt: Label 'Posted Purchase Credit Memo';
PostedPurchaseReceiptTxt: Label 'Posted Purchase Receipt';
PostedReturnReceiptTxt: Label 'Posted Return Receipt';
PostedReturnShipmentTxt: Label 'Posted Return Shipment';
PostedTransferShipmentTxt: Label 'Posted Transfer Shipment';
PostedTransferReceiptTxt: Label 'Posted Transfer Receipt';
PostedDirectTransferTxt: Label 'Posted Direct Transfer';
SalesQuoteTxt: Label 'Sales Quote';
SalesOrderTxt: Label 'Sales Order';
SalesInvoiceTxt: Label 'Sales Invoice';
PurchaseQuoteTxt: Label 'Purchase Quote';
PurchaseOrderTxt: Label 'Purchase Order';
PurchaseInvoiceTxt: Label 'Purchase Invoice';
SalesReturnOrderTxt: Label 'Sales Return Order';
SalesCreditMemoTxt: Label 'Sales Credit Memo';
PostedGenJournalLineTxt: Label 'Posted Gen. Journal Line';
SpendRequestTxt: Label 'Spend Request';
protected var
[SecurityFiltering(SecurityFilter::Filtered)]
SalesShptHeader: Record "Sales Shipment Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SalesInvHeader: Record "Sales Invoice Header";
[SecurityFiltering(SecurityFilter::Filtered)]
ReturnRcptHeader: Record "Return Receipt Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SalesCrMemoHeader: Record "Sales Cr.Memo Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SQSalesHeader: Record "Sales Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SOSalesHeader: Record "Sales Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SISalesHeader: Record "Sales Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SROSalesHeader: Record "Sales Header";
[SecurityFiltering(SecurityFilter::Filtered)]
SCMSalesHeader: Record "Sales Header";
[SecurityFiltering(SecurityFilter::Filtered)]
PQPurchaseHeader: Record "Purchase Header";
[SecurityFiltering(SecurityFilter::Filtered)]
POPurchaseHeader: Record "Purchase Header";
[SecurityFiltering(SecurityFilter::Filtered)]
PIPurchaseHeader: Record "Purchase Header";
[SecurityFiltering(SecurityFilter::Filtered)]
PurchRcptHeader: Record "Purch. Rcpt. Header";
[SecurityFiltering(SecurityFilter::Filtered)]
PurchInvHeader: Record "Purch. Inv. Header";
[SecurityFiltering(SecurityFilter::Filtered)]
ReturnShptHeader: Record "Return Shipment Header";
[SecurityFiltering(SecurityFilter::Filtered)]
PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr.";
[SecurityFiltering(SecurityFilter::Filtered)]
GenJnlLine: Record "Gen. Journal Line";
PstdPhysInvtOrderHdr: Record "Pstd. Phys. Invt. Order Hdr";
ContactNo: Code[250];
ContactType: Enum "Navigate Contact Type";
SearchBasedOn: Enum "Navigate Search Type";
DocExists: Boolean;
DocNoFilter: Text;
PostingDateFilter: Text;
ExtDocNo: Code[250];
NewDocNo: Code[20];
NewPostingDate: Date;
NewSourceRecVar: Variant;
SerialNoFilter: Text;
LotNoFilter: Text;
PackageNoFilter: Text;
procedure SetDoc(PostingDate: Date; DocNo: Code[20])
begin
NewDocNo := DocNo;
NewPostingDate := PostingDate;
end;
procedure SetRec(SourceRecVar: Variant)
begin
NewSourceRecVar := SourceRecVar;
OnAfterSetRec(NewSourceRecVar);
end;
procedure FindExtRecords()
var
[SecurityFiltering(SecurityFilter::Filtered)]
VendLedgEntry2: Record "Vendor Ledger Entry";
FoundRecords: Boolean;
DateFilter2: Text;
DocNoFilter2: Text;
begin
FoundRecords := false;
case ContactType of
ContactType::Vendor:
begin
FindUnpostedPurchaseDocs(PQPurchaseHeader."Document Type"::Quote, PurchaseQuoteTxt, PQPurchaseHeader);
FindUnpostedPurchaseDocs(POPurchaseHeader."Document Type"::Order, PurchaseOrderTxt, POPurchaseHeader);
FindUnpostedPurchaseDocs(PIPurchaseHeader."Document Type"::Invoice, PurchaseInvoiceTxt, PIPurchaseHeader);
VendLedgEntry2.SetCurrentKey("External Document No.");
VendLedgEntry2.SetFilter("External Document No.", ExtDocNo);
VendLedgEntry2.SetFilter("Vendor No.", ContactNo);
if VendLedgEntry2.FindSet() then begin
repeat
MakeExtFilter(
DateFilter2,
VendLedgEntry2."Posting Date",
DocNoFilter2,
VendLedgEntry2."Document No.");
until VendLedgEntry2.Next() = 0;
SetPostingDate(DateFilter2);
SetDocNo(DocNoFilter2);
FindRecords();
FoundRecords := true;
end;
end;
ContactType::Customer:
begin
Rec.DeleteAll();
Rec."Entry No." := 0;
OnFindExtRecordsForCustomer(Rec, ContactNo, ExtDocNo);
FindUnpostedSalesDocs(SOSalesHeader."Document Type"::Quote, SalesQuoteTxt, SQSalesHeader);
FindUnpostedSalesDocs(SOSalesHeader."Document Type"::Order, SalesOrderTxt, SOSalesHeader);
FindUnpostedSalesDocs(SISalesHeader."Document Type"::Invoice, SalesInvoiceTxt, SISalesHeader);
FindUnpostedSalesDocs(SROSalesHeader."Document Type"::"Return Order", SalesReturnOrderTxt, SROSalesHeader);
FindUnpostedSalesDocs(SCMSalesHeader."Document Type"::"Credit Memo", SalesCreditMemoTxt, SCMSalesHeader);
if SalesShptHeader.ReadPermission() then begin
SalesShptHeader.Reset();
SalesShptHeader.SetCurrentKey("Sell-to Customer No.", "External Document No.");
SalesShptHeader.SetFilter("Sell-to Customer No.", ContactNo);
SalesShptHeader.SetFilter("External Document No.", ExtDocNo);
Rec.InsertIntoDocEntry(Database::"Sales Shipment Header", PostedSalesShipmentTxt, SalesShptHeader.Count);
end;
if SalesInvHeader.ReadPermission() then begin
SalesInvHeader.Reset();
SalesInvHeader.SetCurrentKey("Sell-to Customer No.", "External Document No.");
SalesInvHeader.SetFilter("Sell-to Customer No.", ContactNo);
SalesInvHeader.SetFilter("External Document No.", ExtDocNo);
OnFindExtRecordsOnAfterSetSalesInvoiceFilter(SalesInvHeader);
Rec.InsertIntoDocEntry(Database::"Sales Invoice Header", PostedSalesInvoiceTxt, SalesInvHeader.Count);
end;
if ReturnRcptHeader.ReadPermission() then begin
ReturnRcptHeader.Reset();
ReturnRcptHeader.SetCurrentKey("Sell-to Customer No.", "External Document No.");
ReturnRcptHeader.SetFilter("Sell-to Customer No.", ContactNo);
ReturnRcptHeader.SetFilter("External Document No.", ExtDocNo);
Rec.InsertIntoDocEntry(Database::"Return Receipt Header", PostedReturnReceiptTxt, ReturnRcptHeader.Count);
end;
if SalesCrMemoHeader.ReadPermission() then begin
SalesCrMemoHeader.Reset();
SalesCrMemoHeader.SetCurrentKey("Sell-to Customer No.", "External Document No.");
SalesCrMemoHeader.SetFilter("Sell-to Customer No.", ContactNo);
SalesCrMemoHeader.SetFilter("External Document No.", ExtDocNo);
OnFindExtRecordsOnAfterSetSalesCrMemoFilter(SalesCrMemoHeader);
Rec.InsertIntoDocEntry(Database::"Sales Cr.Memo Header", PostedSalesCreditMemoTxt, SalesCrMemoHeader.Count);
end;
OnFindExtRecordsOnBeforeFormUpdate(Rec, SalesInvHeader, SalesCrMemoHeader);
UpdateFormAfterFindRecords();
FoundRecords := DocExists;
end;
else
Error(Text000);
end;
OnAfterNavigateFindExtRecords(Rec, ContactType, ContactNo, ExtDocNo, FoundRecords);
if not FoundRecords then begin
SetSource(0D, '', '', 0, '');
Message(Text001);
end;
end;
procedure FindRecords()
var
DocType2: Text[100];
DocNo2: Code[20];
SourceType2: Integer;
SourceNo2: Code[20];
PostingDate: Date;
IsSourceUpdated: Boolean;
HideDialog: Boolean;
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeFindRecordsProcedure(Rec, HideDialog, IsHandled);
if IsHandled then
exit;
if (DocNoFilter = '') and (ExtDocNo = '') and (PostingDateFilter = '') then
exit;
if not HideDialog then
Window.Open(Text002);
Rec.Reset();
Rec.DeleteAll();
Rec."Entry No." := 0;
FindPostedDocuments();
FindLedgerEntries();
FindUnpostedPurchaseDocs(PQPurchaseHeader."Document Type"::Quote, PurchaseQuoteTxt, PQPurchaseHeader);
FindUnpostedPurchaseDocs(POPurchaseHeader."Document Type"::Order, PurchaseOrderTxt, POPurchaseHeader);
FindUnpostedPurchaseDocs(PIPurchaseHeader."Document Type"::Invoice, PurchaseInvoiceTxt, PIPurchaseHeader);
FindUnpostedSalesDocs(SQSalesHeader."Document Type"::Quote, SalesQuoteTxt, SQSalesHeader);
FindUnpostedSalesDocs(SOSalesHeader."Document Type"::Order, SalesOrderTxt, SOSalesHeader);
FindUnpostedSalesDocs(SISalesHeader."Document Type"::Invoice, SalesInvoiceTxt, SISalesHeader);
FindUnpostedSalesDocs(SROSalesHeader."Document Type"::"Return Order", SalesReturnOrderTxt, SROSalesHeader);
FindUnpostedSalesDocs(SCMSalesHeader."Document Type"::"Credit Memo", SalesCreditMemoTxt, SCMSalesHeader);
FindUnpostedGenJnlLines(CopyStr(GenJnlLine.TableCaption(), 1, 100), GenJnlLine);
OnAfterNavigateFindRecords(Rec, DocNoFilter, PostingDateFilter, NewSourceRecVar, ExtDocNo, HideDialog);
DocExists := Rec.FindFirst();
SetSource(0D, '', '', 0, '');
if DocExists then begin
OnBeforeFindRecordsSetSources(Rec, DocNoFilter, PostingDateFilter, ExtDocNo, IsSourceUpdated);
if not IsSourceUpdated then begin
SetSourceForSales();
SetSourceForPurchase();
end;
IsSourceUpdated := false;
OnFindRecordsOnAfterSetSource(Rec, PostingDate, DocType2, DocNo2, SourceType2, SourceNo2, DocNoFilter, PostingDateFilter, IsSourceUpdated);
if IsSourceUpdated then
SetSource(PostingDate, DocType2, DocNo2, SourceType2, SourceNo2);
end else begin
IsHandled := false;
OnFindRecordsOnBeforeMessagePostingDateFilter(Rec, PostingDateFilter, IsHandled);
if not IsHandled then
if PostingDateFilter = '' then
Message(Text013)
else
Message(Text014);
end;
OnAfterFindRecords(Rec, DocNoFilter, PostingDateFilter);
if UpdateForm then
UpdateFormAfterFindRecords();
if not HideDialog then
Window.Close();
end;
local procedure FindLedgerEntries()
begin
FindGLEntries();
FindVATEntries();
FindCustEntries();
FindReminderEntries();
FindVendEntries();
FindInvtEntries();
FindResEntries();
FindJobEntries();
FindBankEntries();
FindFAEntries();
FindCapEntries();
FindCostEntries();
FindPostedGenJournalLine();
FindSpendRequests();
OnAfterFindLedgerEntries(Rec, DocNoFilter, PostingDateFilter);
end;
local procedure FindCustEntries()
var
IsHandled: Boolean;
begin
OnBeforeFindCustLedgerEntry(CustLedgEntry, DocNoFilter, PostingDateFilter, ExtDocNo, IsHandled);
if CustLedgEntry.ReadPermission() and (not IsHandled) then begin
CustLedgEntry.Reset();
CustLedgEntry.SetCurrentKey("Document No.");
CustLedgEntry.SetFilter("Document No.", DocNoFilter);
CustLedgEntry.SetFilter("Posting Date", PostingDateFilter);
CustLedgEntry.SetFilter("External Document No.", ExtDocNo);
OnFindCustEntriesOnAfterSetFilters(CustLedgEntry);
Rec.InsertIntoDocEntry(Database::"Cust. Ledger Entry", CustLedgEntry.TableCaption(), CustLedgEntry.Count);
end;
if (DocNoFilter <> '') or (PostingDateFilter <> '') then
if DtldCustLedgEntry.ReadPermission() then begin
DtldCustLedgEntry.Reset();
DtldCustLedgEntry.SetCurrentKey("Document No.");
DtldCustLedgEntry.SetFilter("Document No.", DocNoFilter);
DtldCustLedgEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindCustEntriesOnAfterDtldCustLedgEntriesSetFilters(DtldCustLedgEntry);
Rec.InsertIntoDocEntry(Database::"Detailed Cust. Ledg. Entry", DtldCustLedgEntry.TableCaption(), DtldCustLedgEntry.Count);
end;
end;
local procedure FindVendEntries()
var
IsHandled: Boolean;
begin
OnBeforeFindVendorLedgerEntry(VendLedgEntry, DocNoFilter, PostingDateFilter, ExtDocNo, IsHandled);
if VendLedgEntry.ReadPermission() and (not IsHandled) then begin
VendLedgEntry.Reset();
VendLedgEntry.SetCurrentKey("Document No.");
VendLedgEntry.SetFilter("Document No.", DocNoFilter);
VendLedgEntry.SetFilter("External Document No.", ExtDocNo);
VendLedgEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindVendEntriesOnAfterSetFilters(VendLedgEntry);
Rec.InsertIntoDocEntry(Database::"Vendor Ledger Entry", VendLedgEntry.TableCaption(), VendLedgEntry.Count);
end;
if (DocNoFilter <> '') or (PostingDateFilter <> '') then
if DtldVendLedgEntry.ReadPermission() then begin
DtldVendLedgEntry.Reset();
DtldVendLedgEntry.SetCurrentKey("Document No.");
DtldVendLedgEntry.SetFilter("Document No.", DocNoFilter);
DtldVendLedgEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindVendEntriesOnAfterDtldVendLedgEntriesSetFilters(DtldVendLedgEntry);
Rec.InsertIntoDocEntry(Database::"Detailed Vendor Ledg. Entry", DtldVendLedgEntry.TableCaption(), DtldVendLedgEntry.Count);
end;
end;
local procedure FindBankEntries()
var
IsHandled: Boolean;
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
OnBeforeFindBankAccountLedgerEntry(BankAccLedgEntry, DocNoFilter, PostingDateFilter, ExtDocNo, IsHandled);
if BankAccLedgEntry.ReadPermission() and (not IsHandled) then begin
BankAccLedgEntry.Reset();
BankAccLedgEntry.SetCurrentKey("Document No.", "Posting Date");
BankAccLedgEntry.SetFilter("Document No.", DocNoFilter);
BankAccLedgEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindBankEntriesOnAfterSetFilters(BankAccLedgEntry);
Rec.InsertIntoDocEntry(Database::"Bank Account Ledger Entry", BankAccLedgEntry.TableCaption(), BankAccLedgEntry.Count);
end;
if CheckLedgEntry.ReadPermission() then begin
CheckLedgEntry.Reset();
CheckLedgEntry.SetCurrentKey("Document No.", "Posting Date");
CheckLedgEntry.SetFilter("Document No.", DocNoFilter);
CheckLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Check Ledger Entry", CheckLedgEntry.TableCaption(), CheckLedgEntry.Count);
end;
end;
local procedure FindGLEntries()
var
IsHandled: Boolean;
begin
OnBeforeFindGLEntry(GLEntry, DocNoFilter, PostingDateFilter, ExtDocNo, IsHandled);
if GLEntry.ReadPermission() and (not IsHandled) then begin
GLEntry.Reset();
GLEntry.SetCurrentKey("Document No.", "Posting Date");
GLEntry.SetFilter("Document No.", DocNoFilter);
GLEntry.SetFilter("Posting Date", PostingDateFilter);
GLEntry.SetFilter("External Document No.", ExtDocNo);
OnFindGLEntriesOnAfterSetFilters(GLEntry);
Rec.InsertIntoDocEntry(Database::"G/L Entry", GLEntry.TableCaption(), GLEntry.Count);
end;
end;
local procedure FindVATEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if VATEntry.ReadPermission() then begin
VATEntry.Reset();
VATEntry.SetCurrentKey("Document No.", "Posting Date");
VATEntry.SetFilter("Document No.", DocNoFilter);
VATEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindVATEntriesOnAfterVATEntrySetFilters(VATEntry, DocNoFilter, PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"VAT Entry", VATEntry.TableCaption(), VATEntry.Count);
end;
end;
local procedure FindFAEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if FALedgEntry.ReadPermission() then begin
FALedgEntry.Reset();
FALedgEntry.SetCurrentKey("Document No.", "Posting Date");
FALedgEntry.SetFilter("Document No.", DocNoFilter);
FALedgEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindFAEntriesOnAfterSetFilters(FALedgEntry);
Rec.InsertIntoDocEntry(Database::"FA Ledger Entry", FALedgEntry.TableCaption(), FALedgEntry.Count);
end;
if MaintenanceLedgEntry.ReadPermission() then begin
MaintenanceLedgEntry.Reset();
MaintenanceLedgEntry.SetCurrentKey("Document No.", "Posting Date");
MaintenanceLedgEntry.SetFilter("Document No.", DocNoFilter);
MaintenanceLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Maintenance Ledger Entry", MaintenanceLedgEntry.TableCaption(), MaintenanceLedgEntry.Count);
end;
if InsuranceCovLedgEntry.ReadPermission() then begin
InsuranceCovLedgEntry.Reset();
InsuranceCovLedgEntry.SetCurrentKey("Document No.", "Posting Date");
InsuranceCovLedgEntry.SetFilter("Document No.", DocNoFilter);
InsuranceCovLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Ins. Coverage Ledger Entry", InsuranceCovLedgEntry.TableCaption(), InsuranceCovLedgEntry.Count);
end;
end;
local procedure FindInvtEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if ItemLedgEntry.ReadPermission() then begin
ItemLedgEntry.Reset();
ItemLedgEntry.SetCurrentKey("Document No.");
ItemLedgEntry.SetFilter("Document No.", DocNoFilter);
ItemLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Item Ledger Entry", ItemLedgEntry.TableCaption(), ItemLedgEntry.Count);
end;
if ValueEntry.ReadPermission() then begin
ValueEntry.Reset();
ValueEntry.SetCurrentKey("Document No.");
ValueEntry.SetFilter("Document No.", DocNoFilter);
ValueEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Value Entry", ValueEntry.TableCaption(), ValueEntry.Count);
end;
if PhysInvtLedgEntry.ReadPermission() then begin
PhysInvtLedgEntry.Reset();
PhysInvtLedgEntry.SetCurrentKey("Document No.", "Posting Date");
PhysInvtLedgEntry.SetFilter("Document No.", DocNoFilter);
PhysInvtLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Phys. Inventory Ledger Entry", PhysInvtLedgEntry.TableCaption(), PhysInvtLedgEntry.Count);
end;
end;
local procedure FindReminderEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if ReminderEntry.ReadPermission() then begin
ReminderEntry.Reset();
ReminderEntry.SetCurrentKey(Type, "No.");
ReminderEntry.SetFilter("No.", DocNoFilter);
ReminderEntry.SetFilter("Posting Date", PostingDateFilter);
OnFindReminderEntriesOnAfterSetFilters(ReminderEntry);
Rec.InsertIntoDocEntry(Database::"Reminder/Fin. Charge Entry", ReminderEntry.TableCaption(), ReminderEntry.Count);
end;
end;
local procedure FindResEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if ResLedgEntry.ReadPermission() then begin
ResLedgEntry.Reset();
ResLedgEntry.SetCurrentKey("Document No.", "Posting Date");
ResLedgEntry.SetFilter("Document No.", DocNoFilter);
ResLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Res. Ledger Entry", ResLedgEntry.TableCaption(), ResLedgEntry.Count);
end;
end;
local procedure FindCapEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if CapacityLedgEntry.ReadPermission() then begin
CapacityLedgEntry.Reset();
CapacityLedgEntry.SetCurrentKey("Document No.", "Posting Date");
CapacityLedgEntry.SetFilter("Document No.", DocNoFilter);
CapacityLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::Microsoft.Manufacturing.Capacity."Capacity Ledger Entry", CapacityLedgEntry.TableCaption(), CapacityLedgEntry.Count);
end;
end;
local procedure FindCostEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if CostEntry.ReadPermission() then begin
CostEntry.Reset();
CostEntry.SetCurrentKey("Document No.", "Posting Date");
CostEntry.SetFilter("Document No.", DocNoFilter);
CostEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Cost Entry", CostEntry.TableCaption(), CostEntry.Count);
end;
OnAfterFindCostEntries(Rec, DocNoFilter, PostingDateFilter);
end;
local procedure FindJobEntries()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if JobLedgEntry.ReadPermission() then begin
JobLedgEntry.Reset();
JobLedgEntry.SetCurrentKey("Document No.", "Posting Date");
JobLedgEntry.SetFilter("Document No.", DocNoFilter);
JobLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Job Ledger Entry", JobLedgEntry.TableCaption(), JobLedgEntry.Count);
end;
if JobWIPEntry.ReadPermission() then begin
JobWIPEntry.Reset();
JobWIPEntry.SetFilter("Document No.", DocNoFilter);
JobWIPEntry.SetFilter("WIP Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Job WIP Entry", JobWIPEntry.TableCaption(), JobWIPEntry.Count);
end;
if JobWIPGLEntry.ReadPermission() then begin
JobWIPGLEntry.Reset();
JobWIPGLEntry.SetCurrentKey("Document No.", "Posting Date");
JobWIPGLEntry.SetFilter("Document No.", DocNoFilter);
JobWIPGLEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Job WIP G/L Entry", JobWIPGLEntry.TableCaption(), JobWIPGLEntry.Count);
end;
end;
local procedure FindPostedDocuments()
begin
FindIncomingDocumentRecords();
FindEmployeeRecords();
FindSalesShipmentHeader();
FindSalesInvoiceHeader();
FindReturnRcptHeader();
FindSalesCrMemoHeader();
FindIssuedReminderHeader();
FindIssuedFinChrgMemoHeader();
FindPurchRcptHeader();
FindPurchInvoiceHeader();
FindReturnShptHeader();
FindPurchCrMemoHeader();
FindTransShptHeader();
FindTransRcptHeader();
FindDirectTransHeader();
FindPstdPhysInvtOrderHdr();
FindPostedInvtReceipt();
FindPostedInvtShipment();
OnAfterFindPostedDocuments(DocNoFilter, PostingDateFilter, Rec);
end;
local procedure FindIncomingDocumentRecords()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if IncomingDocument.ReadPermission() then begin
IncomingDocument.Reset();
IncomingDocument.SetFilter("Document No.", DocNoFilter);
IncomingDocument.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Incoming Document", IncomingDocument.TableCaption(), IncomingDocument.Count);
end;
end;
local procedure FindSalesShipmentHeader()
begin
if SalesShptHeader.ReadPermission() then begin
SalesShptHeader.Reset();
SalesShptHeader.SetFilter("No.", DocNoFilter);
SalesShptHeader.SetFilter("Posting Date", PostingDateFilter);
SalesShptHeader.SetFilter("External Document No.", ExtDocNo);
OnFindSalesShipmentHeaderOnAfterSetFilters(SalesShptHeader);
Rec.InsertIntoDocEntry(Database::"Sales Shipment Header", PostedSalesShipmentTxt, SalesShptHeader.Count);
end;
end;
local procedure FindSalesInvoiceHeader()
begin
if SalesInvHeader.ReadPermission() then begin
SalesInvHeader.Reset();
SalesInvHeader.SetFilter("No.", DocNoFilter);
SalesInvHeader.SetFilter("Posting Date", PostingDateFilter);
SalesInvHeader.SetFilter("External Document No.", ExtDocNo);
OnFindSalesInvoiceHeaderOnAfterSetFilters(SalesInvHeader);
Rec.InsertIntoDocEntry(Database::"Sales Invoice Header", PostedSalesInvoiceTxt, SalesInvHeader.Count);
end;
end;
local procedure FindSalesCrMemoHeader()
begin
if SalesCrMemoHeader.ReadPermission() then begin
SalesCrMemoHeader.Reset();
SalesCrMemoHeader.SetFilter("No.", DocNoFilter);
SalesCrMemoHeader.SetFilter("Posting Date", PostingDateFilter);
SalesCrMemoHeader.SetFilter("External Document No.", ExtDocNo);
OnFindSalesCrMemoHeaderOnAfterSetFilters(SalesCrMemoHeader);
Rec.InsertIntoDocEntry(Database::"Sales Cr.Memo Header", PostedSalesCreditMemoTxt, SalesCrMemoHeader.Count);
end;
end;
local procedure FindReturnRcptHeader()
begin
if ReturnRcptHeader.ReadPermission() then begin
ReturnRcptHeader.Reset();
ReturnRcptHeader.SetFilter("No.", DocNoFilter);
ReturnRcptHeader.SetFilter("Posting Date", PostingDateFilter);
ReturnRcptHeader.SetFilter("External Document No.", ExtDocNo);
Rec.InsertIntoDocEntry(Database::"Return Receipt Header", PostedReturnReceiptTxt, ReturnRcptHeader.Count);
end;
end;
local procedure FindEmployeeRecords()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if EmplLedgEntry.ReadPermission() then begin
EmplLedgEntry.Reset();
EmplLedgEntry.SetCurrentKey("Document No.");
EmplLedgEntry.SetFilter("Document No.", DocNoFilter);
EmplLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Employee Ledger Entry", EmplLedgEntry.TableCaption(), EmplLedgEntry.Count);
end;
if DtldEmplLedgEntry.ReadPermission() then begin
DtldEmplLedgEntry.Reset();
DtldEmplLedgEntry.SetCurrentKey("Document No.");
DtldEmplLedgEntry.SetFilter("Document No.", DocNoFilter);
DtldEmplLedgEntry.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Detailed Employee Ledger Entry", DtldEmplLedgEntry.TableCaption(), DtldEmplLedgEntry.Count);
end;
end;
local procedure FindIssuedReminderHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if IssuedReminderHeader.ReadPermission() then begin
IssuedReminderHeader.Reset();
IssuedReminderHeader.SetFilter("No.", DocNoFilter);
IssuedReminderHeader.SetFilter("Posting Date", PostingDateFilter);
OnFindIssuedReminderHeaderOnAfterSetFilters(IssuedReminderHeader);
Rec.InsertIntoDocEntry(Database::"Issued Reminder Header", IssuedReminderTxt, IssuedReminderHeader.Count);
end;
end;
local procedure FindIssuedFinChrgMemoHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if IssuedFinChrgMemoHeader.ReadPermission() then begin
IssuedFinChrgMemoHeader.Reset();
IssuedFinChrgMemoHeader.SetFilter("No.", DocNoFilter);
IssuedFinChrgMemoHeader.SetFilter("Posting Date", PostingDateFilter);
OnFindIssuedFinChrgMemoHeaderOnAfterSetFilters(IssuedFinChrgMemoHeader);
Rec.InsertIntoDocEntry(Database::"Issued Fin. Charge Memo Header", IssuedFinanceChargeMemoTxt, IssuedFinChrgMemoHeader.Count);
end;
end;
local procedure FindPurchRcptHeader()
begin
if PurchRcptHeader.ReadPermission() then begin
PurchRcptHeader.Reset();
PurchRcptHeader.SetFilter("No.", DocNoFilter);
PurchRcptHeader.SetFilter("Posting Date", PostingDateFilter);
PurchRcptHeader.SetFilter("Vendor Shipment No.", ExtDocNo);
OnFindPurchRcptHeaderOnAfterSetFilters(PurchRcptHeader);
Rec.InsertIntoDocEntry(Database::"Purch. Rcpt. Header", PostedPurchaseReceiptTxt, PurchRcptHeader.Count);
end;
OnAfterFindPurchRcptHeader(Rec, PurchRcptHeader, DocNoFilter, PostingDateFilter);
end;
local procedure FindPurchInvoiceHeader()
begin
if PurchInvHeader.ReadPermission() then begin
PurchInvHeader.Reset();
PurchInvHeader.SetFilter("No.", DocNoFilter);
PurchInvHeader.SetFilter("Posting Date", PostingDateFilter);
PurchInvHeader.SetFilter("Vendor Invoice No.", ExtDocNo);
OnFindPurchInvoiceHeaderOnAfterSetFilters(PurchInvHeader);
Rec.InsertIntoDocEntry(Database::"Purch. Inv. Header", PostedPurchaseInvoiceTxt, PurchInvHeader.Count);
end;
end;
local procedure FindPurchCrMemoHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if PurchCrMemoHeader.ReadPermission() then begin
PurchCrMemoHeader.Reset();
PurchCrMemoHeader.SetFilter("No.", DocNoFilter);
PurchCrMemoHeader.SetFilter("Posting Date", PostingDateFilter);
OnFindPurchCrMemoHeaderOnAfterSetFilters(PurchCrMemoHeader);
Rec.InsertIntoDocEntry(Database::"Purch. Cr. Memo Hdr.", PostedPurchaseCreditMemoTxt, PurchCrMemoHeader.Count);
end;
end;
local procedure FindReturnShptHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if ReturnShptHeader.ReadPermission() then begin
ReturnShptHeader.Reset();
ReturnShptHeader.SetFilter("No.", DocNoFilter);
ReturnShptHeader.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Return Shipment Header", PostedReturnShipmentTxt, ReturnShptHeader.Count);
end;
end;
local procedure FindPstdPhysInvtOrderHdr()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if PstdPhysInvtOrderHdr.ReadPermission() then begin
PstdPhysInvtOrderHdr.Reset();
PstdPhysInvtOrderHdr.SetFilter("No.", DocNoFilter);
PstdPhysInvtOrderHdr.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Pstd. Phys. Invt. Order Hdr", PstdPhysInvtOrderHdr.TableCaption(), PstdPhysInvtOrderHdr.Count);
end;
end;
local procedure FindTransShptHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if TransShptHeader.ReadPermission() then begin
TransShptHeader.Reset();
TransShptHeader.SetFilter("No.", DocNoFilter);
TransShptHeader.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Transfer Shipment Header", PostedTransferShipmentTxt, TransShptHeader.Count);
end;
end;
local procedure FindTransRcptHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if TransRcptHeader.ReadPermission() then begin
TransRcptHeader.Reset();
TransRcptHeader.SetFilter("No.", DocNoFilter);
TransRcptHeader.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Transfer Receipt Header", PostedTransferReceiptTxt, TransRcptHeader.Count);
end;
end;
local procedure FindDirectTransHeader()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if DirectTransHeader.ReadPermission() then begin
DirectTransHeader.Reset();
DirectTransHeader.SetFilter("No.", DocNoFilter);
DirectTransHeader.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Direct Trans. Header", PostedDirectTransferTxt, DirectTransHeader.Count);
end;
end;
local procedure FindPostedInvtReceipt()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if PostedInvtRcptHeader.ReadPermission() then begin
PostedInvtRcptHeader.Reset();
PostedInvtRcptHeader.SetFilter("No.", DocNoFilter);
PostedInvtRcptHeader.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Invt. Receipt Header", PostedInvtRcptHeader.TableCaption(), PostedInvtRcptHeader.Count);
end;
end;
local procedure FindPostedInvtShipment()
begin
if (DocNoFilter = '') and (PostingDateFilter = '') then
exit;
if PostedInvtShptHeader.ReadPermission() then begin
PostedInvtShptHeader.Reset();
PostedInvtShptHeader.SetFilter("No.", DocNoFilter);
PostedInvtShptHeader.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Invt. Shipment Header", PostedInvtShptHeader.TableCaption(), PostedInvtShptHeader.Count);
end;
end;
protected procedure UpdateFormAfterFindRecords()
begin
OnBeforeUpdateFormAfterFindRecords(PostingDateFilter);
DocExists := Rec.FindFirst();
ShowEnable := DocExists;
PrintEnable := DocExists;
CurrPage.Update(false);
end;
protected procedure NoOfRecords(TableID: Integer): Integer
begin
OnBeforeOnNoOfRecords(Rec, TableID);
Rec.SetRange("Table ID", TableID);
if not Rec.FindFirst() then
Rec.Init();
Rec.SetRange("Table ID");
exit(Rec."No. of Records");
end;
procedure SetSource(PostingDate: Date; DocType2: Text[100]; DocNo: Text[50]; SourceType2: Integer; SourceNo2: Code[20])
begin
if SourceType2 = 0 then begin
DocType := '';
SourceType := '';
SourceNo := '';
SourceName := '';
end else begin
DocType := DocType2;
SourceNo := SourceNo2;
Rec.SetRange("Document No.", DocNo);
Rec.SetRange("Posting Date", PostingDate);
DocNoFilter := Rec.GetFilter("Document No.");
PostingDateFilter := Rec.GetFilter("Posting Date");
case SourceType2 of
1:
begin
SourceType := CopyStr(Cust.TableCaption(), 1, MaxStrLen(SourceType));
if not Cust.Get(SourceNo) then
Cust.Init();
SourceName := Cust.Name;
end;
2:
begin
SourceType := CopyStr(Vend.TableCaption(), 1, MaxStrLen(SourceType));
if not Vend.Get(SourceNo) then
Vend.Init();
SourceName := Vend.Name;
end;
4:
begin
SourceType := CopyStr(BankAccount.TableCaption(), 1, MaxStrLen(SourceType));
if not BankAccount.Get(SourceNo) then
BankAccount.Init();
SourceName := BankAccount.Name;
end;
end;
end;
DocTypeEnable := SourceType2 <> 0;
SourceTypeEnable := SourceType2 <> 0;
SourceNoEnable := SourceType2 <> 0;
SourceNameEnable := SourceType2 <> 0;
OnAfterSetSource(SourceType2, SourceType, SourceNo, SourceName, PostingDateFilter);
end;
local procedure SetSourceForPurchase()
begin
if NoOfRecords(Database::"Vendor Ledger Entry") = 1 then begin
VendLedgEntry.FindFirst();
SetSource(
VendLedgEntry."Posting Date", Format(VendLedgEntry."Document Type"), VendLedgEntry."Document No.",
2, VendLedgEntry."Vendor No.");
end;
if NoOfRecords(Database::"Detailed Vendor Ledg. Entry") = 1 then begin
DtldVendLedgEntry.FindFirst();
SetSource(
DtldVendLedgEntry."Posting Date", Format(DtldVendLedgEntry."Document Type"), DtldVendLedgEntry."Document No.",
2, DtldVendLedgEntry."Vendor No.");
end;
if NoOfRecords(Database::"Purch. Inv. Header") = 1 then begin
PurchInvHeader.FindFirst();
SetSource(
PurchInvHeader."Posting Date", Format(Rec."Table Name"), PurchInvHeader."No.",
2, PurchInvHeader."Pay-to Vendor No.");
end;
if NoOfRecords(Database::"Purch. Cr. Memo Hdr.") = 1 then begin
PurchCrMemoHeader.FindFirst();
SetSource(
PurchCrMemoHeader."Posting Date", Format(Rec."Table Name"), PurchCrMemoHeader."No.",
2, PurchCrMemoHeader."Pay-to Vendor No.");
end;
if NoOfRecords(Database::"Return Shipment Header") = 1 then begin
ReturnShptHeader.FindFirst();
SetSource(
ReturnShptHeader."Posting Date", Format(Rec."Table Name"), ReturnShptHeader."No.",
2, ReturnShptHeader."Buy-from Vendor No.");
end;
if NoOfRecords(Database::"Purch. Rcpt. Header") = 1 then begin
PurchRcptHeader.FindFirst();
SetSource(
PurchRcptHeader."Posting Date", Format(Rec."Table Name"), PurchRcptHeader."No.",
2, PurchRcptHeader."Buy-from Vendor No.");
end;
if NoOfRecords(Database::"Pstd. Phys. Invt. Order Hdr") = 1 then begin
PstdPhysInvtOrderHdr.FindFirst();
SetSource(
PstdPhysInvtOrderHdr."Posting Date", Format(Rec."Table Name"), PstdPhysInvtOrderHdr."No.",
3, '');
end;
OnAfterSetSourceForPurchase();
end;
local procedure SetSourceForSales()
begin
if NoOfRecords(Database::"Cust. Ledger Entry") = 1 then begin
CustLedgEntry.FindFirst();
SetSource(
CustLedgEntry."Posting Date", Format(CustLedgEntry."Document Type"), CustLedgEntry."Document No.",
1, CustLedgEntry."Customer No.");
end;
if NoOfRecords(Database::"Detailed Cust. Ledg. Entry") = 1 then begin
DtldCustLedgEntry.FindFirst();
SetSource(
DtldCustLedgEntry."Posting Date", Format(DtldCustLedgEntry."Document Type"), DtldCustLedgEntry."Document No.",
1, DtldCustLedgEntry."Customer No.");
end;
if NoOfRecords(Database::"Sales Invoice Header") = 1 then begin
SalesInvHeader.FindFirst();
SetSource(
SalesInvHeader."Posting Date", Format(Rec."Table Name"), SalesInvHeader."No.",
1, SalesInvHeader."Bill-to Customer No.");
end;
if NoOfRecords(Database::"Sales Cr.Memo Header") = 1 then begin
SalesCrMemoHeader.FindFirst();
SetSource(
SalesCrMemoHeader."Posting Date", Format(Rec."Table Name"), SalesCrMemoHeader."No.",
1, SalesCrMemoHeader."Bill-to Customer No.");
end;
if NoOfRecords(Database::"Return Receipt Header") = 1 then begin
ReturnRcptHeader.FindFirst();
SetSource(
ReturnRcptHeader."Posting Date", Format(Rec."Table Name"), ReturnRcptHeader."No.",
1, ReturnRcptHeader."Sell-to Customer No.");
end;
if NoOfRecords(Database::"Sales Shipment Header") = 1 then begin
SalesShptHeader.FindFirst();
SetSource(
SalesShptHeader."Posting Date", Format(Rec."Table Name"), SalesShptHeader."No.",
1, SalesShptHeader."Sell-to Customer No.");
end;
if NoOfRecords(Database::"Issued Reminder Header") = 1 then begin
IssuedReminderHeader.FindFirst();
SetSource(
IssuedReminderHeader."Posting Date", Format(Rec."Table Name"), IssuedReminderHeader."No.",
1, IssuedReminderHeader."Customer No.");
end;
if NoOfRecords(Database::"Issued Fin. Charge Memo Header") = 1 then begin
IssuedFinChrgMemoHeader.FindFirst();
SetSource(
IssuedFinChrgMemoHeader."Posting Date", Format(Rec."Table Name"), IssuedFinChrgMemoHeader."No.",
1, IssuedFinChrgMemoHeader."Customer No.");
end;
end;
procedure ShowRecords()
var
PageManagement: Codeunit "Page Management";
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeShowRecords(Rec, DocNoFilter, PostingDateFilter, ItemTrackingSearch(), ContactNo, ExtDocNo, IsHandled);
if IsHandled then
exit;
if ItemTrackingSearch() then
ItemTrackingNavigateMgt.Show(Rec."Table ID")
else
case Rec."Table ID" of
Database::"Incoming Document":
PAGE.Run(PAGE::"Incoming Document", IncomingDocument);
Database::"Sales Header":
ShowSalesHeaderRecords();
Database::"Purchase Header":
ShowPurchaseHeaderRecords();
Database::"Gen. Journal Line":
Page.Run(PAGE::"General Journal", GenJnlLine);
Database::"Sales Invoice Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SalesInvHeader)
else
PageManagement.PageRunList(SalesInvHeader);
Database::"Sales Cr.Memo Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SalesCrMemoHeader)
else
PageManagement.PageRunList(SalesCrMemoHeader);
Database::"Return Receipt Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(ReturnRcptHeader)
else
PageManagement.PageRunList(ReturnRcptHeader);
Database::"Sales Shipment Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SalesShptHeader)
else
PageManagement.PageRunList(SalesShptHeader);
Database::"Issued Reminder Header":
if Rec."No. of Records" = 1 then
PAGE.Run(PAGE::"Issued Reminder", IssuedReminderHeader)
else
PAGE.Run(0, IssuedReminderHeader);
Database::"Issued Fin. Charge Memo Header":
if Rec."No. of Records" = 1 then
PAGE.Run(PAGE::"Issued Finance Charge Memo", IssuedFinChrgMemoHeader)
else
PAGE.Run(0, IssuedFinChrgMemoHeader);
Database::"Purch. Inv. Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(PurchInvHeader)
else
PageManagement.PageRunList(PurchInvHeader);
Database::"Purch. Cr. Memo Hdr.":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(PurchCrMemoHeader)
else
PageManagement.PageRunList(PurchCrMemoHeader);
Database::"Return Shipment Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(ReturnShptHeader)
else
PageManagement.PageRunList(ReturnShptHeader);
Database::"Purch. Rcpt. Header":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(PurchRcptHeader)
else
PageManagement.PageRunList(PurchRcptHeader);
Database::"Transfer Shipment Header":
if Rec."No. of Records" = 1 then
PAGE.Run(PAGE::"Posted Transfer Shipment", TransShptHeader)
else
PAGE.Run(0, TransShptHeader);
Database::"Transfer Receipt Header":
if Rec."No. of Records" = 1 then
PAGE.Run(PAGE::"Posted Transfer Receipt", TransRcptHeader)
else
PAGE.Run(0, TransRcptHeader);
Database::"G/L Entry":
PAGE.Run(0, GLEntry);
Database::"VAT Entry":
PAGE.Run(0, VATEntry);
Database::"Detailed Cust. Ledg. Entry":
PAGE.Run(0, DtldCustLedgEntry);
Database::"Cust. Ledger Entry":
PAGE.Run(0, CustLedgEntry);
Database::"Reminder/Fin. Charge Entry":
PAGE.Run(0, ReminderEntry);
Database::"Vendor Ledger Entry":
PAGE.Run(0, VendLedgEntry);
Database::"Detailed Vendor Ledg. Entry":
PAGE.Run(0, DtldVendLedgEntry);
Database::"Employee Ledger Entry":
ShowEmployeeLedgerEntries();
Database::"Detailed Employee Ledger Entry":
ShowDetailedEmployeeLedgerEntries();
Database::"Item Ledger Entry":
PAGE.Run(0, ItemLedgEntry);
Database::"Value Entry":
PAGE.Run(0, ValueEntry);
Database::"Phys. Inventory Ledger Entry":
PAGE.Run(0, PhysInvtLedgEntry);
Database::"Res. Ledger Entry":
PAGE.Run(0, ResLedgEntry);
Database::"Job Ledger Entry":
PAGE.Run(0, JobLedgEntry);
Database::"Job WIP Entry":
PAGE.Run(0, JobWIPEntry);
Database::"Job WIP G/L Entry":
PAGE.Run(0, JobWIPGLEntry);
Database::"Bank Account Ledger Entry":
PAGE.Run(0, BankAccLedgEntry);
Database::"Check Ledger Entry":
PAGE.Run(0, CheckLedgEntry);
Database::"FA Ledger Entry":
PAGE.Run(0, FALedgEntry);
Database::"Maintenance Ledger Entry":
PAGE.Run(0, MaintenanceLedgEntry);
Database::"Ins. Coverage Ledger Entry":
PAGE.Run(0, InsuranceCovLedgEntry);
Database::Microsoft.Manufacturing.Capacity."Capacity Ledger Entry":
PAGE.Run(0, CapacityLedgEntry);
Database::"Cost Entry":
PAGE.Run(0, CostEntry);
Database::"Pstd. Phys. Invt. Order Hdr":
PAGE.Run(0, PstdPhysInvtOrderHdr);
Database::"Posted Gen. Journal Line":
Page.Run(0, PostedGenJournalLine);
Database::"Spend Request to G/L Link":
Page.Run(0, SpendRequestToGLLink);
Database::"Invt. Receipt Header":
if Rec."No. of Records" = 1 then
PAGE.Run(PAGE::"Posted Invt. Receipt", PostedInvtRcptHeader)
else
PAGE.Run(0, PostedInvtRcptHeader);
Database::"Invt. Shipment Header":
if Rec."No. of Records" = 1 then
PAGE.Run(PAGE::"Posted Invt. Shipment", PostedInvtShptHeader)
else
PAGE.Run(0, PostedInvtShptHeader);
end;
OnAfterShowRecords(Rec, DocNoFilter, PostingDateFilter, ItemTrackingSearch(), ContactType, ContactNo, ExtDocNo);
end;
local procedure ShowPurchaseHeaderRecords()
var
PageManagement: Codeunit "Page Management";
begin
Rec.TestField("Table ID", Database::"Purchase Header");
case Rec."Document Type" of
Rec."Document Type"::Quote:
if Rec."No. of Records" = 1 then
PageManagement.PageRun(PQPurchaseHeader)
else
PageManagement.PageRunList(PQPurchaseHeader);
Rec."Document Type"::Order:
if Rec."No. of Records" = 1 then
PageManagement.PageRun(POPurchaseHeader)
else
PageManagement.PageRunList(POPurchaseHeader);
Rec."Document Type"::Invoice:
if Rec."No. of Records" = 1 then
PageManagement.PageRun(PIPurchaseHeader)
else
PageManagement.PageRunList(PIPurchaseHeader);
end;
end;
local procedure ShowSalesHeaderRecords()
var
PageManagement: Codeunit "Page Management";
begin
Rec.TestField("Table ID", Database::"Sales Header");
case Rec."Document Type" of
Rec."Document Type"::Quote:
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SQSalesHeader)
else
PageManagement.PageRunList(SQSalesHeader);
Rec."Document Type"::Order:
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SOSalesHeader)
else
PageManagement.PageRunList(SOSalesHeader);
Rec."Document Type"::Invoice:
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SISalesHeader)
else
PageManagement.PageRunList(SISalesHeader);
Rec."Document Type"::"Return Order":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SROSalesHeader)
else
PageManagement.PageRunList(SROSalesHeader);
Rec."Document Type"::"Credit Memo":
if Rec."No. of Records" = 1 then
PageManagement.PageRun(SCMSalesHeader)
else
PageManagement.PageRunList(SCMSalesHeader);
end;
end;
local procedure ShowEmployeeLedgerEntries()
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeShowEmployeeLedgerEntries(EmplLedgEntry, IsHandled);
if IsHandled then
exit;
PAGE.Run(PAGE::"Employee Ledger Entries", EmplLedgEntry);
end;
local procedure ShowDetailedEmployeeLedgerEntries()
begin
PAGE.Run(PAGE::"Detailed Empl. Ledger Entries", DtldEmplLedgEntry);
end;
protected procedure SetPostingDate(PostingDate: Text)
begin
FilterTokens.MakeDateFilter(PostingDate);
Rec.SetFilter("Posting Date", PostingDate);
PostingDateFilter := Rec.GetFilter("Posting Date");
end;
protected procedure SetDocNo(DocNo: Text)
begin
Rec.SetFilter("Document No.", DocNo);
DocNoFilter := Rec.GetFilter("Document No.");
PostingDateFilter := Rec.GetFilter("Posting Date");
end;
protected procedure ClearSourceInfo()
begin
if DocExists then begin
DocExists := false;
Rec.DeleteAll();
PrintEnable := false;
ShowEnable := false;
SetSource(0D, '', '', 0, '');
CurrPage.Update(false);
end;
end;
procedure MakeExtFilter(var DateFilter: Text; AddDate: Date; var DocumentNoFilter: Text; AddDocNo: Code[20])
begin
if DateFilter = '' then
DateFilter := Format(AddDate)
else
if StrPos(DateFilter, Format(AddDate)) = 0 then
if MaxStrLen(DateFilter) >= StrLen(DateFilter + '|' + Format(AddDate)) then
DateFilter := DateFilter + '|' + Format(AddDate)
else
TooLongFilter();
if DocumentNoFilter = '' then
DocumentNoFilter := AddDocNo
else
if StrPos(DocumentNoFilter, AddDocNo) = 0 then
if MaxStrLen(DocumentNoFilter) >= StrLen(DocumentNoFilter + '|' + AddDocNo) then
DocumentNoFilter := DocumentNoFilter + '|' + AddDocNo
else
TooLongFilter();
end;
procedure FindPush()
begin
if (DocNoFilter <> '') or (PostingDateFilter <> '') or (ExtDocNo <> '') then
SearchBasedOn := SearchBasedOn::Document;
if (ContactType <> ContactType::" ") and ((ContactNo <> '') or (ExtDocNo <> '')) then
SearchBasedOn := SearchBasedOn::"Business Contact";
if (SerialNoFilter <> '') or (LotNoFilter <> '') then
SearchBasedOn := SearchBasedOn::"Item Reference";
case SearchBasedOn of
SearchBasedOn::Document:
FindRecords();
SearchBasedOn::"Business Contact":
FindExtRecords();
SearchBasedOn::"Item Reference":
FindTrackingRecords();
end;
end;
local procedure TooLongFilter()
begin
if ContactNo = '' then
Error(Text015);
Error(Text016);
end;
local procedure FindUnpostedSalesDocs(SalesDocType: Enum "Sales Document Type"; DocTableName: Text[100]; var SalesHeader: Record "Sales Header")
begin
SalesHeader."SecurityFiltering"(SECURITYFILTER::Filtered);
if SalesHeader.ReadPermission() then begin
SalesHeader.Reset();
SalesHeader.SetCurrentKey("Sell-to Customer No.", "External Document No.");
if DocNoFilter <> '' then
SalesHeader.SetFilter("No.", DocNoFilter);
if ContactNo <> '' then
SalesHeader.SetFilter("Sell-to Customer No.", ContactNo);
if ExtDocNo <> '' then
SalesHeader.SetFilter("External Document No.", ExtDocNo);
if PostingDateFilter <> '' then
SalesHeader.SetFilter("Posting Date", PostingDateFilter);
SalesHeader.SetRange("Document Type", SalesDocType);
OnFindUnpostedSalesDocsOnAfterSetFilters(SalesHeader);
Rec.InsertIntoDocEntry(Database::"Sales Header", SalesDocType, DocTableName, SalesHeader.Count);
end;
end;
local procedure FindUnpostedGenJnlLines(DocTableName: Text[100]; var GenJournallLine: Record "Gen. Journal Line")
var
DocEntryType: Enum "Document Entry Document Type";
begin
GenJournallLine."SecurityFiltering"(SECURITYFILTER::Filtered);
if GenJournallLine.ReadPermission() then begin
GenJournallLine.Reset();
GenJournallLine.SetCurrentKey("Document No.");
if DocNoFilter <> '' then
GenJournallLine.SetFilter("Document No.", DocNoFilter);
if ExtDocNo <> '' then
GenJournallLine.SetFilter("External Document No.", ExtDocNo);
if PostingDateFilter <> '' then
GenJournallLine.SetFilter("Posting Date", PostingDateFilter);
Rec.InsertIntoDocEntry(Database::"Gen. Journal Line", DocEntryType::" ", DocTableName, GenJournallLine.Count);
end;
end;
local procedure FindUnpostedPurchaseDocs(PurchDocType: Enum "Purchase Document Type"; DocTableName: Text[100]; var PurchaseHeader: Record "Purchase Header")
begin
PurchaseHeader."SecurityFiltering"(SECURITYFILTER::Filtered);
if PurchaseHeader.ReadPermission() then begin
PurchaseHeader.Reset();
PurchaseHeader.SetCurrentKey("Buy-from Vendor No.", "Vendor Invoice No.");
if DocNoFilter <> '' then
PurchaseHeader.SetFilter("No.", DocNoFilter);
if ContactNo <> '' then
PurchaseHeader.SetFilter("Sell-to Customer No.", ContactNo);
if ExtDocNo <> '' then
if PurchDocType = PurchDocType::Order then
PurchaseHeader.SetFilter("Vendor Order No.", ExtDocNo)
else
PurchaseHeader.SetFilter("Vendor Invoice No.", ExtDocNo);
if PostingDateFilter <> '' then
PurchaseHeader.SetFilter("Posting Date", PostingDateFilter);
PurchaseHeader.SetRange("Document Type", PurchDocType);
OnFindUnpostedPurchaseDocsOnAfterSetFilters(PurchaseHeader);
Rec.InsertIntoDocEntry(Database::"Purchase Header", PurchDocType, DocTableName, PurchaseHeader.Count);
end;
end;
procedure FindTrackingRecords()
var
DocNoOfRecords: Integer;
begin
Window.Open(Text002);
Rec.DeleteAll();
Rec."Entry No." := 0;
ItemTrackingFilters.SetFilter("Serial No. Filter", SerialNoFilter);
ItemTrackingFilters.SetFilter("Lot No. Filter", LotNoFilter);
ItemTrackingFilters.SetFilter("Package No. Filter", PackageNoFilter);
OnFindTrackingRecordsOnAfterSetTrackingFilters(ItemTrackingFilters);
Clear(ItemTrackingNavigateMgt);
ItemTrackingNavigateMgt.FindTrackingRecords(ItemTrackingFilters);
ItemTrackingNavigateMgt.Collect(TempRecordBuffer);
OnFindTrackingRecordsOnAfterCollectTempRecordBuffer(TempRecordBuffer, SerialNoFilter, LotNoFilter);
TempRecordBuffer.SetCurrentKey("Table No.", "Record Identifier");
if TempRecordBuffer.Find('-') then
repeat
TempRecordBuffer.SetRange("Table No.", TempRecordBuffer."Table No.");
DocNoOfRecords := 0;
if TempRecordBuffer.Find('-') then
repeat
TempRecordBuffer.SetRange("Record Identifier", TempRecordBuffer."Record Identifier");
TempRecordBuffer.Find('+');
TempRecordBuffer.SetRange("Record Identifier");
DocNoOfRecords += 1;
until TempRecordBuffer.Next() = 0;
Rec.InsertIntoDocEntry(TempRecordBuffer."Table No.", TempRecordBuffer."Table Name", DocNoOfRecords);
TempRecordBuffer.SetRange("Table No.");
until TempRecordBuffer.Next() = 0;
OnAfterNavigateFindTrackingRecords(Rec, SerialNoFilter, LotNoFilter);
DocExists := Rec.Find('-');
UpdateFormAfterFindRecords();
Window.Close();
end;
procedure SetTracking(ItemTrackingSetup: Record "Item Tracking Setup")
begin
NewItemTrackingSetup := ItemTrackingSetup;
end;
procedure ItemTrackingSearch(): Boolean
begin
exit(SearchBasedOn = SearchBasedOn::"Item Reference");
end;
procedure ClearTrackingInfo()
begin
SerialNoFilter := '';
LotNoFilter := '';
PackageNoFilter := '';
end;
procedure ClearInfo()
begin
SetDocNo('');
SetPostingDate('');
ExtDocNo := '';
end;
procedure ClearContactInfo()
begin
ContactType := ContactType::" ";
ContactNo := '';
end;
local procedure DocNoFilterOnAfterValidate()
begin
ClearSourceInfo();
end;
local procedure PostingDateFilterOnAfterValidate()
begin
ClearSourceInfo();
end;
local procedure ExtDocNoOnAfterValidate()
begin
ClearSourceInfo();
end;
local procedure ContactTypeOnAfterValidate()
begin
ClearSourceInfo();
end;
local procedure ContactNoOnAfterValidate()
begin
ClearSourceInfo();
end;
local procedure SerialNoFilterOnAfterValidate()
begin
ClearSourceInfo();
end;
local procedure LotNoFilterOnAfterValidate()
begin
ClearSourceInfo();
end;
procedure FindRecordsOnOpen()
begin
if (NewDocNo = '') and (NewPostingDate = 0D) and not NewItemTrackingSetup.TrackingExists() then begin
Rec.DeleteAll();
ShowEnable := false;
PrintEnable := false;
SetSource(0D, '', '', 0, '');
end else
if NewItemTrackingSetup.TrackingExists() then begin
SearchBasedOn := SearchBasedOn::"Item Reference";
UpdateFindByGroupsVisibility();
SetSource(0D, '', '', 0, '');
Rec.SetTrackingFilterFromItemTrackingSetup(NewItemTrackingSetup);
if NewItemTrackingSetup."Serial No." <> '' then
SerialNoFilter := Rec.GetFilter("Serial No. Filter");
if NewItemTrackingSetup."Lot No." <> '' then
LotNoFilter := Rec.GetFilter("Lot No. Filter");
if NewItemTrackingSetup."Package No." <> '' then
PackageNoFilter := Rec.GetFilter("Package No. Filter");
ClearContactInfo();
ClearInfo();
FindTrackingRecords();
end else begin
SearchBasedOn := SearchBasedOn::Document;
UpdateFindByGroupsVisibility();
Rec.SetRange("Document No.", NewDocNo);
Rec.SetRange("Posting Date", NewPostingDate);
DocNoFilter := Rec.GetFilter("Document No.");
PostingDateFilter := Rec.GetFilter("Posting Date");
ExtDocNo := '';
ClearContactInfo();
ClearTrackingInfo();
OnFindRecordsOnOpenOnAfterSetDocuentFilters(Rec, DocNoFilter, PostingDateFilter, ExtDocNo, NewSourceRecVar);
FindRecords();
end;
end;
procedure UpdateNavigateForm(UpdateFormFrom: Boolean)
begin
UpdateForm := UpdateFormFrom;
end;
procedure ReturnDocumentEntry(var TempDocumentEntry: Record "Document Entry" temporary)
begin
Rec.SetRange("Table ID"); // Clear filter.
Rec.FindSet();
repeat
TempDocumentEntry.Init();
TempDocumentEntry := Rec;
TempDocumentEntry.Insert();
until Rec.Next() = 0;
end;
protected procedure UpdateFindByGroupsVisibility()
begin
DocumentVisible := false;
BusinessContactVisible := false;
ItemReferenceVisible := false;
ClearInfo();
ClearContactInfo();
ClearTrackingInfo();
case SearchBasedOn of
SearchBasedOn::Document:
DocumentVisible := true;
SearchBasedOn::"Business Contact":
BusinessContactVisible := true;
SearchBasedOn::"Item Reference":
ItemReferenceVisible := true;
end;
end;
procedure FilterSelectionChanged()
begin
FilterSelectionChangedTxtVisible := not Rec.IsEmpty();
end;
local procedure GetCaptionText(): Text
begin
if Rec."Table Name" <> '' then
exit(StrSubstNo(PageCaptionTxt, Rec."Table Name"));
exit('');
end;
local procedure FindPostedGenJournalLine()
begin
if PostedGenJournalLine.ReadPermission() then begin
PostedGenJournalLine.Reset();
if DocNoFilter <> '' then
PostedGenJournalLine.SetFilter("Document No.", DocNoFilter);
if PostingDateFilter <> '' then
PostedGenJournalLine.SetFilter("Posting Date", PostingDateFilter);
if ExtDocNo <> '' then
PostedGenJournalLine.SetFilter("External Document No.", ExtDocNo);
Rec.InsertIntoDocEntry(Database::"Posted Gen. Journal Line", PostedGenJournalLineTxt, PostedGenJournalLine.Count);
end;
end;
local procedure FindSpendRequests()
begin
if SpendRequestToGLLink.ReadPermission() then begin
SpendRequestToGLLink.Reset();
if DocNoFilter <> '' then
SpendRequestToGLLink.SetFilter("Document No.", DocNoFilter);
if PostingDateFilter <> '' then
SpendRequestToGLLink.SetFilter("Posting Date", PostingDateFilter);
if ExtDocNo <> '' then
SpendRequestToGLLink.SetFilter("Spend Request No.", ExtDocNo);
Rec.InsertIntoDocEntry(Database::"Spend Request to G/L Link", SpendRequestTxt, SpendRequestToGLLink.Count);
end;
end;
[IntegrationEvent(false, false)]
local procedure OnAfterFindCostEntries(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterFindRecords(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterFindPostedDocuments(var DocNoFilter: Text; var PostingDateFilter: Text; var DocumentEntry: Record "Document Entry")
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterFindPurchRcptHeader(var DocumentEntry: Record "Document Entry"; var PurchRcptHeader: Record "Purch. Rcpt. Header"; DocNoFilter: Text; PostingDateFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterNavigateFindExtRecords(var DocumentEntry: Record "Document Entry"; ContactType: Enum "Navigate Contact Type"; ContactNo: Code[250]; ExtDocNo: Code[250]; var FoundRecords: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterNavigateFindRecords(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text; var NewSourceRecVar: Variant; ExtDocNo: Code[250]; HideDialog: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterNavigateFindTrackingRecords(var DocumentEntry: Record "Document Entry"; SerialNoFilter: Text; LotNoFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterShowRecords(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text; ItemTrackingSearch: Boolean; ContactType: Enum "Navigate Contact Type"; ContactNo: Code[250]; ExtDocNo: Code[250])
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterSetRec(NewSourceRecVar: Variant)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterSetSourceForPurchase()
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterSetSource(var SourceType2: Integer; var SourceType: Text[30]; SourceNo: Code[20]; var SourceName: Text[100]; var PostingDateFilter: Text)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeFindRecordsProcedure(DocumentEntry: Record "Document Entry"; var HideDialog: Boolean; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeOnNoOfRecords(var DocumentEntry: Record "Document Entry"; var TableID: Integer)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeShowRecords(var TempDocumentEntry: Record "Document Entry" temporary; DocNoFilter: Text; PostingDateFilter: Text; ItemTrackingSearch: Boolean; ContactNo: Code[250]; ExtDocNo: Code[250]; var IsHandled: Boolean);
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeShowEmployeeLedgerEntries(var EmplLedgEntry: Record "Employee Ledger Entry"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeUpdateFormAfterFindRecords(var PostingDateFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindExtRecordsOnAfterSetSalesCrMemoFilter(var SalesCrMemoHeader: Record "Sales Cr.Memo Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindVATEntriesOnAfterVATEntrySetFilters(var VATEntry: Record "VAT Entry"; DocNoFilter: Text; PostingDateFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindExtRecordsOnAfterSetSalesInvoiceFilter(var SalesInvHeader: Record "Sales Invoice Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindExtRecordsForCustomer(var DocumentEntry: Record "Document Entry"; ContactNo: Code[20]; ExtDocNo: Text[35])
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindExtRecordsOnBeforeFormUpdate(var Rec: Record "Document Entry"; var SalesInvHeader: Record "Sales Invoice Header"; var SalesCrMemoHeader: Record "Sales Cr.Memo Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindPurchCrMemoHeaderOnAfterSetFilters(var PurchCrMemoHeader: Record "Purch. Cr. Memo Hdr.")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindPurchInvoiceHeaderOnAfterSetFilters(var PurchInvHeader: Record "Purch. Inv. Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindSalesCrMemoHeaderOnAfterSetFilters(var SalesCrMemoHeader: Record "Sales Cr.Memo Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindSalesInvoiceHeaderOnAfterSetFilters(var SalesInvHeader: Record "Sales Invoice Header")
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindRecordsOnAfterSetSource(var DocumentEntry: Record "Document Entry"; var PostingDate: Date; var DocType2: Text[100]; var DocNo: Code[20]; var SourceType2: Integer; var SourceNo: Code[20]; var DocNoFilter: Text; var PostingDateFilter: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindRecordsOnOpenOnAfterSetDocuentFilters(var Rec: Record "Document Entry"; var DocNoFilter: Text; var PostingDateFilter: Text; ExtDocNo: Code[250]; NewSourceRecVar: Variant)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindTrackingRecordsOnAfterCollectTempRecordBuffer(var TempRecordBuffer: Record "Record Buffer" temporary; SerialNoFilter: Text; LotNoFilter: Text)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeFindCustLedgerEntry(var CustLedgerEntry: Record "Cust. Ledger Entry"; DocNoFilter: Text; PostingDateFilter: Text; ExtDocNo: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeFindVendorLedgerEntry(var VendorLedgerEntry: Record "Vendor Ledger Entry"; DocNoFilter: Text; PostingDateFilter: Text; ExtDocNo: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeFindBankAccountLedgerEntry(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry"; DocNoFilter: Text; PostingDateFilter: Text; ExtDocNo: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeFindGLEntry(var GLEntry: Record "G/L Entry"; DocNoFilter: Text; PostingDateFilter: Text; ExtDocNo: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeFindRecordsSetSources(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text; ExtDocNo: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindRecordsOnBeforeMessagePostingDateFilter(DocumentEntry: Record "Document Entry"; PostingDateFilter: Text; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterFindLedgerEntries(var DocumentEntry: Record "Document Entry"; DocNoFilter: Text; PostingDateFilter: Text)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterOnInit(var DocumentEntry: Record "Document Entry");
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindCustEntriesOnAfterSetFilters(var CustLedgerEntry: Record "Cust. Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindVendEntriesOnAfterSetFilters(var VendorLedgerEntry: Record "Vendor Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindCustEntriesOnAfterDtldCustLedgEntriesSetFilters(var DetailedCustLedgEntry: Record "Detailed Cust. Ledg. Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindVendEntriesOnAfterDtldVendLedgEntriesSetFilters(var DetailedVendorLedgEntry: Record "Detailed Vendor Ledg. Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindUnpostedSalesDocsOnAfterSetFilters(var SalesHeader: Record "Sales Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindSalesShipmentHeaderOnAfterSetFilters(var SalesShipmentHeader: Record "Sales Shipment Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindIssuedFinChrgMemoHeaderOnAfterSetFilters(var IssuedFinChargeMemoHeader: Record "Issued Fin. Charge Memo Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindReminderEntriesOnAfterSetFilters(var ReminderFinChargeEntry: Record "Reminder/Fin. Charge Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindGLEntriesOnAfterSetFilters(var GLEntry: Record "G/L Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindIssuedReminderHeaderOnAfterSetFilters(var IssuedReminderHeader: Record "Issued Reminder Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindFAEntriesOnAfterSetFilters(var FALedgerEntry: Record "FA Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindPurchRcptHeaderOnAfterSetFilters(var PurchRcptHeader: Record "Purch. Rcpt. Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindBankEntriesOnAfterSetFilters(var BankAccountLedgerEntry: Record "Bank Account Ledger Entry")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforePrint(var Rec: Record "Document Entry"; SearchBasedOn: Enum "Navigate Search Type"; var TempRecordBuffer: Record "Record Buffer"; var ItemTrackingFilters: Record Item; DocNoFilter: Text; PostingDateFilter: Text; var IsHandled: Boolean);
begin
end;
[IntegrationEvent(true, false)]
local procedure OnFindTrackingRecordsOnAfterSetTrackingFilters(var ItemTrackingFilters: Record Item)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnFindUnpostedPurchaseDocsOnAfterSetFilters(var PurchaseHeader: Record "Purchase Header")
begin
end;
}