Procedura-LANGREPORTS

Parametry:

NázevPopisDatový typ
langidChar(2)
objidChar(10)

Návratové hodnoty:

NázevPopisDatový typ
idChar(10)
datasourceChar(26)
systemChar(1)
dataBinaryBlob(0)
titleVarChar(200)
reportidChar(26)
objversionInteger
isformChar(1)
createdby_idChar(10)
correctedby_idChar(10)
owner_idChar(10)
hash
HashSHA1
VisibleFrom$DATEFloat(0, 0)
VisibleTo$DATEFloat(0, 0)

Tělo:

begin
  /* Tato procedura slouží k načítání lokalizovaných reportů */
  if ((:langid = '') or (:langid is null))  then begin
    /* Pokud  neni langid zadano tak pozaduji report v lokalnim jazuku tudi z tabulky Reports*/
    if ((:objid = '') or (:objid is null))  then begin
      /* pokud neni zadano ani objid tak pozaduji vsechny reporty*/
      for
        select A.ID, A.DATASOURCE, A.SYSTEM, A.DATA, A.TITLE, A.REPORTID, A.OBJVERSION, A.ISFORM, A.CREATEDBY_ID, A.CORRECTEDBY_ID, A.OWNER_ID, A.HASH, A.VisibleFrom$DATE, A.VisibleTo$DATE
        from Reports A
      into
        :ID, :DATASOURCE, :SYSTEM, :DATA, :TITLE, :REPORTID, :OBJVERSION, :ISFORM, :CREATEDBY_ID, :CORRECTEDBY_ID, :OWNER_ID, :HASH, :VisibleFrom$DATE, :VisibleTo$DATE
      do suspend;
    end else begin
      /* Pokud zadam objid tak vybiram primo to jedno ID */
      for
        select A.ID, A.DATASOURCE, A.SYSTEM, A.DATA, A.TITLE, A.REPORTID, A.OBJVERSION, A.ISFORM, A.CREATEDBY_ID, A.CORRECTEDBY_ID, A.OWNER_ID, A.HASH, A.VisibleFrom$DATE, A.VisibleTo$DATE
        from Reports A
        where A.ID = :objid
      into
        :ID, :DATASOURCE, :SYSTEM, :DATA, :TITLE, :REPORTID, :OBJVERSION, :ISFORM, :CREATEDBY_ID, :CORRECTEDBY_ID, :OWNER_ID, :HASH, :VisibleFrom$DATE, :VisibleTo$DATE
      do suspend;
    end
  end else begin
    /* Zadal jsem langid */
    if ((objid = '') or (objid is null))  then begin
      /* objid jsem neposlal takze vsechno pro dany jazyk - dotahnu z sys$langreport vse co ma stejny jazyk a k tomu vse z report kde ID neni mezi temi co jsem uz dotahl se SYS$LANGREPORTS*/
      for
        select A.ID, A.DATASOURCE, A.SYSTEM, Coalesce(B.DATA, A.DATA), Coalesce(B.TITLE, A.TITLE), A.REPORTID, A.OBJVERSION, A.ISFORM, A.CREATEDBY_ID, A.CORRECTEDBY_ID, A.OWNER_ID, A.HASH, A.VisibleFrom$DATE, A.VisibleTo$DATE
        from Reports A
        left join sys$langreports B on B.id = A.id and B.langid = :langid
      into
        :ID, :DATASOURCE, :SYSTEM, :DATA, :TITLE, :REPORTID, :OBJVERSION, :ISFORM, :CREATEDBY_ID, :CORRECTEDBY_ID, :OWNER_ID, :HASH, :VisibleFrom$DATE, :VisibleTo$DATE
      do
        suspend;
    end else begin
    /* Zadal jsem langid i objid - budu nejdrive hledat id mezi lokalizovanymi reporty a kdyz se nenajde tak ho vezmu z reports */
      for
        select A.ID, A.DATASOURCE, A.SYSTEM, Coalesce(B.DATA, A.DATA), Coalesce(B.TITLE, A.TITLE), A.REPORTID, A.OBJVERSION, A.ISFORM, A.CREATEDBY_ID, A.CORRECTEDBY_ID, A.OWNER_ID, A.HASH, A.VisibleFrom$DATE, A.VisibleTo$DATE
        from Reports A
        left join sys$langreports B on B.id = A.id and B.langid = :langid
        where A.id = :objid
      into
        :ID, :DATASOURCE, :SYSTEM, :DATA, :TITLE, :REPORTID, :OBJVERSION, :ISFORM, :CREATEDBY_ID, :CORRECTEDBY_ID, :OWNER_ID, :HASH, :VisibleFrom$DATE, :VisibleTo$DATE
      do
        suspend;
    end
  end
end

Generated by ABRA Software a.s. 27.10.2021 16:34:16