Uživatelské nástroje

Nástroje pro tento web


lua:tisk_pomoci_lua

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
lua:tisk_pomoci_lua [2023/05/12 12:55] – [Ukázka nevizuálního tisku middle:] Karel Petrůlua:tisk_pomoci_lua [2023/05/25 11:34] (aktuální) – [Ukázka tisku vizuálního:] Karel Petrů
Řádek 6: Řádek 6:
   * pokud se tiskne z Query a chceme dokument ukládat k danému rozpočtu, musí byt v prvním Query field //TypDokl=R// a v printu **NESMÍ** být //GotoNextPage=false//   * pokud se tiskne z Query a chceme dokument ukládat k danému rozpočtu, musí byt v prvním Query field //TypDokl=R// a v printu **NESMÍ** být //GotoNextPage=false//
  
- 
-=== Pokud potřebuji ID a tiskne se z SQL je první field v SQL (ID) === 
- 
- 
-<code lua> 
---ponovu 
-return LuaForm.PrintReport(Data.TiskMD, {GotoNextPage=true, Report=ReportName, Print=Data.Params.Action}, 
-    {document_name=Data.Params.Name, output_type=Data.Params.OutputType, Caption=Caption, StatOverride=Data.Params.StatOverride, 
-      AfterSaveLuaHookFunc="v_sklad_prijemky.reports.ConvertToPdf"}, nil, Data.Params.Use) 
-</code> 
  
 === pokud je použit GotoNextPage=false, ale v dialogu výběru dat pro tisk je vybrána zakázka nebo partner doplnit po Print odpovídající pole v dokumentu === === pokud je použit GotoNextPage=false, ale v dialogu výběru dat pro tisk je vybrána zakázka nebo partner doplnit po Print odpovídající pole v dokumentu ===
  
 <code lua> <code lua>
 +  --pro specielni pripady ze je dialogu vybran konktretni partner nebo zakazka a dokument pak chci s nim spojit (napr. seznam faktur)
   if res.idpartner ~= "" and Action==PRINT_DOCUMENT and dokumenty_dokumenty.LastIDDokument then   if res.idpartner ~= "" and Action==PRINT_DOCUMENT and dokumenty_dokumenty.LastIDDokument then
     local MD=ClientSession:ActivateMid("DOKUMENTY")     local MD=ClientSession:ActivateMid("DOKUMENTY")
Řádek 47: Řádek 38:
  
 ====Ukázka nevizuálního tisku middle:==== ====Ukázka nevizuálního tisku middle:====
-Vytiskne do souboru "m:/tmp/out.sxc" řádky "R0015267", "RZ00005" z middle MD+Vytiskne do souboru "/tmp/out.pdf" řádky "R0015267", "RZ00005" z middle MD
 Middle musí být otevřené a vybrané řádky musí být "dohledatelné". Middle musí být otevřené a vybrané řádky musí být "dohledatelné".
  
Řádek 56: Řádek 47:
 ====Ukázka tisku vizuálního:==== ====Ukázka tisku vizuálního:====
  
--pokud potřebuji **ID** a tiskne se z **SQL** je **první field v SQL (ID)**. ID urcuje, zda je report seznam ID="" nebo neni ID~="" \\+-pokud potřebuji **ID** a tiskne se z **SQL** je potřeba nastavit **primarni index root DSI**. GotoNextPage urcuje, zda je report seznam ID="" nebo neni ID~="" \\
 -pro doplneni **TypDokl** a **Cisla dokladu** do dokumentu je potreba v SQL mit field TypDokl a mit nastaven **primarni index** nebo **DataModelName** (potreba pro BeforeSaveToDocumentDir)\\ -pro doplneni **TypDokl** a **Cisla dokladu** do dokumentu je potreba v SQL mit field TypDokl a mit nastaven **primarni index** nebo **DataModelName** (potreba pro BeforeSaveToDocumentDir)\\
 -**CDokladu** do dokumentu si to bere pres **DSI:GetPrimaryIndex**. Tzn. musí být nadefinován **DataModel** s **RequredIndexes**\\ -**CDokladu** do dokumentu si to bere pres **DSI:GetPrimaryIndex**. Tzn. musí být nadefinován **DataModel** s **RequredIndexes**\\
 -//<Middle Name="MiddleName">// pro podadresář v reports (report/MiddleName/)\\ -//<Middle Name="MiddleName">// pro podadresář v reports (report/MiddleName/)\\
--**DSI z SQL musi být před tiskem otevřené !!!**+-pokud neni DSI z SQL **otevřené** otevře se automaticky v cf.LuaFormPrintReport
  
 <code lua> <code lua>
Řádek 68: Řádek 59:
       <Table Name="a">       <Table Name="a">
         <RequredIndexes>         <RequredIndexes>
-IDPrijemka-P+IDPRIJEMKA-P
         </RequredIndexes>         </RequredIndexes>
       </Table>       </Table>
Řádek 83: Řádek 74:
  
 \\ \\
-Preferovaný způsob fungující v mobisu: 
  
-**metoda CreatePrint-CreateReport-StartPrint** +=== Základní metoda tisku PrintReport (WindowsManager:Print) ===
- +
-<code lua> +
-LuaForm.Func.v_rozpocty_rozpocty_reports_Specifikace=+
-  function(Data) +
-    Data.Options {Report Data.FirstParams.ReportName, Print = Data.FirstParams.Action, Caption=enc"Specifikace"+
-    local ID = "" +
-    --pokudse tiskne jen jeden rozpocet, muze se do dokumentu doplnit odkaz na rozpocet +
-    if #Data.Form:GetSelectedRows()==1 then ID=Data.DSI:FieldByName("idrozp"end +
-    if Data.FirstParams.Action==PRINT_DOCUMENT then +
-      Data.FileName=dokumenty_dokumenty.BeforeSaveToDocumentDir(Data.DSI, ID, dokumenty_dokumenty.GetDocumentFileName("ROZPOCTY", +
-        Data.FirstParams.ReportName, Data.FirstParams.Name, Data.DSI), Data.Options) +
-    end +
-    local Config = {output = Data.FileName, output_type = Data.FirstParams.OutputType, document_name = Data.FirstParams.Name} +
-    return LuaForm.StartPrintReport(Data.Options, Config) +
-  end, +
-  function(Data) +
-    ... +
-    return LuaForm.CallFunc("WalkRecordsVisual", nil, Data.DSI, Data.Form, {WR_USE_SELECTED, function(DSI, ID, ntf) +
-      v_rozpocty_rozpocty.reports.TiskKapitol(Data.DSI, Data.Form, Data.Report, GroupPolozky) +
-    end, "Tisk zakazek", "PrCarKod"}) +
-  end, +
-  function(Data) +
-    ...     +
-    if Data.FirstParams.Action==PRINT_DOCUMENT then +
-      dokumenty_dokumenty.AfterSaveToDocumentDir(nil, "", Data.FileName, Data.Options) +
-    end +
-    return LuaForm.EndPrintReport() +
-  end, +
-+
- +
- +
-function v_rozpocty_rozpocty.reports.TiskKapitol(DSI, Form, Report, GroupPolozky) +
-  ... +
-      if GroupPolozky then +
-        local md = v_rozpocty_rozpocty.reports.GetMiddlelGroupPolozky(kapDS:FieldByName("idrozp"), kapDS:FieldByName("idkap")) +
-        md:PrintPrepareReport(Report, {GotoNextPage=false, SetRangeDetail=false, Recalculate=false}) +
-        if md then md=md:Free() end +
-      else +
-        ... +
-        Report:BandDSAndByNames("body_rpolozky", rpDS, {}) +
-        ... +
-      end +
-      Report:BandDSAndByNames("afterdetail_rkap", kapDS, {}) +
- +
-end +
-</code> +
- +
-\\ +
-**metoda LuaFormPrintReport (WindowsManager:Print)**+
  
 <code lua> <code lua>
Řádek 140: Řádek 81:
   function(Data)   function(Data)
     Data.PrintMid = v_zakazky_zakazky.reports.PrintZakpol(Data.DSI, Data.Form)     Data.PrintMid = v_zakazky_zakazky.reports.PrintZakpol(Data.DSI, Data.Form)
-    return cf.LuaFormPrintReport(Data, Data.PrintMid, {GotoNextPage=true, SetRangeDetail=false, Recalculate=false, Report=Data.FirstParams.ReportName, Print=Data.FirstParams.Action})+    return cf.LuaFormPrintReport(Data, Data.PrintMid, {GotoNextPage=true, SetRangeDetail=false, Recalculate=false})
   end,   end,
   finally=function(Data)   finally=function(Data)
Řádek 187: Řádek 128:
  
 </code> </code>
 +
 +=== Metoda tisku Start/EndPrintReport pokud nelze použít jednodušší PrintReport ===
 +
 +<code lua>
 +LuaForm.Func.v_rozpocty_rozpocty_reports_Specifikace={
 +  function(Data)
 +    return cf.LuaFormStartPrintReport(Data, {GotoNextPage=(#Data.Form:GetSelectedRows()==1)})
 +  end,
 +  function(Data)
 +    ...
 +    return LuaForm.CallFunc("WalkRecordsVisual", nil, Data.DSI, Data.Form, {WR_USE_SELECTED, function(DSI, ID, ntf)
 +      v_rozpocty_rozpocty.reports.TiskKapitol(Data.DSI, Data.Form, Data.Report, GroupPolozky)
 +    end, "Tisk zakazek", "PrCarKod"})
 +  end,
 +  function(Data)
 +    ...    
 +    return cf.LuaFormEndPrintReport(Data)
 +  end,
 +}
 +
 +
 +function v_rozpocty_rozpocty.reports.TiskKapitol(DSI, Form, Report, GroupPolozky)
 +  ...
 +      if GroupPolozky then
 +        local md = v_rozpocty_rozpocty.reports.GetMiddlelGroupPolozky(kapDS:FieldByName("idrozp"), kapDS:FieldByName("idkap"))
 +        md:PrintPrepareReport(Report, {GotoNextPage=false, SetRangeDetail=false, Recalculate=false})
 +        if md then md=md:Free() end
 +      else
 +        ...
 +        Report:BandDSAndByNames("body_rpolozky", rpDS, {})
 +        ...
 +      end
 +      Report:BandDSAndByNames("afterdetail_rkap", kapDS, {})
 +
 +end
 +</code>
 +
 +\\
 +
 ==== Vložení LUA bandu do existujícího reportu ==== ==== Vložení LUA bandu do existujícího reportu ====
  
lua/tisk_pomoci_lua.1683896124.txt.gz · Poslední úprava: 2023/05/12 12:55 autor: Karel Petrů