úterý 29. listopadu 2016

Jak vyvolat dialog tisku pro PDF

<html>
<body>
<h1>Reporting</h1>
<!-- <iframe id="reportView" name="reportView" style="display:none;" ></iframe> -->
<hr/>
<button onclick="javascript:printIframe();">Print</button>
<script type="text/javascript">
function createIframeReportViewer()
{
 var ifm = document.createElement("IFRAME"); 
 ifm.id = 'reportView';
 ifm.style = "display:none;";
 document.body.appendChild(ifm);
}

function printIframe(){
 createIframeReportViewer();
 document.getElementById("reportView").onload = function(){
  alert("PDF was loaded.");
  var frm = document.getElementById("reportView").contentWindow;
         frm.focus();
         frm.print();
 }
 document.getElementById('reportView').src = "data.pdf";

        return false;
}
</script>
</body>
</html>
Do iFrame se načte PDF a jakmile se dokončí jeho stahování tak se vyvolá dialog tisku.

Poznámka:
Je potřeba zkoušet pře server protože při spouštění lokálního HTML souboru se nenastaví origin a je problém s vyvoláním akce tisku nad iFramem.

Zdroje:
http://stackoverflow.com/questions/9616426/javascript-print-iframe-contents-only
http://stackoverflow.com/questions/6000987/dynamically-set-iframe-src
https://en.wikipedia.org/wiki/Same-origin_policy
https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy
http://www.w3schools.com/jsref/met_document_createelement.asp

Keboola

Základní postup 
1. Přidat Extraktor na Google Drive
2. Přihlásit se Google účtem
3. Vybrat Google SpretSheet (nezobrazují se Excelovské soubory - musí se konvertovat)
4. V nastavení drive je možnost zaškrtnout že nahrávané soubory se převedou
5. V nastavení extraktoru vybrat spretsheety a jejich listy
6. Nějak hezky pojmenovat načtené tabulky


Chyba po změně počtu sloupců ve Zdrojovém souboru
ExceptionId ex-google-drive-49a5e71ce9f9f11bb453b61c331a2f94
User error: Some columns are missing in csv file. Missing columns: empty. Expected columns: empty,Datum,C_dokladu,Dodavatel,Castka,Mnoz,Zak,Stredisko,Cinnost,Text.' Please check if expected delimiter "," is used in csv file.
Je potřeba smazat vstupní tabulky aby se jejich struktura vytvořila znovu

Tabulka nesmí obsahovat více hlavičkových řádků
Protože potom volné sloupce asi hlásí vícenásobný prázdný sloupec

Pokud nemá sloupec vyplněnou hlavičku tak je automaticky pojmenován empty. Pokud je jich takových více je to problém. Dát si bacha na skryté sloupce nebo sloupce s úzkou šířkou, tak že není skoro vidět - i ty se načtou

Dobrý nápad je napojit se na sandbox externí aplikací například:

DevArt - DbForgeMySqlFree
http://www.devart.com/dbforge/mysql/studio/download.html

čtvrtek 24. listopadu 2016

ChangeScript - Přidání procedury pokud neexistuje

If  exists(SELECT * FROM sys.procedures WHERE name = N'Cpy_Search')
begin
 DROP PROCEDURE [dbo].[Cpy_Search]
end;
BEGIN
 exec('CREATE Procedure Cpy_Search
                 @CompanyId as int,
                 @Term as nvarchar(60)
                AS begin
                 DECLARE @Pattern nvarchar(62)
                 SELECT @Pattern = ''%'' + @Term + ''%'';
                     SELECT
                  Id,
                  Title
                 FROM [Company]
                 WHERE
             AgendaId = @CompanyId
                 AND (
                  Title COLLATE Latin1_general_CI_AI Like @Pattern  COLLATE Latin1_general_CI_AI
                  OR
                  IdentificationNumber LIKE @Pattern
                  OR
                  VatIdentificationNumber LIKE @Pattern
                 )
                END;')
           END;



Zdroj:
http://stackoverflow.com/questions/2072086/how-to-check-if-a-stored-procedure-exists-before-creating-it

středa 9. listopadu 2016

Select Insert Into table


SQL
INSERT INTO dbo.[Company2CompanyTypes] ([CompanyRefId], [CompanyTypesRefId])
SELECT ANU.CompanyId, 2 AS CompanyTypeId FROM AspNetUsers ANU
INNER JOIN Company C ON (ANU.CompanyId = C.Id)
UNION
SELECT ANU.CompanyId, 3 AS CompanyTypeId FROM AspNetUsers ANU
INNER JOIN Company C ON (ANU.CompanyId = C.Id)

Zdroj:
http://www.w3schools.com/sql/sql_insert_into_select.asp