Tables / Oθόνες _d

Από αυτή την οθόνη διαχειρίζεστε και αλλάζεται τα _d , αυτό είναι ένα παραδειγμα το help.
Table / Oθόνη _d

Οθόνη _d: Screen Class , please here insert the _d value ...

Ιδιότητες Πίνακα

Δημιουργία πινακα στην Βαση Δεδομένων: Το ενεργοποιούμε άν αυτό το _d είναι αυτό που δημιουργεί τον πίνακα στην βαση των δεδομένων.

Αντιγράφoνται τα δεδομενα κατα την διαδικασία του update: Αντιγράφoνται τα δεδομενα κατα την διαδικασία του update.

Δεν επιτρέπεται σε αυτό τον πίνακα η :


MySQL Triggers & Functions

MySQL View Create Code: Μπορούμε να προσθέσουμε τα εξής tags για να ελενξουμε την ύπαρξη του Module. /**pegasus_start_module_{κωδικός module} και pegasus_end_module_{κωδικός module}**/ κωδικός module π.χ. hot000 Εφόσον υπάρχει το module και ειναι ενεργο θα αφαιρεθουν τα παραπανω tags. Eπισης μπορουμε να χρησιμοποιουμε και τα tag /**pegasus_module_exists_start_{module code}**/ /**pegasus_module_exists_end_{module code}**/ Aν ΔΕΝ ΥΠΑΡΧΕΙ το module θα σχολιαστει ο κωδικας αναμεσα /**pegasus_module_not_exists_start_{module code}**/ /**pegasus_module_not_exists_end_{module code}**/ Aν ΥΠΑΡΧΕΙ το module θα σχολιαστει ο κωδικας αναμεσα


on insert

Αλλαγή τιμών του record

Αυτό που γνωρίζω είναι το record του πίνακα σε ένα array με το όνομα $data.
Ότι αλλαγή και αν κάνω στο array θα εμφανιστεί ως τιμ;h στην οθόνη που θα δει ό χρήστη (ανεξάρτητα με το _d που την ανοίγει).

Όλες της τιμές τις περνάω record όπως μου τις επιστέφει η MySQL π.χ. για την ημερομηνία θα βάλω $data[‘dt’] =‘2010-12-01’

Πώς ορίζω έναν έλεγχο στις τιμές του record (ώστε αν εμφανίσει απαγορευτικό ή προειδοποιητικό μήνυμα)

Ενημερώνω πάντα το $permDeny array() ,
To array αυτό έχει την μορφή $permDeny = array( $arr1 = array() , $arr2 = array() …… )

$arr1 μπορεί να έχει τις εξής στήλες:

  1. $arr1[‘table’]
    O πίνακας (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).

  2. $arr1[‘action’]
    $arr1[‘action’]= delete ή change ή insert (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).


  3. $arr1[‘type’]

    Αν το action ειναι κενο τότε .
    $arr1[‘type’]= deny ή confirm

    Αν το $arr1[‘action’]= delete
    $arr1[‘type’]= perm_deny ή p20_deny ή p20_confirm

    Αν το $arr1[‘action’]= change ή delete,
    αν είναι το $arr1[‘type’] δεν έχει την τιμή confirm , εκτελεί deny.


  4. $arr1[‘message’]
    To μήνυμα που θέλουμε να εμφανίσει , Όλα τα μηνύματα θα πρέπει να τα τραβάμε από τα λεκτηκά

Οι μεταβλητές που γνωρίζω είναι , $grid_editing= 1 , Αν η καταχωρηση γινεται απο διαχειρισης του record απο grid
$DATA το array με τα δεδομένα του record



π.χ:

if(empty($data['p20'] ) ){
array_push( $permDeny , array( 'type'=>'deny' , 'message'=>'Δεν μπορείτε να καταχωρήσετε ΑΦΜ κενό.')); }

if(empty($data['p22'])){
array_push( $permDeny , array( 'type'=>'CONFIRM' , 'message'=>'Δεν έχετε δώσει ΔΟΥ να συνεχίσουμε την καταχώρηση? '));
}


on Change

Αλλαγή τιμών του record

Αυτό που γνωρίζω είναι το record του πίνακα σε ένα array με το όνομα $data.
Ότι αλλαγή και αν κάνω στο array θα εμφανιστεί ως τιμ;h στην οθόνη που θα δει ό χρήστη (ανεξάρτητα με το _d που την ανοίγει).

Όλες της τιμές τις περνάω record όπως μου τις επιστέφει η MySQL π.χ. για την ημερομηνία θα βάλω $data[‘dt’] =‘2010-12-01’

Πώς ορίζω έναν έλεγχο στις τιμές του record (ώστε αν εμφανίσει απαγορευτικό ή προειδοποιητικό μήνυμα)

Ενημερώνω πάντα το $permDeny array() ,
To array αυτό έχει την μορφή $permDeny = array( $arr1 = array() , $arr2 = array() …… )

$arr1 μπορεί να έχει τις εξής στήλες:

  1. $arr1[‘table’]
    O πίνακας (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).

  2. $arr1[‘action’]
    $arr1[‘action’]= delete ή change ή insert (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).


  3. $arr1[‘type’]

    Αν το action ειναι κενο τότε .
    $arr1[‘type’]= deny ή confirm

    Αν το $arr1[‘action’]= delete
    $arr1[‘type’]= perm_deny ή p20_deny ή p20_confirm

    Αν το $arr1[‘action’]= change ή delete,
    αν είναι το $arr1[‘type’] δεν έχει την τιμή confirm , εκτελεί deny.


  4. $arr1[‘message’]
    To μήνυμα που θέλουμε να εμφανίσει , Όλα τα μηνύματα θα πρέπει να τα τραβάμε από τα λεκτηκά

Οι μεταβλητές που γνωρίζω είναι , $grid_editing= 1 , Αν η καταχωρηση γινεται απο διαχειρισης του record απο grid
$DATA το array με τα δεδομένα του record



π.χ:

if(empty($data['p20'] ) ){
array_push( $permDeny , array( 'type'=>'deny' , 'message'=>'Δεν μπορείτε να καταχωρήσετε ΑΦΜ κενό.')); }

if(empty($data['p22'])){
array_push( $permDeny , array( 'type'=>'CONFIRM' , 'message'=>'Δεν έχετε δώσει ΔΟΥ να συνεχίσουμε την καταχώρηση? '));
}


onInsert & onChange

Οι μεταβλητές που γνωρίζω είναι:
$mmnr01 = το mmnr01
$checkOnlyPerm = 1 , απλά ελέγχει τα δικαιώματα και δεν καταχωρεί κάτι.
$grid_editing= 1 , Αν η καταχωρηση γινεται απο διαχειρισης του record απο grid

Αλλαγή τιμών του record

Αυτό που γνωρίζω είναι το record του πίνακα σε ένα array με το όνομα $data.
Ότι αλλαγή και αν κάνω στο array θα εμφανιστεί ως τιμ;h στην οθόνη που θα δει ό χρήστη (ανεξάρτητα με το _d που την ανοίγει).

Όλες της τιμές τις περνάω record όπως μου τις επιστέφει η MySQL π.χ. για την ημερομηνία θα βάλω $data[‘dt’] =‘2010-12-01’

Πώς ορίζω έναν έλεγχο στις τιμές του record (ώστε αν εμφανίσει απαγορευτικό ή προειδοποιητικό μήνυμα)

Ενημερώνω πάντα το $permDeny array() ,
To array αυτό έχει την μορφή $permDeny = array( $arr1 = array() , $arr2 = array() …… )

$arr1 μπορεί να έχει τις εξής στήλες:

  1. $arr1[‘table’]
    O πίνακας (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).

  2. $arr1[‘action’]
    $arr1[‘action’]= delete ή change ή insert (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).


  3. $arr1[‘type’]

    Αν το action ειναι κενο τότε .
    $arr1[‘type’]= deny ή confirm

    Αν το $arr1[‘action’]= delete
    $arr1[‘type’]= perm_deny ή p20_deny ή p20_confirm

    Αν το $arr1[‘action’]= change ή delete,
    αν είναι το $arr1[‘type’] δεν έχει την τιμή confirm , εκτελεί deny.


  4. $arr1[‘message’]
    To μήνυμα που θέλουμε να εμφανίσει , Όλα τα μηνύματα θα πρέπει να τα τραβάμε από τα λεκτηκά

Οι μεταβλητές που γνωρίζω είναι , $DATA το array με τα δεδομένα του record



π.χ:

if(empty($data['p20'] ) ){
array_push( $permDeny , array( 'type'=>'deny' , 'message'=>'Δεν μπορείτε να καταχωρήσετε ΑΦΜ κενό.')); }

if(empty($data['p22'])){
array_push( $permDeny , array( 'type'=>'CONFIRM' , 'message'=>'Δεν έχετε δώσει ΔΟΥ να συνεχίσουμε την καταχώρηση? '));
}

onInsert & onChange: 
Κλείδωμα εγγραφών:
Κατά την καταχώρηση της εγγραφής, γίνεται έλεγχος αν έχει γίνει επεξεργασία από κάποιο άλλο χρήστη και εμφανίζεται το κατάλληλο μήνυμα. Για τις περιπτώσεις που θέλουμε να εμφανίσουμε κάποιο custom μήνυμα, θα πρέπει στον πίνακα permDeny να έχουμε προσθέσει στοιχείο με type => 'locked' και στο message το μήνυμα που θέλουμε να εμφανίζεται.
Παράδειγμα:
	array_push($permDeny, array('type' => 'locked', 'message' => 'My custom message' )); 

Αν θέλω στην καταχώρηση να παραλείπεται αυτός ο έλεγχος και να μην εμφανίζει καθόλου μήνυμα, τότε θα πρέπει να περάσουμε array με type=>'locked' στο permDeny αλλα με κενό μήνυμα.
Παράδειγμα:
	array_push($permDeny, array('type' => 'locked', 'message' => '' )); // Δεν θα γίνει έλεγχος για το κλείδωμα


on Delete

Αλλαγή τιμών του record

Αυτό που γνωρίζω είναι το record του πίνακα σε ένα array με το όνομα $data.
Ότι αλλαγή και αν κάνω στο array θα εμφανιστεί ως τιμ;h στην οθόνη που θα δει ό χρήστη (ανεξάρτητα με το _d που την ανοίγει).

Όλες της τιμές τις περνάω record όπως μου τις επιστέφει η MySQL π.χ. για την ημερομηνία θα βάλω $data[‘dt’] =‘2010-12-01’

Πώς ορίζω έναν έλεγχο στις τιμές του record (ώστε αν εμφανίσει απαγορευτικό ή προειδοποιητικό μήνυμα)

Ενημερώνω πάντα το $permDeny array() ,
To array αυτό έχει την μορφή $permDeny = array( $arr1 = array() , $arr2 = array() …… )

$arr1 μπορεί να έχει τις εξής στήλες:

  1. $arr1[‘table’]
    O πίνακας (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).

  2. $arr1[‘action’]
    $arr1[‘action’]= delete ή change ή insert (ΤΟ ΑΦΗΝΟΥΜΕ ΚΕΝΟ , ΤΟ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΜΟΝΟ ΤΑ ΔΙΚΑΙΩΜΑΤΑ ΠΟΥ ΠΡΟΚΥΠΟΤΟΥΝ ΑΠΟ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΣΥΣΧΕΤΗΣΕΩΝ).


  3. $arr1[‘type’]

    Αν το action ειναι κενο τότε .
    $arr1[‘type’]= deny ή confirm

    Αν το $arr1[‘action’]= delete
    $arr1[‘type’]= perm_deny ή p20_deny ή p20_confirm

    Αν το $arr1[‘action’]= change ή delete,
    αν είναι το $arr1[‘type’] δεν έχει την τιμή confirm , εκτελεί deny.


  4. $arr1[‘message’]
    To μήνυμα που θέλουμε να εμφανίσει , Όλα τα μηνύματα θα πρέπει να τα τραβάμε από τα λεκτηκά

Οι μεταβλητές που γνωρίζω είναι , $DATA το array με τα δεδομένα του record



π.χ:

if(empty($data['p20'] ) ){
array_push( $permDeny , array( 'type'=>'deny' , 'message'=>'Δεν μπορείτε να καταχωρήσετε ΑΦΜ κενό.')); }

if(empty($data['p22'])){
array_push( $permDeny , array( 'type'=>'CONFIRM' , 'message'=>'Δεν έχετε δώσει ΔΟΥ να συνεχίσουμε την καταχώρηση? '));
}

Υπαρχει η δυνατότητα να φτιαξουμε ΣΜΕ συναρτηση της μορφης.
$permDeny = sme_{module}_{_d}_ondelete( $data,$permDeny , $mmnr01 , $checkOnlyPerm);


On initialize a record for a screen

On initialize a record for a screen: H τιμή του $data['nr01'] στα νέα record είναι κενή.
Αν για κάποιο λόγο πρέπει να την γνωρίζω μπορώ να εκετελεσώ $data['nr01'] = pegasus_mysql_newrec('table'); και $this->nr01 = $data['nr01']; Καλό είναι αν Θέλω να δω αν η τιμή μου είναι κενή να έλεγχο την ύπαρξης της συγκεκριμένης τιμής nr01 στη βάση. -------------------------- Αυτό που γνωρίζω είναι το record του πίνακα σε ένα array με το όνομα $data. Ότι αλλαγή και αν κάνω στο array θα εμφανιστεί ως τιμή στην οθόνη που θα δει ο χρήστη (ανεξάρτητα με το _d που την ανοίγει). Όλες της τιμές τις περνάω record όπως μου τις επιστέφει η MySQL π.χ. για την ημερομηνία θα βάλω $data[‘dt’] =‘2010-12-01’ Αν είμαστε σε editable grid η παραπάνω παράμετρος δεν επηρεάζει τα record (Μόνο στην προβολή με την λογική οθόνης παίζει) . Αν θέλουμε το intialize να εκτελείται μόνο σε κάποιο συγκεκριμένο _d τότε βάζουμε π.x. if($this->_d=='mesa01_d'){ -------------------------- Tabs: Αν έχω ένα tab panel στην οθόνη μου τότε μπορώ να πω ότι θα είναι hidden ορίζοντας στα $data τη μεταβλητή $data["{module}_{_d}_{tab name}_hidden"] = true; Για τα tabs μπορώ ακόμη στο initialize να ορίσω αν θα είναι hidden σε mobile και tablet οθόνες. Αυτό μπορεί να γίνει ορίζοντας στο $data τιμές στις μεταβλητές $data["{module}_{_d}_{tab name}_hidden_mobile"] και $data["{module}_{_d}_{tab name}_hidden_tablet"] ------------------------- Toolbar Items: Για τα toolbar Items που βρίσκονται μέσα στην οθόνη μπορώ να ορίσω αν θα είναι hidden από το initialize προσθέτοντας τις παρακάτω μεταβλητές στα $data: $data["{module}_{_d}_{p81_id}_hidden"] // Για όλα τα μεγέθη οθόνης $data["{module}_{_d}_{p81_id}_hidden_mobile"] // Για mobile οθόνες $data["{module}_{_d}_{p81_id}_hidden_tablet"] // Για tablet οθόνες Όπου p81_id είναι το id του Toolbar Item και μπορεί να έχει τις εξής τιμές: - 'toolbarbutton_archive' για το button της Διαχείρισης Αρχειοθέτησης - 'toolbarbutton_close' για το button Κλείσιμο - 'menubarbutton_menu' για το button των Ενεργειών - 'relationQ30' για την Αντιστοιχιση Εγγραφων Πινακα Q30 - 'toolbarbutton_save' για το button της Καταχώρησης - 'toolbarbutton_update' για το button της Ενημέρωσης - 'z21' για το button Διαχείρισης Συνδέσμου - 'toolbarbutton_{p81_nr01}' για όλα τα υπόλοιπα buttons -------------------------- Grid Toolbar Items: Για τα buttons των Grids μπορώ να ορίσω αν θα είναι hidden από το initialize προσθέτοντας τις παρακάτω μεταβλητές στα $data: $data["{module}_{_d}_{grid_name}_{toolbar_id}_hidden"] // Για όλα τα μεγέθη οθόνης $data["{module}_{_d}_{grid_name}_{toolbar_id}_hidden_mobile"] // Για mobile οθόνες $data["{module}_{_d}_{grid_name}_{toolbar_id}_hidden_tablet"] // Για tablet οθόνες Οι παραπάνω ορισμοί θα έχουν ως αποτέλεσμα να είναι hidden και η αντίστοιχη επιλογή μέσα στο μενού "Ενέργειες" Όπου toolbar_id είναι το id του Grid Toolbar Item και μπορεί να έχει τις εξής τιμές: - 'clear_filters' για το button "Καθαρισμός Φίλτρων" - 'copy' για το button "Αντιγραφή" - 'delete' για το button "Διαγραφή" - 'change' για το button "Διαχείριση" - 'rowchange' για το button "Ενεργοποίηση/Απενεργοποίηση της αλλαγής των τιμών των κελιών του πίνακα" - 'insert' για το button "Νέα Καταχώρηση" - 'send_mail' για το button "Αποστολή e-mail" - 'export' για το button "Εξαγωγή Δεδομένων" - 'mng_col' για το button "Διαχείριση Στηλών" - 'multiselect' για το button "Ενεργοποίηση/Απενεργοποίηση πολλαπλής επιλογής" - 'print_forms' για το button "Φόρμες Εκτύπωσης" - 'panafores' για το button "π-Αναφορές" - 'quickfind' για τη γρήγορη αναζήτηση αριστερά - 'refresh' για το button "Ανανέωση" - 'search' για το button "Αναζήτηση" - '{peg_custom_id}' για όλα τα custom action buttons που προσθέτουμε -------------------------- Buttons: Αν θέλουμε να ορίσουμε το κείμενο ενός button που εμφανίζεται μέσα σε μία οθόνη κατά το initialize , μπορούμε να ορίσουμε την παρακάτω μεταβλητή: $data["{button_name}_text"] = "New Text"; -------------------------- Combobox: Αν θέλουμε να ορίσουμε το ls_data ενός combobox που εμφανίζεται μέσα σε μία οθόνη κατά το initialize , μπορούμε να ορίσουμε την παρακάτω μεταβλητή: $data["{module}_{_d}_{name}_ls_data"] ='[{"p00":0 ,"p01":"Str0"},{"p00":1 ,"p01":"Str1"}]'; ή $data["{module}_{_d}_{name}_ls_data"]= array( array('p00'=>0 , 'p01' =>'test1') , array('p00'=>1 , 'p01' =>'test2') ); -------------------------- PermDeny: Αν δεν θέλουμε να επιτρέψουμε το άνοιγμα της οθόνης τότε μπορούμε στην initialize να επιστρέψουμε ένα array όπου το permDeny θα έχει τιμή 1 και στο permDenyMessage θα περάσουμε το μήνυμα που θέλουμε να εκτυπωθεί. if(!$pronomio){ $data = array(); $data['permDeny'] = 1; $data['permDenyMessage'] = 'Αυτό θα εμφανιστεί με pegToast'; } ------------------------------ ΣΜΕ κληση Oνομα συναρτησης: "sme_" . $module . "_".$_d."_initialize" Παραμετροι: $data,$mmnr01,$mnr01,$_d,$container_id π.χ. function sme_serial_i31_d_initialize( $data,$mmnr01,$mnr01,$_d,$container_id ){return $data;}


Τελευταία Αλλαγή: 03/08/2026
Ανήκει στο Module: core