logo-softwarestudio-2020-600

j_kalendarz.aspx

Kalendarz jest podstawowym narzędziem wielu programów. Program SoftwareStudio udostępnia użytkownikom kalendarz przystosowany do użytkownika.

W domyślnym ustawieniu transakcja wyświetli pełen kalendarz.

W prawym górnym rogu znajdują się przyciski do przełączania pomiędzy widokami, z domyślnie wybranym widokiem tygodnia. Widok agendy jest jedynym który nie daje użytkownikowi możliwości dopisywania i edytowania wydarzeń.

W lewym górnym rogu znajdują się przyciski poruszania po kalendarzu. Strzałki będą zmieniały wyświetlany zakres z zależności od wybranego widoku. Podczas przeglądania pojedynczego dnia będą przeskakiwały o jeden dzień w przód lub w tył, przy widoku tygodnia lub agendy będą pozwalały na zmianę tygodnia, a przy widoku miesiąca o cały miesiąc.

Używanie kalendarza

Korzystanie z kalendarza jest bardzo proste. Aby dodać wydarzenie wystarczy kliknąć prawym przyciskiem myszy w wybrane miejsce w kalendarzu i wybrać Nowe wydarzenie, albo dwukrotnie kliknąć na wybrane miejsce. Otworzy to okienko i ustawi automatycznie datę i godzinę na wybraną z kalendarza. Można także przeciągając zaznaczyć jakiś obszar godzinowy a formularz ustawi godziny jakie wybraliśmy.

Klikając prawym przyciskiem myszy na istniejące zadanie można je usunąć albo edytować. Można także szybko przenosić albo przedłużać wydarzenia zwyczajnie przeciągając je.

Parametry

Transakcja przyjmuje jeden parametrem obowiązkowy – prx oraz jeden opcjonalny – lang

  • PRX – wskazuje na kolumnę PRX w tabeli x_kalendarz, która przechowuje całą konfigurację kalendarza
  • LANG – Parametr umożliwia zmianę języka. W przypadku braku parametru lub wartości PL język ustawiony będzie na polski, gdy parametr przyjmie jakąkolwiek inną wartość język zmieni się na angielski
  • Poza dwoma powyższymi parametrami można przekazać dowolną liczbę parametrów o nazwach takich, jak nazwy kolumn z tabeli calendar i dowolnymi wartościami.
    Przykład: description=ABC&login=rmeller – w efekcie kalendarz odfiltruje tylko wydarzenia, które dopisał uzytkownik o loginie rmeller oraz o wartości kolumny description ABC. Ponadto można przekazać wiele wartości jednej kolumny np. login=rmeller|pczyzak, w takim przypadku do zapytania wyświetlającego wydarzenia w kalendarzu dołożony zostanie warunek filtrujący login IN (’rmeller’, 'pczyzak’).

Konfiguracja

Zakładka Dane podstawowe.

  • Kod – kod PRX jednoznacznie identyfikujący wpis.
  • Nazwa kalendarza – pole do nadania nazwy dla tworzonego kalendarza.
  • Zapytanie – RESOURCES – podzapytanie do zapytania odnoszącego się do tabeli calendar. Ma ono za zadanie wskazanie miejsca, gdzie szukać opisów dla kodów obiektów zapisanych w calendar.RESOURCEID, a następnie wyświetlenie ich u dołu kalendarza jako legendę
    np. wskazanie, że opisy znajdują się w tabeli x_skorowidze
    (SELECT TOP(1) OPIS FROM x_skorowidze WHERE x_skorowidze.KOD=calendar.RESOURCEID AND x_skorowidze.PRX='KAL' AND x_skorowidze.AKTYWNE='1')
  • Warunek filtrowania danych – określenie parametrów jakie mają być przekazywane do DataTable, np. AKTYWNE=1 AND ACH='1'
  • Lista możliwych widoków – lista, rozdzielonych przecinkiem możliwych do wyświetlenia widoków kalendarza np. dayView, weekView, monthView, agendaView, timelineDayView, timelineWeekView, timelineMonthView
  • Kolorystyka obiektów – za pomocą tej kolumny definiujemy kolorystykę obiektów – przyjmuje wartości: schema00, schema01,.., schema26 – domyślna wartość schema04
  • Sposób prezentacji danych – pozwala wybrać widok z jakim ma być wyświetlany standardowo kalendarz (np. tydzień) – przyjmuje jedną z wartości: dayView, weekView, monthView, agendaView, timelineDayView, timelineWeekView, timelineMonthView – domyślna wartość weekView
  • Godzina rozpoczęcia – godzina od której wyświetlany jest kalendarz (szare pole).
  • Godzina zakończenia – godzina do której wyświetlany jest kalendarz (szare pole).
  • Czas pracy od – godzina rozpoczęcia pracy (białe pole).
  • Czas pracy do – godzina zakończenia pracy (białe pole).
  • Aktywne – wpis konfiguracyjny musi być aktywny, aby był brany pod uwagę

Zakładka Uprawnienia.

  • Dodawanie wydarzeń – pole określające możliwość dodawania wydarzeń w kalendarzu za pomocą dwukliku lub opcji w menu kontekstowym
  • Usuwanie wydarzeń – pole określające możliwość usuwania wydarzeń w kalendarzu za pomocą opcji w menu kontekstowym
  • Edycja wydarzeń – pole określające możliwość edycji wydarzeń w kalendarzu za pomocą dwukliku lub opcji w menu kontekstowym
  • Edycja daty – przesuwanie – pole określające możliwość edytowania dat wydarzeń za pomocą przesuwania obiektów
  • Edycja daty – rozciąganie – pole określające możliwość edytowania dat wydarzeń za pomocą rozciągania obiektów
  • Menu kontekstowe – pole określające możliwość wyświetlania menu kontekstowego (włączanego prawym przyciskiem myszy). Domyślnie ustawiona na zezwalanie.
  • Wyświetl ToolTip – pole określające, czy nad zdarzeniem będzie wyświetlany tooltip. Domyślna wartość TAK.
  • Wyświetl Toolbar – pole określające możliwość wyświetlania górnego wiersz wyboru kalendarza i zmiany sposobu prezentacji danych (domyślnie TAK).
  • Wyświetl legendę – pole określające możliwość wyświetlania legendy (domyślnie TAK).
  • Pozycja legendy – pole określające położenie opisu zasobów, domyślnie na dole (bottom), można wyświetlać na górze (top).

Zakładka Zdarzenia.

  • Treść ToolTip – dodatkowe informacje o obiekcie w formie okna nad obiektem.
  • Treść pozycji 1 – treść wyświetlana w polach wydarzeń. Przykład:
(SELECT top(1) SKROCO FROM KNKON WHERE NRIDODN=calendar.NRIDODN) +' '+(SELECT top(1) SKROCO FROM KNKON WHERE NRIDODN=calendar.NRIDCRM)
  • Treść pozycji 2 – dodatkowa treść wyświetlana w polach wydarzeń. Przykład:
CONVERT(varchar(16), DATE_FROM, 120)+'\n'+CONVERT(varchar(16), DATE
  • Skrypt przy zmianie (ScriptOnChange)- pozwala zdefiniować własny skrypt do wykonania, gdy użytkownik dokona zmiany w kalendarzu metodą drag and drop. Do zdefiniowania czynności OnChange zalecane jest użycie Zapytania SQL, czyli UID z tabeli _code_sql.
    Przykład wartości w kolumnie x_kalendarz.SCRIPTONCHANGE:
    let cZapytanie = ssDataSQL(„A5394194-CADB-443F-A6AC-27D1C65C338E”, SSrefno);

    Transkacja j_kalendarz.aspx obsługuję zmienną SSrefno – identyfikator obiektu w kalendarzu.
    Przykład dotychczasowego rozwiązania, tzn. zapytania jawnego zdeklarowanego wprost w kodzie:
    let cZapytanie = "INSERT INTO _historia (PRX, LOGIN, REFNO, NUMERDOK, TYTUL, UWAGI) VALUES ('MAW','@KTO','','"+refno+"','Zmiana terminu',(SELECT TOP(1) SUBSTRING(CONVERT(varchar(16), DATE_FROM, 120),1,17) + ' - ' + SUBSTRING(CONVERT(varchar(16), DATE_TO, 120),1,17) FROM calendar where refno="+refno+") + ' => " + dateFrom+" - "+dateTo+"')"; PageMethods.ssSQL(cZapytanie, 'softwarestudioConnectionString');
    Zapisuje w tabeli _historia każdą zmianę daty i czasu w kalendarzu.
    Gdy chcemy wysłać mail z powiadomieniem do użytkownika o zmianie terminu w kalendarzy użyć możemy polecenia:
    let ssZrodloUser = PobierzDataTable("select TOP(1) *, CONVERT(varchar(10), DATE_FROM, 120) AS DATA_OD, (SELECT TOP(1) NAZWA FROM KNKON WHERE NRIDODN=v_events.nridcrm) AS ODBIERAJACY , (SELECT TOP(1) OPIS FROM X_SKOROWIDZE WHERE PRX='MAG' AND AKTYWNE=1 AND KOD=v_events.RESOURCEID) AS MAGAZYN_OPIS, (SELECT TOP(1) MAIL FROM KNKON WHERE NRIDODN=v_events.NRIDODN) AS MAIL from v_events where refno=" + refno);let cSubject = "Zmiana awizacji magazyn CEVA LP:" + ssZrodloUser[0].MAGAZYN_OPIS;let cMailContent = "Szanowni Państwo<br/><br/><br/>Magazyn CEVA LP:" + ssZrodloUser[0].MAGAZYN_OPIS + "<br/>zmienił Państwa awizacje numer referencyjny: <b>" + refno + "</b><br/>Data: <b>" + ssZrodloUser[0].DATA_OD + " od:" + ssZrodloUser[0].TIME_FROM + " ("+dateFrom+") do:" + ssZrodloUser[0].TIME_TO + " ("+dateTo+")</b>";cMailContent += "<br/>Nr Zlecenia Produkcyjnego IFS / MM: <b>" + ssZrodloUser[0].NRAWIZO + "</b>";cMailContent += "<br/>Osoba odbierająca: <b>" + ssZrodloUser[0].ODBIERAJACY + "</b>";cMailContent += "<br/>Uwagi: <b>" + ssZrodloUser[0].UWAGI + "</b>";let cReplyTo = ssZrodloUser[0].MAIL;let cZapytanie = "INSERT INTO _send ([REFNO],[REFNO_TEMPLATE],[REFNO_GROUP],[SUBJECT],[MAIL_CONTENT],[REPLY_TO],[REPEAT],[ACH],[PRX],[KONTO_MAIL])";cZapytanie += " VALUES ";cZapytanie += "(" + refno + "," + refno + "," + refno + ",'" + cSubject + "','" + cMailContent + "','" + cReplyTo + "',1,'1','EML','CEV') ";cZapytanie += " INSERT INTO _task ([ROLASYS],[PRX],[REFNO],[REFNO_SEND],[TEMAT],[TRESC],[EMAIL],[STATUS],[LOGIN],[REPEAT], [NRIDODN])";cZapytanie += " VALUES ";cZapytanie += "('CEV','EML'," + refno + "," + refno + ",'" + cSubject + "','" + cMailContent + "','" + cReplyTo + "','','@KTO',1, " + ssZrodloUser[0].NRIDODN + ") ";PageMethods.ssSQL(cZapytanie, 'softwarestudioConnectionString');
  • Skrypt na start (ScriptOnLoad) pozwala zdefiniować jaki skrypt JS ma być wykonany po załadowaniu kalendarza.
    $(".ssTextBoxSearch").hide();$("#scheduler").jqxScheduler({min: new $.jqx.date('todayDate').addDays(1), max: new $.jqx.date('todayDate').addDays(20) });

    ScriptOnLoad można wykorzystać do ograniczenia okien czasowych w których można np. wywołać formularz dopisania.
    $(".ssTextBoxSearch").hide();$("#scheduler").jqxScheduler({min: new $.jqx.date(new Date()).addHours(1), max: new $.jqx.date('todayDate').addDays(20) });
    Modyfikacja przez zastąpienie
    new $.jqx.date(’todayDate’).addDays(1), ciągiem new $.jqx.date(new Date()).addHours(1), spowoduje brak reakcji w oknach czasowych rozpoczynających się w ciągu godziny od bieżącej daty. Tym samym można wykorzystać ten skrypt do ograniczenia dopisania awizacji lub jej edycji np w kalendarzach dla spedycji. Różnica czasowa jest podawana w nawiasie za parametrem addHours.
    Ważne! Ograniczenie to działa wyłącznie na uruchomienie przez dwuklik dlatego też menu kontekstowe musi zostać wyłączone
  • Szerokość okna – szerokość okna, które ma wyświetlać się przy edycji/dodaniu wydarzenia – domyślna wartość 600
  • Wysokość okna – wysokość okna, które ma wyświetlać się przy edycji/dodaniu wydarzenia – domyślna wartość 400
  • Nowe zdarzenie – transakcja, która ma być wywołana przy próbie dodania nowego eventu.
    Aby przekazać do transakcji j_insert_update zaznaczony przedział czasu dla którego chcemy dodać nowe wydarzenie


należy do wywołania j_insert_update dodać parametry all_day_event=@ALLDAY&date_from=@DATAOD&date_to=@DATADO oraz podpiąć skrypt script=../role_sys/j_kalendarz_script&scriptonready=MojaOnReady(), który podstawi do kontrolek o nazwach all_day_event, date_from, date_to wartości odczytane z kalendarza. Zaleca się też użycie parametru return=ZamknijOknoJqx aby po zapisie program zamknął okno z transakcją. Przykład wartości dla pola Nowe zdarzenie:

../role_sys/j_insert_update.aspx?kodtransakcji=ADD_CALENDAR_EVENT&leftpanelwidth=0&anuluj=0&return=ZamknijOknoJqx&script=../role_sys/j_kalendarz_script&scriptonready=MojaOnReady()&all_day_event=@ALLDAY&date_from=@DATAOD&date_to=@DATADO&refno=@REFNO

Przykład konfiguracji zestawienia ADD_CALENDAR_EVENT

  • Edycja zdarzenia– transakcja, która ma się wywołać podczas edycji zdarzenia. Należy użyć zmiennej @REFNO ../role_sys/j_insert_update.aspx?kodtransakcji=ADD_CALENDAR_EVENT&leftpanelwidth=0&anuluj=0&return=ZamknijOknoJqx&script=../role_sys/j_kalendarz_script&scriptonready=MojaOnReady()&refno=@REFNO
  • Orientacja – pole określające czy będzie jeden kalendarz dla wszystkich obiektów (zasobów) – wartość domyślna: ’none’. Alternatywnie można podać 'vertical’ lub 'horizontal’, wówczas tworzonych jest wiele kalendarzy, zależnie od zasobu.
  • Szerokość kolumny zasobów – dla widoków o ustalonej orientacji (Orientation=vertical lub horizontal) możemy definiować własną szerokość wiersza, wartość 0 jako domyślna oznacza, że program sam dobierze optymalna szerokość.
  • Wysokość kolumny zasobów – dla widoków o ustalonej orientacji (Orientation=vertical lub horizontal) możemy definiować własną wysokość wiersza, wartość 0 jako domyślna oznacza, że program sam dobierze optymalna wysokość.
  • Wysokość zasobów – określa wysokość wiersza dla widoków o orientacji nieokreślonej (orientation=none).

Konfiguracja za pomocą tabeli SQL_ x_kalendarz.

  • AKTYWNE – wpis konfiguracyjny musi być aktywny, aby był brany pod uwagę
  • PRX – jednoznacznie identyfikuje wpis
  • DefaultStyleMode – za pomocą tej kolumny definiujemy kolorystykę obiektów – przyjmuje wartości: schema00, schema01,.., schema26 – domyślna wartość schema04
  • EventsParameters – definiowanie dodatkowych filtrów do zapytania do tabeli calendar, w której przechowywane są eventy. Pozwoli to na wyświetlanie w kalendarzu odpowiednio ograniczonej liczby wpisów. Domyślną filtracją jest filtracja po kolumnach dataod datado. Możemy dołożyć dowolną inną np LOGIN=’@KTO’ AND PRX=’TEST’
  • SelectedViewMode – pozwala wybrać widok z jakim ma być odpalany kalendarz (dzień, tydzień miesiąc) – przyjmuje jedną z wartości: dayView, weekView, monthView, agendaView, timelineDayView, timelineWeekView, timelineMonthView – domyślna wartość weekView
  • VIEWS_JQUERYAllowAdd – kolumna bitowa oznaczająca, czy ma być możliwość dodawania nowych eventów za pomocą dwukliku lub opcji w menu kontekstowym
  • AllowEdit – kolumna bitowa oznaczająca, czy ma być możliwość edytowania eventów za pomocą dwukliku lub opcji w menu kontekstowym
  • AllowMove – kolumna bitowa oznaczająca, czy ma być możliwość edytowania daty eventów za pomocą przesuwania obiektu
  • AllowResize – kolumna bitowa oznaczająca, czy ma być możliwość edytowania daty eventów za pomocą rozciągania obiektu
  • AllowDelete – kolumna bitowa oznaczająca, czy ma być możliwość usuwania eventów za pomocą opcji w menu kontekstowym
  • AddingUrl – transakcja, która ma być wywołana przy próbie dodania nowego eventu.
    Aby przekazać do transakcji j_insert_update zaznaczony przedział czasu dla którego chcemy dodać nowe wydarzenie

    należy do wywołania j_insert_update dodać parametry all_day_event=@ALLDAY&date_from=@DATAOD&date_to=@DATADO oraz podpiąć skrypt script=../role_sys/j_kalendarz_script&scriptonready=MojaOnReady(), który podstawi do kontrolek o nazwach all_day_event, date_from, date_to wartości odczytane z kalendarza. Zaleca się też użycie parametru return=ZamknijOknoJqx aby po zapisie program zamknął okno z transakcją.Przykład wartości dla kolumny AddingUrl ../role_sys/j_insert_update.aspx?kodtransakcji=ADD_CALENDAR_EVENT&leftpanelwidth=0&anuluj=0&return=ZamknijOknoJqx&script=../role_sys/j_kalendarz_script&scriptonready=MojaOnReady()&all_day_event=@ALLDAY&date_from=@DATAOD&date_to=@DATADO&refno=@REFNO Przykład konfiguracji zestawienia ADD_CALENDAR_EVENT
  • EditingUrl – transakcja, która ma sie wywołać podczas edycji eventu. Należy użyć zmiennej @REFNO ../role_sys/j_insert_update.aspx?kodtransakcji=ADD_CALENDAR_EVENT&leftpanelwidth=0&anuluj=0&return=ZamknijOknoJqx&script=../role_sys/j_kalendarz_script&scriptonready=MojaOnReady()&refno=@REFNO
  • FRAME_W – szerokość okna, które ma wyświetla się przy edycji/dodaniu wydarzenia – domyślna wartość 600
  • FRAME_H – wysokość okna, które ma wyświetla się przy edycji/dodaniu wydarzenia – domyślna wartość 400
  • RESOURCES – podzapytanie do zapytania odnoszącego się do tabeli calendar. Ma ono za zadanie wskazanie miejsca, gdzie szukać opisów dla kodów obiektów zapisanych w calendar.RESOURCEID, a następnie wyświetlenie ich u dołu kalendarza jako legendę
    np. wskazanie, że opisy znajdują się w tabeli x_skorowidze (SELECT TOP(1) OPIS FROM x_skorowidze WHERE x_skorowidze.KOD=calendar.RESOURCEID AND x_skorowidze.PRX=’KAL’ AND x_skorowidze.AKTYWNE=’1′)
  • VIEWS – lista, rozdzielonych przecinkiem możliwych do wyświetlenia widoków. Obsługiwane wartośći dayView, weekView, monthView, agendaView, timelineDayView, timelineWeekView, timelineMonthView
  • VIEWS_JQUERY – Aletrnatywne do kolumny VIEW formatowanie obiektów i możliwosci wyboru widoku. Domyślnie NULL oznacza odczyt ustawień z kolumny VIEW. Przykładowo:
    { type: 'timelineDayView', appointmentHeight: 250, timeSlotWidth: 50, timeRuler: { formatString: "HH:mm" } }, { type: 'dayView', workTime: { fromDayOfWeek: 1, toDayOfWeek: 5, fromHour: 8, toHour: 16 }, timeRuler: { formatString: 'HH:mm' , scaleStartHour:7 }} , { type: 'weekView', workTime: { fromDayOfWeek: 1, toDayOfWeek: 5, fromHour: 8, toHour: 16 }, timeRuler: { formatString: 'HH:mm' } }, { type: 'monthView' }, { type: 'agendaView'} 

Sets or gets the Scheduler’s views. Each view in the Array can be String or Object. Strings are: 'dayView’, 'weekView’, 'monthView’, 'timelineDayView’, 'timelineWeekView’, 'timelineMonthView’, 'agendaView’. If it is an object it can have the following members:

appointmentColumnWidth – Number which defines the Appointment column width in the Agenda view.
appointmentHeight – Sets the minimum height of an appointment in All Day Row, Month View or Timeline Views. Default is automatically calculated.
appointmentsRenderMode – Sets the appointments rendering mode. Possible value: „exactTime”. In the „exactTime” mode, appointments may render partially in the cells.
allDayRowHeight – Number which defines the all day row’s height. Default is automatically calculated.
dayViewNavigation – Boolean which is taken into account in Month View. It defines whether clicking on month cell header navigates to Day View. Default is false.
days – Number which defines the number of days in the Agenda view. Default is 7.
dateColumnWidth – Number which defines the Date column width in the Agenda view.
monthRowAutoHeight – Boolean which defines whether row height in month view is automatic. Default is false.
rowHeight – Number which defines the rows height in the view. Default is null.
showWeekends – Boolean which defines whether weekens will be displayed. Default is true.
showWorkTime – Boolean which defines whether the work time is displayed in Day View, Week View, Timeline Day View and Timeline Week View. Default is true.
showWeekNumbers – Boolean which defines whether the week numbers are dispalyed in Month View. Default is false.
showTimeRangeStatus – Boolean which defines whether the time range status of appointments which have duration >= 1 day and are not all day appointments is displayed in Month View and Day/Week views all day area.
type – String which sets the view’s type. Values: 'dayView’, 'weekView’, 'monthView’, 'timelineDayView’, 'timelineWeekView’, 'timelineMonthView’.
timeRuler – Object which can have the following members:
width – Number which sets the width of the time ruler. Default is 60.
hidden – Sets whether the time ruler is displayed.
timeZones – Sets an Array of time zones. Example: [{ id: „UTC”, text: „UTC” }, { id: „Pacific Standard Time”, text: „PST” }].
text – Sets the text of the time ruler column.
scale – Sets the time ruler’s scale. Values: 'hour’, 'halfHour’, 'quarterHour’, 'tenMinutes’, 'fiveMinutes’
scaleStartHour – Sets the scale’s start hour.
scaleEndHour – Sets the scale’s end hour.
formatString – Sets the Hours and Minutes format string. Example: „hh:mm”.
position – Sets the time ruler’s position. Possible values: 'left’ or 'right’.
text – Sets the view’s display text in the Scheduler’s Toolbar. Default is automatically set and defined in Scheduler’s localization.
timeSlotWidth – Number which defines the width of a time slot in Timeline views. The minimum value is 30.
timeColumnWidth – Number which defines the Time column width in the Agenda view.
weekViewNavigation – Boolean which is taken into account in Month View. It defines whether clicking on week number cell header navigates to Week View. Default is false.
workTime – Object which defines the Scheduler’s work time. Example: { fromDayOfWeek: 1, toDayOfWeek: 5, fromHour: 7, toHour: 19 }

  • START_HOUR – godzina od której wyświetlany jest kalendarz.
  • END_HOUR – godzina do której wyświetlany jest kalendarz.
  • START_WORK – godzina rozpoczęcia pracy (białe pole).
  • END_WORK – godzina zakończenia pracy (białe pole).
  • AllowContexMenu – kolumna bitowa pozwalająca na wyświetlanie menu kontekstowego (włączanego prawym przyciskiem myszy). Domyślnie ustawiona na zezwalanie.
  • AppointmentTooltips – kolumna bitowa określająca, czy nad zdarzeniem będzie wyświetlany tooltip. Domyślna wartość TAK.
  • ShowToolbar – kolumna bitowa określająca, czy będzie wyświetlany górny wiersz wyboru kalendarza i zmiany sposobu prezentacji danych (domyślnie TAK).
  • ShowLegend – kolumna bitowa określająca, czy legenda ma być widoczna (domyślnie TAK).
  • LegendPosition – kolumna bitowa określająca położenie opisu zasobów, domyślnie na dole (bottom), można wyświetlać na górze (top).
  • ReadyFunction – nie używane
  • Orientation – określa czy będzie jeden kalendarz dla wszystkich obiektów (zasobów) – wartość domyślna 'none’. Alternatywnie można podać 'vertical’ lub 'horizontal’, wówczas tworzonych jest wiele kalendarzy, zależnie od zasobu.
  • ResourceColumnWidth – dla widoków o ustalonej orientacji (Orientation=vertical lub horizontal) możemy definiować własną szerokość wiersza, wartość 0 jako domyślna oznacza, że program sam dobierze optymalna szerokość.
  • ResourceRowHeight – dla widoków o ustalonej orientacji (Orientation=vertical lub horizontal) możemy definiować własną wysokość wiersza, wartość 0 jako domyślna oznacza, że program sam dobierze optymalna wysokość.
  • RowsHeight – określa wysokość wiersza dla widoków o orientacji nieokreślonej (orientation=none).
  • ToolTip – dodatkowe informacje o obiekcie w formie okna nad obiektem.
  • CalendarTekst– treść wyświetlana w polach wydarzeń. Przykład:
(SELECT top(1) SKROCO FROM KNKON WHERE NRIDODN=calendar.NRIDODN) +' '+(SELECT top(1) SKROCO FROM KNKON WHERE NRIDODN=calendar.NRIDCRM)
  • LocationTekst – dodatkowa treść wyświetlana w polach wydarzeń. Przykład:
CONVERT(varchar(16), DATE_FROM, 120)+'\n'+CONVERT(varchar(16), DATE
  • ScriptOnChange – pozwala zdefiniować własny skrypt do wykonania, gdy użytkownik dokona zmiany w kalendarzu metodą drag and drop. Przykładowo:
    let cZapytanie = "INSERT INTO _historia (PRX, LOGIN, REFNO, NUMERDOK, TYTUL, UWAGI) VALUES ('MAW','@KTO','','"+refno+"','Zmiana terminu',(SELECT TOP(1) SUBSTRING(CONVERT(varchar(16), DATE_FROM, 120),1,17) + ' - ' + SUBSTRING(CONVERT(varchar(16), DATE_TO, 120),1,17) FROM calendar where refno="+refno+") + ' => " + dateFrom+" - "+dateTo+"')"; PageMethods.ssSQL(cZapytanie, 'softwarestudioConnectionString');
    Zapisuje w tabeli _historia każdą zmianę daty i czasu w kalendarzu.
  • KODEML – opcjonalne wskazanie szablony wiadomości e-mail jaki ma być wykorzystany do wysyłki e-mail. Domyślnie jest to szablon VSSDEFAULT. Można podać inny kod dla skorowidza prx=EML.

Wysyłanie wiadomości e-mail

Zapisane w kalendarzu zdarzenia pozwalają na skorzystanie ze kilku standardowych opcji. Jedną z nich jest wysłanie e-mail.

Uruchamiana jest standardowa transakcja x_mail.aspx. Domyślnie przekazywany jest parametr kodeml=VSSDEFAULT, jednak możemy ustawić dowolny inny szablon powiadomienia.

Wysyłanie wiadomości SMS

Za pomocą transakcji kalendarza możemy uruchomić uniwersalną transakcje wysyłania wiadomości SMS.

Definicja transakcji do wysłania SMS to zapis w kolumnie x_kalendarz.SMS. Jeżeli nie wskazano transakcji zostanie uruchomiona domyślna:

/role_sys/x_sms.aspx?tab=v_events&kol=KIEROWCA_TEL&id=refno&refno=

Możemy wskazać dowolną inną, pamiętając, że na końcu zostanie automatycznie dodany numer referencyjny wskazanego zdarzenia z kalendarza.

Problem z wyświetlaniem danych w kalendarzu

Może się zdarzyć taka sytuacja, że pomimo prawidłowej konfiguracji kalendarza przestanie on nagle wyświetlać dane, a po wywołaniu transakcji widoczna jest tylko ikonka Proszę czekać. W takim wypadku istnieje spore prawdopodobieństwo, że do tabeli calendar lub dpmaw został wpisany znak, którego transakcja nie potrafi obsłużyć. Do takich znaków niewątpliwie należą znaki: pionowej kreski (|), cudzysłowia („), ukośnika (\). Aby zabezpieczyć problem z wyświetlaniem danych w kalendarzu możemy zamieniać kłopotliwe znaki na wartość pustą korzystając z funkcji REPLACE.

Przykładowo:

Treść ToolTip wynika z zapytania:

(SELECT TOP(1) SKROCO FROM KNKON WHERE NRIDODN=calendar.NRIDODN ) + (SELECT TOP(1)  '\nAwizo:' + NRAWIZO + '\nAuto: ' + NRAUTA + '\nLP:' + ISNULL(NRDOKUMENTU,'') FROM dpmaw WHERE REFNO=calendar.REFNO)

Funkcją Replace zamieniamy kłopotliwe znaki, a więc cudzysłowiu („), pionowej kreski (|) i ukośnika (\) na puste znaki

(SELECT TOP(1) SKROCO FROM KNKON WHERE NRIDODN=calendar.NRIDODN ) + (SELECT TOP(1) replace(replace(replace('\nAwizo:' + NRAWIZO + '\nAuto: ' + NRAUTA + '\nLP:' + ISNULL(NRDOKUMENTU,''), '"', ''), '|', ''), '\', '') FROM dpmaw WHERE REFNO=calendar.REFNO)

Zmiany zapytania w razie potrzeby należy także dokonać w polach Treść pozycji 1 i Treść pozycji 1.

Kolorystyka schematów kalendarzy:

schema01

schema02

schema03

schema04

schema05

schema06

schema07

schema08

schema09

schema10

schema11

schema12

schema13

schema14

schema15

schema16

schema17

schema18

schema19

schema20

schema21

schema22

schema23

translator.aspx

Platforma umożliwia również użytkownikom dostosowanie wyświetlania ich danych. Mogą wybrać rozmiar i położenie kolumn w…

SuperVisor

Platforma StudioSystem to innowacyjne narzędzie dla kreatywnych profesjonalistów. Oferuje szereg funkcji, które pomagają usprawnić i…

Konfiguracja TABELE

Platforma StudioSystem została stworzona, aby pomóc firmom zarządzać dużymi ilościami danych w wydajny i niezawodny…