Παράδειγμα άντλησης στοιχείων με κώδικα Εκτύπωση

  • Βήματα, PYLON, Profit, Profit and Loss, Loss, PnL, Διαχείριση Χρηματοοικονομικών
  • 0

Βήματα

1. Δημιουργήστε μια νέα προβολή με τα στοιχεία του Header όπως στο υπόδειγμα.

Εικόνα 15

2. Προσθέστε Τίτλο (Αποτελέσματα)

3. Προσθέστε Νέα Εγγραφή επιλέγοντας σύνολο και Τίτλο «Πωλήσεις (Query)» Στην στήλη «Φόρμουλα» από τις … ανοίξτε το Περιβάλλον Εργασίας Συγγραφής Κώδικα Στον «Τύπο εγγραφής» Επιλέξτε Script και αντιγράψτε τον παρακάτω κώδικα.

function main() {

var args= new scDbCommandArgs();
args.Add("@CompanyID",sc$PnLScriptParams.GetCompany());
args.Add("@dtFrom",sc$PnLScriptParams.GetDateFrom());
args.Add("@dtTo",sc$PnLScriptParams.GetSelectedDateTo());
var cmpBranch = sc$PnLScriptParams.GetSelectedCompanyBranch();

if (sc$Context.IsNullOrEmpty(cmpBranch) == 1 || cmpBranch == '00000000-0000-0000-0000-000000000000' ) {
var text = sc$Context.GetConstant("CompanyQuery");

}

else {

args.Add("@companyBranch",cmpBranch);
var text = sc$Context.GetConstant("BranchQuery");

}

var cstmID = sc$PnLScriptParams.GetSelectedCustomer();

// Ελεγχος αν πρόκειται για PnL που αφορά πελάτη.

if ( sc$Context.IsNullOrEmpty(cstmID) == 0 ) {

args.Add("@CstmID",cstmID);
var text = sc$Context.GetConstant("CustomerQuery");

}
return sc$Db.ExecuteScalar(text, args);
}

Στην συνέχεια στο Tab «Σταθερές» προσθέστε τρείς (3) νέες εγγραφές με τύπο σταθεράς «Sql» Στην κάθε μία από αυτές θα δώσετε το αντίστοιχο όνομα και θα αντιγράψετε το Query που δίνεται για την κάθε μία

CompanyQuery

SELECT
COALESCE(SUM([ITEMACCUM].[HESALVALUE]),0) [SALVALUE]
FROM (
SELECT
[HEITEMACCUMULATORS].[HESALVALUE] [HESALVALUE]
FROM [HEITEMACCUMULATORS] WITH(NOLOCK)
INNER JOIN [HECOMPWAREHOUSES] WITH(NOLOCK) on ([HEITEMACCUMULATORS].[HECBWHID] = [HECOMPWAREHOUSES].[HEID])
INNER JOIN [HEITEMS] WITH(NOLOCK) on ([HEITEMACCUMULATORS].[HEITEMID] = [HEITEMS].[HEID])
WHERE (
[HEITEMS].[HECOMPID] = @CompanyID AND
[HEITEMACCUMULATORS].[HEDATE] >= @dtFrom AND
[HEITEMACCUMULATORS].[HEDATE] <= @dtTo AND
[HEITEMS].[HETYPE] in ('0', '1') AND
[HEITEMS].[HEKIND] <> 4 AND
[HECOMPWAREHOUSES].[HELASTLEVEL] = 1 AND
[HEPERIODKIND] = 2) ) [ITEMACCUM]

BranchQuery

SELECT
COALESCE(SUM([ITEMACCUM].[HESALVALUE]),0) [SALVALUE]
FROM (
SELECT
[HEITEMACCUMULATORS].[HESALVALUE] [HESALVALUE]
FROM [HEITEMACCUMULATORS] WITH(NOLOCK)
INNER JOIN [HECOMPWAREHOUSES] WITH(NOLOCK) ON ([HEITEMACCUMULATORS].[HECBWHID] = [HECOMPWAREHOUSES].[HEID])
INNER JOIN [HEITEMS] WITH(NOLOCK) ON ([HEITEMACCUMULATORS].[HEITEMID] = [HEITEMS].[HEID])
WHERE (
[HEITEMS].[HECOMPID] = @CompanyID AND
[HECOMPWAREHOUSES].[HECMBRID] = @companyBranch AND
[HEITEMACCUMULATORS].[HEDATE] >= @dtFrom AND
[HEITEMACCUMULATORS].[HEDATE] <= @dtTo AND
[HEITEMS].[HETYPE] in ('0', '1') AND
[HEITEMS].[HEKIND] <> 4 AND
[HECOMPWAREHOUSES].[HELASTLEVEL] = 1 AND
[HEPERIODKIND] = 2) ) [ITEMACCUM]

CustomerQuery

SELECT
COALESCE(SUM([ITEMTRANS].[HESALVALUE]), 0) [SALVALUE]
FROM (
SELECT
[ITTR].[HEDATE],
[ITTR].[HEPERIODKIND],
[ITTR].[HEITEMID],
(
[ITTR].[HESALVALUE] * [ITTR].[HESALVALSIGN]) [HESALVALUE]
FROM [HEITEMTRANS] [ITTR] WITH(NOLOCK)
INNER JOIN [HECOMPWAREHOUSES] [CBWH] WITH(NOLOCK) ON ([ITTR].[HECBWHID] = [CBWH].[HEID])
INNER JOIN [HEITEMS] [ITEM] WITH(NOLOCK) ON ([ITTR].[HEITEMID] = [ITEM].[HEID])
INNER JOIN [HEDOCENTRIES] [DENT] WITH(NOLOCK) ON ([ITTR].[HEDENTID] = [DENT].[HEID])
INNER JOIN [HECOMMERCIALENTRIES] [CENT] WITH(NOLOCK) ON ([DENT].[HEID] = [CENT].[HEDENTID] AND [CENT].[HECOMMTYPE] = 0 AND
[CENT].[HEBILLCSTMID] = @CstmID)
INNER JOIN [HECUSTOMERBRANCHES] [CSBR] WITH(NOLOCK) ON ([CENT].[HEBILLCSBRID] = [CSBR].[HEID])
INNER JOIN [HETRADERBRANCHES] [TRBR] WITH(NOLOCK) ON ([CSBR].[HETRBRID] = [TRBR].[HEID])
WHERE (
[ITTR].[HECOMPID] = @CompanyID AND
[ITTR].[HEDATE] >= @dtFrom and [ITTR].[HEDATE] <= @dtTo AND
[ITTR].[HEITEMTYPE] in ('0', '1') AND [ITEM].[HEKIND] <> 4 AND
[CBWH].[HELASTLEVEL] = 1 AND
[ITTR].[HEPERIODKIND] = 2) ) [ITEMTRANS]

4. Προσθέστε νέα γραμμή στην προβολή αυτή την φορά όμως στον Τομέα επιλέξτε «Predefined value». Και στην στήλη «Προκαθορισμένες Αξίες» επιλέξτε «Πωλήσεις».
5. Προσθέστε νέα γραμμή με «Τομέα» «Σύνολο» από τις … ανοίξτε το Περιβάλλον Εργασίας Συγγραφής Κώδικα. Στον «Τύπο εγγραφής» Επιλέξτε Formula και αντιγράψτε τον παρακάτω κώδικα. sc$PnLScriptParams.GetElementValue("02")- sc$PnLScriptParams.GetElementValue("03");

(Όπως στο υπόδειγμα Εικόνα 14)

6. Εκτελέστε την προβολή «SalesValueExample». (Χρηματοοικονομικά->Οικονομικά στοιχεία->Profit and Loss)

Σημείωση:

Όταν θα εκτελεστεί η προβολή το Query που έχει επιλεγεί μέσω του κώδικα θα τρέξει μία φορά αν ζητηθούν συγκεντρωτικά δεδομένα και πολλαπλές φορές με διαφορετικές παραμέτρους ανά περίοδο.


Ήταν χρήσιμη αυτήν την απάντηση;

« Πίσω

Χρειάζεστε Βοήθεια; Ζητήστε Υποστήριξη

+30 212 214 8888
support[at]pylonsupport.gr Δευτέρα έως Παρασκευή : 9:00 πμ – 5:00 μμ