j_insert_update – zaawansowane programowanie – pozycje dokumentu cz. II

W poprzednim artykule opisałem metodę wykorzystania transkacji j_insert_update.aspx do przygotowania formularza dopisywania pozycji dokumentu. Poniższy artykuł jest kontynuacją poprzedniego i opisuje dodatkowe zmiany w projektowaniu formularza.

W poprzednim artykule opisałem jak stworzyć formularz taki jak ten:

insert_update pozycje

 

Wyświetlanie tabelki od lewej krawędzi

Dane na formularzu umieszczane są w dwóch kolumnach, lewa to opis (caption) danej kontrolki, w drugiej kolumnie kontrolka. W związku z tym opis Kontrahent, Asortyment, Ilość itp. są po lewej stronie ze stałą szerokością. W formularzu jak powyżej możemy chcieć, aby tabela była wyświetlana od lewej strony, by zapełnić wolne miejsce. Zrealizować to możemy zmieniając szerokość opisu (który w tym wypadku jest pusty, bo w konfiguracji  kolumnie tytuł wpisałem znak -) dodając w funkcji uruchamianej onLoad na polecenie zmiany szerokości obiektu po lewej stronie tabelki (obiekt jest niewidoczny dla użytkownika). Identyfikator obiektu to słowo caption + zdefiniowana nazwa kontrolki, przykładowo kontrolkę do wyświetlania tabeli nazwałem TABELA, tak więc obiekt do zmiany szerokości identyfikuję jako captionTABELA

Dodaję więc polecenie ustawiające szerokość na 10 pikseli:

$('#captionTABELA').css('width', '10px');

Cała funkcja wygląda teraz tak:

function SsOnLoad() {
 $('#BTN_DODAJ').html("<span id='btnDodaj' onclick='return btnDodaj()' class='art-button art-buttonBlue' style='width: 200px; '>Dodaj</span>");
 UstawDphanTable('TABELA');
 $('#captionTABELA').css('width', '10px');
}

A dla użytkownika w programie:

insert_update pozycje left obiekt

 Podział formularza na zakładki

Wywołując transakcję usuwam parametr ustawiający lewy panel na 0 pikseli, teraz uruchamiam z parametrami:

script=../role_crm/crm_dphan&scriptonload=SsOnLoad()&scriptonready=SsOnReady()&kodtransakcji=CRM_INS_DPHAN&refno=

W efekcie otrzymuję widoczny panel po lewej stronie z nazwą jednej zakładki

insert_update left panel

Zakładka nagłówek

Zmieniam nazwę zakładki dla pola kontrahent na Nagłówek:

insert_update left panel nagłówek

W efekcie zmiany otrzymam nową zakładkę w której znajdzie się kontrolka wyboru kontrahenta

insert_update left panel nagłówek 1

Pozostałe kontrolki program umieścił w zakładce pozycje

insert_update left panel nagłówek 2

 

Ustawienie w zakładce nagłówek dodatkowych kontrolek:

  • Miejsce dostawy
  • Termin realizacji
  • Opis

W efekcie otrzymujemy

insert_update zakładka nagłówek

 

 

Konfiguracja

Całość ustawień prezentuje poniższa tabela:

insert_update konfiguracja

NRIDODN

W kolumnie zapytanie dla combo

TOP(20) UPPER(NRIDODN), SKROCO + ' (' +MIEJSCOWOSC + ')' AS OPIS FROM knkon WHERE ROLASYS=@ROLASYS AND (SKROCO + MIEJSCOWOSC LIKE '%$$SearchString%') and (AKTYWNE = 1) ORDER BY SKROCO

W kolumnie parametry

ssplaceholder='Nazwa kontrahenta lub miejscowość (min 2 znaki)'

 

NRIDCRM

W kolumnie zapytanie dla combo

upper(NRIDCRM) AS NRIDCRM, NAZWA FROM KNCRM WHERE PRX='MDN' AND NRIDODN=$$SearchString AND AKTYWNE=1 ORDER BY NAZWA

W kolumnie parametry

ssparentcombo="NRIDODN" ssselect="upper(NRIDCRM) AS NRIDCRM, NAZWA FROM KNCRM WHERE PRX='MDN' AND NRIDODN=$$SearchString AND AKTYWNE=1 ORDER BY NAZWA"

NRIDASN

W kolumnie zapytanie dla combo

TOP(20) NRIDASN, INDEKS + ' ' + NAZWAAS AS INDKES FROM knaso WHERE (INDEKS + NAZWAAS LIKE '%$$SearchString%' ) AND (AKTYWNE = 1) ORDER BY INDEKS

W kolumnie parametry

ssplaceholder='Indeks lub nazwa artykułu (min 2 znaki)'