Pułapki w Lotus pola Uwagi
Pola, pozornie proste rzeczy, miejsc umieścić dane elementy. Ale, jak wiele jeszcze w notatkach są pułapki na nieostrożnych. Są pułapki dla deweloperów bardziej doświadczonych także, tylko gdy szukasz gdzie indziej.
Obliczane dla wyświetlacza
Pierwsza pułapka jest obliczana na wyświetlanie pól. Mają one pozwalają na obliczenie wartości pola w locie, wykorzystując je do wyświetlania na ekranie lub do kierowania podstawowe funkcje, bez oszczędności, które wynikają z dokumentu na dysku. Oni często stosowane, wraz z kilkoma hide-whens w mechanizm zapobiegania niektórym użytkownikom pola edycji.
| "Wszystko będzie twoja wina - nawet gdybyś nie miał nic wspólnego z nim." |
Pierwsza pułapka to: czy dokument rzeczywiście zawierać pole o tej samej nazwie, jak komputerowa w polu wyświetlania w postaci komputerowej w polu wyświetlacza pojawi, że wartość pola dokumentu, zamiast oczekiwanej obliczonej wartości. Że można doprowadzić do wielu godzin pracy i frustracja nie przeklinać mało kiedy uderzy. To jest najbardziej prawdopodobne, gdy projekt wniosku został zmieniony, gdzie pola, które były wyliczane lub edycji staje się obliczone dla wyświetlacza, ale podstawowe dane nie zostały zmienione.
Więc jeśli kiedykolwiek zmienić pole od do komputerowej do wyświetlania, zawsze warto agenta przejrzeć dane i usunąć wszystkie pola o tej nazwie z dokumentów.
Jest jeszcze jedna komputerowa do pułapki Wyświetlacz dla nieostrożnych, too. Jeśli dokument nie jest otwarty w interfejsie użytkownika, pole nie będzie obecny, jak to tylko obliczone przez front-end, jak dokument jest wyświetlany. Podczas gdy wiele osób nie będzie, że błąd w zadaniu tle, takie jak agent, to znaczy, że trzeba być ostrożnym z kodu po stronie klienta.
Z perspektywy LotusScript, wyliczona w polu wyświetlacza nie są obecne aż do PostOpen event formie - nie można się do nich w formie QueryOpen. Właściwie, to pole staje się "dostępny", gdy proces renderowania egzaminu. Kiedy zauważa, świadczy dokument i formy na ekranie, przetwarza pola od góry od lewej do prawej na dole. Obliczone dla pól wyświetlacza nie ma do celu przetwarzania przechodzi nad nimi - co oznacza, że inicjalizacja przypadku pole nie może zobaczyć komputerowa w polu wyświetlacza, który jest pod nim, tylko te, które są powyżej. Gdy dojdziesz do PostOpen, oni tam, w dokumencie UI i back-end NotesDocument to określone przez NotesUIDocument - ale oczywiście nie są one obecne w każdym NotesDocument, że otworzyły się z NotesDatabase się.
Wejście Enabled wzoru
Chociaż jesteśmy na komputerowej dla wyświetlacza, jest ostatnim (no, od 6.5) cechą pola edycji o nazwie Input Enabled formuły. Notes 6.5 pomóc wygląda jakby był ponownie edytowane w pośpiechu i nie są odpowiednio korygowane później. Mówi, że istnieją trzy Uwagi formuły pole, a następnie opisuje cztery - tradycyjne Wartość domyślna, Tłumaczenie, zatwierdzania i następnie nowy Wejście Enabled, i może się pomylić, co formuła powinna zwracać.
Designer 8 pomoc jest przynajmniej bardziej dokładne, choć faktycznie mniej jasne, co ta formuła nie. Więc krótko: Punkt wejścia formuła włączona jest pozwala na określenie, czy pole może być edytowany, czy nie. Użyć formuły, że wyniki z jednego z False @ lub @ True. To jest dość dużo, jak można użyć ukrycia, gdy formuła, z wyjątkiem tyłu: Wejście Enabled @ prawda oznacza, że pole ma być edytowalne przez użytkownika, podczas gdy @ prawda ukryć, kiedy wynik ukrywa dziedzinie.
Wzory te pozwalają na ominięcie stara sztuczka o dwa pola, jedno edytowalne i jeden komputerowej do wyświetlania za pomocą wartości pole, a następnie wyświetlanie jednej lub drugiej w zależności od tego, czy aktualny użytkownik ma możliwość edycji pola. Zauważ też, że wejście Enabled formuły pierwotnie - w 6.5 - wymaga się, aby pole było z Native typu systemu operacyjnego, ale to ograniczenie zostało usunięte w Notes 7 i pracują z konwencjonalnie wyświetlany Uwagi pola też.
Uwagi pola nie są ściśle wpisane
Kolejnym nierzadko pułapkę pola wynika z faktu, że pola Uwagi nie są ściśle wpisane. Podczas tworzenia pola z LotusScript lub język formuł, typ pola jest pochodną wartości, które można przypisać. Jako pomoc dla NotesDocument.ReplaceItemValue mówi: "Ten typ danych elementu zależy od typu danych wartości, i nie musi pasować do typu danych starego elementu." I wyjaśnia, jak się go .
Notes nie obchodzi, czy tym samym polu na różnych dokumentów tego samego typu, również dlatego, że Notes nie ma schematu bazy danych. Możesz przeczytać o braku schematu stwierdza w artykule napisałem kilka lat temu, "Notes nie jest relacyjna baza danych".
Ta zdolność do Uwagi do przechowywania wartości, co ma w polu bez żadnego odniesienia do typu jest częścią tego, co czyni Uwagi co to jest. Ale kiedy pole jest wyświetlane w formie, co zrobić trochę bardziej rygorystyczne. Notes jest szczęśliwy do wyświetlania wartości w każdej dziedzinie, jak formularz jest wyświetlany, a nadal z przyjemnością zrobić, gdy formularz jest w trybie edycji, ale jeśli chodzi o oszczędność czasu, a następnie wartość pola musi odpowiadać typowi pola zgodnie z definicją na formularzu, lub dokument nie zbawi.
Nie ma panaceum na ten jeden, albo - w celu uzyskania dokumentu, aby zapisać za pośrednictwem formularza na front-end, wartości pól i typy muszą się zgadzać. Dotyczy to bezbłędnie Compute z działaniem formularza, również na drodze. Tak więc jest to dobry powód, aby nie mieć żadnych ukrytych edytowalne pola na formularzu. Jeżeli wartości uszkodzone, dokument nie będzie następnie zapisać, a ponieważ pola nie można edytować, użytkownik nie może ich poprawić i wszystko będzie twoja wina - nawet gdybyś nie miał nic z tym zrobić .
Można również uzyskać inne dziwne efekty z braku lub wpisując również i fakt, że Notes wyświetla na ekranie, co jest w podstawowej dziedzinie, niezależnie od typu danych. Wyobraź sobie frustracji i małej ilości przekleństw, co dzieje się, gdy widzisz Uwagi dumnie prezentują 10.00 w dziedzinie, w której musisz ustawić format numeru nie mają miejsc po przecinku - spodziewając się zobaczyć wartość 10. Jak długo trzeba czekać na miejscu, że rzeczywista wartość w polu był tekst "10.00", więc to, co zauważa wyświetlane.
Hide-whens i Rich pól tekstowych
Jest jeszcze jeden temat hide-whens i Rich pól tekstowych. Nigdy, przenigdy nie używać hide-kiedy, aby ukryć lub narazić edytowalne pola tekstu sformatowanego, czy o to chodzi, nie można edytować jeden. To dlatego, że w pola tekstu sformatowanego, w przeciwieństwie do innego rodzaju pola, wartość sama w sobie może zawierać hide-whens.
Co gorsza, podczas tworzenia wartości pola tekstu sformatowanego, modyfikując go za pośrednictwem formularza, akapit pierwszy (przynajmniej) pola odziedziczą ukryć, kiedy z formularza, a następnie przewieźć go wraz z danymi. Gdy pole jest wyświetlane, będzie reagował na ukrycia, gdy z własnych danych, a nie ukrywać, gdy na formularzu.
Co gorsza, ponownie, jeśli użytkownicy skopiuj i wklej Rich danych Tekst lub programowo skopiować go z pola na pole, że skopiowaną wartość nadal zawiera ukryć-gdy wartości z pola źródło, które może nie być, co chcesz w w lokalizacji docelowej.
Co gorsza, nawet więcej, należy zmienić ukryć, gdy na formularzu, żaden z Rich Text danych będzie odpowiedzieć na to, ponieważ zawsze odpowiedzieć na hide-whens w jego własnych danych. Więc wtedy okaże się, że dane, które powinny być widoczne nie jest, a dane nie powinny być, jest widoczny, w zależności oczywiście od okoliczności.
I nie można programowo dotrzeć do przechowywanych ukrycia, gdy dane pobawić się z nim albo, chyba że masz bardzo mądry z API Notes. Na niezawodność aplikacji i perspektywy utrzymania, nie sądzę, będziesz chciał tam pojechać.
Jeśli potrzebujesz do pracy z ukrycia whens i Rich Text, trzeba zamiast korzystać z podformularza komputerowej i na tej podformularza, należy umieścić pola tekstu sformatowanego, a nie używać hide-whens do zarządzania pola tekstu sformatowanego . Co zrobić, zamiast ma zawierać lub nie zawierać podformularza odpowiednio na formularzu, w ten sposób całe pola tekstu sformatowanego albo będzie widoczne i edytowalne lub nie dostać w ogóle.
Minusem tej techniki jest to, że trzeba zamknąć i ponownie otworzyć dokument do zmiany, czy Rich danych Tekst jest wyświetlany, czy nie, ponieważ jest to jedyny sposób na wyrażenie obliczane podformularz przeszacowanej.
Oglądane 7848 razy przez 2561 widzów













