Adresy na kopertach

Czyli pomysły na ulepszanie dobrego.

Adresy na kopertach

Postautor: wzzz » 08 cze 2011 10:58

Witam
w wersji 2.0.15 pojawiła się możliwość wydruku adresu na kopercie.
Parametr który określa, który adres ma być brany do wydruku jest tym samym który określa kolejność adresów na decyzji.

Bardziej uniwersalne rozwiązanie było by gdyby były dwa parametry jeden do określania kolejności adresów na decyzjach a drugi do
określania kolejności adresów na kopertach/zwrotkach.

W naszym Urzędzie przyjmuje się że na decyzji (jeśli jest) drukuje się adres tymczasowy lub stały a wysyła się na adres korespondencyjny.
wzzz
Instruktor
Instruktor

Re: Adresy na kopertach

Postautor: RKino » 22 cze 2011 21:37

Bardzo popieram, wręcz naturalnym wydaje się drukowanie na kopertach priorytetowo adresu korespondencyjnego, a jeżeli nie istnieje, to pobytu/tymczasowego... stałego, ale napewno w pierwszej kolejności korespondencyjnego, bo juz nie raz mieliśmy awanturę z tego powodu-wysłania na adres inny niż korespondencyjny.
RKino
Konsultant
Konsultant

Re: Adresy na kopertach

Postautor: Łukasz » 24 cze 2011 8:07

A czy to nie jest tak, że na kopercie powinien widnieć taki sam adres jak na decyzji?
Łukasz
JOKER
JOKER

Re: Adresy na kopertach

Postautor: wzzz » 23 sie 2011 10:49

Witam
U nas niestety jest tak przyjęte że na decyzji wychodzi adres w kolejności: TY,ST,KO,ZA,SI,IN
a na kopercie powinien być w kolejności: KO,TY,ST,ZA,SI,IN.
Napisałem funkcję, która na podstawie parametrów adresat, adres1, adres2 wyszukuje daną osobę i generuje adres danej osoby w kolejności jaką ustalimy sobie w parametrze KolejnoscAdresow,
parametry wejściowe funkcji: adresat, adres1, adres2, KolejnoscAdresow (parametr ustawiany ręcznie typu znakowego z domyślą wartością np. KO,TY,ST,ZA,SI,IN - lub taką z jaką chcemy ustalić priorytety adresów)
parametry wyjściowe to: MAdres1, MAdres2, MAdres3, typu znakowego.
Funkcję wklejamy albo w rodzaju dokumentu (koperta, ZWR-potw-odb) albo w którymś z wariantów tych dokumentów, w szablonie zmieniamy parametr adres1, adres2, adres3 na MAdres1, MAdres2, MAdres3.

Kod: Zaznacz cały
function gen_query(pidOsoby, pTabKolAdres)
/*Funckja generuje treść zayptania SQL dla osoby o danym IdOsoby z sortowaniem wg. kolejności adresów z tablicy pTabKolAdres''*/
{
     var f_psql_query = "";
     f_psql_query =  " SELECT TRIM(SPLIT_PART(SAD.adres_opisowy, ',' , 1)), " +
                                " TRIM(SPLIT_PART(SAD.adres_opisowy, ',' , 2)), " +
                                "TRIM(SPLIT_PART(SAD.adres_opisowy, ',' , 3)) " +
                                " FROM sy_adres SAD " +
                                " WHERE SAD.id = '" +  pidOsoby +"' AND SAD.relacja = 'foosobak' AND (SAD.data_do_tymczas IS NULL OR SAD.data_do_tymczas >= CURRENT_DATE) " +
                                "ORDER BY " +
                                "CASE ";
   
      for( i = 0; i < pTabKolAdres.length; i++)
      {
             f_psql_query = f_psql_query + " WHEN SAD.kod_rodz_adr = 'RPs022|" + String(pTabKolAdres[i]) + "' THEN " + String(i+1);
      }
             f_psql_query = f_psql_query +" ELSE " + String(pTabKolAdres.length+1) + " END";

     return f_psql_query;
}

var  tab_pom = [];
var tab_kolAdrParamLok = [];
var padresat = $adresat$;
var liczbaOsob = 0;
var $madres1$ = "";
var $madres2$ = "";
var $madres3$ = "";

var tab_kolAdrNaKopercie = String($kolejnoscadresow$).split(",");

//Szukamy w bazie osoby o imieniu i nazwisku takim samym jak w parametrze adresat.
psql_query = "SELECT id_osoby " +
                      "FROM fo_osoba_klient " +
                      "WHERE (COALESCE(imie1 || ' ' || COALESCE(nazwisko || ' ' || nazwisko2 , nazwisko))) = '" + $adresat$ +"'";

psql = run.SQL(psql_query);

if(psql.size() == null)
{
    System.addInfo("Procedura nie określiła osoby !!!!!");
    liczbaOsob = 0;
}
else
{
   liczbaOsob = psql.size();
}


if (liczbaOsob == 0)  //nie znaleziono żadnej osoby
{
      System.addInfo("Procedura nie określiła osoby !!!!!");
      $madres1$ =$adres1$;
      $madres2$=$adres2$;
      $madres3$=$adres3$;
}

else if (liczbaOsob == 1)   //jeśli jest tylko jedna osoba
{
     idOsoby = psql.get(0, 0);                                                //pobieramy id osoby
     
     psql_query1 = gen_query(idOsoby, tab_kolAdrNaKopercie);  //szukamy adresu dla danej osoby wg. koljeności z parametru kolejnoscadresow

     psql1 = run.SQL(psql_query1);
 
     $madres1$ =  psql1.get(0, 0);  //przypisujemy zmiennym wyszukany adres.
     $madres2$ = psql1.get(0, 1);
     $madres3$ = psql1.get(0, 2);
     if ($madres3$[0] ==  "t") { $madres3$ = "";}
}

else if (liczbaOsob > 1)
{
  //szukamy ustawień parametru - KolejnoscAdresow -
   psql_query1 = "SELECT CASE WHEN AWPS.wartosc_c IS NULL THEN '' ELSE AWPS.wartosc_c END " +
                           "FROM ad_def_par_sys ADPSM LEFT JOIN " +
                          " ( " +
                               " SELECT   AWPS.id_parametru, AWPS.wartosc_c, AWPS.data_od, AWPS.id_wartosci " +
                                " FROM     ad_wart_par_sys AWPS " +
                                " WHERE    data_od <= CURRENT_DATE " +
                                " GROUP BY AWPS.id_parametru,AWPS.wartosc_c, AWPS.data_od, AWPS.id_wartosci " +
                                "  HAVING   max(data_od) = ( " +
                                            " SELECT Max(data_od) " +
                                            " FROM   ad_wart_par_sys AWPS1 " +
                                                 " WHERE  AWPS1.id_parametru = AWPS.id_parametru " +
                                                 " AND AWPS1.data_od <= CURRENT_DATE " +
                                    " )" +
                                   " ) AWPS ON (ADPSM.id_parametru = AWPS.id_parametru) " +
                                   " WHERE ((UPPER(ADPSM.nazwa_par_sys) = UPPER('KolejnoscAdresow'))) AND (ADPSM.pokaz = 'T') ";

    psql1 = run.SQL(psql_query1);
    tab_kolAdrParamLok = String( psql1.get(0,0) ).split(",");
   
          for (p = 0; p <  liczbaOsob; p++) //przeszukujemy wszystkie osoby o tym samym nazwisku i imieniu
         {
               idOsoby = psql.get(p, 0);
               psql_query2 = gen_query(idOsoby,  tab_kolAdrParamLok);  //generujemy zapytanie o adresy dla danej osoby - sortujemy wg. parametru lokalnego
               
              psql2 = run.SQL(psql_query2);
       
                if (psql2.size() != null)
               {
                    padr1 =  psql2.get(0, 0);
                    padr2 = psql2.get(0, 1);
                    padr3 = psql2.get(0, 2);
                    if (padr3[0] ==  "t") { padr3 = "";}
                    if(String(padr1) == String($adres1$) && String(padr2) == String($adres2$) && String(padr3) == String($adres3$))  //jesli adresy się zgadzają szukamy adresu wg. koljeności z parametru tab_kolAdrNaKopercie
                    {
                         psql_query2 = gen_query(idOsoby, tab_kolAdrNaKopercie);                         
                         psql2 = run.SQL(psql_query2);
                         $madres1$ =  psql2.get(0, 0); //przypisujemy zmiennym wyszukany adres.
                         $madres2$ = psql2.get(0, 1);
                         $madres3$ = psql2.get(0, 2);
                         if ($madres3$[0] ==  "t") { $madres3$ = "";}
                          break;
                    }
               }
         }
}


dodałem trzeci parametr MAdres3...
Ostatnio zmieniony 12 wrz 2011 9:56 przez wzzz, łącznie zmieniany 2 razy
wzzz
Instruktor
Instruktor

Re: Adresy na kopertach

Postautor: loto » 08 wrz 2011 15:10

Funkcja się przydała, tylko w przypadku gdy adres składa się z 3 linii to wychodzi na kopercie bez kodu pocztwoego i poczty.
loto
Konsultant
Konsultant

Re: Adresy na kopertach

Postautor: wzzz » 09 wrz 2011 7:26

loto pisze:Funkcja się przydała, tylko w przypadku gdy adres składa się z 3 linii to wychodzi na kopercie bez kodu pocztwoego i poczty.

No właśnie co w tej 3 lini się wyświetla bo u mnie ona jest zawsze pusta?
wzzz
Instruktor
Instruktor

Re: Adresy na kopertach

Postautor: loto » 09 wrz 2011 9:15

wzzz pisze:No właśnie co w tej 3 lini się wyświetla bo u mnie ona jest zawsze pusta?


Jeżeli adres jest taki:
ul. Nowa 12
Zawada
97-225 Ujazd

to wtedy w 3 linii jest kod pocztwy i poczta. Mi się udało przerobić twoją funkcje w ten sposób że wychodzi 3 linia, ale jeżeli adres jest krótszy i składa się z 2 linii to mi na kopercie drukuje telefon.
loto
Konsultant
Konsultant

Re: Adresy na kopertach

Postautor: Marco » 09 wrz 2011 9:30

ode mnie taka mała funkcja, przerabiająca adresy na poszczególne zwroty/wyrażenia

jest akurat pod organizację, ale nic nie stoi na przeszkodzie, aby to przerobić pod osoby
Kod: Zaznacz cały
org=$cnazwaorganiz$;

sql = "SELECT sy_organizacja_klient.adres_opisowy "
+ " FROM sy_organizacja_klient"
+ " WHERE  sy_organizacja_klient.nazwa_organiz  = " + "'"+ org+"'" ;

tab = run.SQL(sql);
adresik= tab.get(0,0);

if (adresik==null)
{
$adres$=adresik;
}
else
{
adr=adresik.split(', ');
$adres$=adr[0];
$adres2$=adr[1];
if(adr[2]==null)
{
$adres3$='';
}
else
     {
     tnij_adr2=adr[2].substr(0,3);
     if (tnij_adr2=='tel')
          {
          $adres3$='';
          }
          else
          {
          $adres3$=adr[2];
          }
     if (adr[3]==null)
          {
          $adres4$='';
          }
          else
          {
          $adres4$=adr[3];
          }
     }
}


parametry wyjściowe: adres - Adres - ulica, adres2 - Adres2 - kod+miejscowość/miejscowość, adres3 - Adres3 - tel/kod+miejscowość, adres4 - tel

u nas takie coś działa zaje...fajnie :-DDD
Marco
Omnibus
Omnibus

Re: Adresy na kopertach

Postautor: wzzz » 09 wrz 2011 22:02

loto pisze:
Jeżeli adres jest taki:
ul. Nowa 12
Zawada
97-225 Ujazd

to wtedy w 3 linii jest kod pocztwy i poczta. Mi się udało przerobić twoją funkcje w ten sposób że wychodzi 3 linia, ale jeżeli adres jest krótszy i składa się z 2 linii to mi na kopercie drukuje telefon.

Zmodyfikowałem procedurę o obsługę tej trzeciej linii. (treść procedury powyżej w moim poście)
wzzz
Instruktor
Instruktor

Re: Adresy na kopertach

Postautor: piotrc » 12 kwie 2013 9:12

czy ktoś może mi przypomnieć gdzie się definiowało parametry papieru dla kopert - nie mogę znaleźć?
jakiś geniusz organizacji zmienił kosmetycznie wygląd zółtej zwrotki i muszę od nowa formatować...
piotrc
AS
AS

Re: Adresy na kopertach

Postautor: Marco » 12 kwie 2013 9:41

chodzi ci o format papieru, to masz od tego słownik

RPl052 - Format papieru.
Marco
Omnibus
Omnibus

Re: Adresy na kopertach

Postautor: zwierz » 22 sty 2018 14:26

Czy drukuje ktoś zwrotki z syriusza?
Mam pytanie jak to robić. Na kopertach rozumiem, ale jak leci ze zwrotką jestem ciekaw(Podklejany kartonik do oderwania :))itp. .
zwierz
Przewodnik
Przewodnik

Re: Adresy na kopertach

Postautor: dadem » 22 sty 2018 16:28

Witam
na naszych zwrotkach klej jest tylko po bokach i czasem w drukarce albo zwrotka/koperta zostanie lub co częściej się zdarza klej zostaje na rolkach.
Do kopert i zwrotek używamy drukarek OKI B410/B440/B411/B431.
dadem
Konsultant
Konsultant

Re: Adresy na kopertach

Postautor: adamwj » 23 sty 2018 8:54

Dobrze drukowało się zwrotki na drukarce HP 2015 dn - drukujemy na drukach dostarczonych przez Pocztę Polską. Potem kupiliśmy drukarki HP M402dn ale na nowych drukach Poczty Polskiej rozmazywało wydruk. Przed rokiem kupiliśmy drukarki STROMAX F-100X ( atramentowa ) wydruk OK ale potrafi przesunąć lekko wydruk.
adamwj
Nowicjusz
Nowicjusz

Re: Adresy na kopertach

Postautor: Marecky » 23 sty 2018 9:25

U nas mamy zwrotki z klejem po bokach. Ustawiliśmy szablon tak, aby pola pasowały do kropek i zwrotki lecą na drukarkach. Jest czasem lekkie przesunięcie ale zwrotka jest w 100% czytelna.
Marecky
Przewodnik
Przewodnik

Następna

Wróć do Eureka

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości