bb.donnay-software.com

Donnay Software Web Forums
It is currently Sun Jun 07, 2020 2:56 am

All times are UTC - 7 hours




Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Tue Dec 10, 2019 9:13 am 
Offline

Joined: Sun Jan 18, 2015 11:43 am
Posts: 517
Location: Slovakia
Hi everybody,

I lost half day when search mistakes with my function.
I have TOOLBARS and in ACTION I have some code block. Today I want create some tool button with codeblock with more rows and Xbase compiler still freezes.
I absolutely do not know why, everythink looks to some limitations in ACTION code.

Can be some problem with this ?

Here is block which not work, when compile program, xbase workbench freeze. When use less rows, xbase compile without problems.
Sorry I do not know why board discompose my formatted text source file, maybe because I used tabs

Code:
        DCADDBUTTON CAPTION "LV+CHRONO STOT/NESTOT OD DÁTUMU" PARENT oToolbar3 ;
        TOOLTIP "Tlač Listu vlastníctva - formát WISKN, chronológia v texte LV" ;
   SIZE 38*znakpixc[1],2.2*fontnv ;
   ACTION {|aslv|eval(bslvtest),eval(bslvtest2),;      // 9.12.2019 pridané aslv pole
      aslv:=ZADAJDATCH(),;            // 9.12.2019 pridané zadanie dátumu od - do a uloženie do pomocného poľa aslv
      iif (slvtest[1]=.T. .or. (slvtest[1]=.F. .and. slvtest2[1]=.F. .and. slvtest[4]=.F.),;            // ak stotožnené alebo nestotožnené
      {;
      ladenie("LV STOTOŽNENÉ alebo NESTOTOŽNENÉ"),;
      slvtest[2]:=aslv[2],;            // 9.12.2019 prepíšem dátum od ktorého sa má spracovať na zadaný dátum
      iif(naozaj2rlvch(SLV->CLV,"0"),;
      {;
      pwbezpotvrdenia:=1,;                           // aby nezobrazoval okno pre výber intervalu, lebo iba od stotožnenia, a tiež zbytočne zdržuje
      (autoref:=.F.),;
      povsel1:=select(),povrec1:=recno(),pomslvclv:=SLV->CLV, ;            // vypnutie refreshu, zapamätanie pozície tu v databáze VLASTNICI
      refreshstop(),;
      relvyp(),;                              // vypínam relácie
      eval(bSLVTEST),;
      slvtest[2]:=aslv[2],;            // 9.12.2019 znova prepíšem dátum od ktorého sa má spracovať na zadaný dátum
      typlvsch(2),;
      lvpluschrono:=.T.,;      // prepnutie na typ LV s chrono v texte
      iif(pwnajprvchrono=0,;
                {pzvolenelv:=flv(4,30,pomslvclv,slvtest)},;                  // generovanie LV ak pôvodné poradie LV a potom chrono
          {pzvolenelv:=pomslvclv,pomtfclv:=pomslvclv}),;               // ošetrenie, ak najprv robím chrono a potom PV, takže premenné musím nadefinovať
      iif(pzvolenelv!=0, ;                           // ošetrenie na prerušenie v dialógu
          { ;
          iif(pomslvclv!=pomtfclv,;
         {pomslvclv:=pomtfclv,DbSeek(pomslvclv),povrec1:=recno()},;
         nil), ;   
          iif(lvpluschrono=.T., ;                           
         {tlaczdroj:=vybertlaczdroj(1), ;                  // nastavenie umiestnenia protokolu
         typredukcie:=vybertypredukcie(2), ;                  // nastavenie typu redukcie protokolu
         iif(mcislolv=0 .or. (lopch=.F. .and. lopch2=.F.),pomhvzch:=HVZCH(1,1,1,0,0,1,1,0,0,pomslvclv,cku,30),pomhvzch:=999999)},;   // nastavenie typu redukcie protokolu
         {pomhvzch:=1}), ;            // generovanie chronológie
          select(povsel1), ;
          dbselectarea(41),;            // doplnené 8.10.2018 !!!
          Eval(bSLVOLP), ;                           // prepnutie do OLP
          DbGoto(pomhvzch), ;                           // skok na záznam v OLP kde je odkaz na protokol z HVZCH
          iif(pomhvzch=0,{lvpluschrono:=.F.},nil), ;                  // znulovanie príznaku ak preruším hľadanie
          iif(lvpluschrono=.T., ;   
         {iif((tlaczdroj[2]!=0 .and. typredukcie!=0),;
              {iif((lopch=.F. .and. lopch2=.F.),zlucptk(OLP->nazptk,tlaczdroj[2],.T.),NIL),;
              iif(typredukcie=2,;                     // ak zvolená redukcia protokolu
                  {iif((pwnajprvchrono=0),;
                  {chronodbffile:=redukciaptkch(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk",tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptkch",1,1),extred:="ch"},;
                  {iif(mcislolv=0 .or. (lopch=.F. .and. lopch2=.F.),chronodbffile:=redukciaptkch2dbf(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk",tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk",1,1),NIL),extred:=""});   // 7.5.2018 tu vyradené ptkch a ch, lebo nižšie pri konfex havarovalo, pov.zapis je nižšie
             },;
                  {extred:=""}), ;                     // neredukovaný protokol bez extred ch
             iif((pwnajprvchrono=1),;                  // ak opačné poradie, tu ošetrené na znovuotvorenie databáz atď. parametre   
                 {otvordbfpreslv(30),;
                 pomslvclv:=pzvolenelv,;
                 pomtfclv:=pzvolenelv,;
                 pzvolenelv:=flv(4,30,pomslvclv,slvtest,pwchronovlv);      // až tu skúsim generovať LV   
                 },;
                 nil),;
         iif((pwnajprvchrono=1 .and. pzvolenelv!=0) .or. (pzvolenelv!=0 .and. konfex(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk"+extred)=.T.),;   // tu by som asi mal iba ak to nie je lv s chrono ? či pozn 17.9.2019
                {PTK2PDF_DCPS(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk"+extred)},;
             {nil})},;
         nil), ;
           },nil), ;                              // prepnutie znova na SLV ale neviem či ok
      },nil), ;                              // koniec ošetrenia na nezadanie LV v dialógu
      otvordbfpreslv(30),select(povsel1),;                     // znovuotvorenie všetkých databáz a otvorenie pôvodnej databázy
      relzap(),DbGoTo(povrec1),refreshstart(),(autoref:=.T.),Eval(bSLVOLP), ;         // zapnutie relácie scope, skok na pôvodné miesto
      oBrowseslv:RefreshAll(),oBrowseo:RefreshAll(),;                              // refresh databáz
      typlvsch(1),;      // vrátenie pôvodného nastavenia
      lvpluschrono:=.F.,;   // vypnutie LV s chrono v texte, lebo hore fixne zapínam
      pwbezpotvrdenia:=0;                           // vrátenie pôvodnej hodnoty
      },nil);         // tj. ak užívateľ nepotvrdí LV s chronológiou
      },iif(slvtest2[1]=.F.,oznam("LV nie je stotožnené, tlač LV s chronológiou nie je povolená !"),oznam("LV je stotožnené ale zrušené, tlač LV s chronológiou nie je povolená !"))),;
      iif((slvtest[1]=.F. .and. slvtest2[1]=.T.) .or. (slvtest[1]=.F. .and. slvtest2[1]=.F. .and. slvtest[4]=.T.),;
      {;
ladenie("tu dám celú funkciu ak platí druhá podmienka pre zrušené LVčka"),;
      iif (slvtest2[1]=.T.,;         // tu vyhodnotím parameter stotožnené a zrušené
           {;
            llvstzr:=.T.,;               // nastavenie že sa bude spracovávať zrušené stotožnené LV
            dlvstzr:=dtoc(stod(substr(SLV->CAS,1,8))),;   // zistenie dátumu stotožnenia už tu, lebo musí z databázy ST
            dlvstzr:=dtoc(slvtest[2]),;         // 13.2.2018 skúšam prepísať dátumom z deleted záznamu v LV
            drlvstzr:=dtoc(SLV->DATB),;         // zistenie dátumu zrušenia LV tu, lebo musí z databázy ST      
            iif(naozaj2rlvch(SLV->CLV,"0"),;
                {;
                 pwbezpotvrdenia:=1,;                           // aby nezobrazoval okno pre výber intervalu, lebo iba od stotožnenia, a tiež zbytočne zdržuje
                (autoref:=.F.),;
                povsel1:=select(),povrec1:=recno(),pomslvclv:=SLV->CLV, ;            // vypnutie refreshu, zapamätanie pozície tu v databáze VLASTNICI
                refreshstop(),;
                relvyp(),;                                 // vypínam relácie
                eval(bSLVTEST),;                              // zisťujem či je LV stotožnené
                typlvsch(2),;
                lvpluschrono:=.T.,;      // prepnutie na typ LV s chrono v texte
                iif(pwnajprvchrono=0,;
                          {pzvolenelv:=flv(4,30,pomslvclv,slvtest)},;                     // generovanie LV ak pôvodné poradie LV a potom chrono
                    {pzvolenelv:=pomslvclv,pomtfclv:=pomslvclv}),;                  // ošetrenie, ak najprv robím chrono a potom PV, takže premenné musím nadefinovať
                iif(pzvolenelv!=0, ;                              // ošetrenie na prerušenie v dialógu
                    { ;
                     iif(pomslvclv!=pomtfclv,;
                    {pomslvclv:=pomtfclv,DbSeek(pomslvclv),povrec1:=recno()},;
                    nil), ;   
                     iif(lvpluschrono=.T., ;
                    {tlaczdroj:=vybertlaczdroj(1), ;                        // nastavenie umiestnenia protokolu
                     typredukcie:=vybertypredukcie(2), ;                        // nastavenie typu redukcie protokolu
                     iif(mcislolv=0 .or. (lopch=.F. .and. lopch2=.F.),pomhvzch:=HVZCH(1,1,1,0,0,1,1,0,0,pomslvclv,cku,30),pomhvzch:=999999)},;                     // nastavenie typu redukcie protokolu
                    {pomhvzch:=1}), ;            // generovanie chronológie
                         select(povsel1), ;
                         dbselectarea(41),;            // doplnené 8.10.2018 !!!
                         Eval(bSLVOLP), ;                                 // prepnutie do OLP
                         DbGoto(pomhvzch), ;                           // skok na záznam v OLP kde je odkaz na protokol z HVZCH
                         iif(pomhvzch=0,{lvpluschrono:=.F.},nil), ;                  // znulovanie príznaku ak preruším hľadanie
                         iif(lvpluschrono=.T., ;   
                        {iif((tlaczdroj[2]!=0 .and. typredukcie!=0),;
                             {iif((lopch=.F. .and. lopch2=.F.),zlucptk(OLP->nazptk,tlaczdroj[2],.T.),NIL),;
                              iif(typredukcie=2,;                  // ak zvolená redukcia protokolu
                                  {iif((pwnajprvchrono=0),;
                                  {chronodbffile:=redukciaptkch(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk",tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptkch",1,1),extred:="ch"},;
                                  {iif(mcislolv=0 .or. (lopch=.F. .and. lopch2=.F.),chronodbffile:=redukciaptkch2dbf(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk",tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk",1,1),NIL),extred:=""});   // 7.5.2018 tu vyradené ptkch a ch, lebo nižšie pri konfex havarovalo, pov.zapis je nižšie
                             },;
                                  {extred:=""}), ;                  // neredukovaný protokol bez extred ch
                         iif((pwnajprvchrono=1),;                  // ak opačné poradie, tu ošetrené na znovuotvorenie databáz atď. parametre   
                             {otvordbfpreslv(30),;
                              pomslvclv:=pzvolenelv,;
                              pomtfclv:=pzvolenelv,;
                              pzvolenelv:=flv(4,30,pomslvclv,slvtest,pwchronovlv);            // až tu skúsim generovať LV   
                             },;
                             nil),;
                              iif((pwnajprvchrono=1 .and. pzvolenelv!=0) .or. (pzvolenelv!=0 .and. konfex(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk"+extred)=.T.),;   // tu by som asi mal iba ak to nie je lv s chrono ? či pozn 17.9.2019
                                     {PTK2PDF_DCPS(tlaczdroj[1]+alltrim(OLP->NAZPTK)+".ptk"+extred)},;
                                  {nil});
                   },;
                   nil;
                  ), ;
                        },nil;
                  ), ;                                 // prepnutie znova na SLV ale neviem či ok
                },nil), ;                                 // koniec ošetrenia na nezadanie LV v dialógu
            otvordbfpreslv(30),select(povsel1),;                        // znovuotvorenie všetkých databáz a otvorenie pôvodnej databázy
            relzap(),DbGoTo(povrec1),refreshstart(),(autoref:=.T.),Eval(bSLVOLP), ;      // zapnutie relácie scope, skok na pôvodné miesto
            oBrowseslv:RefreshAll(),oBrowseo:RefreshAll(),;                              // refresh databáz
            typlvsch(1),;      // vrátenie pôvodného nastavenia
            lvpluschrono:=.F.,;   // vypnutie LV s chrono v texte, lebo hore fixne zapínam
            pwbezpotvrdenia:=0;                           // vrátenie pôvodnej hodnoty
             },nil);         // tj. ak užívateľ nepotvrdí LV s chronológiou
              },;
         iif(slvtest2[1]=.F.,oznam("LV nie je stotožnené, tlač LV s chronológiou nie je povolená !"),oznam("LV je stotožnené ale zrušené, tlač LV s chronológiou nie je povolená !"));
            ),;
          llvstzr:=.F.,;               // nastavenie že sa bude spracovávať zrušené stotožnené LV
          dlvstzd:=dtoc(date()),;            // tu iba pre istotu zmeniť na aktuálny dátum, aby niekde nechýbala hodnota      
          drlvstzd:=dtoc(date());            // tu iba pre istotu zmeniť na aktuálny dátum, aby niekde nechýbala hodnota      
      },;
      {;
      NIL;
      };
      );      // koniec podmienky
      } ;      // koniec celého action bloku
        HIDE {||zoompor=.T.,lanalyzy=.F.} ;
        CONFIG oConfig1


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 21 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group