Πώς να επισημάνετε κενά πεδία κειμένου με ένα συγκεκριμένο κείμενο συμβουλής χρησιμοποιώντας μία μακροεντολή ONLYOFFICE
Οι φόρμες ONLYOFFICE διευκολύνουν τη συλλογή δομημένης εισόδου, αλλά τα κενά μη απαιτούμενα πεδία συχνά παραμένουν ανεξέλεγκτα. Σε αυτήν την ανάρτηση ιστολογίου, δείχνουμε πώς να δημιουργήσετε μια μακροεντολή που επισημαίνει είτε όλα τα κενά μη απαιτούμενα πεδία σε μια φόρμα είτε μόνο αυτά που περιέχουν ένα συγκεκριμένο κείμενο συμβουλής.
Δημιουργία της μακροεντολής
1. Ανάκτηση δεδομένων φόρμας και αντικειμένων ζωντανής φόρμας
Η μακροεντολή ξεκινά έχοντας πρόσβαση στο ενεργό έγγραφο χρησιμοποιώντας το Api.GetDocument(). Στη συνέχεια, ανακτώνται δύο σύνολα πληροφοριών:
- Δεδομένα φόρμας: Χρησιμοποιώντας το doc.GetFormsData(), λαμβάνουμε μια αναπαράσταση JSON όλων των πεδίων φόρμας. Αυτό το JSON περιλαμβάνει ιδιότητες όπως το κλειδί, ο τύπος, η τιμή, η συμβουλή και αν το πεδίο είναι απαιτούμενο.
- Ζωντανά αντικείμενα φόρμας: Χρησιμοποιούμε το doc.GetAllForms() για να ανακτήσουμε τα ζωντανά αντικείμενα που αντιστοιχούν σε αυτά τα πεδία φόρμας.
var doc = Api.GetDocument();
var forms = doc.GetAllForms();
var formsData = JSON.parse(JSON.stringify(doc.GetFormsData()));
2. Προαιρετικός έλεγχος βάσει συμβουλής
Μερικές φορές μπορεί να θέλετε να ελέγξετε μόνο αυτά τα κενά πεδία που έχουν ένα συγκεκριμένο κείμενο συμβουλής. Στη μακροεντολή μας, μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε αυτήν τη λειτουργία αλλάζοντας τη μεταβλητή checkSpecificTip. Για παράδειγμα, μπορεί να χρειαστεί να επαληθεύσετε μόνο τα πεδία των οποίων η συμβουλή αναγράφει «Παρακαλώ εισάγετε τη δεύτερη διεύθυνσή σας».
// Προαιρετικό: ορίστε σε true για να ελέγξετε μόνο τα πεδία με ένα συγκεκριμένο κείμενο συμβουλής.
var checkSpecificTip = false;
var requiredTipText = "Παρακαλώ εισάγετε τη δεύτερη διεύθυνσή σας"; // Αλλάξτε αυτό όπως χρειάζεται.
3. Επανάληψη σε κάθε πεδίο φόρμας
Η μακροεντολή στη συνέχεια επαναλαμβάνεται σε κάθε πεδίο φόρμας στα δεδομένα JSON. Εστιάζουμε μόνο στα πεδία φόρμας κειμένου (όπου ο τύπος είναι “textForm”). Για κάθε πεδίο κειμένου που δεν έχει σημειωθεί ως απαιτούμενο, ελέγχουμε αν η τιμή του είναι κενή.
forms.forEach(function(form) {
if (form.GetFormType() === "textForm") {
var key = form.GetFormKey();
var required = form.IsRequired()
// Βρείτε τα αντίστοιχα δεδομένα φόρμας με κλειδί.
var formData = formsData.find(function(fd) {
return fd.key === key;
});
if (formData) {
// Ένα πεδίο θεωρείται κενό αν η τιμή του λείπει ή είναι μόνο κενό διάστημα.
var isEmpty = !formData.value || formData.value.trim() === "";
// Χρησιμοποιήστε το GetTip() της ζωντανής φόρμας για να πάρετε τη συμβουλή (αν είναι διαθέσιμη).
var tip = form.GetTipText() ? form.GetTipText() : "";
var shouldCheck = !checkSpecificTip || (checkSpecificTip && tip.trim() === requiredTipText.trim());
if (shouldCheck && isEmpty && !required) {
form.SetBorderColor(0,255,127); // πράσινο σύνορο άνοιξης.
form.SetBackgroundColor(171, 242, 255); // γαλάζιο φόντο.
invalidCount++;
}
}
}
});
- Έλεγχος τιμής πεδίου: Ένα πεδίο θεωρείται κενό αν η ιδιότητα “value” του JSON λείπει ή είναι μόνο κενό διάστημα.
- Φιλτράρισμα συμβουλής: Αν το checkSpecificTip είναι ενεργοποιημένο, ελέγχουμε μόνο τα πεδία των οποίων η συμβουλή ταιριάζει με το requiredTipText.
- Επισήμανση: Για τα πεδία που πληρούν τα κριτήρια, βρίσκουμε το αντίστοιχο ζωντανό αντικείμενο φόρμας (με αντιστοίχιση του κλειδιού) και ορίζουμε ένα πράσινο σύνορο άνοιξης και ένα γαλάζιο φόντο.
4. Καταγραφή των αποτελεσμάτων
Τέλος, η μακροεντολή καταγράφει τον συνολικό αριθμό των κενών μη απαιτούμενων πεδίων κειμένου που επισημάνθηκαν.
console.log("Ο έλεγχος πεδίων φόρμας ολοκληρώθηκε. " + invalidCount + " κενά μη απαιτούμενα πεδία κειμένου επισημάνθηκαν.");
Πλήρης κώδικας μακροεντολής
(function () {
// Προαιρετικό: ορίστε σε true για να ελέγξετε μόνο τα πεδία με ένα συγκεκριμένο κείμενο συμβουλής.
var checkSpecificTip = false;
var requiredTipText = "Παρακαλώ εισάγετε τη δεύτερη διεύθυνσή σας"; // Αλλάξτε αυτό όπως χρειάζεται.
var doc = Api.GetDocument();
var forms = doc.GetAllForms();
var formsData = JSON.parse(JSON.stringify(doc.GetFormsData()));
var invalidCount = 0;
forms.forEach(function(form) {
if (form.GetFormType() === "textForm") {
var key = form.GetFormKey();
var required = form.IsRequired()
// Βρείτε τα αντίστοιχα δεδομένα φόρμας με κλειδί.
var formData = formsData.find(function(fd) {
return fd.key === key;
});
if (formData) {
// Ένα πεδίο θεωρείται κενό αν η τιμή του λείπει ή είναι μόνο κενό διάστημα.
var isEmpty = !formData.value || formData.value.trim() === "";
// Χρησιμοποιήστε το GetTip() της ζωντανής φόρμας για να πάρετε τη συμβουλή (αν είναι διαθέσιμη).
var tip = form.GetTipText() ? form.GetTipText() : "";
var shouldCheck = !checkSpecificTip || (checkSpecificTip && tip.trim() === requiredTipText.trim());
if (shouldCheck && isEmpty && !required) {
form.SetBorderColor(0,255,127); // πράσινο σύνορο άνοιξης.
form.SetBackgroundColor(171, 242, 255); // γαλάζιο φόντο.
invalidCount++;
}
}
}
});
console.log("Ο έλεγχος πεδίων φόρμας ολοκληρώθηκε. " + invalidCount + " κενά μη απαιτούμενα πεδία κειμένου επισημάνθηκαν.");
})();
Τώρα, ας εκτελέσουμε τη μακροεντολή μας και ας δούμε πώς λειτουργεί!
Αυτή η μακροεντολή εντοπίζει και επισημαίνει αυτόματα τα κενά πεδία κειμένου που περιέχουν προκαθορισμένο κείμενο υποδείξεων, εξοικονομώντας χρόνο και μειώνοντας την επαναλαμβανόμενη εργασία. Ελπίζουμε να αποδειχθεί χρήσιμη στη βελτιστοποίηση των φορμών ONLYOFFICE και στη βελτίωση της συνολικής αποτελεσματικότητας της ροής εργασίας. Μην διστάσετε να εξερευνήσετε άλλες ισχυρές μεθόδους API του ONLYOFFICE για να αυτοματοποιήσετε και να βελτιώσετε τη ρουτίνα των εγγράφων σας. Αν έχετε ιδέες, ερωτήσεις ή προτάσεις για μελλοντικές μακροεντολές, μην διστάσετε να επικοινωνήσετε μαζί μας. Θα χαρούμε να σας ακούσουμε. Ευτυχισμένος κωδικοποίηση!
Σχετικά με τον συγγραφέα
Δημιουργήστε τον δωρεάν λογαριασμό ONLYOFFICE σας
Online προβολή, επεξεργασία και συνεργασία σε έγγραφα, υπολογιστικά φύλλα, παρουσιάσεις, φόρμες και αρχεία PDF.