diff --git a/.gitignore b/.gitignore index e9d123f..7882413 100644 --- a/.gitignore +++ b/.gitignore @@ -77,7 +77,16 @@ __recovery/ # Castalia statistics file (since XE7 Castalia is distributed with Delphi) *.stat +.gitignore +*.log +*.dxsettings + +*.7z +*.zip +*.skincfg +*.json # Boss dependency manager vendor folder https://github.com/HashLoad/boss modules/ +importKusovnikCAD/ diff --git a/ComObjekt.pas b/ComObjekt.pas new file mode 100644 index 0000000..6dfdd24 --- /dev/null +++ b/ComObjekt.pas @@ -0,0 +1,973 @@ +unit ComObjekt; + +{$I HeODefine.inc} + +INTERFACE + +uses System.Win.ComObj, System.Classes, System.StrUtils, System.SysUtils, ddPlugin_TLB, Winapi.Windows; + +const + Class_Monte: TGUID = '{32EAE564-687F-475D-9CFC-49F18260D835}'; + CRLF = #13#10; + clRed = $0000FF; + tblImpKusXLS = '[dbo].[_HDC_ImportKusovnikXLS]'; + BrowseID_PluginInfo = 871; + + +type + TKmen = record + poz, idKmen, vyrobceCisOrg: integer; + cislo, nazev, vyrobce, norma, rozmer, material, pu, pozn, jakObj: string; + mnoz: Extended; +{$IF CompilerVersion>=34} // Sydney a vys + class operator Initialize (out Dest: TKmen); +{$ENDIF} + end; + + TKmenHelper = record helper for TKmen + function Clear: Boolean; + end; + + +// !!! pri zmene IHePluginXX upravit take v plgAbout - info o jadru !!! + TplgHDCMontekord = class(TComObject, {$IFDEF IHePlugin3} IHePlugin3 {$ELSE} IHePlugin {$ENDIF}) + protected +// function DelphiCompilerVersion: Single; safecall; +// function PartnerIdentification: WideString; safecall; + procedure Run (const Helios: IHelios); safecall; + private + FHelios: IHelios; + procedure OnException (Sender: TObject; E: Exception); + public + procedure ImportKusovniku (const Helios: IHelios); safecall; + end; + + + + + + +IMPLEMENTATION + +uses System.Variants, Vcl.Controls, System.Win.ComServ, System.Types, Vcl.Forms, Winapi.ShlObj, Vcl.Dialogs, + Vcl.StdCtrls, System.DateUtils, Vcl.Clipbrd, + FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, + FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.MSSQL, FireDAC.Phys.MSSQLDef, FireDAC.VCLUI.Wait, + FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Phys.ODBCBase, Data.DB, + FireDAC.Comp.DataSet, FireDAC.Comp.Client, FireDAC.Comp.UI, + frmImportKusovnik, +{$IFDEF Helios_Space} + plgKonfig, plgType, plgMain, plgSpravce, + // [RK 13.04.2012] nove komponenty DevExpress toto vyzaduji, jinak zatuhne Helios + dxGDIPlusAPI, dxCore, {!initialization!} +{$ENDIF} + nExcel, xlsxwrite, helUtils; + + +var HeliosX: IHelios; + oVar1, oVar2: OleVariant; + LocalFormatSettings: TFormatSettings; + jeTest: boolean; + bidPrednaOpAll: integer; + cestaExport, verText: string; + kartyImport: TArray; + vTab, vTab2: TFDMemTable; + ds, ds2: TDataSource; + sql, sql2: TFDQuery; + + + + + + function NullOrQuotedString(inStr: string): string; + begin + inStr:= Trim(inStr); + if (inStr='') then + result:= 'NULL' + else + result:= QuotedStr(inStr); + end; + + + + +{ TKmenHelper } + function TKmenHelper.Clear: Boolean; + begin + result:= true; + try + self.idKmen:= 0; + self.poz:= 0; + self.vyrobceCisOrg:= 0; + self.mnoz:= 0; + self.cislo:= ''; + self.nazev:= ''; + self.vyrobce:= ''; + self.norma:= ''; + self.jakObj:= ''; + self.rozmer:= ''; + self.material:= ''; + self.pu:= ''; + self.pozn:= ''; + except + result:= false; + end; + end; + + + + +{$IF CompilerVersion>=34} // Sydney a vys + class operator TKmen.Initialize (out Dest: TKmen); + begin + Dest.idKmen:= 0; + Dest.poz:= 0; + Dest.vyrobceCisOrg:= 0; + Dest.mnoz:= 0; + Dest.cislo:= ''; + Dest.nazev:= ''; + Dest.vyrobce:= ''; + Dest.norma:= ''; + Dest.rozmer:= ''; + Dest.material:= ''; + Dest.pu:= ''; + Dest.pozn:= ''; + Dest.jakObj:= ''; + end; +{$ENDIF} + + + + + function VyberAdresar (var Foldr: string; Title: string): Boolean; + var BrowseInfo: TBrowseInfo; + ItemIDList: PItemIDList; + DisplayName: array[0..MAX_PATH] of Char; + begin + Result := False; + FillChar(BrowseInfo, SizeOf(BrowseInfo), #0); + with BrowseInfo do + begin + hwndOwner := Application.Handle; + pszDisplayName := @DisplayName[0]; + lpszTitle := PChar(Title); + ulFlags := BIF_RETURNONLYFSDIRS; + end; + ItemIDList := SHBrowseForFolder(BrowseInfo); + if Assigned(ItemIDList) then + if SHGetPathFromIDList(ItemIDList, DisplayName) then + begin + Foldr := DisplayName; + Result := True; + end; + end; + + + + function OtevriSoubor (flt1,flt2: string; var nazev: string): Boolean; + var dlgOpenW7: TFileOpenDialog; // dialog pro Windows Vista a novejsi + titulek, filtr1, filtr2: string; + iniDir: string; + begin + result:= false; + titulek:= 'Vyberte soubor pro import'; + filtr1:= IfThen(flt1<>'',flt1,'XLS/X soubory'); + filtr2:= IfThen(flt2<>'',flt2,'*.xls, *.xlsx'); + nazev:= ''; + iniDir:= GetEnvironmentVariable('USERPROFILE') + '\Desktop'; + try + dlgOpenW7:= TFileOpenDialog.Create(nil); + dlgOpenW7.Title:= titulek; + dlgOpenW7.OkButtonLabel:= 'Vybrat'; + with dlgOpenW7.FileTypes.Add do + begin + DisplayName:= filtr1; + FileMask:= filtr2; + end; + dlgOpenW7.DefaultFolder:= iniDir; + if dlgOpenW7.Execute then + begin + nazev:= dlgOpenW7.FileName; + result:= true; + end; + finally + dlgOpenW7.Free; + end; + end; + + + + + procedure TplgHDCMontekord.OnException (Sender: TObject; E: Exception); + begin + try + LockWindowUpdate (0); +{$IFDEF Helios_Space} + FHelios.Error (plgPrelozException (E.Message)); +{$ENDIF} + except + Vcl.Forms.Application.ShowException (E); //pro jistotu + end; + end; + + + + procedure TplgHDCMontekord.ImportKusovniku (const Helios: IHelios); + var lSQL, lSQL2, podm: string; + xls: IXLSWorkBook; + shKarty: IXLSWorksheet; + karta: TKmen; + iTemp, idKZ, idKZFin: integer; + sTemp: string; + filtr1, filtr2, fName, colName, readVal, lastNRC, lastVRC, rcFin: string; + insId, idxR, iRowMax, iCol, iColMax, cEmptyRadek: integer; + mnoz, ztraty: Extended; + i_Poz, i_CisloDilu, i_Nazev, i_Ks, i_Vyrobce, i_Norma, i_Rozmer, i_Material, i_PU, i_ziskani, i_pozn: integer; + radekV00: boolean; + begin + filtr1:= 'Sešit MS Excel 2003-2019'; + filtr2:= '*.xls;*.xlsx;'; + if OtevriSoubor(filtr1, filtr2, fName) then + if (FileExists(fName)) then + begin + Screen.Cursor:= crHourGlass; + + xls:= TXLSWorkbook.Create; + try + xls.Open(fName); + shKarty:= xls.Sheets.Entries[1]; + + i_Poz:= 0; + + lastNRC:= ''; + lastVRC:= ''; + + iRowMax:= 0; + cEmptyRadek:= 0; + try + for idxR:=1 to 60000 do + begin + if (cEmptyRadek>5) then + begin + iRowMax:= idxR; + Break; + end; + if (VarIsNull(shKarty.Cells.Item[idxR, 1].Value)) then + Inc(cEmptyRadek) + else + if (VarToStr(shKarty.Cells.Item[idxR, 1].Value)='') then + Inc(cEmptyRadek) + else + cEmptyRadek:= 0; + end; + except on E:Exception do + Helios.Error(#1'idxR: ' + idxR.ToString + CRLF + E.Message + #1) + end; + + + for idxR:=iRowMax downto 1 do + begin + if (not VarIsNull(shKarty.Cells.Item[idxR, 1].Value)) then + if (VarToStr(shKarty.Cells.Item[idxR, 1].Value)<>'') then + begin + iRowMax:= idxR; + Break; + end; + end; + + if (iRowMax>1) then + begin + rcFin:= ''; + + + if (jeTest) then + begin + lSQL:= 'IF OBJECT_ID(N''dbo._TabHDCKusovnik'', N''U'') IS NULL' + CRLF; + lSQL:= lSQL + ' CREATE TABLE dbo._TabHDCKusovnik (ID INT IDENTITY(1,1) NOT NULL, IDKmenVyssi INT, IDKmenNizsi INT, Pozice SMALLINT, CisloDilu NVARCHAR(50)'; + lSQL:= lSQL + ', Nazev NVARCHAR(100), Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0, Vyrobce NVARCHAR(100), CisOrgDod INT, Norma NVARCHAR(100), Rozmer NVARCHAR(50), Material NVARCHAR(50)'; + lSQL:= lSQL + ', PovrchovaUprava NVARCHAR(100), JakZiskat NVARCHAR(50), Poznamka NVARCHAR(500) )' + CRLF; + lSQL:= lSQL + ' ELSE TRUNCATE TABLE dbo._TabHDCKusovnik'; + end + else + begin + lSQL:= 'DROP TABLE IF EXISTS #TabHDCKusovnik' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabHDCKusovnik (ID INT IDENTITY(1,1) NOT NULL, IDKmenVyssi INT, IDKmenNizsi INT, Pozice SMALLINT, CisloDilu NVARCHAR(50)'; + lSQL:= lSQL + ', Nazev NVARCHAR(100), Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0, Vyrobce NVARCHAR(100), CisOrgDod INT, Norma NVARCHAR(100), Rozmer NVARCHAR(50), Material NVARCHAR(50)'; + lSQL:= lSQL + ', PovrchovaUprava NVARCHAR(100), JakZiskat NVARCHAR(50), Poznamka NVARCHAR(500) )' + CRLF; + end; + Helios.ExecSQL(lSQL); + + + for iCol:=1 to 30 do + begin +{ + if (VarIsNull(shKarty.Cells.Item[1, iCol].Value)) then + begin + iColMax:= iCol-1; + Break; + end; + + if (VarToStr(shKarty.Cells.Item[1, iCol].Value)='') then + begin + iColMax:= iCol-1; + Break; + end; +} + if (shKarty.Cells.Item[1, iCol].Value='POZ') then + i_Poz:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='Číslo dílu') then + i_CisloDilu:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='Název') then + i_Nazev:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='KS') then + i_Ks:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='Výrobce') then + i_Vyrobce:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='NORMA') then + i_Norma:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='ROZMĚR') then + i_Rozmer:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='MATER.') then + i_Material:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='PÚ') then + i_PU:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='získání') then + i_ziskani:= iCol; + if (VarToStr(shKarty.Cells.Item[1, iCol].Value).Trim='Pozn před') then + i_pozn:= iCol; + end; + + if (i_Poz=0) or (i_CisloDilu=0) or (i_Norma=0) then + begin + Helios.Error(#1'Tabulka není v požadovaném formátu'#1); + Exit; + end; + + + if (i_Poz>0) and (i_CisloDilu>0) and (i_Norma>0) then + begin +// helUtils.waitStart(nil, 'Import dat...', iRowMax, clRed); + vTab:= TFDMemTable.Create(nil); + try + with vTab do + begin + FieldDefs.Add('vPoz', ftInteger, 0, true); + FieldDefs.Add('vCisloDilu', ftString, 50, true); + FieldDefs.Add('vNazev', ftString, 100, true); + FieldDefs.Add('vKs', ftFloat, 0, true); + FieldDefs.Add('vVyrobce', ftString, 100, false); + FieldDefs.Add('vCisOrgDod', ftInteger, 0, false); + FieldDefs.Add('vNorma', ftString, 100, false); + FieldDefs.Add('vRozmer', ftString, 100, false); + FieldDefs.Add('vMaterial', ftString, 100, false); + FieldDefs.Add('vPU', ftString, 100, false); + FieldDefs.Add('vZiskani', ftString, 50, false); + FieldDefs.Add('vPozn', ftString, 1000, false); + FieldDefs.Add('vIdKmen', ftInteger, 0, false); + CreateDataSet; + Open; + end; + +// waitStart(nil, 'Vytváření pomocné tabulky...', sheet.LastRow, $0000FF); // clRed +// helUtils.waitSetMsg('Probíhá zápis dat...'); + idxR:= 2; + +// nacti radky + while (idxR<=iRowMax) do + begin + karta.Clear; + if not(VarIsNull(shKarty.Cells.Item[idxR, i_Poz].Value)) then + begin + if not(TryStrToInt(shKarty.Cells.Item[idxR, i_Poz].Value, karta.poz)) then + karta.poz:= 0; + + if (i_CisloDilu>0) then + karta.cislo:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_CisloDilu].Value), VarToStr(shKarty.Cells.Item[idxR, i_CisloDilu].Value), '').Replace(#10, ''); + + if (i_Nazev>0) then + karta.nazev:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Nazev].Value), VarToStr(shKarty.Cells.Item[idxR, i_Nazev].Value), '').Replace(#10, ''); + + if not(TryStrToFloat(shKarty.Cells.Item[idxR, i_Ks].Value, karta.mnoz)) then + karta.mnoz:= 0; + + if (i_Vyrobce>0) then + begin + karta.vyrobce:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Vyrobce].Value), VarToStr(shKarty.Cells.Item[idxR, i_Vyrobce].Value), '').Replace(#10, ''); + if (karta.vyrobce<>'') then + begin + lSQL2:= 'SELECT TOP(1) c.CisloOrg FROM ' + tblCOrg + ' c INNER JOIN ' + tblCOrgE + ' ce ON (ce.ID=c.ID) WHERE ce._NazevProImportKusovniku=N' + karta.vyrobce.QuotedString; + karta.vyrobceCisOrg:= helUtils.getHeliosIntVal(Helios, 0, lSQL2); + end; + end; + + if (i_Norma>0) then + karta.norma:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Norma].Value), VarToStr(shKarty.Cells.Item[idxR, i_Norma].Value), '').Replace(#10, ''); + + if (i_Rozmer>0) then + karta.rozmer:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Rozmer].Value), VarToStr(shKarty.Cells.Item[idxR, i_Rozmer].Value), '').Replace(#10, ''); + + if (i_Material>0) then + karta.material:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Material].Value), VarToStr(shKarty.Cells.Item[idxR, i_Material].Value), '').Replace(#10, ''); + + if (i_PU>0) then + karta.pu:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_PU].Value), VarToStr(shKarty.Cells.Item[idxR, i_PU].Value), '').Replace(#10, ''); + + if (i_ziskani>0) then + karta.jakObj:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_ziskani].Value), VarToStr(shKarty.Cells.Item[idxR, i_ziskani].Value), ''); + + if (i_pozn>0) then + karta.pozn:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_pozn].Value), VarToStr(shKarty.Cells.Item[idxR, i_pozn].Value), '').Replace(#10, CRLF); + end; + + + lSQL:= 'INSERT ' + tblImpKusXLS + ' (Pozice, CisloDilu, Nazev, Mnozstvi, Vyrobce, Norma, Rozmer, Material, PU, JakZiskat, Poznamka) SELECT ' + karta.poz.ToString; + lSQL:= lSQL + ', N' + karta.cislo.QuotedString + ', N' + karta.nazev.QuotedString + ', ' + karta.mnoz.ToString.Replace(',', '.') + ', N' + karta.vyrobce.QuotedString; + lSQL:= lSQL + ', N' + karta.norma.QuotedString + ', N' + karta.rozmer.QuotedString + ', N' + karta.material.QuotedString + ', N' + karta.pu.QuotedString; + lSQL:= lSQL + ', N' + karta.jakObj.QuotedString + ', N' + karta.pozn.QuotedString; + try + Helios.ExecSQL(lSQL); + finally + end; + + + karta.idKmen:= 0; + if (karta.poz>0) then + begin + if (rcFin='') and (karta.cislo<>'') and (idKZFin=0) then + begin + idKZFin:= 0; + rcFin:= LeftStr(karta.cislo, karta.cislo.IndexOf('-')) + MidStr(karta.cislo, karta.cislo.IndexOf('-')+2, 255); + rcFin:= LeftStr(rcFin, rcFin.IndexOf('-')); + rcFin:= LeftStr(rcFin, 2) + '-' + MidStr(rcFin, 3, 30); + idKZFin:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE RegCis=N' + rcFin.QuotedString + ' AND SkupZbo=N''500'''); + if (idKZFin=0) then + begin + lSQL2:= 'DECLARE @idKZ INT' + CRLF + 'EXEC @idKZ=dbo.hp_VytvorPolozkuKmeneZbozi @SZ=N''500'', @RegCis=N' + rcFin.QuotedString; + lSQL2:= lSQL2 + ', @Nazev1=N' + rcFin.QuotedString +', @Dilec=1' + CRLF + 'SELECT @idKZ AS newid'; + with Helios.OpenSQL(lSQL2) do + if (RecordCount=1) then + idKZFin:= VarToStr(FieldByNameValues('newid')).ToInteger; + end; + end; + + if (karta.poz<300) and (karta.idKmen=0) then + begin + karta.idKmen:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE RegCis=N' + karta.cislo.QuotedString + ' AND SkupZbo=N''300'''); + if (karta.idKmen=0) then + begin + lSQL2:= 'DECLARE @idKZ INT' + CRLF + 'EXEC @idKZ=dbo.hp_VytvorPolozkuKmeneZbozi @SZ=N''300'', @RegCis=N' + karta.cislo.QuotedString; + lSQL2:= lSQL2 + ', @Nazev1=N' + karta.nazev.QuotedString +', @Dilec=1' + CRLF + 'SELECT @idKZ AS newid'; + with Helios.OpenSQL(lSQL2) do + if (RecordCount=1) then + karta.idKmen:= VarToStr(FieldByNameValues('newid')).ToInteger; + end; + + if (karta.idKmen>0) then + begin + lSQL2:= 'DECLARE @zmenaOd INT, @zmenaOdOld INT' + CRLF + 'SET @zmenaOdOld=(SELECT TOP(1) ID FROM ' + tblCZmen + ' WHERE datum<=GETDATE() AND Platnost=1)' + CRLF; + lSQL2:= lSQL2 + 'IF NOT EXISTS (SELECT 1 FROM ' + tblKVaz + ' WHERE vyssi=' + idKZFin.ToString + ' AND nizsi=' + karta.idKmen.ToString + ' AND ZmenaDo IS NULL)' + CRLF; + lSQL2:= lSQL2 + ' BEGIN' + CRLF + ' SET @zmenaOd=(SELECT MAX(ZmenaOd) FROM ' + tblKVaz + ' WHERE vyssi=' + idKZFin.ToString + ' AND nizsi=' + karta.idKmen.ToString + ')' + CRLF; + lSQL2:= lSQL2 + ' IF (@zmenaOd IS NULL) AND (@zmenaOdOld IS NOT NULL) SET @zmenaOd = @zmenaOdOld' + CRLF; + lSQL2:= lSQL2 + ' INSERT ' + tblKVaz + ' (vyssi, nizsi, mnozstvi, mnozstviSeZtratou, Prirez, Pozice, ZmenaOd) SELECT ' + idKZFin.ToString + ', ' + karta.idKmen.ToString; + lSQL2:= lSQL2 + ', ' + karta.mnoz.ToString.Replace(',', '.') + ', ' + karta.mnoz.ToString.Replace(',', '.') + ', 1, N' + karta.poz.ToString.QuotedString + ', @zmenaOd' + CRLF; + lSQL2:= lSQL2 + ' END' + CRLF; + Helios.ExecSQL(lSQL2); + end; + karta.idKmen:= 0; + end + else + begin + lSQL:= 'SELECT d.IDKmenZbozi FROM ' + tblDodavateleZboziE + ' e JOIN ' + tblDodavateleZbozi + ' d ON (d.ID=e.ID) WHERE e._KodDodavatele LIKE N'; + lSQL:= lSQL + ('%' + karta.norma + '%').QuotedString; + iTemp:= helUtils.getHeliosRowCount(Helios, lSQL); + if (iTemp=0) then + begin // zalozeni nove karty + lSQL2:= 'DECLARE @idKZ INT' + CRLF + 'EXEC @idKZ=dbo.hp_VytvorPolozkuKmeneZbozi @SZ=N''100'', @RegCis=NULL, @Nazev1=N' + karta.nazev.QuotedString +', @Material=1' + CRLF; + lSQL2:= lSQL2 + 'SELECT @idKZ AS newid'; + with Helios.OpenSQL(lSQL2) do + if (RecordCount=1) then + karta.idKmen:= VarToStr(FieldByNameValues('newid')).ToInteger; + if (karta.idKmen>0) then + begin + lSQL2:= 'UPDATE ' + tblKZ + ' SET Aktualni_Dodavatel=' + karta.vyrobceCisOrg.ToString + ' WHERE ID=' + karta.idKmen.ToString; + Helios.ExecSQL(lSQL2); + end; + end + else + if (iTemp=1) then + karta.idKmen:= helUtils.getHeliosIntVal(Helios, 0, lSQL) + else + begin + podm:= 'TabKmenZbozi.ID IN (' + lSQL + ')'; + podm:= 'TabKmenZbozi.Sluzba=0'; + if (Helios.Prenos(bidKZ, 'TabKmenZbozi.ID', oVar1, podm, 'Vyberte materiál pozice ' + karta.poz.ToString + ' / číslo dílu ' + karta.cislo + + ' / název ' + karta.nazev + ' >> norma (kód dodavatele) ' + karta.norma, false)) then + karta.idKmen:= VarToStr(oVar1).ToInteger; + end; + end; + + if (karta.idKmen>0) then + begin + lSQL:= 'INSERT #TabHDCKusovnik (IDKmenVyssi, IDKmenNizsi, Pozice, CisloDilu, Nazev, Mnozstvi, Vyrobce, CisOrgDod, Norma, Rozmer, Material, PovrchovaUprava, JakZiskat, Poznamka)'; + lSQL:= lSQL + ' SELECT ' + idKZFin.ToString + ', ' + karta.idKmen.ToString + ', ' + karta.poz.ToString + ', N' + karta.cislo.QuotedString + ', N' + karta.nazev.QuotedString; + lSQL:= lSQL + ', ' + karta.mnoz.ToString.Replace(',', '.') + ', N' + karta.vyrobce.QuotedString + ', ' + karta.vyrobceCisOrg.ToString + ', N' + karta.norma.QuotedString; + lSQL:= lSQL + ', N' + karta.rozmer.QuotedString + ', ' + karta.material.QuotedString + ', N' + karta.pu.QuotedString + ', N' + karta.jakObj.QuotedString; + lSQL:= lSQL + ', N' + karta.pozn.QuotedString; + if (jeTest) then + lSQL:= lSQL.Replace('#Tab', 'dbo._Tab'); + Helios.ExecSQL(lSQL); + end; + end; + + Inc(idxR); + end; + + try + Helios.ExecSQL('UPDATE ' + tblImpKusXLS + ' SET Projekt=N' + rcFin.QuotedString + 'WHERE Projekt IS NULL'); + Helios.ExecSQL('IF OBJECT_ID(N''dbo.ep_HDC_VytvorKusovnikXLS'', N''P'') IS NOT NULL EXEC dbo.ep_HDC_VytvorKusovnikXLS @projekt=N' + rcFin.QuotedString); + except on E:Exception do + Helios.Error(#1'Chyba vytváření kusovníku'#1 + CRLF + E.Message); + end; + finally + vTab.Free; + end; + + +// helUtils.waitEnd; + + end; + end; + finally +{$IF CompilerVersion < 34.0} // SYDNEY + FreeAndNil(xls); +{$ENDIF} + end; + + Screen.Cursor:= crDefault; + end; + + Helios.Info(#1'Akce ukončena'#1); + + end; + + + + procedure TplgHDCMontekord.Run (const Helios: IHelios); + const MinVerzeHelios = $030020260300; + var typAkce: integer; + browID, cRec, cntID, l_loop, idDZ, dpz, cOrg, newBid: integer; + verzePlg, verzePlg2, plgNazev: string; + verzePlg64: Int64; + lSQL, autor, radDokl, IDcka, params, paramsBak, vlastPar, vlastPar2, contInfo, sz, podm: string; + arrId: TArray; + term: boolean; + f1: TformImportKusovnik; + +{$IFDEF Helios_Space} + PomHandle: THandle; + MinVerze: Int64; + Porovnani: TplgPorovnaniVerzi; + VerzeDB: String; + ZmenyOK: Boolean; + SlepaProcName: string; + SlepaProcGUID: string; + SlepaProcBrowse: string; + Browse: TplgBrowse; + GUIDAkce: String; + Q: IHeQuery; +{$ENDIF} + begin + try + FHelios := Helios; +{$IFDEF Helios_Space} + SpravceHeliosu.PridejHelios (FHelios); +{$ENDIF} + try + Application.OnException := Self.OnException; + +// [RK 10.04.2006] zavedeni PomHandle, problemy s realokaci ikonky +// [RK 02.04.2009] doplneno pretypovani na THandle + PomHandle := THandle(FHelios.MainApplicationHandle); + if PomHandle <> Application.Handle then + Application.Handle := PomHandle; + + PomHandle := THandle(FHelios.MainApplicationIconHandle); + if PomHandle <> Application.Icon.Handle then + Application.Icon.Handle := PomHandle; + + +// ### INICIALIZACE ### + InicializaceJadraPluginu (FHelios); + PluginKonfig.VlastniInicializacePluginu (FHelios); + +// ### O PLUGINU ### + if FHelios.BrowseID = BrowseID_PluginInfo then + begin + case FHelios.ExtKomID of + Cplg_ExtKomID_About: + begin + InformaceOPluginu (FHelios); + Exit; + end; + + Cplg_ExtKomID_HlaskyNaWeb: + begin + plgPresunHlaskyNaWeb (FHelios); + Exit; + end; + + Cplg_ExtKomID_HlaskyDoDLL: + begin + plgStahniZWebuJazykovaDLL (FHelios); + Exit; + end; + // AJ, 14./17.12.2015 - Administrátorská podpora v HeO - Odinstalace + Cplg_ExtKomID_Odinstalace: + begin + PluginKonfig.PluginUninstall (FHelios); + Exit; + end; + end; + end; + + // ### test na verzi SQL Serveru ### + if FHelios.SQLVersion < PluginKonfig.PluginMinimalniPozadovanaVerzeSQLServeru then + raise Exception.Create( + Format('%s (%s)'#13#13+plgCtiOznam(plxJadroPluginVyzadujeMinVerziSQL_X), + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgVerzeSQLServeru(PluginKonfig.PluginMinimalniPozadovanaVerzeSQLServeru)])); + +// ### test na verzi Heliosu ### + if plgObecnaVerze(FHelios.HeVersion, jvMajor) >= '3' then + begin + // Helios 3.x + MinVerze := PluginKonfig.PluginMinimalniPozadovanaVerzeHeliosu_ver3; + if MinVerze < Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu_ver3 then + MinVerze := Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu_ver3; + end + else + begin + // Helios 2.x + MinVerze := PluginKonfig.PluginMinimalniPozadovanaVerzeHeliosu; + if MinVerze < Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu then + MinVerze := Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu; + end; + + if FHelios.HeVersion < MinVerze then + raise Exception.Create( + Format('%s (%s)'#13#13+plgCtiOznam(plxJadroPluginVyzadujeMinVerziX), + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgObecnaVerze(MinVerze, jvCela)])); + + VerzeDB := plgNactiVerziPluginuZDB(FHelios, ZmenyOK); + Porovnani := plgPorovnejVerziPluginuSVerziDB(VerzeDB); + + if Porovnani = pvDBMaVetsi then + raise Exception.Create( + Format('%s (%s)'#13#13'%s'#13#13'%s: %s'#13'%s: %s', + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgCtiOznam(plxJadroVerzePluginuJeNizsiNezVDB), + plgCtiOznam(plxJadroVerze_V_DB), VerzeDB, + plgCtiOznam(plxJadroVerzePluginu), plgVerzePluginu(jvHexa)])); + +// ### INSTALACE PLUGINU ### + if (FHelios.BrowseID = BrowseID_PluginInfo) and plgExtKomIDInstalace(FHelios) then + begin + InstalacePluginu(FHelios, (FHelios.ExtKomID = Cplg_ExtKomID_TichaInstalace)); + Exit; + end; + + + if not ZmenyOK then + raise Exception.Create( + Format('%s (%s)'#13#13'%s'#13#1'%s'#1, + [PluginKonfig.PluginVerejneJmeno, PluginKonfig.PluginSystemoveJmeno, + plgCtiOznam(plxJadroMinulaInstalaceNeprobehlaKorektne), + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu)])); + + if FHelios.ExtKomID = Cplg_ExtKomID_EditorController then + SpustControllerEditoru (FHelios) + else + if FHelios.ExtKomID = Cplg_ExtKomID_Zpravy then + PluginKonfig.ExtKomIDJeRovnoNule (FHelios) + else + if FHelios.ExtKomID = Cplg_ExtKomID_Konfigurace then + PluginKonfig.PluginConfiguration (FHelios) + else + begin +// ### nacteni parametru akce ### + Q := FHelios.OpenSQL( + Format( + 'SELECT CAST(CAST(GUID AS UNIQUEIDENTIFIER) AS NVARCHAR(36)) AS GUIDAkce, Parametry'#13+ + ' FROM ' + tblExtKom + ' WHERE ID=%d', [FHelios.ExtKomID])); + + GUIDAkce:= Format('{%s}', [varToStr(Q.FieldValues(0))]); + params:= Format('%s', [varToStr(Q.FieldByNameValues('Parametry'))]); + paramsBak:= params; + + // ### SPUSTENI AKCE ### + + // [JAS 17.8.2015] - moznost spustit externi akci pluginu i z rucne vytvorene definice EA + // Postup je nasledujici: + // 1. V Heliosu vytvorit rucne externi akci typu plugin, doplnit spravne ProgID COM pluginu. Tato externi akce dostane automaticky prideleny novy GUID + // 2. Vytvorit slepou proceduru, jejiz nazev musi byt tvoren maskou: epx__ + // Jako GUID se do nazvu dava nove prideleny GUID rucne vytvorene akce z kroku 1. + // 3. Slepa procedura musi vracet SELECTem dve hodnoty: + // - GUID akce (vcetne slozenych zavorek!!), ktera se ma ve skutecnosti spustit (musi byt soucasti daneho pluginu) + // - cislo prehledu nebo systemovy nazev (pokud jde o prehled daneho pluginu), ve kterem je puvodni akce definovana + // + //Priklad: + // CREATE PROC dbo.epx_rpMujPlugin_9549A0D78192439C803255B8AD5484AD + // AS + // SELECT N'{506E3776-B9F0-4F37-97E3-5CBB78BC67A5}', N'hvw_MujPlugin_DefPrehled' + + SlepaProcName := 'dbo.epx_' + PluginKonfig.PluginSystemoveJmeno + '_' + plgGUIDBezPomlcek(GUIDAkce); + if FHelios.OpenSQL('IF OBJECT_ID(' + plgNQuotedStr(SlepaProcName) + ', N''P'') IS NULL SELECT 0 ELSE SELECT 1').FieldValues(0)=1 then + begin + with FHelios.OpenSQL('EXEC ' + SlepaProcName) + do + begin + SlepaProcGUID := VarToStr(FieldValues(0)); + SlepaProcBrowse := VarToStr(FieldValues(1)); + end; + + if plgJeObecnyPrehled(SlepaProcBrowse) then + Browse := plgJmenoView2Browse (SlepaProcBrowse) + else + Browse := bZadny; + + if Browse <> bZadny then + // akce nad prehledem pluginu + SpustAkciPluginu(FHelios, Browse, SlepaProcGUID) + else + // akce nad tabulkou Heliosu, popr. jinym definovanym prehledem + SpustAkciPluginuProTab(FHelios, StrToInt(SlepaProcBrowse), SlepaProcGUID); + end + else + begin + if plgJeObecnyPrehled(FHelios.BrowseID) then + Browse := plgJmenoView2Browse(FHelios.MainBrowseTable) + else + Browse := bZadny; + + if Browse <> bZadny then + // akce nad prehledem pluginu + SpustAkciPluginu(FHelios, Browse, GUIDAkce) + else + // akce nad tabulkou Heliosu, popr. jinym definovanym prehledem + SpustAkciPluginuProTab (FHelios, FHelios.BrowseID, GUIDAkce); + end; + + + term := false; + jeTest := false; + + {$REGION 'Zapis do TabPluginInfo'} + plgNazev := ExtractFileName(GetModuleName(HInstance)); + if (plgNazev.Contains('.dll')) then + plgNazev := LeftStr(plgNazev, plgNazev.IndexOf('.dll')); + lSQL := 'IF NOT EXISTS (SELECT 1 FROM ' + tblPlgInfo + ' WHERE NazevSys=N' + plgNazev.QuotedString + ') INSERT ' + tblPlgInfo + + ' (NazevSys, NazevObjektu, NazevVerejny) SELECT N' + plgNazev.QuotedString + ', N''runMe'', N''Plugin HDC pro Montekord'''; + Helios.ExecSQL(lSQL); + + verzePlg:= GetFileVersion2(GetModuleName(HInstance)); + if (Length(verzePlg)=12) then + verzePlg:= LeftStr(verzePlg,9) + '0' + RightStr(verzePlg,3); + verzePlg2:= verzePlg.Replace('.', ''); + if (Length(verzePlg2)=10) then + verzePlg2:= '0' + LeftStr(verzePlg2,1) + '0' + RightStr(verzePlg2, 9); + verzePlg64:= verzePlg2.ToInt64; +{$ENDREGION} + + if (Helios.HeVersion0) then + begin + with Helios.OpenSQL('SELECT CONVERT(nvarchar(128),CONTEXT_INFO(),2)') do + if VarIsNull(FieldValues(0)) then + contInfo:= 'NULL' + else + contInfo:= VarToStr(FieldValues(0)); + + Helios.ExecSQL('SET CONTEXT_INFO 0x484443344d6f6e74656b6f7264'); // nastav context v sys.sysprocesses (hexadecimalne HDC4Montekord) + + UseLatestCommonDialogs:= true; + LocalFormatSettings:= TFormatSettings.Create; + { + lSQL:= 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabExtKom') + ') IS NOT NULL DROP TABLE #TabExtKom' + CRLF; + lSQL:= lSQL + 'CREATE TABLE #TabExtKom (Poznamka nvarchar(255))'; + Helios.ExecSQL(lSQL); + } + lSQL:= 'IF OBJECT_ID(' + QuotedStr('tempdb..#TabExtKom') + ', ''U'') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255))' + CRLF; + lSQL:= lSQL + 'IF OBJECT_ID(N' + QuotedStr('tempdb..#TabTempUziv') + ', ''U'') IS NULL CREATE TABLE #TabTempUziv (Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)'; + Helios.ExecSQL(lSQL); + + params := ''; + vlastPar := ''; + vlastPar2 := ''; + cestaExport := ''; + typAkce := 0; + HeliosX := Helios; + + with Helios.OpenSQL('SELECT Parametry FROM ' + tblExtKom + ' WHERE ID=' + IntToStr(Helios.ExtKomID)) do + begin + params := VarToStr(FieldValues(0)); + paramsBak := VarToStr(FieldValues(0)); + if (params.Contains(';')) then + begin + typAkce := StrToInt(LeftStr(params,Pos(';',params)-1)); + params := MidStr(params,Pos(';',params)+1,255); + if Pos(';',params)>0 then + browID := StrToInt(LeftStr(params,Pos(';',params)-1)) + else + browID := StrToInt(params); + if Pos(';',params)>0 then // zadany 3 parametry (akce, browID, vlastnikID) + begin + params := MidStr(params,Pos(';',params)+1,255); + if Pos(';', params)>0 then + begin + vlastPar := LeftStr(params,Pos(';',params)-1); + vlastPar2 := MidStr(params,Pos(';',params)+1,255); + end + else + vlastPar := params; + end; + end + else + if (params<>'') then + if not(TryStrToInt(params, typAkce)) then + typAkce := -1; + end; + + verText := GetFileVersion2(GetModuleName(HInstance)); + if Length(verText)=12 then + verText := LeftStr(verText,9) + '0' + RightStr(verText,3); + + if (RightStr(LeftStr(vlastPar,2),1)=':') or (LeftStr(vlastPar,2)='\\') then + cestaExport := vlastPar; + + vlastPar := Trim(vlastPar); + vlastPar2 := Trim(vlastPar2); + + { + jeTest:= UpperCase(vlastPar)='TEST'; + if (vlastPar2<>'') then + jeTest:= UpperCase(vlastPar2)='TEST'; + } + + if AnsiContainsText(UpperCase(paramsBak), ';TEST') then + jeTest := true; + + if (Helios.BrowseID<>browID) then + begin + typAkce := 0; + Helios.Error ('Tento plugin lze volat pouze z přehledu: '#1 + IntToStr(browID) + #1'.'); + end; + + IDcka := ''; + cRec := 0; + if (Helios.SelectedRecordIDs<>'') then + IDcka := Helios.SelectedRecordIDs + else + if not VarIsNull(Helios.CurrentRecordID) then + begin + cRec := StrToInt(VarToStr(Helios.CurrentRecordID)); + IDcka := IntToStr(cRec); + end; + + if (IDcka<>'') then + begin + cntID := 1 + Length(IDcka)-Length(StringReplace(IDcka,',','',[rfReplaceAll])); + SetLength (arrID,cntID); + for l_loop:=0 to cntID-1 do + begin + if Pos(',',IDcka)>0 then + begin + arrID[l_loop] := StrToInt(LeftStr(IDcka, Pos(',',IDcka)-1)); + IDcka := MidStr(IDcka, Pos(',',IDcka)+1, 262140) // 65535 * 4 (max. delka pole) + end + else + arrID[l_loop] := StrToInt(IDcka); + end; + cRec := arrID[0]; + end // IDcka<>'' + else + typAkce := Helios.ExtKomID; + + case typAkce of + -2: Helios.Info (#1'About'#1); + -1: begin + Helios.ExecSQL('UPDATE ' + tblPlgInfo + ' SET DatumInstalace=GETDATE(), VerzePluginu=N' + verzePlg2.QuotedString + ' WHERE NazevSys=N' + plgNazev.QuotedString); + Helios.Info (#1'Instalace OK'#1); + end; + 1: ImportKusovniku (Helios); + 2: begin + f1:= TformImportKusovnik.Create (nil); + try + f1.Helios := Helios; + f1.jeTest := jeTest; + f1.ShowModal; + finally + FreeAndNil (f1); + end; + end; + end; // case + + Helios.Refresh(true); + if (contInfo='NULL') then + Helios.ExecSQL('SET CONTEXT_INFO 0x') + else + Helios.ExecSQL('SET CONTEXT_INFO 0x' + contInfo); + + end; // Helios.ExtKomID>0 + end; // druha cast if Helios.HeVersion Cplg_ExtKomID_Konfigurace + finally + SpravceHeliosu.OdeberHelios (FHelios); + end; + + except + // neni to pres Application.HandleException() kvuli probublani vyjimky + // do Heliosu (konkretni pouziti napr. v Automatu) + on E: EExternal do + begin + LockWindowUpdate(0); // jistota, kdyby nekde zustalo viset + raise EExternal.Create(E.Message); + end; + + on E: Exception do + begin + LockWindowUpdate(0); // jistota, kdyby nekde zustalo viset +{$IFDEF Helios_Space} + E.Message := plgPrelozException(E.Message); +{$ENDIF} + raise; + end; + end; + + + if (term) then + Application.Terminate; + end; + + + + +initialization +{$IFDEF Helios_Space} + dxCore.dxInitialize; +{$ENDIF} +// System.ReportMemoryLeaksOnShutdown:= true; + TComObjectFactory.Create (ComServer, TplgHDCMontekord, Class_Monte, 'runMe', '', ciMultiInstance, tmSingle); + + finalization +// dxUnitsLoader.Finalize; +{$IFDEF Helios_Space} + dxCore.dxFinalize; +{$ENDIF} + + +END. diff --git a/HeODefine.inc b/HeODefine.inc new file mode 100644 index 0000000..999a885 --- /dev/null +++ b/HeODefine.inc @@ -0,0 +1 @@ +{$DEFINE Helios_space} \ No newline at end of file diff --git a/dataModul.dfm b/dataModul.dfm new file mode 100644 index 0000000..3d2f868 --- /dev/null +++ b/dataModul.dfm @@ -0,0 +1,363 @@ +object datModul: TdatModul + Height = 480 + Width = 640 + object tblImportKusovnik: TFDMemTable + IndexFieldNames = 'Pozice' + FetchOptions.AssignedValues = [evMode] + FetchOptions.Mode = fmAll + ResourceOptions.AssignedValues = [rvSilentMode] + ResourceOptions.SilentMode = True + UpdateOptions.AssignedValues = [uvCheckRequired, uvAutoCommitUpdates] + UpdateOptions.CheckRequired = False + UpdateOptions.AutoCommitUpdates = True + Left = 58 + Top = 154 + object tblImportKusovnikID: TAutoIncField + FieldName = 'ID' + Visible = False + end + object tblImportKusovnikIDKmen: TIntegerField + FieldName = 'IDKmen' + Visible = False + end + object tblImportKusovnikOznaceni: TStringField + FieldName = 'Oznaceni' + Size = 100 + end + object tblImportKusovnikPopis: TStringField + FieldName = 'Popis' + Size = 100 + end + object tblImportKusovnikSZ: TStringField + FieldName = 'SZ' + Size = 3 + end + object tblImportKusovnikRegCis: TStringField + FieldName = 'RegCis' + Size = 30 + end + object tblImportKusovnikNovaKarta: TBooleanField + DefaultExpression = 'False' + FieldName = 'NovaKarta' + end + object tblImportKusovnikMnozstvi: TFloatField + DefaultExpression = 'False' + FieldName = 'Mnozstvi' + end + object tblImportKusovnikNorma: TStringField + FieldName = 'Norma' + Size = 100 + end + object tblImportKusovnikPozice: TIntegerField + FieldName = 'Pozice' + end + object tblImportKusovnikPU: TStringField + FieldName = 'PU' + Size = 100 + end + object tblImportKusovnikZpracovani: TStringField + FieldName = 'Zpracovani' + Size = 200 + end + object tblImportKusovnikVyrobce: TStringField + FieldName = 'Vyrobce' + Size = 100 + end + object tblImportKusovnikMaterial: TStringField + FieldName = 'Material' + Size = 200 + end + object tblImportKusovnikTloustka: TFloatField + FieldName = 'Tloustka' + end + object tblImportKusovnikJeProblem: TBooleanField + DefaultExpression = 'false' + FieldName = 'JeProblem' + end + end + object dsImportKusovnik: TDataSource + DataSet = tblImportKusovnik + Left = 60 + Top = 92 + end + object FDGUIxWaitCursor1: TFDGUIxWaitCursor + Provider = 'Forms' + Left = 290 + Top = 132 + end + object imgList: TImageList + Height = 22 + Width = 22 + Scaled = True + Left = 56 + Top = 270 + Bitmap = { + 494C010101000800040016001600FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 000000000000360000002800000058000000160000000100200000000000401E + 000000000000000000000000000000000000A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F0007777770077777700F0F0F000F0F0F00077777700777777007777 + 7700F0F0F000F0F0F0007777770077777700F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0F000F0F0 + F000A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6A600A6A6 + A600A6A6A600F0F0F00000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000058000000160000000100010000000000080100000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000} + end + object vImgList: TVirtualImageList + Images = <> + ImageCollection = imgCol + Left = 432 + Top = 254 + end + object imgCol: TImageCollection + Images = <> + Left = 428 + Top = 328 + end +end diff --git a/dataModul.pas b/dataModul.pas new file mode 100644 index 0000000..2b700fd --- /dev/null +++ b/dataModul.pas @@ -0,0 +1,120 @@ +unit dataModul; + +interface + +uses + System.SysUtils, System.Classes, FireDAC.Stan.Intf, FireDAC.Stan.Option, + FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, + FireDAC.DApt.Intf, FireDAC.UI.Intf, FireDAC.VCLUI.Wait, FireDAC.Comp.UI, + Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client, System.ImageList, + Vcl.ImgList, Vcl.Controls, Vcl.BaseImageCollection, Vcl.ImageCollection, + Vcl.VirtualImageList; + +type + TKmen = record + poz, idKmen, vyrobceCisOrg: integer; + cislo, nazev, vyrobce, norma, rozmer, material, pu, zprac, pozn, jakObj: string; + mnoz: Extended; +{$IF CompilerVersion>=34} // Sydney a vys + class operator Initialize (out Dest: TKmen); +{$ENDIF} + end; + + TKmenHelper = record helper for TKmen + function Clear: Boolean; + end; + + TdatModul = class(TDataModule) + tblImportKusovnik: TFDMemTable; + dsImportKusovnik: TDataSource; + FDGUIxWaitCursor1: TFDGUIxWaitCursor; + tblImportKusovnikID: TAutoIncField; + tblImportKusovnikIDKmen: TIntegerField; + tblImportKusovnikOznaceni: TStringField; + tblImportKusovnikPopis: TStringField; + tblImportKusovnikSZ: TStringField; + tblImportKusovnikRegCis: TStringField; + tblImportKusovnikNovaKarta: TBooleanField; + tblImportKusovnikMnozstvi: TFloatField; + imgList: TImageList; + tblImportKusovnikNorma: TStringField; + tblImportKusovnikPozice: TIntegerField; + vImgList: TVirtualImageList; + imgCol: TImageCollection; + tblImportKusovnikPU: TStringField; + tblImportKusovnikZpracovani: TStringField; + tblImportKusovnikVyrobce: TStringField; + tblImportKusovnikMaterial: TStringField; + tblImportKusovnikTloustka: TFloatField; + tblImportKusovnikJeProblem: TBooleanField; + private + { Private declarations } + public + { Public declarations } + end; + +var + datModul: TdatModul; + +implementation + +{%CLASSGROUP 'Vcl.Controls.TControl'} + +{$R *.dfm} + + +{ TKmenHelper } + function TKmenHelper.Clear: Boolean; + begin + result:= true; + try + self.idKmen:= 0; + self.poz:= 0; + self.vyrobceCisOrg:= 0; + self.mnoz:= 0; + self.cislo:= ''; + self.nazev:= ''; + self.vyrobce:= ''; + self.norma:= ''; + self.jakObj:= ''; + self.rozmer:= ''; + self.material:= ''; + self.pu:= ''; + self.pozn:= ''; + except + result:= false; + end; + end; + + + + +{$IF CompilerVersion>=34} // Sydney a vys + class operator TKmen.Initialize (out Dest: TKmen); + begin + Dest.idKmen:= 0; + Dest.poz:= 0; + Dest.vyrobceCisOrg:= 0; + Dest.mnoz:= 0; + Dest.cislo:= ''; + Dest.nazev:= ''; + Dest.vyrobce:= ''; + Dest.norma:= ''; + Dest.rozmer:= ''; + Dest.material:= ''; + Dest.pu:= ''; + Dest.pozn:= ''; + Dest.jakObj:= ''; + end; +{$ENDIF} + + + +initialization + datModul := TdatModul.Create(nil); + +finalization + datModul.Free; + + +end. diff --git a/frmImportKusovnik.dfm b/frmImportKusovnik.dfm new file mode 100644 index 0000000..ef71702 --- /dev/null +++ b/frmImportKusovnik.dfm @@ -0,0 +1,173 @@ +object formImportKusovnik: TformImportKusovnik + Left = 0 + Top = 0 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = ' Import dat kusovn'#237'ku z CADu' + ClientHeight = 715 + ClientWidth = 1111 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Segoe UI' + Font.Style = [] + Position = poOwnerFormCenter + RoundedCorners = rcOn + OnClose = FormClose + OnShow = FormShow + DesignSize = ( + 1111 + 715) + TextHeight = 21 + object Label1: TLabel + Left = 30 + Top = 24 + Width = 59 + Height = 21 + Caption = 'Zak'#225'zka:' + end + object selZakazka: TButtonedEdit + Left = 30 + Top = 48 + Width = 139 + Height = 29 + Alignment = taCenter + Images = datModul.imgList + RightButton.ImageIndex = 0 + RightButton.Visible = True + TabOrder = 0 + OnRightButtonClick = selZakazkaRightButtonClick + end + object edtStanice: TLabeledEdit + Left = 210 + Top = 48 + Width = 57 + Height = 29 + Alignment = taCenter + EditLabel.Width = 52 + EditLabel.Height = 21 + EditLabel.Caption = 'Stanice:' + TabOrder = 1 + Text = '' + end + object btnImport: TButton + Left = 296 + Top = 40 + Width = 111 + Height = 37 + Caption = 'Import dat' + TabOrder = 2 + OnClick = btnImportClick + end + object grdKusovnik: TJvDBGrid + Left = 12 + Top = 98 + Width = 1086 + Height = 550 + Anchors = [akLeft, akTop, akRight, akBottom] + DataSource = datModul.dsImportKusovnik + DrawingStyle = gdsGradient + GradientEndColor = clSkyBlue + TabOrder = 3 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -16 + TitleFont.Name = 'Segoe UI' + TitleFont.Style = [] + OnDrawColumnCell = grdKusovnikDrawColumnCell + OnDblClick = grdKusovnikDblClick + OnMouseUp = grdKusovnikMouseUp + SelectColumnsDialogStrings.Caption = 'Select columns' + SelectColumnsDialogStrings.OK = '&OK' + SelectColumnsDialogStrings.NoSelectionWarning = 'At least one column must be visible!' + EditControls = <> + AutoSizeRows = False + RowsHeight = 30 + TitleRowHeight = 30 + OnCanEditCell = grdKusovnikCanEditCell + Columns = < + item + Alignment = taCenter + Expanded = False + FieldName = 'Pozice' + ReadOnly = True + Title.Alignment = taCenter + Width = 60 + Visible = True + end + item + Expanded = False + FieldName = 'Oznaceni' + ReadOnly = True + Title.Caption = 'Ozna'#269'en'#237 + Width = 246 + Visible = True + end + item + Expanded = False + FieldName = 'Popis' + ReadOnly = True + Width = 412 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'SZ' + ReadOnly = True + Title.Alignment = taCenter + Title.Caption = 'SK' + Width = 47 + Visible = True + end + item + Alignment = taCenter + Expanded = False + FieldName = 'RegCis' + ReadOnly = True + Title.Alignment = taCenter + Title.Caption = 'Reg. '#269#237'slo' + Width = 118 + Visible = True + end + item + Expanded = False + FieldName = 'Mnozstvi' + ReadOnly = True + Title.Alignment = taCenter + Title.Caption = 'Mno'#382'stv'#237 + Visible = True + end + item + Expanded = False + FieldName = 'NovaKarta' + Title.Alignment = taCenter + Title.Caption = 'Nov'#225 + Width = 64 + Visible = True + end> + end + object btnStorno: TButton + Left = 988 + Top = 662 + Width = 111 + Height = 37 + Anchors = [akRight, akBottom] + Caption = 'Storno' + TabOrder = 4 + OnClick = btnStornoClick + ExplicitLeft = 856 + end + object btnZapis: TButton + Left = 484 + Top = 662 + Width = 129 + Height = 37 + Anchors = [akRight, akBottom] + Caption = 'Z'#225'pis do TPV' + TabOrder = 5 + OnClick = btnZapisClick + ExplicitLeft = 352 + end +end diff --git a/frmImportKusovnik.pas b/frmImportKusovnik.pas new file mode 100644 index 0000000..a5d3bfe --- /dev/null +++ b/frmImportKusovnik.pas @@ -0,0 +1,532 @@ +unit frmImportKusovnik; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Mask, + Data.DB, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid, System.UITypes, Vcl.BaseImageCollection, Vcl.ImageCollection, + ddPlugin_TLB; + + const + IDI_ELIPSIS = 32516; + +type + TformImportKusovnik = class(TForm) + selZakazka: TButtonedEdit; + Label1: TLabel; + edtStanice: TLabeledEdit; + btnImport: TButton; + grdKusovnik: TJvDBGrid; + btnStorno: TButton; + btnZapis: TButton; + procedure selZakazkaRightButtonClick (Sender: TObject); + procedure btnImportClick (Sender: TObject); + procedure grdKusovnikCanEditCell (Grid: TJvDBGrid; Field: TField; var AllowEdit: Boolean); + procedure btnStornoClick (Sender: TObject); + procedure FormClose (Sender: TObject; var Action: TCloseAction); + procedure grdKusovnikMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure grdKusovnikDblClick (Sender: TObject); + procedure btnZapisClick (Sender: TObject); + procedure grdKusovnikDrawColumnCell(Sender: TObject; const Rect: TRect; + DataCol: Integer; Column: TColumn; State: TGridDrawState); + procedure FormShow(Sender: TObject); + private + public + Helios: IHelios; + jeTest: boolean; + retVal: integer; + end; + +var + formImportKusovnik: TformImportKusovnik; + oVar1: OleVariant; + aktRow, aktCol: integer; + +implementation +uses System.StrUtils, + dataModul, + nExcel, xlsxwrite, + helUtils; + +{$R *.dfm} + + + + + + + procedure TformImportKusovnik.btnImportClick (Sender: TObject); + var lSQL, lSQL2: string; + initDir, titulek, filtr1, filtr2, fName: string; + xls: IXLSWorkBook; + shKarty: IXLSWorksheet; + karta: TKmen; + iTemp, idKZ, idKZFin: integer; + sTemp: string; + podm, colName, readVal, lastNRC, lastVRC, rcFin, sz, rc: string; + insId, idxR, iRowMax, iCol, iColMax, cEmptyRadek: integer; + mnoz, ztraty: Extended; + i_Poz, i_CisloDilu, i_Nazev, i_Ks, i_Vyrobce, i_Norma, i_Rozmer, i_Material, i_PU, i_Ziskani, i_Zprac, i_Pozn: integer; + radekV00, jeProblem: boolean; + begin + initDir:= GetEnvironmentVariable('USERPROFILE') + '\Desktop'; + titulek := 'Vyberte soubor pro import'; + filtr1 := 'Soubory MS Excel'; + filtr2 := '*.xls;*.xlsx'; + fName := ''; + if (helUtils.OtevriSoubor (titulek, filtr1, filtr2, initDir, fName)) then + if (FileExists(fName)) then + begin + Screen.Cursor:= crHourGlass; + + xls:= TXLSWorkbook.Create; + try + xls.Open(fName); + shKarty:= xls.Sheets.Entries[1]; + + i_Poz:= 0; + + lastNRC:= ''; + lastVRC:= ''; + + iRowMax:= 0; + cEmptyRadek:= 0; + try + for idxR:=1 to 60000 do + begin + if (cEmptyRadek>5) then + begin + iRowMax:= idxR; + Break; + end; + if (VarIsNull(shKarty.Cells.Item[idxR, 1].Value)) then + Inc(cEmptyRadek) + else + if (VarToStr(shKarty.Cells.Item[idxR, 1].Value)='') then + Inc(cEmptyRadek) + else + cEmptyRadek:= 0; + end; + except on E:Exception do + Helios.Error(#1'idxR: ' + idxR.ToString + CRLF + E.Message + #1) + end; + + + for idxR:=iRowMax downto 1 do + begin + if (not VarIsNull(shKarty.Cells.Item[idxR, 1].Value)) then + if (VarToStr(shKarty.Cells.Item[idxR, 1].Value)<>'') then + begin + iRowMax:= idxR; + Break; + end; + end; + + if (iRowMax>1) then + begin + rcFin:= ''; + + i_Poz := -1; + i_CisloDilu := -1; + i_Nazev := -1; + i_Ks := -1; + i_Vyrobce := -1; + i_Norma := -1; + i_Rozmer := -1; + i_Material := -1; + i_PU := -1; + i_Ziskani := -1; + i_Zprac := -1; + i_Pozn := -1; + + for iCol:=1 to 30 do + begin +{ + if (VarIsNull(shKarty.Cells.Item[1, iCol].Value)) then + begin + iColMax:= iCol-1; + Break; + end; + + if (VarToStr(shKarty.Cells.Item[1, iCol].Value)='') then + begin + iColMax:= iCol-1; + Break; + end; +} + if (shKarty.Cells.Item[1, iCol].Value='POZ') then + i_Poz:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='slo dlu') then + i_CisloDilu:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='Nzev') then + i_Nazev:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='KS') then + i_Ks:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='Vrobce') then + i_Vyrobce:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='NORMA') then + i_Norma:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='ROZMR') then + i_Rozmer:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='MATER.') then + i_Material:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='P') then + i_PU:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='zskn') then + i_Ziskani:= iCol; + if (shKarty.Cells.Item[1, iCol].Value='Zpracovn') then + i_Zprac:= iCol; + if (VarToStr(shKarty.Cells.Item[1, iCol].Value).Trim='Pozn ped') then + i_Pozn:= iCol; + end; + + if (i_Poz=0) or (i_CisloDilu=0) or (i_Norma=0) then + begin + Helios.Error(#1'Tabulka nen v poadovanm formtu'#1); + Exit; + end; + + + if (i_Poz>0) and (i_CisloDilu>0) and (i_Norma>0) then + begin + if not(dataModul.datModul.tblImportKusovnik.Active) then + dataModul.datModul.tblImportKusovnik.Open; + dataModul.datModul.tblImportKusovnik.EmptyDataSet; + + idxR:= 2; + +// nacti radky + while (idxR<=iRowMax) do + begin + karta.Clear; + + if not(VarIsNull(shKarty.Cells.Item[idxR, i_Poz].Value)) then + begin + if not(TryStrToInt(shKarty.Cells.Item[idxR, i_Poz].Value, karta.poz)) then + karta.poz := 0; + + if (i_CisloDilu>0) then + karta.cislo := IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_CisloDilu].Value), VarToStr(shKarty.Cells.Item[idxR, i_CisloDilu].Value), '').Replace(#10, ''); + + if (i_Nazev>0) then + karta.nazev := IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Nazev].Value), VarToStr(shKarty.Cells.Item[idxR, i_Nazev].Value), '').Replace(#10, ''); + + if not(TryStrToFloat(shKarty.Cells.Item[idxR, i_Ks].Value, karta.mnoz)) then + karta.mnoz := 0; + + if (i_Norma>0) then + karta.norma := IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Norma].Value), VarToStr(shKarty.Cells.Item[idxR, i_Norma].Value), '').Replace(#10, ''); + + if (i_PU>0) then + karta.pu := IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_PU].Value), VarToStr(shKarty.Cells.Item[idxR, i_PU].Value), '').Replace(#10, ''); + + if (i_Zprac>0) then + karta.zprac := IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Zprac].Value), VarToStr(shKarty.Cells.Item[idxR, i_Zprac].Value), '').Replace(#10, ''); + + if (i_Material>0) then + karta.material:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Material].Value), VarToStr(shKarty.Cells.Item[idxR, i_Material].Value), '').Replace(#10, ''); + +{ + if (i_Vyrobce>0) then + begin + karta.vyrobce:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Vyrobce].Value), VarToStr(shKarty.Cells.Item[idxR, i_Vyrobce].Value), '').Replace(#10, ''); + if (karta.vyrobce<>'') then + begin + lSQL2:= 'SELECT TOP(1) c.CisloOrg FROM ' + tblCOrg + ' c INNER JOIN ' + tblCOrgE + ' ce ON (ce.ID=c.ID) WHERE ce._NazevProImportKusovniku=N' + karta.vyrobce.QuotedString; + karta.vyrobceCisOrg:= helUtils.getHeliosIntVal(Helios, 0, lSQL2); + end; + end; + + if (i_Rozmer>0) then + karta.rozmer:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_Rozmer].Value), VarToStr(shKarty.Cells.Item[idxR, i_Rozmer].Value), '').Replace(#10, ''); + + if (i_ziskani>0) then + karta.jakObj:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_ziskani].Value), VarToStr(shKarty.Cells.Item[idxR, i_ziskani].Value), ''); + + if (i_pozn>0) then + karta.pozn:= IfThen(not VarIsNull(shKarty.Cells.Item[idxR, i_pozn].Value), VarToStr(shKarty.Cells.Item[idxR, i_pozn].Value), '').Replace(#10, CRLF); +} + end; + + idKZ := 0; + iTemp := 0; + jeProblem := false; + if (karta.poz>=300) and (karta.poz<500) and (karta.norma<>'') then + begin + lSQL := 'SELECT COUNT(ID) AS Pocet FROM ' + tblKZe + ' WITH(NOLOCK) WHERE _VyhledavaniKody=N' + karta.norma.QuotedString; + with Helios.OpenSQL(lSQL) do + if not(EOF) then + iTemp := VarToStr(FieldByNameValues('Pocet')).ToInteger; + if (iTemp=1) then + idKZ := helUtils.getHeliosIntVal (Helios, 0, lSQL.Replace('COUNT(ID) AS Pocet', 'ID')) + else + if (iTemp=0) then + begin + lSQL := 'SELECT COUNT(ID) AS Pocet FROM ' + tblKZe + ' WITH(NOLOCK) WHERE _VyhledavaniKody LIKE N' + QuotedStr('%' + karta.norma + '%'); + with Helios.OpenSQL(lSQL) do + if not(EOF) then + iTemp := VarToStr(FieldByNameValues('Pocet')).ToInteger; + if (iTemp=1) then + idKZ := helUtils.getHeliosIntVal (Helios, 0, lSQL.Replace('COUNT(ID) AS Pocet', 'ID')) + else + jeProblem := true; + end + else + jeProblem := true; + end; + + if (idKZ=0) and not(jeProblem) and (karta.poz>=300) and (karta.poz<500) and (karta.cislo<>'') then + begin + iTemp := 0; + lSQL := 'SELECT COUNT(ID) AS Pocet FROM ' + tblKZe + ' WITH(NOLOCK) WHERE _VyhledavaniKody=N' + karta.cislo.QuotedString; + with Helios.OpenSQL(lSQL) do + if not(EOF) then + iTemp := VarToStr(FieldByNameValues('Pocet')).ToInteger; + if (iTemp=1) then + idKZ := helUtils.getHeliosIntVal (Helios, 0, lSQL.Replace('COUNT(ID) AS Pocet', 'ID')) + else + if (iTemp=0) then + begin + lSQL := 'SELECT COUNT(ID) AS Pocet FROM ' + tblKZe + ' WITH(NOLOCK) WHERE _VyhledavaniKody LIKE N' + QuotedStr('%' + karta.cislo + '%'); + with Helios.OpenSQL(lSQL) do + if not(EOF) then + iTemp := VarToStr(FieldByNameValues('Pocet')).ToInteger; + if (iTemp=1) then + idKZ := helUtils.getHeliosIntVal (Helios, 0, lSQL.Replace('COUNT(ID) AS Pocet', 'ID')) + else + jeProblem := true; + end + else + jeProblem := true; + end; + + sz := ''; + rc := ''; + if (idKZ>0) then + with Helios.OpenSQL('SELECT SkupZbo, RegCis FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString) do + if not(EOF) then + begin + sz := VarToStr(FieldByNameValues('SkupZbo')); + rc := VarToStr(FieldByNameValues('RegCis')); + end; + + dataModul.datModul.tblImportKusovnik.Append; + try + dataModul.datModul.tblImportKusovnik.FieldByName('IDKmen').AsInteger := idKZ; + dataModul.datModul.tblImportKusovnik.FieldByName('SZ').AsString := sz; + dataModul.datModul.tblImportKusovnik.FieldByName('RegCis').AsString := rc; + dataModul.datModul.tblImportKusovnik.FieldByName('Pozice').AsInteger := karta.poz; + dataModul.datModul.tblImportKusovnik.FieldByName('Oznaceni').AsString := karta.cislo; + dataModul.datModul.tblImportKusovnik.FieldByName('Popis').AsString := karta.nazev; + dataModul.datModul.tblImportKusovnik.FieldByName('Mnozstvi').AsExtended := karta.mnoz; + dataModul.datModul.tblImportKusovnik.FieldByName('Norma').AsString := karta.norma; + dataModul.datModul.tblImportKusovnik.FieldByName('Material').AsString := karta.material; + dataModul.datModul.tblImportKusovnik.FieldByName('PU').AsString := karta.pu; + dataModul.datModul.tblImportKusovnik.FieldByName('Zpracovani').AsString := karta.zprac; + dataModul.datModul.tblImportKusovnik.FieldByName('JeProblem').AsBoolean := jeProblem or (idKZ=0); + dataModul.datModul.tblImportKusovnik.Post; + except + dataModul.datModul.tblImportKusovnik.Cancel; + end; + Inc(idxR); + end; + dataModul.datModul.tblImportKusovnik.First; + end; + end; + finally +{$IF CompilerVersion < 34.0} // SYDNEY + FreeAndNil(xls); +{$ENDIF} + end; + + Screen.Cursor:= crDefault; + + end; + end; + + + + + procedure TformImportKusovnik.btnStornoClick (Sender: TObject); + begin + retVal:= 10; + Close; + end; + + + + + procedure TformImportKusovnik.btnZapisClick (Sender: TObject); + var lSQL: string; + canCont: boolean; + begin + canCont := true; + selZakazka.Text := selZakazka.Text.Trim; + edtStanice.Text := edtStanice.Text.Trim; + if (selZakazka.Text='') then + begin + Helios.Error(#1'Nen vybrna Zakzka'#1); + self.ActiveControl := selZakazka; + canCont := false; + end; + if not helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblZak + ' WHERE CisloZakazky=N' + selZakazka.Text.QuotedString) then + begin + Helios.Error(#1'Vybrna Zakzka neexistuje'#1); + self.ActiveControl := selZakazka; + canCont := false; + end; + if (edtStanice.Text='') then + begin + Helios.Error(#1'Nen zadna Stanice'#1); + self.ActiveControl := selZakazka; + canCont := false; + end; + + if (canCont) then + begin + if (datModul.tblImportKusovnik.RecordCount>0) then + begin + lSQL := 'DROP TABLE IF EXISTS #TabCADKusovnik' + CRLF + + 'CREATE TABLE #TabCADKusovnik (ID INT IDENTITY(1,1) NOT NULL, NovaKarta BIT DEFAULT 0, Pozice INT, IDKmen INT, CisloDilce NVARCHAR(100), Nazev NVARCHAR(100)' + + ', Mnozstvi NUMERIC(19,6) DEFAULT 0.0, Zpracovani NVARCHAR(200), Vyrobce NVARCHAR(200), Norma NVARCHAR(200), PU NVARCHAR(200), Material NVARCHAR(200)' + + ', Tloustka NUMERIC(8,2) DEFAULT 0.0)' + CRLF; + datModul.tblImportKusovnik.DisableControls; + datModul.tblImportKusovnik.First; + while not(datModul.tblImportKusovnik.Eof) do + begin + lSQL := lSQL + 'INSERT #TabCADKusovnik (NovaKarta, IDKmen, Pozice, CisloDilce, Nazev, Mnozstvi, PU, Zpracovani, Vyrobce, Norma, Material, Tloustka) SELECT ' + + IfThen(datModul.tblImportKusovnik.FieldByName('NovaKarta').AsBoolean, ',', '0') + + ', ' + datModul.tblImportKusovnik.FieldByName('IDKmen').AsString + ', ' + datModul.tblImportKusovnik.FieldByName('Pozce').AsString + + ', N' + datModul.tblImportKusovnik.FieldByName('Oznaceni').AsString.QuotedString + ', N' + datModul.tblImportKusovnik.FieldByName('Popis').AsString.QuotedString + + ', ' + datModul.tblImportKusovnik.FieldByName('Mnozstvi').AsString.Replace(',', '.') + ', N' + datModul.tblImportKusovnik.FieldByName('PU').AsString.QuotedString + + ', N' + datModul.tblImportKusovnik.FieldByName('Zpracovani').AsString.QuotedString + ', N' + datModul.tblImportKusovnik.FieldByName('Vyrobce').AsString.QuotedString + + ', N' + datModul.tblImportKusovnik.FieldByName('Norma').AsString.QuotedString + ', N' + datModul.tblImportKusovnik.FieldByName('Material').AsString.QuotedString + + ', ' + datModul.tblImportKusovnik.FieldByName('Tloustka').AsString.Replace(',', '.') + CRLF; + datModul.tblImportKusovnik.Next; + end; + lSQL := lSQL + 'IF OBJECT_ID(N''dbo.ep_HDC_ImportCADKusovnik'', ''P'') IS NOT NULL EXEC dbo.ep_HDC_ImportCADKusovnik @Zakazka=N' + selZakazka.Text.QuotedString + + ', @Stanice=N' + edtStanice.Text.QuotedString; + try + try + Helios.ExecSQL (lSQL); + except + on E: Exception do + Helios.Error (#1'Chyba zpracovn: ' + E.Message + #1); + end; + finally + end; + end; + Close; + end; + end; + + + + + procedure TformImportKusovnik.FormClose (Sender: TObject; var Action: TCloseAction); + begin + if (datModul.tblImportKusovnik.Active) then + datModul.tblImportKusovnik.EmptyDataSet; + + Action:= TCloseAction.caHide; + end; + + + + + procedure TformImportKusovnik.FormShow(Sender: TObject); + begin + self.ClientHeight := 715; + self.ClientWidth := 1115; + end; + + + + + procedure TformImportKusovnik.grdKusovnikCanEditCell (Grid: TJvDBGrid; Field: TField; var AllowEdit: Boolean); + begin + AllowEdit := (Field.FieldName='NovaKarta'); + end; + + + + + procedure TformImportKusovnik.grdKusovnikDblClick (Sender: TObject); + var i, idKZ, poz: integer; + titulek, sz, rc, nazev1: string; + begin + i := datModul.tblImportKusovnik.RecNo; + poz := datModul.tblImportKusovnik.FieldByName('Pozice').AsInteger; + if (poz>=300) and (poz<500) and (aktCol<>7) then // pokud kliknu na "Nova", nic neukazuj + begin + titulek := 'Vyberte kmenovou kartu pro dlec/materil: slo "' + datModul.tblImportKusovnik.FieldByName('Oznaceni').AsString + '" / norma "' + + datModul.tblImportKusovnik.FieldByName('Norma').AsString + '" / pozice ' + poz.ToString; + if (Helios.Prenos (bidKZ, 'TabKmenZbozi.ID', oVar1, 'TabKmenZbozi.Sluzba=0 AND TabKmenZbozi.Blokovano=0', titulek, true)) then + begin + idKZ := VarToStr(oVar1).ToInteger; + with Helios.OpenSQL ('SELECT SkupZbo, RegCis, Nazev1 FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString) do + begin + sz := FieldByNameValues('SkupZbo'); + rc := FieldByNameValues('RegCis'); + nazev1 := FieldByNameValues('Nazev1'); + datModul.tblImportKusovnik.Edit; + try + datModul.tblImportKusovnik.FieldByName('IDKmen').AsInteger := idKZ; + datModul.tblImportKusovnik.FieldByName('SZ').AsString := sz; + datModul.tblImportKusovnik.FieldByName('RegCis').AsString := rc; + datModul.tblImportKusovnik.FieldByName('JeProblem').AsBoolean := false; + // datModul.tblImportKusovnik.FieldByName('Nazev1').AsString := nazev1; + datModul.tblImportKusovnik.Post; + except + on E:Exception do + datModul.tblImportKusovnik.Cancel; + end; + end; + end; + end; + end; + + + + + procedure TformImportKusovnik.grdKusovnikDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); + var poz: integer; + begin + poz := grdKusovnik.DataSource.DataSet.FieldByName('Pozice').AsInteger; + + if (gdSelected in State) then + grdKusovnik.Canvas.Font.Color := clBlack; + + if (poz>=300) and (poz<500) then + begin + if (Assigned(Column.Field) and (System.SysUtils.SameText(Column.FieldName, 'Popis'))) then + if (grdKusovnik.DataSource.DataSet.FieldByName('JeProblem').AsBoolean) then + grdKusovnik.Canvas.Brush.Color := clRed; + end; + + grdKusovnik.DefaultDrawColumnCell (Rect, DataCol, Column, State); + end; + + + + + procedure TformImportKusovnik.grdKusovnikMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + begin + aktRow := TJvDBGrid(Sender).MouseCoord (X, Y).Y; + aktCol := TJvDBGrid(Sender).MouseCoord (X, Y).X; + end; + + + + + procedure TformImportKusovnik.selZakazkaRightButtonClick (Sender: TObject); + begin + if (Helios.Prenos(bidZak,'TabZakazka.CisloZakazky', oVar1, '', 'Vyberte zakzku', true)) then + begin + selZakazka.Text := VarToStr (oVar1); + self.ActiveControl := edtStanice; + end; + end; + +end. diff --git a/lib/kopirujLib.cmd b/lib/kopirujLib.cmd new file mode 100644 index 0000000..caf348c --- /dev/null +++ b/lib/kopirujLib.cmd @@ -0,0 +1,13 @@ +@echo off +copy /y D:\Data\Helios\_space\Core\hecore\plgTypeJadro.INC C:\_zakaznici\Montekord\_plg\lib + +rem plgHlaskyEx.INC +rem plgHlaskyJadro.INC +rem plgTypeBrowse.INC +rem plgTypeSoudky.inc +rem plgTypeTabulka.inc +rem plgTypeTxtEx.inc +rem plgTypeTxtJadro.INC +rem plgTypeUTA.inc +rem plgTypeZbytek.inc +rem plgUtaDef.inc diff --git a/lib/plgHlaskyEx.INC b/lib/plgHlaskyEx.INC new file mode 100644 index 0000000..a29bda8 --- /dev/null +++ b/lib/plgHlaskyEx.INC @@ -0,0 +1,10 @@ +// PRVNI HLASKA MUSI ZACINAT min. W = 5050000 !!! + +// ,(SelfIdent: plx...; +// H : ''; +// W : 5050000;{$IFDEF EdHlasky}I:'';E:'';D:'';{$ENDIF}) + +//last + + + diff --git a/lib/plgHlaskyJadro.INC b/lib/plgHlaskyJadro.INC new file mode 100644 index 0000000..0a4edee --- /dev/null +++ b/lib/plgHlaskyJadro.INC @@ -0,0 +1,847 @@ +// prvni hlaska MUSI zustat prazdna !! +(SelfIdent: plxNic; +H : ''; +W : 5000000) + +,(SelfIdent: plxOK; +H : 'OK'; +SK: 'OK'; +W : 5000001; I:'text na klávese OK';E:'OK';D:'OK') + +,(SelfIdent: plxStorno; +H : 'Storno'; +SK: 'Storno'; +W : 5000002; I:'text na klávese Storno';E:'Cancel';D:'') + +,(SelfIdent: plxJadroUlozitZmeny; +H : 'Uložit změny ?'; +SK: 'Uložiť zmeny ?'; +W : 5000003) + +,(SelfIdent: plxJadroPrazdnaNeboChybneZadanaPolozka; +H : 'Prázdná nebo chybně zadaná položka'; +SK: 'Prázdná alebo chybne zadaná položka'; +W : 5000004) + +,(SelfIdent: plxJadroOprPrejSmazAkt; +H : 'Opravdu si přejete smazat aktuální záznam ?'; +SK: 'Naozaj si prajete zmazať aktuálny záznam ?'; +W : 5000005; I:'Dotaz na DELETE v přehledu';E:'';D:'';) + +,(SelfIdent: plxJadroOprPrejSmazVse; +H : 'Opravdu si přejete smazat'#1' všechny '#1'označené záznamy'; +SK: 'Naozaj si prajete zmazať'#1' všetky '#1'označené záznamy'; +W : 5000006; I:'Dotaz na DELETE v přehledu';E:'';D:'';) + +,(SelfIdent: plxJadroNeni; +H : '(není)'; +SK: '(nie je)'; +W : 5000007; I:'text značící nepřítomnost hodnoty';E:'(none)';D:'') + +,(SelfIdent: plxJadroPluginVyzadujeMinVerziX; +H : 'Plugin vyžaduje minimální verzi Heliosu '#1'%s'#1' !'; +SK: 'Plugin vyžaduje minimálnu verziu Heliosu '#1'%s'#1' !'; +W : 5000008) + +,(SelfIdent: plxJadroAkceNemuzeBytSpustena; +H : 'Akce nemůže být spuštěna nad aktuálním přehledem (chyba č. %d)!'; +SK: 'Akcia nemôže byť spustená nad aktuálnym prehľadom (chyba č. %d)!'; +W : 5000009) + +,(SelfIdent: plxJadroMenuEditace; +H : 'Editace'; +SK: 'Editácia'; +W : 5000010) + +,(SelfIdent: plxJadroAkceNovy; +H : 'Nový'; +SK: 'Nový'; +W : 5000011; GUID: '{B24F7317-2850-4E23-84C2-23759E2104BD}') + +,(SelfIdent: plxJadroAkceOprava; +H : 'Oprava'; +SK: 'Oprava'; +W : 5000012; GUID: '{E72DC09D-A06D-4712-B44E-40F8D4023DD9}') + +,(SelfIdent: plxJadroAkceZrusit; +H : 'Zrušit'; +SK: 'Zrušiť'; +W : 5000013; GUID: '{69B3748A-4A0D-4FAF-95DA-C5A86EAAF64C}') + +,(SelfIdent: plxJadroPouzeKeCteni; +H : 'pouze ke čtení'; +SK: 'len na čítanie'; +W : 5000014) + +,(SelfIdent: plxJadroZavrit; +H : 'Zavřít'; +SK: 'Zavrieť'; +W : 5000015) + +,(SelfIdent: plxJadroIndexSeZmenil; +H : 'Index se v databázi změnil'; +SK: 'Index sa v databázi zmenil'; +W : 5000016) + +,(SelfIdent: plxJadroIndexV_DB_Chybi; +H : 'Index v databázi chybí'; +SK: 'Index v databázi chýba'; +W : 5000017) + +,(SelfIdent: plxJadroKontrolaPluginuX; +H : 'Kontrola pluginu %s (%s)'; +SK: 'Kontrola pluginu %s (%s)'; +W : 5000018) + +,(SelfIdent: plxJadroSpustit; +H : 'Spustit'; +SK: 'Spustiť'; +W : 5000019) + +,(SelfIdent: plxJadroZmenoveSkripty; +H : 'Změnové skripty'; +SK: 'Zmenové skripty'; +W : 5000020) + +,(SelfIdent: plxJadroKontrolaTabulek; +H : 'Kontrola tabulek'; +SK: 'Kontrola tabuliek'; +W : 5000021) + +,(SelfIdent: plxJadroKontrolaJednotlivychAtributu; +H : 'Kontrola jednotlivých atributů'; +SK: 'Kontrola jednotlivých atribútov'; +W : 5000022) + +,(SelfIdent: plxJadroKontrolaUnikatnichKlicu; +H : 'Kontrola unikátních klíčů'; +SK: 'Kontrola unikátnych kľúčov'; +W : 5000023) + +,(SelfIdent: plxJadroKontrolaIntegritnichOmezeni; +H : 'Kontrola integritních omezení'; +SK: 'Kontrola integritných omedzení'; +W : 5000024) + +,(SelfIdent: plxJadroKontrolaCizichKlicu; +H : 'Kontrola cizích klíčů'; +SK: 'Kontrola cudzích kľúčov'; +W : 5000025) + +,(SelfIdent: plxJadroKontrolaUlozenychProcedur; +H : 'Kontrola uložených procedur'; +SK: 'Kontrola uložených procedúr'; +W : 5000026) + +,(SelfIdent: plxJadroKontrolaTriggeru; +H : 'Kontrola triggerů'; +SK: 'Kontrola triggerov'; +W : 5000027) + +,(SelfIdent: plxJadroKontrolaIndexu; +H : 'Kontrola indexů'; +SK: 'Kontrola indexov'; +W : 5000028) + +,(SelfIdent: plxJadroKontrolaPrehledu_a_Akci; +H : 'Kontrola def.přehledů a externích akcí'; +SK: 'Kontrola def.prehľadov a externých akcií'; +W : 5000029) + +,(SelfIdent: plxJadroImportFormularuFilruOpisu; +H : 'Import formulářů, filtrů a opisů'; +SK: 'Import formulárov, filtrov a opisov'; +W : 5000030) + +,(SelfIdent: plxJadroZmenovySkriptJizBylProveden; +H : 'Změnový skript už byl proveden někým jiným - informace by měla být v žurnálu !'; +SK: 'Zmenový skript už bol vykonaný niekym iným - informácia by mala byť v žurnále !'; +W : 5000031) + +,(SelfIdent: plxJadroUpdateZVerze_X_NaVerzi_Y; +H : 'Update z verze %s na verzi %s.'; +SK: 'Update z verzie %s na verziu %s.'; +W : 5000032) + +,(SelfIdent: plxJadroZmenovychSkriptuX; +H : 'změnových skriptů: %d'; +SK: 'zmenových skriptov: %d'; +W : 5000033) + +,(SelfIdent: plxJadroInstalaceHotovo; +H : 'Hotovo'; +SK: 'Hotovo'; +W : 5000034) + +,(SelfIdent: plxJadro_X_BudeNyniUkoncen; +H : 'Aplikace %s bude ukončena.'; +SK: 'Aplikácia %s bude ukončená.'; +W : 5000035) + +,(SelfIdent: plxJadroBylaDetekovanaZmenaStruktury; +H : 'Byla detekována změna struktury.'; +SK: 'Bola detekovaná zmena štruktúry.'; +W : 5000036) + +,(SelfIdent: plxJadroUvedeneTabulkyChybi; +H : 'Uvedené tabulky v databázi chybí.'; +SK: 'Uvedené tabuľky v databázi chýbajú.'; +W : 5000037) + +,(SelfIdent: plxJadroVytvoreniZakladnichPrehledu; +H : 'Vytvoření a změna základních přehledů, akcí a vazeb.'; +SK: 'Vytvorenie a zmena základných prehľadov, akcií a väzieb.'; +W : 5000038) + +,(SelfIdent: plxJadroZmenaStrukturyDB; +H : 'Změna struktury databáze'; +SK: 'Zmena štruktúry databázy'; +W : 5000039) + +,(SelfIdent: plxJadroOpravduSiPrejeteUvedeneZmeny; +H : 'Opravdu si přejete provést výše uvedené změny ?'; +SK: 'Naozaj si prajete vykonať vyššie uvedené zmeny ?'; +W : 5000040) + +,(SelfIdent: plxJadroPredZmenamiDoporucujemeZalohuDB; +H : 'Před provedením změn doporučujeme provést zálohu databáze.'; +SK: 'Pred vykonaním zmien doporučujeme vykonať zálohu databázy.'; +W : 5000041) + +,(SelfIdent: plxJadroTlacitkoZalohovani; +H : '&Zálohování...'; +SK: '&Zálohovanie...'; +W : 5000042) + +,(SelfIdent: plxJadroProvest; +H : 'Provést'; +SK: 'Vykonať'; +W : 5000043) + +,(SelfIdent: plxJadroAkceUkazSQLSkript; +H : '&Ukaž SQL skript...'; +SK: '&Ukáž SQL skript...'; +W : 5000044) + +,(SelfIdent: plxJadroDefinovaneFormulare; +H : 'Definované formuláře'; +SK: 'Definované formuláre'; +W : 5000045) + +,(SelfIdent: plxJadroDefinovaneFiltry; +H : 'Definované filtry'; +SK: 'Definované filtre'; +W : 5000046) + +,(SelfIdent: plxJadroDefinovaneOpisy; +H : 'Definované opisy'; +SK: 'Definované opisy'; +W : 5000047) + +,(SelfIdent: plxJadroAutoImportInfo; +H : 'Byly nalezeny nové soubory pro import.'#13#13+ + 'Pokud neprovedete import v tuto chvíli, máte ' + + 'možnost ho provést později ručně - soubory jsou ' + + 'umístěny v podadresáři SYSTEM v cestě, kde se ' + + 'nachází plugin %s.'; +SK: 'Boli nájdené nové súbory pre import.'#13#13+ + 'Pokiaľ nevykonáte import v tejto chvíli, máte ' + + 'možnosť ho vykonať neskôr ručne - súbory sú ' + + 'umiestnené v podadresári SYSTEM v ceste, kde sa ' + + 'nachádza plugin %s.'; +W : 5000048) + +,(SelfIdent: plxJadroAbout_OPluginu; +H : 'O pluginu...'; +SK: 'O plugine...'; +W : 5000049) + +,(SelfIdent: plxJadroKopirovat; +H : 'Kopírovat'; +SK: 'Kopírovať'; +W : 5000050) + +,(SelfIdent: plxJadroAbout_Nazev; +H : 'Název'; +SK: 'Názov'; +W : 5000051) + +,(SelfIdent: plxJadroAbout_Hodnota; +H : 'Hodnota'; +SK: 'Hodnota'; +W : 5000052) + +,(SelfIdent: plxJadroVerze; +H : 'Verze'; +SK: 'Verzia'; +W : 5000053) + +,(SelfIdent: plxJadroAbout_Vyrobce; +H : 'Výrobce'; +SK: 'Výrobca'; +W : 5000054) + +,(SelfIdent: plxJadroAbout_MinVerze_X; +H : 'Min. verze %s'; +SK: 'Min. verzia %s'; +W : 5000055) + +,(SelfIdent: plxJadroAbout_JADRO; +H : 'JÁDRO'; +SK: 'JADRO'; +W : 5000056) + +,(SelfIdent: plxJadroVerze_V_DB; +H : 'Verze v DB'; +SK: 'Verzia v DB'; +W : 5000057) + +,(SelfIdent: plxJadroVerzePluginu; +H : 'Verze pluginu'; +SK: 'Verzia pluginu'; +W : 5000058) + +,(SelfIdent: plxJadroVerzePluginuJeNizsiNezVDB; +H : 'Verze pluginu je nižší než verze v databázi!'; +SK: 'Verzia pluginu je nižšia ako verzia v databázy!'; +W : 5000059) + +,(SelfIdent: plxJadroNeznamaAkce; +H : 'Neznámá akce!'; +SK: 'Neznáma akcia!'; +W : 5000060) + +,(SelfIdent: plxJadroJeTrebaSpustitInstalaciPluginu; +H : 'Je třeba spustit instalaci pluginu!'; +SK: 'Je potrebné spustiť inštalácia pluginu!'; +W : 5000061) + +,(SelfIdent: plxJadroVerzePluginuJeVyssiNezVDB; +H : 'Verze pluginu je vyšší než verze v databázi!'; +SK: 'Verzia pluginu je vyššia ako verzia v databázy!'; +W : 5000062) + +,(SelfIdent: plxJadroMinulaInstalaceNeprobehlaKorektne; +H : 'Při minulé instalaci nebyly korektně provedeny všechny změny!'; +SK: 'Pri minulej inštalácii neboli korektne vykonané všetky zmeny!'; +W : 5000063) + +,(SelfIdent: plxJadroVymazat; +H : 'Vymazat'; +SK: 'Vymazať'; +W : 5000064) + +,(SelfIdent: plxJadroZakazkaXJeUzavrena; +H : 'Zakázka '#1'%s'#1' je '#1'uzavřena'#1'!'; +SK: 'Zákazka '#1'%s'#1' je '#1'uzavretá'#1'!'; +W : 5000065) + +,(SelfIdent: plxJadroNalezenoViceStejnychHodnotPolozky; +H : 'Nalezeno více stejných hodnot položky'; +SK: 'Nájdených viac rovnakých hodnôt položky'; +W : 5000066) + +,(SelfIdent: plxJadroOrganizaceJeZakazana; +H : 'Organizace je zakázána!'; +SK: 'Organizácia je zakázaná'; +W : 5000067) + +,(SelfIdent: plxJadroOrganizaceJeBlokovana; +H : 'Organizace je blokovaná!'; +SK: 'Organizácia je blokovaná!'; +W : 5000068) + +,(SelfIdent: plxJadroInfoOrg_DluhXKeDniY; +H : ', dluh %s Kč ke dni %s'; +SK: ', dlh %s Sk ku dňu %s'; +W : 5000069) + +,(SelfIdent: plxJadroDatumPoslednihoAutoImportuFormularu; +H : 'Datum posledního autoimportu formulářů'; +SK: 'Dátum posledného autoimportu formulárov'; +W : 5000070) + +,(SelfIdent: plxJadroDatumPoslednihoAutoImportuFiltru; +H : 'Datum posledního autoimportu filtrů'; +SK: 'Dátum posledného autoimportu filtrov'; +W : 5000071) + +,(SelfIdent: plxJadroDatumPoslednihoAutoImportuOpisu; +H : 'Datum posledního autoimportu opisů'; +SK: 'Dátum posledného autoimportu opisov'; +W : 5000072) + +,(SelfIdent: plxJadroSystemoveCislo; +H : 'Systémové číslo'; +SK: 'Systémové číslo'; +W : 5000073) + +,(SelfIdent: plxJadroSysCisZkr; +H : 'Sys.č.'; +SK: 'Sys.č.'; +W : 5000074) + +,(SelfIdent: plxJadroAutor; +H : 'Autor'; +SK: 'Autor'; +W : 5000075; I:'';E:'Author';D:'Autor') + +,(SelfIdent: plxJadroDatumPorizeni; +H : 'Datum pořízení'; +SK: 'Dátum zaevidovania'; +W : 5000076; I:'';E:'Creation date';D:'') + +,(SelfIdent: plxJadroZmenil; +H : 'Změnil'; +SK: 'Zmenil'; +W : 5000077) + +,(SelfIdent: plxJadroDatumZmeny; +H : 'Datum změny'; +SK: 'Dátum zmeny'; +W : 5000078) + +,(SelfIdent: plxJadroBlokovaniEditoru; +H : 'Blokování editoru'; +SK: 'Blokovanie editoru'; +W : 5000079) + +,(SelfIdent: plxJadroNovy; +H : 'Nový...'; +SK: 'Nový...'; +W : 5000080) + +,(SelfIdent: plxJadroOprava; +H : 'Oprava...'; +SK: 'Oprava...'; +W : 5000081) + +,(SelfIdent: plxJadroZrusit; +H : 'Zrušit'; +SK: 'Zrušiť'; +W : 5000082) + +,(SelfIdent: plxJadroObnovit; +H : 'Obnovit'; +SK: 'Obnoviť'; +W : 5000083) + +,(SelfIdent: plxJadroAno; +H : 'Ano'; +SK: 'Áno'; +W : 5000084) + +,(SelfIdent: plxJadroNe; +H : 'Ne'; +SK: 'Nie'; +W : 5000085) + +,(SelfIdent: plxJadroNebylNalezenPrehled_X_Y; +H : 'Nebyl nalezen def.přehled '#1'%s'#1' (%s)!'; +SK: 'Nebol nájdený def.prehľad '#1'%s'#1' (%s)!'; +W : 5000086) + +,(SelfIdent: plxJadroNebylNalezenPrehledCislo_X; +H : 'Nebyl nalezen def.přehled číslo '#1'%s'#1'!'; +SK: 'Nebol nájdený def.prehľad číslo '#1'%s'#1'!'; +W : 5000087) + +,(SelfIdent: plxJadroDefPrehledy_a_JejichAkce; +H : 'Definované přehledy a jejich akce'; +SK: 'Definované prehľady a ich akcia'; +W : 5000088) + +,(SelfIdent: plxJadroExterniAkce; +H : 'Externí akce'; +SK: 'Externá akcia'; +W : 5000089) + +,(SelfIdent: plxJadroAkceProPrehledCislo_X; +H : 'Akce pro přehled č.%d'; +SK: 'Akcia pre prehľad č.%d'; +W : 5000090) + +,(SelfIdent: plxJadroDefinovaneVazby; +H : 'Definované vazby'; +SK: 'Definované väzby'; +W : 5000091) + +,(SelfIdent: plxJadroExterniAtributy; +H : 'Externí atributy'; +SK: 'Externé atribúty'; +W : 5000092) + +,(SelfIdent: plxJadroExterniAtribut_T_A; +H : 'Ext.atribut %s.%s'; +SK: 'Ext.atribút %s.%s'; +W : 5000093) + +,(SelfIdent: plxJadroUzivatelskeSoudecky; +H : 'Uživatelské soudečky'; +SK: 'Uživateľské súdočky'; +W : 5000094) + +,(SelfIdent: plxJadroPoradiSoudecku; +H : 'Pořadí soudečků'; +SK: 'Poradie súdočkov'; +W : 5000095) + +,(SelfIdent: plxJadroInstalace; +H : 'Instalace'; +SK: 'Inštalácia'; +W : 5000096) + +,(SelfIdent: plxJadroZakladniInformace; +H : 'Základní informace'; +SK: 'Základné informácie'; +W : 5000097) + +,(SelfIdent: plxJadroTechnickyPopis; +H : 'Technický popis'; +SK: 'Technický popis'; +W : 5000098) + +,(SelfIdent: plxJadroMinVerzeSQLServeru; +H : 'Min. verze SQL Serveru'; +SK: 'Min. verzia SQL Servera'; +W : 5000099) + +,(SelfIdent: plxJadroNeinstalovano; +H : ''; +SK: ''; +W : 5000100) + +,(SelfIdent: plxJadroInstalovanaVerze; +H : 'Instalovaná verze'; +SK: 'Inštalovaná verzia'; +W : 5000101) + +,(SelfIdent: plxJadroUmisteni; +H : 'Umístění'; +SK: 'Umiestnenie'; +W : 5000102) + +,(SelfIdent: plxJadroPrerusit; +H : 'Přerušit'; +SK: 'Prerušiť'; +W : 5000103) + +,(SelfIdent: plxJadroOpravduAkciPrerusit; +H : 'Opravdu chcete akci přerušit?'; +SK: 'Naozaj chcete akciu prerušiť?'; +W : 5000104) + +,(SelfIdent: plxJadroPluginVyzadujeMinVerziSQL_X; +H : 'Plugin vyžaduje MS SQL Server verze minimálně '#1'%s'#1'!'; +SK: 'Plugin vyžaduje MS SQL Server verzia minimálne '#1'%s'#1'!'; +W : 5000105) + +,(SelfIdent: plxJadroNavaznyCiselnikSFiltraci; +H : 'Návazný číselník s filtrací'; +SK: 'Náväzný číselník s filtráciou'; +W : 5000106) + +,(SelfIdent: plxJadroNavaznyCiselnik; +H : 'Návazný číselník'; +SK: 'Náväzný číselník'; +W : 5000107) + +,(SelfIdent: plxJadroOdesilamPostu; +H : 'Odesílám poštu'; +SK: 'Odosielam poštu'; +W : 5000108) + +,(SelfIdent: plxJadroMailNebylNalezenHeMail; +H : 'Nebyl nalezen program HeMail.EXE pro posílání pošty!'; +SK: 'Nebol nájdený program HeMail.EXE pre posielanie pošty!'; +W : 5000109) + +,(SelfIdent: plxJadroMailNepodariloSeVytvoriKonfigSoubor; +H : 'Nepodařilo se vytvořit konfigurační soubor!'; +SK: 'Nepodarilo sa vytvoriť konfiguračný súbor!'; +W : 5000110) + +,(SelfIdent: plxJadroKontrolaExternichAtributu; +H : 'Kontrola externích atributů'; +SK: 'Kontrola externých atribútov'; +W : 5000111) + +,(SelfIdent: plxJadroStredisko_X_JeZakazano; +H : 'Středisko '#1'%s'#1' je '#1'zakázáno'#1'!'; +SK: 'Stredisko '#1'%s'#1' je '#1'zakázané'#1''; +W : 5000112) + +,(SelfIdent: plxJadroRegistrovanyOtaznik; +H : 'Registrovaný?'; +SK: 'Registrovaný?'; +W : 5000113) + +,(SelfIdent: plxJadroIdentifikator; +H : 'Identifikátor'; +SK: 'Identifikátor'; +W : 5000114) + +,(SelfIdent: plxJadro_Nepouzito_; +H : ''; +SK: ''; +W : 5000115) + +,(SelfIdent: plxJadroLogo; +H : 'Logo'; +SK: 'Logo'; +W : 5000116) + +,(SelfIdent: plxJadroExterniHlasky; +H : 'Externí hlášky'; +W : 5000117) + +,(SelfIdent: plxJadroDoplneniExternichHlasek; +H : 'Doplnění externích hlášek'; +W : 5000118) + +,(SelfIdent: plxJadroAbout_IdentifikaceVyrobce; +H : 'Identifikace výrobce'; +SK: 'Identifikácia výrobca'; +W : 5000119) + +,(SelfIdent: plxJadroHistorieVerzi; +H : 'Historie verzí'; +SK: 'História verzí'; +W : 5000120) + +,(SelfIdent: plxJadroZaznamJeBlokovanNelzeSmazat; +H : 'Záznam je blokován jiným uživatelem - nelze smazat!'; +W : 5000121) + +,(SelfIdent: plxJadroDefinovanyPrehled_X_NebylNalezen; +H : 'Definovaný přehled %s nebyl nalezen!'; +W : 5000122) + +,(SelfIdent: plxJadroCislaPrehleduBylaVycerpana; +H : 'Čísla přehledů byla vyčerpána!'; +W : 5000123) + +,(SelfIdent: plxJadroPredchoziRok; +H : 'Předchozí rok'; +W : 5000124) + +,(SelfIdent: plxJadroPredchoziMesic; +H : 'Předchozí měsíc'; +W : 5000125) + +,(SelfIdent: plxJadroNasledujiciMesic; +H : 'Následující měsíc'; +W : 5000126) + +,(SelfIdent: plxJadroNasledujiciRok; +H : 'Následující rok'; +W : 5000127) + +,(SelfIdent: plxJadroZvolteDatum; +H : 'Zvolte datum'; +W : 5000128) + +,(SelfIdent: plxJadroDnes; +H : 'Dnes'; +W : 5000129) + +,(SelfIdent: plxJadroKalendar; +H : 'Kalendář'; +W : 5000130) + +,(SelfIdent: plxJadroAktualniCas; +H : 'Aktuální čas'; +W : 5000131) + +,(SelfIdent: plxJadroKalkulacka; +H : 'Kalkulačka'; +W : 5000132) + +,(SelfIdent: plxJadroKontrolaUzivatelskychFunkci; +H : 'Kontrola uživatelských funkcí'; +W : 5000133) + +,(SelfIdent: plxJadroPrevodDoUNICODE; +H : 'Převod do UNICODE'; +W : 5000134) + +,(SelfIdent: plxJadroDoplneniPrehleduProUzivAtr; +H : 'Doplnění přehledů pro uživ. atributy'; +W : 5000135) + +,(SelfIdent: plxJadroSkupinaNastrojuPrizpusobeni; +H : 'Skupina nástrojů přizpůsobení'; +W : 5000136) + +,(SelfIdent: plxJadroDoplneniSkupiny; +H : 'Doplnění skupiny'; +W : 5000137) + +,(SelfIdent: plxJadroVlastniInstalace; +H : 'Vlastní instalace'; +W : 5000138) + +,(SelfIdent: plxJadroHotovo; +H : 'hotovo'; +W : 5000139) + +,(SelfIdent: plxJadroOmezeniVDBPrebyva; +H : 'Omezení tohoto názvu v databázi přebývá'; +W : 5000140) + +,(SelfIdent: plxJadroPocitanyAtributChybi; +H : 'Počítaný atribut tohoto názvu v tabulce chybí'; +W : 5000141) + +,(SelfIdent: plxJadroAtributVTabulceChybi; +H : 'Atribut tohoto názvu v tabulce chybí'; +W : 5000142) + +,(SelfIdent: plxJadroZmenaPocitanehoAtributuSmazani; +H : 'Změna počítaného atributu %s -> %s (smazání)'; +W : 5000143) + +,(SelfIdent: plxJadroZmenaPocitanehoAtributuPridani; +H : 'Změna počítaného atributu %s -> %s (přidání)'; +W : 5000144) + +,(SelfIdent: plxJadroZmenaPocitanehoAtributuKodDB; +H : 'Změna počítaného atributu %s -> %s (kód v DB)'; +W : 5000145) + +,(SelfIdent: plxJadroAtributVTabulcePrebyva; +H : 'Atribut tohoto názvu v tabulce přebývá'; +W : 5000146) + +,(SelfIdent: plxJadroOmezeniJeVDBVypnuto; +H : 'Omezení je v databází vypnuto'; +W : 5000147) + +,(SelfIdent: plxJadroOmezeniVDBChybi; +H : 'Omezení tohoto názvu v databázi chybí'; +W : 5000148) + +,(SelfIdent: plxJadroOmezeniSeVDBZmenilo; +H : 'Omezení tohoto názvu se v databázi změnilo'; +W : 5000149) + +,(SelfIdent: plxJadroOmezeniSeVDBZmeniloKodDB; +H : 'Omezení tohoto názvu se v databázi změnilo (kód v DB)'; +W : 5000150) + +,(SelfIdent: plxJadroOmezeniJeVypnuto; +H : 'Omezení je v databází vypnuto'; +W : 5000151) + +,(SelfIdent: plxJadroUlozenkaVDBChybi; +H : 'Uložená procedura tohoto názvu v databázi chybí'; +W : 5000152) + +,(SelfIdent: plxJadroNastaveniPravKUlozence; +H : 'Nastavení práv k nové uložené proceduře'; +W : 5000153) + +,(SelfIdent: plxJadroUlozenkaSeZmenila; +H : 'Uložená procedura se změnila'; +W : 5000154) + +,(SelfIdent: plxJadroFunkceVDBChybi; +H : 'Uživatelská funkce tohoto názvu v databázi chybí'; +W : 5000155) + +,(SelfIdent: plxJadroNastaveniPravKFunkci; +H : 'Nastavení práv k nové uživatelské funkci'; +W : 5000156) + +,(SelfIdent: plxJadroFunkceSeZmenila; +H : 'Uživatelská funkce se změnila'; +W : 5000157) + +,(SelfIdent: plxJadroTriggerVDBChybi; +H : 'Trigger v databázi chybí'; +W : 5000158) + +,(SelfIdent: plxJadroTriggerVDBPrebyva; +H : 'Trigger v databázi přebývá'; +W : 5000159) + +,(SelfIdent: plxJadroTriggerJeVDBVypnut; +H : 'Trigger je v databázi vypnut'; +W : 5000160) + +,(SelfIdent: plxJadroTriggerVDBSeZmenil; +H : 'Trigger v databázi se změnil'; +W : 5000161) + +,(SelfIdent: plxJadroIndexJeVDBPrejmenovan; +H : 'Index je v databázi přejmenován'; +W : 5000162) + +,(SelfIdent: plxJadroHeslo; +H : 'Heslo'; +W : 5000163) + +,(SelfIdent: plxJadroZobrazitHeslo; +H : 'Zobrazit heslo'; +W : 5000164) + +,(SelfIdent: plxJadroAdresarProJazykovaDLL; +H : 'Adresář pro uložení jazykových DLL'; +W : 5000165) + +,(SelfIdent: plxJadroVysledek; +H : 'Výsledek'; +W : 5000166) + +,(SelfIdent: plxJadroPluginNeobsahujeZadneHlasky; +H : 'Plugin neobsahuje žádné hlášky!'; +W : 5000167) + +,(SelfIdent: plxJadroNeniZadanoHeslo; +H : 'Není zadáno heslo!'; +W : 5000168) + +,(SelfIdent: plxJadroNeniZadanAdresarProJazykovaDLL; +H : 'Není zadán adresář pro uložení jazykových DLL!'; +W : 5000169) + +,(SelfIdent: plxJadroAdresarProJazykovaDLLNeexistuje; +H : 'Adresář pro uložení jazykových DLL neexistuje!'; +W : 5000170) + +,(SelfIdent: plxJadroPodporaTicheInstalacePluginu; +H : 'Podpora tiché instalace pluginů'; +W : 5000171) + +,(SelfIdent: plxJadroNepodporaOdinstalace; +H : 'Tento plugin nepodporuje automatickou odinstalaci.'; +W : 5000172) + + +// plgTypeTxtJadro.INC +//last + +// LOCAL | USER: RK | DT: 27.11.2006 09:11:00 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 27.11.2006 09:16:24 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.05.2007 09:33:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.05.2007 09:40:20 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RJ | DT: 23.05.2007 12:13:33 | VER: | TXT: | PC: RJ-XP-D | FROM: L:\H\IQ10\PlugLib | TO: C:\Plugins\SEW\Bin +// LIB | USER: RJ | DT: 23.05.2007 12:14:14 | VER: 20070523 | TXT: | PC: RJ-XP-D | FROM: C:\Plugins\SEW\Bin | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.07.2007 08:46:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 10.07.2007 08:46:46 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 05.11.2007 15:57:29 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 05.11.2007 15:57:39 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2008 15:12:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.07.2008 15:33:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:01:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 10:03:06 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.03.2009 14:00:40 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 05.03.2009 14:05:44 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 16:51:54 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:35 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:02:21 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:06:41 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:06:43 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:07:21 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 16:19:37 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:28:33 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 diff --git a/lib/plgTypeBrowse.INC b/lib/plgTypeBrowse.INC new file mode 100644 index 0000000..ec7f7be --- /dev/null +++ b/lib/plgTypeBrowse.INC @@ -0,0 +1,5 @@ +type + TplgBrowse = (bZadny + +//last + ); diff --git a/lib/plgTypeJadro.INC b/lib/plgTypeJadro.INC new file mode 100644 index 0000000..7e3dbb8 --- /dev/null +++ b/lib/plgTypeJadro.INC @@ -0,0 +1,1553 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +// ============================================================================ +// Tyto typy a konstanty jsou urceny pro zaklad jadra, NEMENIT, NEPRIDAVAT !!! +// ============================================================================ + +const + Cplg_PrvniUnicodeVerzeHeliosu = $010020090803; + + // jadrem podporovana minimalni verze Heliosu + Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu = $020020150300; // Helios 2.x + Cplg_Jadro_MinimalniPozadovanaVerzeHeliosu_ver3 = $030020170300; // Helios 3.x + + // verze vlastniho jadra + Cplg_VerzeJadra = $020020250523; // AJ, 23.12.2015 - Tich instalace // $020020151223; // AJ, 23.12.2015 - Podpora odinstalace + // JAS 13.2.2018 - rozsireni o moznost pouzit v tabulkach atributy typu (N)VARCHAR(MAX) a (VAR)BINARY(MAX) + // RK 18.1.2024 - podpora NVARCHAR(MAX) a VARBINARY(MAX) pro externi sloupce + // RK 23.5.2025 - odstraneni PFA_PlgIndex, uprava loga + + // nazev produktu (nejedna se o nazev pluginu!!) + Cplg_ProductName = 'Helios'; // Orange zruseno (je take Easy, Germany...) + + // aktualni rok + Cplg_AktualniRok = 2026; // [JAS, 7.01.2026] - posun o rok + + // aktualni nazev firmy LCS/Asseco + Cplg_NazevFirmyLCS = 'Asseco Solutions, a.s.'; + +// ============================================================================ + + Cplg_VerzePluginu_Nula_Str = '000000000000'; // 12 nul + + // hausnumera indikujici v jakem modu QueryEdit jede - musi byt Byte + Cplg_tagNovaVeta = $AA; + Cplg_tagOpravaVety = $55; + + dbo = 'dbo.'; + + Cplg_LoginName = 'SUSER_SNAME()'; + Cplg_GetDate = 'GETDATE()'; + + // systemove nazvy atributu pouzivane jadrem, NEMENIT !!! + plg_SystemoveCislo = 'ID'; + plg_Zmenil = 'Zmenil'; + plg_DatZmeny = 'DatZmeny'; + plg_BlokovaniEditoru = 'BlokovaniEditoru'; + + Cplg_ExtKomID_Zpravy = 0; + Cplg_ExtKomID_Instalace = -1; + Cplg_ExtKomID_About = -2; + Cplg_ExtKomID_TichaInstalace = -3; + Cplg_ExtKomID_Konfigurace = -4; + Cplg_ExtKomID_HlaskyNaWeb = -5; + Cplg_ExtKomID_HlaskyDoDLL = -6; + Cplg_ExtKomID_Odinstalace = -7; // AJ, 14.12.2015 - Administrtorsk podpora v HeO + Cplg_ExtKomID_EditorController = -8; + + Cplg_GUID_Instalace = '{224BFCE4-62A1-4990-B723-FCF5BD14F45D}'; + + Cplg_HlaskyBase = 5000000; // ID prvni hlasky jadra pluginu + Cplg_HlaskyPlugin = 5050000; // minimalni ID prvni hlasky vlastniho pluginu + + DisplayMaskPenize = '#,##0.00'; + DisplayMaskPenize4 = ',0.####'; + + Cplg_CDefaultFrmDefExt = 'HFMX'; // defaultni pripona pro soubor s definicemi formularu HELIOSu + Cplg_CDefaultFltDefExt = 'HFLX'; // defaultni pripona pro soubor s definicemi filtru HELIOSu + Cplg_CDefaultOpsDefExt = 'HDOX'; // defaultni pripona pro soubor s definicemi opisu HELIOSu + + // jazyky (pri pridani doplnit i cestu na DLL a instalaci jazyka do TabExtHlasky) + Cplg_jJazykNedefinovan = -1; // pouziva se pro Jazyk2 + Cplg_jCeskyASCII = 0; + Cplg_jCesky = 1; + Cplg_jSlovenctina = 4; + Cplg_jAnglictina = 6; + Cplg_jNemcina = 7; + Cplg_jChorvatstina = 8; + Cplg_jPolstina = 9; + Cplg_jRumunstina = 10; + Cplg_jSpanelstina = 11; + Cplg_jRustina = 12; + Cplg_jExtAnglictina = 1033; + Cplg_jExtNemcina = 1031; + Cplg_jExtFrancouzstina = 1036; + Cplg_jExtDanstina = 1030; + Cplg_jExtSpanelstina = 3082; + Cplg_jExtItalstina = 1040; + Cplg_jExtHolandstina = 1043; + Cplg_jExtNorstina = 2068; + Cplg_jExtPortugalstina = 2070; + Cplg_jExtFinstina = 1035; + Cplg_jExtSvedstina = 1053; + Cplg_jExtMadarstina = 1038; + Cplg_jExtPolstina = 1045; + Cplg_jExtRumunstina = 1048; + Cplg_jExtChorvatstina = 1050; + Cplg_jExtSlovenstina = 1051; + Cplg_jExtSlovinstina = 1060; + Cplg_jExtRectina = 1032; + Cplg_jExtBulharstina = 1026; + Cplg_jExtRustina = 1049; + Cplg_jExtTurectina = 1055; + Cplg_jExtEstonstina = 1061; + Cplg_jExtLotystina = 1062; + Cplg_jExtLitevstina = 1063; + Cplg_jExtJaponstina = 1041; + Cplg_jExtKorejstina = 1042; + Cplg_jExtTradicniCinstina = 1028; + Cplg_jExtZjednodusenaCinstina = 2052; + + Cplg_PoleJazyku: array[1..38] of Integer = ( + Cplg_jCeskyASCII, + Cplg_jCesky, + Cplg_jSlovenctina, + Cplg_jAnglictina, + Cplg_jNemcina, + Cplg_jChorvatstina, + Cplg_jPolstina, + Cplg_jRumunstina, + Cplg_jSpanelstina, + Cplg_jRustina, + Cplg_jExtAnglictina, + Cplg_jExtNemcina, + Cplg_jExtFrancouzstina, + Cplg_jExtDanstina, + Cplg_jExtSpanelstina, + Cplg_jExtItalstina, + Cplg_jExtHolandstina, + Cplg_jExtNorstina, + Cplg_jExtPortugalstina, + Cplg_jExtFinstina, + Cplg_jExtSvedstina, + Cplg_jExtMadarstina, + Cplg_jExtPolstina, + Cplg_jExtRumunstina, + Cplg_jExtChorvatstina, + Cplg_jExtSlovenstina, + Cplg_jExtSlovinstina, + Cplg_jExtRectina, + Cplg_jExtBulharstina, + Cplg_jExtRustina, + Cplg_jExtTurectina, + Cplg_jExtEstonstina, + Cplg_jExtLotystina, + Cplg_jExtLitevstina, + Cplg_jExtJaponstina, + Cplg_jExtKorejstina, + Cplg_jExtTradicniCinstina, + Cplg_jExtZjednodusenaCinstina); + + // legislativa + Cplg_Legislativa_Ceska = 0; + Cplg_Legislativa_Slovenska = 1; + Cplg_Legislativa_Nemecka = 2; + Cplg_Legislativa_Spanelska = 3; + Cplg_Legislativa_Polska = 4; + +// ============================================================================ + + Cplg_TagyPouzitelneOdVerzeHeliosu_2 = $020020200957; + Cplg_TagyPouzitelneOdVerzeHeliosu_3 = $030020200957; + + // tagy pro *** OpenBrowse() ************************************************ + // - je mono je pout v parametru WhereSys + // - pouit se detekuje nalezenm textu <$OB_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_OB_TagPrefix = '$OB_'; + + // pro sestaven pouijte hotov tagy ne (..._Begin a ..._End) + Cplg_OB_Tag_WhereSys = 'WhereSys'; // implicitn: '' + Cplg_OB_Tag_Parametrizovano = 'Parametrizovano'; // monost: 0 nebo 1, implicitn: 1 + Cplg_OB_Tag_Maximalizovat = 'Maximalizovat'; // monost: 0 nebo 1, implicitn: 0 + Cplg_OB_Tag_IDFiltr = 'IDFiltr'; // implicitn: 0 (bez vynucen sestavy) + Cplg_OB_Tag_FormCaption = 'FormCaption'; // implicitn: '' + Cplg_OB_Tag_VynutZapniPosun = 'VynutZapniPosun'; // monost: 0 nebo 1, implicitn: 0 + + // Parametrizovano = 0 => vypne posun po zznamech + // VynutZapniPosun = 1 => zapne posun po zznamech + + // VynutZapniPosun - funkn pouze pokud je Parametrizovano = 1 + // FormCaption - funkn pouze pokud je Parametrizovano = 0 + + Cplg_OB_WhereSys_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_WhereSys + '>'; + Cplg_OB_WhereSys_End = ''; + + Cplg_OB_Parametrizovano_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_Parametrizovano + '>'; + Cplg_OB_Parametrizovano_End = ''; + + Cplg_OB_Maximalizovat_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_Maximalizovat + '>'; + Cplg_OB_Maximalizovat_End = ''; + + Cplg_OB_IDFiltr_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_IDFiltr + '>'; + Cplg_OB_IDFiltr_End = ''; + + Cplg_OB_FormCaption_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_FormCaption + '>'; + Cplg_OB_FormCaption_End = ''; + + Cplg_OB_VynutZapniPosun_Begin = '<' + Cplg_OB_TagPrefix + Cplg_OB_Tag_VynutZapniPosun + '>'; + Cplg_OB_VynutZapniPosun_End = ''; + + // tagy pro *** Prenos(), Prenos2() ***************************************** + // - je mono je pout v parametru WhereSys + // - pouit se detekuje nalezenm textu <$PR_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_PR_TagPrefix = '$PR_'; + + // pro sestaven pouijte hotov tagy ne (..._Begin a ..._End) + Cplg_PR_Tag_WhereSys = 'WhereSys'; // implicitn: '' + Cplg_PR_Tag_IDFiltr = 'IDFiltr'; // implicitn: 0 (bez vynucen sestavy) + Cplg_PR_Tag_MultiSelect = 'MultiSelect'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PR_Tag_NazevAkce = 'NazevAkce'; // implicitn: '' + Cplg_PR_Tag_ReadOnly = 'ReadOnly'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PR_Tag_PodleKolikaLocate = 'PodleKolikaLocate'; // implicitn: 1 + + // pouzitelne v Prenos() a Prenos2(): WhereSys, IDFiltr, NazevAkce + Cplg_PR_WhereSys_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_WhereSys + '>'; + Cplg_PR_WhereSys_End = ''; + + Cplg_PR_IDFiltr_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_IDFiltr + '>'; + Cplg_PR_IDFiltr_End = ''; + + Cplg_PR_NazevAkce_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_NazevAkce + '>'; + Cplg_PR_NazevAkce_End = ''; + + // pouzitelne pouze v Prenos(): MultiSelect, ReadOnly, PodleKolikaLocate + Cplg_PR_MultiSelect_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_MultiSelect + '>'; + Cplg_PR_MultiSelect_End = ''; + + Cplg_PR_ReadOnly_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_ReadOnly + '>'; + Cplg_PR_ReadOnly_End = ''; + + Cplg_PR_PodleKolikaLocate_Begin = '<' + Cplg_PR_TagPrefix + Cplg_PR_Tag_PodleKolikaLocate + '>'; + Cplg_PR_PodleKolikaLocate_End = ''; + + // tagy pro *** PrintForm2(), PrintForm3() ********************************** + // - je mono je pout v parametru WhereSys + // - pouit se detekuje nalezenm textu <$PF_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_PF_TagPrefix = '$PF_'; + + // obecn pouiteln + Cplg_PF_Tag_WhereSys = 'WhereSys'; // implicitn: '' + Cplg_PF_Tag_OznacitVse = 'OznacitVse'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_TypTisku = 'TypTisku'; // 0 = tisk (F8), 1 = tisk jednotliv (Shift+F8) + + // 0 = nezadno, >0 = ID definice tisku, -1 = pednastaven definice tisku + Cplg_PF_Tag_IDDefTisk = 'IDDefTisk'; // ID definice tisku + + // ne uveden tagy se uplatn pouze v ppad, e je TiskDoSouboru = 1 a IDDefTisk = 0 + Cplg_PF_Tag_TiskDoSouboru = 'TiskDoSouboru'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_VariantaTisku = 'VariantaTisku'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_TiskDoDokumentu = 'TiskDoDokumentu'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_UlozitDoDB = 'UlozitDoDB'; // monost: 0 nebo 1, implicitn: 0 + Cplg_PF_Tag_DoSouboruCesta = 'DoSouboruCesta'; // mus bt vyplnno, kdy je UlozitDoDB = 0 + Cplg_PF_Tag_IDTypDoSouboru = 'IDTypDoSouboru'; // implicitn: 0 (zobraz se vbr) + Cplg_PF_Tag_NazevSouboru = 'NazevSouboru'; + Cplg_PF_Tag_VytvorAdresar = 'VytvorAdresar'; + Cplg_PF_Tag_IDDokumStrom = 'IDDokumStrom'; + + Cplg_PF_WhereSys_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_WhereSys + '>'; + Cplg_PF_WhereSys_End = ''; + + Cplg_PF_OznacitVse_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_OznacitVse + '>'; + Cplg_PF_OznacitVse_End = ''; + + Cplg_PF_TypTisku_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_TypTisku + '>'; + Cplg_PF_TypTisku_End = ''; + + Cplg_PF_TiskDoSouboru_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_TiskDoSouboru + '>'; + Cplg_PF_TiskDoSouboru_End = ''; + + Cplg_PF_VariantaTisku_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_VariantaTisku + '>'; + Cplg_PF_VariantaTisku_End = ''; + + Cplg_PF_TiskDoDokumentu_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_TiskDoDokumentu + '>'; + Cplg_PF_TiskDoDokumentu_End = ''; + + Cplg_PF_UlozitDoDB_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_UlozitDoDB + '>'; + Cplg_PF_UlozitDoDB_End = ''; + + Cplg_PF_DoSouboruCesta_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_DoSouboruCesta + '>'; + Cplg_PF_DoSouboruCesta_End = ''; + + Cplg_PF_IDTypDoSouboru_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_IDTypDoSouboru + '>'; + Cplg_PF_IDTypDoSouboru_End = ''; + + Cplg_PF_NazevSouboru_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_NazevSouboru + '>'; + Cplg_PF_NazevSouboru_End = ''; + + Cplg_PF_VytvorAdresar_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_VytvorAdresar + '>'; + Cplg_PF_VytvorAdresar_End = ''; + + Cplg_PF_IDDokumStrom_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_IDDokumStrom + '>'; + Cplg_PF_IDDokumStrom_End = ''; + + Cplg_PF_IDDefTisk_Begin = '<' + Cplg_PF_TagPrefix + Cplg_PF_Tag_IDDefTisk + '>'; + Cplg_PF_IDDefTisk_End = ''; + + // tagy pro *** Error() ***************************************************** + // - je mono je pout v parametru Msg + // - pouit se detekuje nalezenm textu <$ER_ na zatku hodnoty parametru, + // take pozor na mezery, na zatku nesm bt, pokud chcete pout tagy! + + Cplg_ER_TagPrefix = '$ER_'; + + // pro sestaven pouijte hotov tagy ne (..._Begin a ..._End) + Cplg_ER_Tag_Chyba = 'Chyba'; + Cplg_ER_Tag_Detail = 'Detail'; + + // okno chyby s detailem se zobraz pouze v ppad, e jsou vyplnny + // jak Chyba, tak i Detail + + Cplg_ER_Chyba_Begin = '<' + Cplg_ER_TagPrefix + Cplg_ER_Tag_Chyba + '>'; + Cplg_ER_Chyba_End = ''; + + Cplg_ER_Detail_Begin = '<' + Cplg_ER_TagPrefix + Cplg_ER_Tag_Detail + '>'; + Cplg_ER_Detail_End = ''; + +// ============================================================================ + + // minimalni a maximalni datum + Cplg_MinDate = '''19000101 00:00:00.000'''; + CPlg_MaxDate = '''99991231 23:59:59.000'''; + + // maximalni cas v Delphi + Cplg_MaxTime = 0.999999537; + + // maximalni cas na SQL Serveru + Cplg_SQLMaxTimeStr = '23:59:59.997'; + + // pouze aktualni datum bez casu + Cplg_OnlyDate = 'CONVERT(DATETIME,CONVERT(INT,CONVERT(FLOAT,GETDATE())))'; + + //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + // definice delky pro "MAX" varianty atributu (N)VARCHAR atd. + Cplg_DelkaNVarcharMax = -1; + Cplg_DelkaVarBinaryMax = Cplg_DelkaNVarcharMax; //je to stejne, ale pro jistotu rozdeleno na dve konstanty, aby to v DTckach nematlo nepritele + + // konstanty - verze MS SQL Serveru - IHelios.SQLVersion (kopie z sqProc) + Cplg_SQLVersion_7_0 = $07000000; // 7.0 [bez rozlien buildu] + Cplg_SQLVersion_7_0_Gold = $0700026F; // 7.0.623 = cista instalace MSSQL 7.0 / MSDE 1.0 Bez SP1 + Cplg_SQLVersion_7_0_SP1 = $070002BB; // 7.0.699 = SP1 + Cplg_SQLVersion_7_0_SP2 = $0700034A; // 7.0.842 = SP2 + Cplg_SQLVersion_7_0_SP3 = $070003C1; // 7.0.961 = SP3 + Cplg_SQLVersion_7_0_SP4 = $07000427; // 7.0.1063 = SP4 + + Cplg_SQLVersion_2000 = $07320000; // 7.5 / 2000 [bez rozlien buildu] + Cplg_SQLVersion_2000_SP1 = $08000180; // 8.0.384 = SP1 + Cplg_SQLVersion_2000_SP2 = $08000216; // 8.0.534 = SP2 + Cplg_SQLVersion_2000_SP3 = $080002F8; // 8.0.760 = SP3 + Cplg_SQLVersion_2000_SP4 = $080007F7; // 8.0.2039 = SP4 + + Cplg_SQLVersion_2005 = $09000000; // 2005 [bez rozlien buildu] + Cplg_SQLVersion_2005_Gold = $09000577; // 9.0.1399 = cista instalace MSSQL 2005 bez Service Packu + Cplg_SQLVersion_2005_SP1 = $090007FF; // 9.0.2047 = SP1 + Cplg_SQLVersion_2005_SP2 = $09000BE2; // 9.0.3042 = SP2 + Cplg_SQLVersion_2005_SP3 = $09000FC3; // 9.0.4035 = SP3 + Cplg_SQLVersion_2005_SP4 = $09001388; // 9.0.5000 = SP4 + + Cplg_SQLVersion_2008 = $0A000000; // 2008 [bez rozlien buildu] + Cplg_SQLVersion_2008_Gold = $0A000640; // 10.0.1600 = ist instalace MSSQL 2008 bez Service Packu + Cplg_SQLVersion_2008_SP1 = $0A0009E3; // 10.0.2531 = SP1 + Cplg_SQLVersion_2008_SP2 = $0A000FA0; // 10.0.4000 = SP2 + Cplg_SQLVersion_2008_SP3 = $0A00157C; // 10.0.5500 = SP3 + Cplg_SQLVersion_2008_SP4 = $0A001770; // 10.0.6000 = SP4 + + Cplg_SQLVersion_2008R2 = $0A320000; // 2008 R2 [bez rozlien buildu] + Cplg_SQLVersion_2008R2_Gold = $0A320640; // 10.50.1600 = ist instalace MSSQL 2008 R2 bez Service Packu + Cplg_SQLVersion_2008R2_SP1 = $0A3209C4; // 10.50.2500 = SP1 + Cplg_SQLVersion_2008R2_SP2 = $0A320FA0; // 10.50.4000 = SP2 + Cplg_SQLVersion_2008R2_SP3 = $0A321770; // 10.50.6000 = SP3 + + Cplg_SQLVersion_2012 = $0B000000; // 2012 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2012_Gold = $0B000834; // 11.0.2100 = ist instalace MSSQL 2012 bez Service Packu + Cplg_SQLVersion_2012_SP1 = $0B000BB8; // 11.0.3000 = SP1 + Cplg_SQLVersion_2012_SP2 = $0B0013C2; // 11.0.5058 = SP2 + Cplg_SQLVersion_2012_SP3 = $0B001784; // 11.0.6020 = SP3 + Cplg_SQLVersion_2012_SP4 = $0B001B59; // 11.0.7001 = SP4 + + Cplg_SQLVersion_2014 = $0C000000; // 2014 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2014_Gold = $0C0007D0; // 12.0.2000 = ist instalace MSSQL 2014 bez Service Packu + Cplg_SQLVersion_2014_SP1 = $0C001004; // 12.0.4100 = SP1 + Cplg_SQLVersion_2014_SP2 = $0C001388; // 12.0.5000 = SP2 + Cplg_SQLVersion_2014_SP3 = $0C001788; // 12.0.6024 = SP3 + + Cplg_SQLVersion_2016 = $0D000000; // 2016 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2016_Gold = $0D000641; // 13.0.1601 = ist instalace MSSQL 2016 bez Service Packu + Cplg_SQLVersion_2016_SP1 = $0D000FA1; // 13.0.4001 = SP1 + Cplg_SQLVersion_2016_SP2 = $0D0013A2; // 13.0.5026 = SP2 + Cplg_SQLVersion_2016_SP3 = $0D00189C; // 13.0.6300 = SP3 - 9/15/2021 (https://www.microsoft.com/en-us/download/details.aspx?id=103440) + + Cplg_SQLVersion_2017 = $0E000000; // 2017 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] + Cplg_SQLVersion_2017_Gold = $0E0003E8; // 14.0.1000 = ist instalace MSSQL 2017 bez Service Packu + Cplg_SQLVersion_2017_CU08 = $0E000BD5; // 14.0.3029 = CU08 - opravuje vnou chybu vyhodnocovn CASE + Cplg_SQLVersion_2017_CU12 = $0E000BE5; // 14.0.3045 = CU12 - nmi doporuovan pro opravu chyby CASE + Cplg_SQLVersion_2017_CU13 = $0E000BE8; // 14.0.3048 = CU13 - 19.12.2018 + Cplg_SQLVersion_2017_CU28 = $0E000D66; // 14.0.3430 = CU28 - 1/13/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=56128) + Cplg_SQLVersion_2017_CU30 = $0E000D7B; // 14.0.3451 = CU30 - 7/13/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=56128) + Cplg_SQLVersion_2017_CU31 = $0E000D80; // 14.0.3456 = CU31 - 9/20/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=56128) + + Cplg_SQLVersion_2019 = $0F000000; // 2019 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 15.0.0.0 + Cplg_SQLVersion_2019_CU02 = $0F000FAD; // 15.0.4013 = CU02 - opravuje inlining SQL funkci + Cplg_SQLVersion_2019_CU03 = $0F000FB7; // 15.0.4023 = CU03 - opravuje SQL Agenta + Cplg_SQLVersion_2019_CU14 = $0F00105C; // 15.0.4188 = CU14 + Cplg_SQLVersion_2019_CU15 = $0F001066; // 15.0.4198 = CU15 - 1/27/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU16 = $0F00107F; // 15.0.4223 = CU16 - 4/18/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU17 = $0F001099; // 15.0.4249 = CU17 - 8/11/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU18 = $0F0010A5; // 15.0.4261 = CU18 - 9/28/2022 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU19 = $0F0010CA; // 15.0.4298 = CU19 - 2/16/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU20 = $0F0010D8; // 15.0.4312 = CU20 - 4/13/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU21 = $0F0010DC; // 15.0.4316 = CU21 - 6/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU22 = $0F0010E2; // 15.0.4322 = CU22 - 8/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU23 = $0F0010EF; // 15.0.4335 = CU23 - 10/12/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU24 = $0F0010F9; // 15.0.4345 = CU24 - 12/14/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU25 = $0F001103; // 15.0.4355 = CU25 - 2/15/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU26 = $0F00110D; // 15.0.4365 = CU26 - 4/11/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU27 = $0F001117; // 15.0.4375 = CU27 - 6/13/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU28 = $0F001121; // 15.0.4385 = CU28 - 8/1/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU29 = $0F001135; // 15.0.4405 = CU29 - 10/31/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU30 = $0F00113F; // 15.0.4415 = CU30 - 12/12/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU31 = $0F001144; // 15.0.4420 = CU31 - 18/02/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) + Cplg_SQLVersion_2019_CU32 = $0F00114E; // 15.0.4430 = CU32 - 2/27/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=100809) // definitivn posledn CU? (28.2.2025 ukonen support) + + Cplg_SQLVersion_2022 = $10000000; // 2022 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 16.0.0.0 + Cplg_SQLVersion_2022_RTM = $100003E8; // 16.0.1000 = ist instalace MSSQL 2022 bez CU (16.11.2022) + Cplg_SQLVersion_2022_CU01 = $10000FA3; // 16.0.4003 = CU01 - 2/16/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU02 = $10000FAF; // 16.0.4015 = CU02 - 3/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU03 = $10000FB9; // 16.0.4025 = CU03 - 4/13/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU04 = $10000FC3; // 16.0.4035 = CU04 - 5/11/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU05 = $10000FCD; // 16.0.4045 = CU05 - 6/15/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU06 = $10000FD7; // 16.0.4055 = CU06 - 7/13/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU07 = $10000FE1; // 16.0.4065 = CU07 - 8/10/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU08 = $10000FEB; // 16.0.4075 = CU08 - 9/14/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU09 = $10000FF5; // 16.0.4085 = CU09 - 10/12/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU10 = $10000FFF; // 16.0.4095 = CU10 - 11/16/2023 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU11 = $10001009; // 16.0.4105 = CU11 - 01/11/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU12 = $10001013; // 16.0.4115 = CU12 - 03/14/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU13 = $1000101D; // 16.0.4125 = CU13 - 05/16/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU14 = $10001027; // 16.0.4135 = CU14 - 07/23/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU15 = $10001031; // 16.0.4145 = CU15 - 09/25/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU16 = $10001045; // 16.0.4165 = CU16 - 11/14/2024 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU17 = $1000104F; // 16.0.4175 = CU17 - 01/16/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU18 = $10001059; // 16.0.4185 = CU18 - 03/13/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU19 = $10001063; // 16.0.4195 = CU19 - 5/15/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU20 = $1000106D; // 16.0.4205 = CU20 - 7/10/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU21 = $10001077; // 16.0.4215 = CU21 - 9/11/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU22 = $10001081; // 16.0.4225 = CU22 - 11/13/2025 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU23 = $1000108C; // 16.0.4236 = CU23 - 1/29/2026 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + Cplg_SQLVersion_2022_CU24 = $10001095; // 16.0.4245 = CU24 - 3/12/2026 (https://www.microsoft.com/en-us/download/details.aspx?id=105013) + + // IND-6773 - Ppravy na Microsoft SQL Server 2025 + Cplg_SQLVersion_2025 = $11000000; // 2025 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 17.0.0.0 + Cplg_SQLVersion_2025_CTP01 = $11000011; // 17.0.17 = Microsoft SQL Server 2025 Community Technology Preview 1.0 (CTP 1.0) Beta + Cplg_SQLVersion_2025_CTP02 = $110002BC; // 17.0.700 = Microsoft SQL Server 2025 Community Technology Preview 2.0 (CTP 2.0) Public Preview (05/19/2025) + Cplg_SQLVersion_2025_CTP021 = $11000320; // 17.0.800 = Microsoft SQL Server 2025 Public Preview (CTP 2.1) Beta (06/16/2025) + Cplg_SQLVersion_2025_RC0 = $11000384; // 17.0.900 = Microsoft SQL Server 2025 Release Candidate 0 (RC 0) Beta 2025-08-21 + Cplg_SQLVersion_2025_RC1 = $1100039D; // 17.0.925 = Microsoft SQL Server 2025 Release Candidate 1 (RC 1) Beta 2025-09-16 + Cplg_SQLVersion_2025_RTM = $110003E8; // 17.0.1000 = ist instalace MSSQL 2022 bez CU (Microsoft SQL Server 2025 RTM, 2025-11-18) + Cplg_SQLVersion_2025_CU01 = $11000FA6; // 17.0.4006 = CU01 - 1/29/2026 (https://www.catalog.update.microsoft.com/Search.aspx?q=Microsoft%20SQL%20Server%202025) + Cplg_SQLVersion_2025_CU02 = $11000FAF; // 17.0.4015 = CU02 - 2/12/2026 (https://www.microsoft.com/download/details.aspx?familyid=108540) + Cplg_SQLVersion_2025_CU03 = $11000FB9; // 17.0.4025 = CU03 - 3/12/2026 (https://www.microsoft.com/download/details.aspx?familyid=108540) + + Cplg_SQLVersion_XXXX = $12000000; // >2025 [bez rozlien buildu; jen pro operace >, <, nikdy ne =] // 18.0.0.0 + +// ============================================================================ + + Cplg_Prefix_SN_Helios = 'HEIQ'; // Helios Orange + Cplg_Prefix_SN_CLAW = 'CLAW'; // Kobler sm + Cplg_Prefix_SN_CLAH = 'CLAH'; // Hospodsk komora + + Cplg_Prefix_SN_HEED = 'HEED'; // Helios Easy Demo (Trial) + Cplg_Prefix_SN_HEEF = 'HEEF'; // Helios Easy Full + + Cplg_Prefix_SN_ASDT = 'ASDT'; // Helios Germany Demo (Trial) + Cplg_Prefix_SN_ASDE = 'ASDE'; // Helios Germany Full + + Cplg_Prefix_SN_HeliosEasy = Cplg_Prefix_SN_HEED + ',' + Cplg_Prefix_SN_HEEF; + Cplg_Prefix_SN_Germany = Cplg_Prefix_SN_ASDT + ',' + Cplg_Prefix_SN_ASDE; + + Cplg_SerNum_PrefixLen = 4; // HEIQ, CLAW, CLAH, HEED, HEEF + Cplg_SerNum_VerzeLen = 4; // xxyy + Cplg_SerNum_OddelLen = 1; // - + Cplg_SerNum_PoradiLen = 5; // 99999 + + Cplg_SerNum_CelkemLen = Cplg_SerNum_PrefixLen + + Cplg_SerNum_VerzeLen + + Cplg_SerNum_OddelLen + + Cplg_SerNum_PoradiLen; + +// ============================================================================ + + // definovane prehledy a vazby (kopie z Heliosu) + Cplg_ObecnePohledy_BID_Base = 100000; // kopie z ddBrowse + +// [RK 27.07.2009] zruseno, pouzijte PluginKonfig.PluginPrefixTabulek +// Cplg_Tabulka_Prefix = 'Tab'; // prefix pro tabulky + + Cplg_View_Prefix = 'hvw_'; // kopie z ddTypeZbytek.inc + Cplg_View_PrefixLen = 4; // delka 'hvw_' + Cplg_View_NazevSys_Len = 36; // kopie z ddTypeZbytek.inc + Cplg_View_NazevVer_Len = 50; // kopie z dtObecnyPrehled (TabObecnyPrehled_Nazev_Delka) + + Cplg_DefVazba_Prefix = 'Vudv'; // kopie z ddTypeZbytek.inc + Cplg_DefVazba_JmenoSys_Len = 30; // kopie z dtObecnaVazba + Cplg_DefVazba_NazevSys_XX_Len = 30; // kopie z dtObecnaVazba + Cplg_DefVazba_Nazev_XX_Len = 100; // kopie z dtObecnaVazba + + Cplg_DefVazba_SpecifHT = ''; // specifikator pro hlavni tabulku v definici vazby + + Cplg_Soudek_Len = 40; // kopie z dtSoudky + Cplg_Atribut_JmenoSys_Len = 127; // puvodne bylo 30 + Cplg_SkupinaExt_Len = 30; // kopie z ddUta + + Cplg_Soudek_Prefix = '_HeIQ_S_'; // prefix pro definici odkazu na interni soudecky + + Cplg_Soudek_Ucetnictvi = Cplg_Soudek_Prefix + '1'; + Cplg_Soudek_FinancniAnalyza = Cplg_Soudek_Prefix + '30'; + Cplg_Soudek_Leasing = Cplg_Soudek_Prefix + '32'; + Cplg_Soudek_PenezniToky = Cplg_Soudek_Prefix + '29'; + Cplg_Soudek_Pokladna = Cplg_Soudek_Prefix + '2'; + Cplg_Soudek_PokladniProdej = Cplg_Soudek_Prefix + '18'; + Cplg_Soudek_ObehZbozi = Cplg_Soudek_Prefix + '3'; + Cplg_Soudek_DodatecneSN = Cplg_Soudek_Prefix + '27'; + Cplg_Soudek_Fakturace = Cplg_Soudek_Prefix + '4'; + Cplg_Soudek_Mzdy = Cplg_Soudek_Prefix + '5'; + Cplg_Soudek_MzdySK = Cplg_Soudek_Prefix + '15'; + Cplg_Soudek_Banka = Cplg_Soudek_Prefix + '6'; + Cplg_Soudek_Majetek = Cplg_Soudek_Prefix + '7'; + Cplg_Soudek_Posta = Cplg_Soudek_Prefix + '11'; + Cplg_Soudek_CelniPripady = Cplg_Soudek_Prefix + '12'; + Cplg_Soudek_ClaStarePostupy = Cplg_Soudek_Prefix + '34'; + Cplg_Soudek_Intrastat = Cplg_Soudek_Prefix + '19'; + Cplg_Soudek_PripravaVyroby = Cplg_Soudek_Prefix + '8'; + Cplg_Soudek_RizeniVyroby = Cplg_Soudek_Prefix + '9'; + Cplg_Soudek_Kontrakty = Cplg_Soudek_Prefix + '25'; + Cplg_Soudek_Doprava = Cplg_Soudek_Prefix + '10'; + Cplg_Soudek_PrepravniSluzby = Cplg_Soudek_Prefix + '13'; + Cplg_Soudek_KnihaJizd = Cplg_Soudek_Prefix + '21'; + Cplg_Soudek_ICStandardy = Cplg_Soudek_Prefix + '17'; + Cplg_Soudek_SkladZvirat = Cplg_Soudek_Prefix + '20'; + Cplg_Soudek_Kalkulace = Cplg_Soudek_Prefix + '24'; + Cplg_Soudek_Projekty = Cplg_Soudek_Prefix + '23'; +//Cplg_Soudek_ObchodniPripady = Cplg_Soudek_Prefix + '31'; + Cplg_Soudek_CRM = Cplg_Soudek_Prefix + '14'; + Cplg_Soudek_Servis = Cplg_Soudek_Prefix + '26'; + Cplg_Soudek_Workflow = Cplg_Soudek_Prefix + '28'; + Cplg_Soudek_HeliosIntelligence = Cplg_Soudek_Prefix + '251'; + Cplg_Soudek_NastrojePrizpusobeni = Cplg_Soudek_Prefix + '252'; + Cplg_Soudek_Ciselnik = Cplg_Soudek_Prefix + '253'; + Cplg_Soudek_PomCiselnik = Cplg_Soudek_Prefix + '254'; + +// ============================================================================ + +type + TplgMnozinaLegislativa = set of Byte; + TplgTxt = plxNic..plx_MAX; + + TplgHlaska = packed record + SelfIdent : TplgTxt; // pro self-check + H : String; // hlka LESKY + SK: String; // hlka SLOVENSKY (jazykove DLL ma ale prednost!) + W : LongWord; // jednoznacne id, ktere se nikdy nesmi zmenit + GUID: String; // jednoznacne GUID pro zapis do tabulky TabExtHlasky + I : String; // info pro prekladatele - vidi v editoru hlasek + E : String; // anglicky preklad - pokud vim predem, prekladatel nemusi prekladat + D : String; // nemecky preklad - pokud vim predem, prekladatel nemusi prekladat + end; + +// ============================================================================ + +type + TplgTypAtributu = { SQL-92 Delphi Size Range Precision } + (taBlbe, { ----------------------------------------------------------------- } + taInt, { INT Integer 4 -2147483648 .. 1 } + { +2147483647 } + taIdentity, { INT IDENTITY(1,1) -"- } + taInt64, { BIGINT Int64 8 -2^63..2^63-1 1 } + taIdentity64, { BIGINT IDENTITY(1,1) -"- } + taSmallInt, { SMALLINT SmallInt 2 -32768..32767 1 } + taByte, { TINYINT Byte 1 0..255 1 } + taBoolean, { BIT Boolean 1 False..True - } + + taVarChar, { VARCHAR(n) AnsiString n - - } + taChar, { CHAR(n) AnsiString n - - } + taText, { TEXT(n) AnsiString n -} + + taNVarChar, { NVARCHAR(n) String n - - } + taNChar, { NCHAR(n) String n - - } + taNText, { NTEXT(n) String n - } + + taBinary, { BINARY(n)array of Bytes n - - } + taVarBinary, { VARBINARY(n)array of Bytes n - - } + taImage, { IMAGE TBlobField - 0..2,147,483,647 B } + + taDateTime, { DATETIME TDateTime 8 1.1.1753..31.12.9999 } + + //PFA - taTime je pouze pro Eurest!! Nepouzivat jinde, pripadne na vlastni nebezpeci + taTime, { TIME TTime n 00:00:00.0000000..23:59:59.9999999 } + + taNumeric_4_2, { NUMERIC(4,2) } + taNumeric_5_2, { NUMERIC(5,2) } + taNumeric_7_2, { NUMERIC(7,2) } + taNumeric_9_2, { NUMERIC(9,2) } + taNumeric_15_0,{ NUMERIC(15,0) } + taNumeric_19_2,{ NUMERIC(19,2) } + taNumeric_19_6,{ NUMERIC(19,6) } + taNumeric_20_6,{ NUMERIC(20,6) } + taNumeric_28_0,{ NUMERIC(28,0) } + + taFloat { FLOAT } + + // misto taGUID je treba pouzit taBinary s delkou 16 !!! + //taGUID { UNIQUEIDENTIFIER } + ); + + TplgSkupinaAtributu = + (skpZadna, skpCelaCisla, skpDesetinnaCisla, skpRetezce, skpDatumy, skpBinarni); + + TplgPodtypAtributu = + (ptaZadny, + ptaIdentity // property IDENTITY - pro typy [TINY|SMALL]INT | NUMERIC(1..28,0) + ); + + TplgDefTypu = packed record + SelfIdent : TplgTypAtributu; // pro self-check pri startu + T : String; // zakl. typ (INT/CHAR/VARCHAR/NUMERIC...) + X : TplgPodtypAtributu; // podtyp (pro [TINY|SMALL]INT - IDENTITY) + P : Byte; // precision (presnost pro NUMERIC/seed pro IDENTITY) + S : Byte; // scale (poc. des. mist pro NUMERIC/increment pro IDENTITY) + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + +const + Cplg_PodtypStr : array[TplgPodtypAtributu] of String = ('', 'IDENTITY'); + + // konverze na SQL typ + Cplg_GTypy : array[TplgTypAtributu] of TplgDefTypu = + ((SelfIdent: taBlbe; T: ''), + (SelfIdent: taInt; T: 'INT'), + (SelfIdent: taIdentity; T: 'INT'; X:ptaIdentity), + (SelfIdent: taInt64; T: 'BIGINT'), + (SelfIdent: taIdentity64; T: 'BIGINT'; X:ptaIdentity), + (SelfIdent: taSmallInt; T: 'SMALLINT'), + (SelfIdent: taByte; T: 'TINYINT'), + (SelfIdent: taBoolean; T: 'BIT'), + (SelfIdent: taVarChar; T: 'VARCHAR'), + (SelfIdent: taChar; T: 'CHAR'), + (SelfIdent: taText; T: 'TEXT'), + (SelfIdent: taNVarChar; T: 'NVARCHAR'), + (SelfIdent: taNChar; T: 'NCHAR'), + (SelfIdent: taNText; T: 'NTEXT'), + (SelfIdent: taBinary; T: 'BINARY'), + (SelfIdent: taVarBinary; T: 'VARBINARY'), + (SelfIdent: taImage; T: 'IMAGE'), + (SelfIdent: taDateTime; T: 'DATETIME'), + (SelfIdent: taTime; T: 'TIME'), + (SelfIdent: taNumeric_4_2; T: 'NUMERIC'; P: 4; S:2), + (SelfIdent: taNumeric_5_2; T: 'NUMERIC'; P: 5; S:2), + (SelfIdent: taNumeric_7_2; T: 'NUMERIC'; P: 7; S:2), + (SelfIdent: taNumeric_9_2; T: 'NUMERIC'; P: 9; S:2), + (SelfIdent: taNumeric_15_0; T: 'NUMERIC'; P:15; S:0), + (SelfIdent: taNumeric_19_2; T: 'NUMERIC'; P:19; S:2), + (SelfIdent: taNumeric_19_6; T: 'NUMERIC'; P:19; S:6), + (SelfIdent: taNumeric_20_6; T: 'NUMERIC'; P:20; S:6), + (SelfIdent: taNumeric_28_0; T: 'NUMERIC'; P:28; S:0), + (SelfIdent: taFloat; T: 'FLOAT') + + // misto taGUID je treba pouzit BINARY(16) !!! + // (SelfIdent: taGUID; T: 'UNIQUEIDENTIFIER') + ); + +const + Cplg_SkupinaAtributuSDelkou = + [taVarChar, taChar, taNVarChar, taNChar, taBinary, taVarBinary, taTime]; + + Cplg_SkupinaAtributuNumeric = + [taNumeric_4_2, taNumeric_5_2, taNumeric_7_2, taNumeric_9_2, + taNumeric_15_0, taNumeric_19_2, taNumeric_19_6, taNumeric_20_6, + taNumeric_28_0]; + + // typy povolene pro externi atributy + Cplg_SkupinaExternichAtributu = + [taInt, taSmallInt, taBoolean, taVarChar, taText, + taNVarChar, taNText, taVarBinary, + taDateTime, taNumeric_19_6, taFloat]; + + Cplg_SkupinaRetezceANSI = [taVarchar, taChar, taText]; + Cplg_SkupinaRetezceUnicode = [taNVarchar, taNChar, taNText]; + + Cplg_MnozinaIdentity = [taIdentity, taIdentity64]; + + Cplg_MaxPovolenaDelkaAtributuSDelkou = 500; + +// ============================================================================ + +type + // --- ZMENOVE SKRIPTY ------------------------------------------------------ + + PplgZmenovySkript = ^TplgZmenovySkript; + TplgZmenovySkript = packed record + PlatiOd : Int64; // verze z plgVerze.INC, od ktere update plati + // POZOR - MUSI BYT UNIKATNI !!! + Skript : String; // SQL skript delajici zmeny - melo by v nem byt + // co nejvice testu na existenci tabulek, atributu + // a jejich typu - viz SQL metadata function : + // COLUMNPROPERTY, OBJECT_ID apod. - blize viz plgZmeny + end; + + // --- ULOZENE PROCEDURY ---------------------------------------------------- + + PplgUlozenaProcedura = ^TplgUlozenaProcedura; + TplgUlozenaProcedura = packed record + // nejprve se testuje prefix licence, nasleduje legislativa aktualni databaze, + // pak teprve se bere do jake databaze se bude procedura generovat + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + Databaze : String; // DB pro instalaci procedury, prazdne = aktualni DB + Text : String; // definice ulozene procedury vcetne CREATE + // Ulozenka musi byt zadana tak, aby CREATE PROC bylo na jednom radku + // napr. 'CREATE PROCEDURE dbo.ep_XXXX_YYYY'#13+ + // - XXXX je prefix dany pluginem (napr. sys nazev pluginu), pokud je pouzit + // - yyyy je pak vlastni nazev ulozenky + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- UZIVATELSKE FUNKCE --------------------------------------------------- + + PplgUzivatelskaFunkce = ^TplgUzivatelskaFunkce; + TplgUzivatelskaFunkce = packed record + // nejprve se testuje prefix licence, nasleduje legislativa aktualni databaze, + // pak teprve se bere do jake databaze se bude funkce generovat + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + Databaze : String; // DB pro instalaci funkce, prazdne = aktualni DB + Text : String; // definice uzivatelske funkce vcetne CREATE + // Funkce musi byt zadana tak, aby CREATE FUNCTION bylo na jednom radku + // napr. 'CREATE FUNCTION dbo.ef_XXXX_YYYY'#13+ + // - XXXX je prefix dany pluginem (napr. sys nazev pluginu), pokud je pouzit + // - yyyy je pak vlastni nazev funkce + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + +// ============================================================================ + +type + TplgNULL = (nNic, nNOTNULL, nNULL); + TplgBool = (vDefault, vFalse, vTrue); + TplgPK_UQ = (puNic, puPrimaryKey, puUnique); + TplgConstraint = (coChyba, coPrimaryKey, coUnique, coCheck, coForeignKey, + coDefault, coIndex, coIndexClustered, coIndexUnique); + + +const + Cplg_ConstraintOddelovac = '__'; + + Cplg_PrefixyConstraints : array[TplgConstraint] of String = + ('!chyba!', 'PK', 'UQ', 'CK', 'FK', 'DF', 'IX', 'IC', 'IU'); + + Cplg_NULLorNOTNULL : array[TplgNULL] of String = + ('!chyba!', 'NOT NULL', 'NULL'); + +type + // --- ATRIBUTY ------------------------------------------------------------- + + // preddefinovane atributy - definice viz plgUta + TplgUzivatelskyTypAtributu = + (plg_utaZadny + ,plg_utaSystemoveCislo + ,plg_utaSystemoveCislo64 + ,plg_utaAutor + ,plg_utaDatPorizeni + ,plg_utaZmenil + ,plg_utaDatZmeny + ,plg_utaBlokovaniEditoru + ,plg_utaGUID + ,plg_utaSazbaDPH + ,plg_utaCena + ,plg_utaMena + ,plg_utaTextChyby + ,plg_utaImpSoubor + ,plg_utaSkupZbo + ,plg_utaRegCis + + {$I plgTypeUTA.inc} + ); + + // definice atributu + PplgAtributTabulky = ^TplgAtributTabulky; + TplgAtributTabulky = packed record + JmenoSys : String; // nazev atributu v DB + JmenoVerejne : String; // verejny nazev atributu + JmenoVerejneTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + JmenoVerejneZkr : String; // zkraceny verejny nazev atributu + JmenoVerejneZkrTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + Typ : TplgTypAtributu; // typ atributu (taInt, taVarchar apod.) + UTyp : TplgUzivatelskyTypAtributu; // moznost pouziti preddefinovanych atributu (jakysi template) + Delka : SmallInt; // pro [N][VAR]CHAR(n) a BINARY(n); hodnota Cplg_DelkaNVarcharMax (-1) znamena [N]VARCHAR(MAX) + Pocitany : String; // definice atributu v pripade, ze je pocitany - napr. 'Mnozstvi*Cena' + NULL : TplgNull; // je atribut nullable? implicitne je nNotNull + PK_UQ : TplgPK_UQ; // PRIMARY KEY / UNIQUE, default nic + ForeignKey : String; // specifikace ciziho klice - napr. 'TabDokladyZbozi(ID)' + ServerDEFAULT : String; // defaultni hodnota - napr. '0', '''''' (prazdny retezec) + CHECK : String; // omezujici podminka - napr. 'IN(0,1,3)' + Vyzadovany : TplgBool; // atribut je vzdy pritomen v SELECTU prehledu (nemusi byt ale videt) + Verejny : TplgBool; // pokud vTrue, tak bude atribut pristupny v F4 - Nastav + Konverze : String; // pr.: 'NULL=nevim'#13'0=Ne'#13'1=Ano' + KonverzeTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + SirkaSloupce : Byte; // sirka sloupce pro browse (ve znacich) + MaskaDisplay : String; // maska pro zobrazeni atributu - napr. DisplayMaskPenize + Sumovat : Boolean; // v pripade ciselnych atributu se zobrazi sumace pri zagrupovani prehledu + SkupinaNastav : String; // skupina pro Nastav + SkupinaNastavTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // oproti Heliosu je to zde navic + Hint : String; // tento text se zobrazi u editacniho pole v editoru pri najeti mysi + HintTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + DalsiVlastnosti : set of (dvAbstraktni, // dvAbstraktni = neni v DB, ale pouze v definici view + dvObrazek, // jestli je v typu taImage ulozen obrazek + dvProcPruh, // jestli bude hodnota atributu v gridu vyjadrena procentnim pruhem + dvBarva, // jestli bude hodnota atributu v gridu zobrazena jako barva + dvStav // jestli bude hodnota atributu v gridu zobrazena jako stavov sloupec + ); + + HeliosAttr : String; // - lze zadat atribut tabulky Heliosu (Tabulka.Atribut) + // - neni pak treba vyplnovat JmenoVerejne, JmenoVerejneZkr, + // Konverze, MaskaDisplay ani SirkaSloupce + // pri zobrazeni prehledu si to Helios nastavi sam + // - nejlepsi pouzit v souvislosti s abstraktnim atributem + // nebo abstraktni tabulkou + // - prevzeti hodnot z Heliosu funguje v prehledu i v DB editoru v pluginu + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + TplgUzivatelskeAtributyDef = packed record + SelfIdent: TplgUzivatelskyTypAtributu; // pro self-check pri startu + A: TplgAtributTabulky; + end; + + // --- CONSTRAINTS ---------------------------------------------------------- + + PplgConstraintTabulky = ^TplgConstraintTabulky; + TplgConstraintTabulky = packed record + JmenoSys : String; // u PRIMARY KEY a UNIQUE nesmi byt uveden - vygeneruje se + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + + Typ : TplgConstraint; + + // PRO: coPrimaryKey, coUnique, coIndex, coIndexClustered, coIndexUnique + Atributy : string; { oddelene carkou } + + // PRO: coDefault, coCheck + Vyraz : string; { omezeni typu DEFAULT se pise primo k atributu, sem NE !!! } + + // PRO: coForeignKey + VlastniAtributy : string; { 'ID, Nazev' } + CiziTabulka : string; { TabBlaBla } + CiziAtributy : string; { 'Cislo, Jmeno' } + + //PRO: coIndex, coIndexUnique + Included : string; { seznam atributu v indexu, ktere ale netvori klic } + + //PRO: coIndex, coIndexUnique + Where : String; { podminka, novinka od SQL2008 - pozor zapis musi byt ve tvaru, jak to ma ulozene SQL } + + + end; + + // --- TABULKY -------------------------------------------------------------- + + PplgTabulkaDef = ^TplgTabulkaDef; + TplgTabulkaDef = packed record + SelfIdent : TplgTabulka; // pro self-check pri startu + + JmenoSys : String; // systemove jmeno tabulky v databazi + Jmeno : String; // verejne jmeno tabulky (muze byt totozne s nazvem prehledu, pokud je v prehledu jako nazev '*') + JmenoTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // nejprve se testuje legislativa aktualni databaze, pak teprve se bere + // do jake databaze se bude procedura generovat + PrefixLicence : string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + Databaze : String; // DB pro instalaci tabulky, prazdne = aktualni DB + + // moznost prevzeti casti definice z jine tabulky + // - probiha pouze kopie TplgAtributTabulky + // - zadne jine nastaveni TplgTabulkaDef se nekopiruje + Predek : TplgTabulka; // predek, od nehoz tato tabulka dedi strukturu + VyjmuteAttrPredka : String; // seznam atributu predka, ktere nemaji byt v nove tabulce (polozky oddeleny #13) + + // atributy tabulky + PocetAtributu : Integer; + Atributy : PplgAtributTabulky; + + // integritni omezeni + PocetConstraints : Integer; + Constraints : PplgConstraintTabulky; + + // specialni vlastnosti tabulky + DalsiVlastnosti : set of ( + plg_dvtBezID, // tabulka nema ID (skip kontroly), pouzivat velmi opatrne !!! + plg_dvtAbstraktni, // tabulka neexistuje fyzicky v DB, pouze template pro definici atributu view + plg_dvtNeprevadetNaUnicode, // tabulka nebude obsazena v automatickem prevodu na UNICODE + plg_dvtKopirovatOmezeni, // maji se atributy z Predka kopirovat s Check, ForeignKey, PK_UQ ? + plg_dvtBlokovaniJenOprava // BlokovaniEditoru se nahazuje pouze pri editaci, ne pri nove vete + ); + + // seznam atributu oddeleny carkou - hlavne pro pripad [plg_dvtBezID] + // kdyz je prazdne, bere se automaticky ID + PrimarniKlic : String; + + // skript, ktery se spousti pred smazanim zaznamu (vse v transakci) + // v ramci skriptu existuje promenna @ID = ID zaznamu + TriggerBeforeDelete : String; + + // skript pro pripadne predvyplneni tabulky po jejim vzniku (po CREATE TABLE) + AfterCreateTable : String; + + // definice triggeru (vcetne CREATE TRIGGER ht_XXXXX ON TabXXXX FOR ...) + DefiniceTriggeru : String; + + // !!! NEVYPLNOVAT !!! pouze interni pouziti !!! + _BylInitConstraints : Boolean; + + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- SOUDKY --------------------------------------------------------------- + TplgSoudekDef = packed record + SelfIdent : TplgSoudek; // pro self-check pri startu a navaznost na prehledy + Jmeno : String; + end; + + // --- PREHLEDY ------------------------------------------------------------- + + // tyto tridy jsou pouze pomocne kvuli deklaraci !!! + TplgAkcePrehleduBaseClass = class of TplgAkcePrehleduBase; + TplgAkcePrehleduBase = class + end; + + // ========================================================================== + // Prefix Povinne Mozne + // ========================================================================== + // 'hvw_' JmenoView HlavniTabulka + // DefiniceView DMAkceClass + // SELECT EditorClass + // GUID_ActionNew + // GUID_ActionEdit + // GUID_ActionDelete + // ========================================================================== + + TplgVychoziNastaveniBrowse = packed record + SelfIdent : TplgBrowse; // pro self-check pri startu + + // nazev pro uzivatele (pokud je '*', tak se vezme z hlavni tabulky) + Jmeno : String; + JmenoTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // zakladni tabulka nad kterou je postaven browse (nad tou bezi editor) + // jako abstraktni lze pouzit pro definici nazvu, masek apod. atributu + HlavniTabulka : TplgTabulka; + + // systemovy nazev view, musi zacinat 'hvw_' + JmenoView : String; + + // SELECT definujici vlastni view napr. 'SELECT*FROM TabXXX' + // pokud ma tabulka BlokovaniEditoru, pak aby slo pouzit odblokovani, je treba + // napsat skript takto: 'SELECT*FROM TabXXX', jinak server ohlasi chybu + DefiniceView : String; + + // unikatni GUID definovaneho prehledu, slouzi pro registrace Helios Easy +// GUID : string; + + // rika, ze NECHCI dane view vytvorit v DB; implicitne se v DB vytvareji + // mozno pouzit pro prehled nad docasnou tabulkou + Neni_v_DB : Boolean; + + // tabulka pro atributy typu TEXT + BlobTableName : String; + + // seznam atributu bez tabulky oddeleny #13 + SELECT : String; + + // seznam atributu bez tabulky oddeleny #13 + // muze byt pridano ASC ci DESC, implicitni je ASC + ORDERBY : String; + + // - zakladni funcionalita browsu + // - tda typu TplgAkcePrehledu, dedeno z plgAkce + DMAkceClass : TplgAkcePrehleduBaseClass; + + // - editan obrazovka + // - tda typu TfrmPlgEditor, dedeno z plgEdit + EditorClass : TFormClass; + + // umisteni prehledu do soudecku (soudecky se definuji v plgSoudky) + Soudek : TplgSoudek; + Predek : TplgBrowse; + + // pro jakou legislativu se bude prehled vytvaret + // pokud je omezeno, musi byt v souladu s tabulkou - pokud tabulka pro danou + // legislativu neni vytvarena, nevytvari se ani prehled !! + PrefixLicence : string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + + // Pomocnicek Heliosik pro definovany prehled + Pomocnicek : String; + PomocnicekTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // definice atributu pro systemovou filtaci + // je mozno vyplnit ruzne kombinace, ale do kazdeho "slotu" lze zadat pouze jeden atribut + AttrFor_sqlSklad : String; + AttrFor_sqlSbornik : String; + AttrFor_sqlPokladna : String; + AttrFor_sqlIDObdobi : String; + AttrFor_sqlIDMzdObd : String; + AttrFor_sqlKategorieKJ : String; + AttrFor_sqlRadaUctenek : String; + + // unikatni GUID pro preddefinovane akce, pokud nejsou uvedeny akce neni povolena + GUID_ActionNew : String; + GUID_ActionEdit : String; + GUID_ActionDelete : String; + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- EXTERNI AKCE --------------------------------------------------------- + + PplgExtAkceDef = ^TplgExtAkceDef; + TplgExtAkceDef = packed record + BrowseID : Integer; // musi byt mezi 1..100000 + // BID prehledu z Heliosu (lze zobrazit pomoci AltB) + + // - zakladni funcionalita pro standardni prehled Heliosu + // - tda typu TplgAkcePrehledu, dedeno z plgAkce + DMAkceClass : TplgAkcePrehleduBaseClass; + + // - editan obrazovka + // - tda typu TfrmPlgEditor, dedeno z plgEdit + EditorClass : TFormClass; + + // unikatni GUID pro preddefinovane akce, pokud nejsou uvedeny akce neni povolena + GUID_ActionNew : String; + GUID_ActionEdit : String; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + end; + + // --- EDITOR CONTROLLER ---------------------------------------------------- + + // tyto tridy jsou pouze pomocne kvuli deklaraci !!! + TplgEditorControllerBaseClass = class of TplgEditorControllerBase; + TplgEditorControllerBase = class(TInterfacedObject) + end; + + TplgEditorControllerDef = packed record + FormIdent: string; // klic pro ulozeni informaci o editoru do DB (velikost okna, uzivatelsky editor...) + ControllerClass: TplgEditorControllerBaseClass; + end; + + // --- VZTAHY --------------------------------------------------------------- + + TplgTypVztahu = (tvZadny, { <- zadny (pouziva se k indikaci chyby) } + tv11, { <- vztah 1:1 (nebo 0:1) } + tv1N { <- vztah 1:N (nebo 0:N) } + ); + // tvZadny = protitabulka nebude vidt v Nastav ani v tisku + // tv11 = protitabulka bude vidt v tisku a v Nastav na zlokch 1 - Zobrazen, 2 - Tdn i 3 - Podmnky + // - pouv napr. pro poloky + // tv1N = protitabulka bude vidt v tisku a v Nastav pouze na zloce 3 - Podmnky + // - pouv napr. pro hlaviku + + PplgVztahDef = ^TplgVztahDef; + TplgVztahDef = packed record + GUIDVazby : String; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + + TabLStr : String; // sys. nazev tabulky + NazevLP : String; // verejny nazev protitabulky pro Nastav + NazevLPTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + NazevLPSys : String; // sys. nzev protitabulky (tiskovho zdroje) v nvrhi tiskovch formul + TypLP : TplgTypVztahu; + + TabPStr : String; // sys. nazev tabulky + NazevPL : String; // verejny nazev protitabulky pro Nastav + NazevPLTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + NazevPLSys : String; // sys. nzev protitabulky (tiskovho zdroje) v nvrhi tiskovch formul + TypPL : TplgTypVztahu; + + // NazevLPSys a NazevPLSys - systemovy nazev vazby pro tisk + // - nazvy, ktere by mely mit vypovidaci hodnotu (neprekladaji se) + // - pouzivaji se ke generovani nazvu pipeliny pro tisk formularu + // - jsou ulozeny ve formularich, proto je jiz nelze zmenit !!! + // - MUSI BYT vyplneny + + // Atributy v podmnce zadvejte v pln notaci: Tabulka.Atribut + // Vyhodnocen podmnky je senzitivn na velikost psmen! + // V ppad vazby pes vce tabulek pouijte EXISTS(). + // V ppad vazby shodnch tabulek mus bt jedna z tabulek + // nahrazena specifiktorem , aby se odliily strany vazby. + Join : String; + end; + + // --- EXTERNI ATRIBUTY ----------------------------------------------------- + + TplgTypExtAtr = + (eaChyba, eaUserDef, eaNormal, eaMemo, eaComboBox, eaBrowse, eaDateTime, + eaTime, eaFile, eaDirectory, eaCalcEdit); + // eaUserDef = uzivatelsky definovany atribut, ostatni jsou externi + // eaNormal = normalni editor + // eaMemo = editacni pole Memo + // eaComboBox = editacni pole ComboBox + // eaBrowse = editacni pole pro prenos z jineho prehledu + // eaDateTime = editacni pole pro datum i cas (pouze pro Typ = taDateTime) + // eaTime = editacni pole pro cas (pouze pro Typ = taDateTime) + // eaFile = editacni pole pro nazev souboru + // eaDirectory = editacni pole pro adresar + // eaCalcEdit = editacni pole CalcEdit (pole s kalkulackou) + + PplgExterniAtribut = ^TplgExterniAtribut; + TplgExterniAtribut = packed record + // jmeno tabulky v Heliosu, tabulka musi mit ID !!! + JmenoTabulky : String; + + // systemovy nazev atributu v DB, musi zacinat jednim podtrzitkem + JmenoSys : String; + + // unikatni GUID externiho atributu, slouzi pro registrace Helios Easy +// GUID : string; + + // verejny nazev atributu + JmenoVerejne : String; + JmenoVerejneTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + JmenoVerejneZkr : String; + JmenoVerejneZkrTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // typ atributu v DB + // plati pouze omezeny okruh typu - viz Cplg_SkupinaExternichAtributu + Typ : TplgTypAtributu; + Delka : Integer; // pro [VAR]CHAR(n) + Verejny : Boolean; // viditelnost atributu v Nastav a editoru externich informaci + Editovatelny : TplgBool; // nezadano, coz je vDefault = podle Verejny + SirkaSloupce : Byte; // sirka sloupce pro browse (ve znacich) + MaskaDisplay : String; // maska pro zobrazeni atributu - napr. DisplayMaskPenize + Sumovat : Boolean; // v pripade ciselnych atributu se zobrazi sumace pri zagrupovani prehledu + ProcentniPruh : Boolean; // bude hodnota atributu v gridu vyjadrena procentnim pruhem? + Barva : Boolean; // bude hodnota atributu v gridu zobrazena barvou? + Obrazek : Boolean; // je VARBINARY(MAX) obrazek? + Tisknout : Boolean; // muze se atribut tisknout - bude videt v tiskove pipeline? + StavAtr : Boolean; // Stav + Kopirovat : Boolean; // muze se atribut kopirovat + HromadneZmenyAtr : Boolean; // je mozno atribut hromadne menit + + Konverze : String; + KonverzeTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + JeKonverzeSQLSkript: Boolean; + + Poznamka : String; // poznamka (technicky popis) + PoznamkaTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + Bublina : String; // bublinova napoveda + BublinaTxt : TplgTxt; // ident retezce pro jazykove mutace (pokud vyplnen, ma prednost) + + // typ externiho atributu (uzivatelsky / externi) + TypExtAtr : TplgTypExtAtr; + + // eaBrowse => >0 = systmov slo penosovho pehledu v editoru + // ostatni => nebere se v uvahu + ExtEd_BrowseID : Integer; // BID pro prehledy Heliosu + ExtEd_BrowseDPSN : string; // systemovy nazev definovaneho prehledu + + // eaUserDef => definice atributu (SELECT ... ) + // eaComboBox => skript pro naplneni ComboBoxu + // eaBrowse => "Tabulka.Atribut", kter se m penet - parametr funkce Prenos() + // ostatni => nebere se v uvahu + ExtEd_Atr : String; + + // eaComboBox => nastavi pouze pro vyber (csDropDownList) + // eaBrowse => pole lze zadat pouze prenosem z jineho prehledu + // ostatni => nebere se v uvahu + ExtEd_PrimaEditace : Boolean; // mohu pmo editovat ? + + // eaBrowse => podminka pro prenosovy prehled + // ostatni => nebere se v uvahu + ExtEd_Podminka : String; // podminka pro prenos + + // eaUserDef => nebere se v uvahu (je platne pouze pro editor externich atributu) + ExtEd_Zalozka : String; // nazev zalozky pro editor + ExtEd_ZalozkaTxt : TplgTxt; + ExtEd_Poradi : Integer; // poradi na zalozce (>0) + + // automaticka vazba na atribut + GenerujVazbu: Boolean; + VazbaTypMoje: TplgTypVztahu; // 1:N, 1:1, (neni) + VazbaNazevMoje: string; + VazbaNazevMojeSys: string; + VazbaTypCizi: TplgTypVztahu; // 1:1 nebo (neni) + VazbaNazevCizi: string; + VazbaNazevCiziSys: string; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + + // --- EXTERNI TRIGGERY ----------------------------------------------------- + + PplgExterniTrigger = ^TplgExterniTrigger; + TplgExterniTrigger = packed record + // systemove jmeno standardni tabulky Heliosu + JmenoTabulky : String; + + // pro jakou legislativu se bude vytvaret + PrefixLicence: string; // prazdne = bez ohledu na licenci + Legislativa : TplgMnozinaLegislativa; // prazdne = bez ohledu na legislativu + + // skript pro vytvoreni externiho triggeru, jmeno trigeru musi byt et_ + // skript musi zacinat: CREATE TRIGGER et_ ON FOR + TriggerSkript : String; + + {$IFDEF SPopisem} + Popis : String; // popis pro generovani dokumentace + {$ENDIF} + end; + +{ ########################################################################### } + +// LOCAL | USER: RK | DT: 15.08.2005 14:40:35 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 14:41:54 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 15.08.2005 14:54:37 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 14:57:32 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 15.08.2005 16:25:50 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 16:26:00 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 16.08.2005 09:33:01 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 16.08.2005 09:42:41 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.09.2005 15:44:18 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.09.2005 15:45:55 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.10.2005 10:37:09 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 17.10.2005 10:37:38 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.10.2005 14:06:43 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 17.10.2005 14:06:45 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 13:58:19 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 13:59:02 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 14:30:40 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 14:48:25 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 14:48:28 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 14:48:50 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.12.2005 13:16:42 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.12.2005 13:32:44 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 16.01.2006 12:07:00 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 16.01.2006 12:16:38 | VER: 20060116 | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 14.02.2006 14:17:52 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 14.02.2006 14:20:23 | VER: 20060214 | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.02.2006 15:03:31 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 15.02.2006 15:05:40 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:19:30 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:51:13 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:55:04 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:55:41 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:00:01 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:02:59 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:21:51 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:22:19 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:22:38 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:22:41 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 15:55:44 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 21.03.2006 16:09:13 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 23.03.2006 14:51:13 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 23.03.2006 14:52:48 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.04.2006 15:08:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 10.04.2006 15:08:31 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.05.2006 12:30:25 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 02.05.2006 12:30:30 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.05.2006 14:58:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.05.2006 14:59:17 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.05.2006 10:13:10 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 15.05.2006 10:13:15 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 30.05.2006 09:08:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 30.05.2006 09:14:52 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 31.05.2006 12:29:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 31.05.2006 12:29:13 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 06.06.2006 16:52:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 06.06.2006 16:52:53 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 07.06.2006 11:04:14 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 07.06.2006 11:07:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.06.2006 12:57:59 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.06.2006 12:58:09 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.06.2006 16:01:52 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.06.2006 16:02:19 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.06.2006 10:14:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 22.06.2006 10:16:20 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.06.2006 10:19:38 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 29.06.2006 10:25:59 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.06.2006 10:48:31 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 29.06.2006 10:48:41 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 30.06.2006 10:35:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 30.06.2006 10:36:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.07.2006 09:24:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 10.07.2006 10:02:56 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 09:26:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 18.07.2006 10:07:29 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 10:08:08 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 18.07.2006 10:08:20 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 10:21:35 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2006 10:21:43 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:27:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 13:59:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:59:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 15:05:46 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 14:09:37 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 21.07.2006 14:32:43 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 14:43:45 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 21.07.2006 14:43:53 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 15:59:51 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 24.07.2006 09:34:38 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 24.07.2006 10:16:40 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 24.07.2006 10:16:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 25.07.2006 16:03:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 25.07.2006 16:03:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 27.07.2006 15:58:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 27.07.2006 15:58:57 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.08.2006 12:10:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.08.2006 12:10:24 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 10:35:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 10:42:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 11:10:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 11:11:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.09.2006 14:36:18 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 11.09.2006 08:59:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.09.2006 12:38:52 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 15.09.2006 12:38:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 09:22:50 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 09:24:29 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 09:55:38 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 10:13:17 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 11:02:15 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 11:03:08 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 16:15:56 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 16:16:03 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.10.2006 10:45:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.10.2006 10:45:25 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.11.2006 10:25:06 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.11.2006 10:27:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.11.2006 10:33:46 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.11.2006 10:34:05 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.11.2006 16:11:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 02.11.2006 16:11:40 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 02.11.2006 16:13:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 02.11.2006 16:13:17 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 27.11.2006 08:53:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 27.11.2006 08:53:14 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: rj | DT: 04.12.2006 12:21:05 | VER: | TXT: | PC: RJ-XP-D | FROM: L:\H\IQ10\PlugLib | TO: C:\Plugins\SEW\Bin +// LIB | USER: rj | DT: 04.12.2006 12:25:20 | VER: ?? LB ?? | TXT: | PC: RJ-XP-D | FROM: C:\Plugins\SEW\Bin | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 08.12.2006 13:04:47 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 08.12.2006 13:23:18 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.01.2007 11:10:55 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 04.01.2007 11:11:03 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.01.2007 09:21:43 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 17.01.2007 09:21:50 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 05.04.2007 14:43:54 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 05.04.2007 14:45:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 06.04.2007 12:06:43 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 06.04.2007 12:07:39 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.05.2007 09:32:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.05.2007 09:38:35 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 16.05.2007 14:17:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 16.05.2007 14:17:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 09:40:33 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 10:26:05 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 10:26:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 10:26:19 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.09.2007 12:30:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 08.10.2007 09:59:47 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.11.2007 12:19:50 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 21.11.2007 12:46:40 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 20.03.2008 15:06:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 20.03.2008 16:14:02 | VER: 20080319 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 20.03.2008 18:29:09 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 20.03.2008 18:29:37 | VER: 20080319 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.04.2008 10:08:51 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 10.04.2008 10:13:29 | VER: 20080410 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 28.05.2008 09:16:05 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 28.05.2008 10:16:28 | VER: 20080528 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 28.05.2008 13:50:06 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 28.05.2008 13:54:50 | VER: 20080528 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 10:01:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 10:02:43 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 10:11:26 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 12:55:06 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 13:15:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 14:49:22 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:06:33 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 13:48:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.09.2008 15:01:30 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 15:19:11 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 09:10:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 10:07:45 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 10:38:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 11:31:11 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 12:11:54 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 12:24:42 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.10.2008 10:27:34 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.10.2008 12:26:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.12.2008 12:56:32 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 15.12.2008 14:32:56 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.12.2008 14:35:50 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 15.12.2008 14:46:42 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 07.01.2009 09:55:10 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\HELIOS +// LIB | USER: RK | DT: 07.01.2009 09:55:25 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 12:34:20 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 13:33:46 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 14:59:34 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 15:00:40 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 03.03.2009 15:27:54 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 03.03.2009 15:45:49 | VER: ?? LB ?? | TXT: ticha instalace | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 13.03.2009 15:33:11 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 13.03.2009 15:33:29 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 08.04.2009 12:54:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 08.04.2009 12:56:00 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 12:52:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 21.04.2009 13:01:14 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 13:33:23 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 21.04.2009 13:47:58 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 13:48:01 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 21.04.2009 13:48:10 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 11.05.2009 10:31:05 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 11.05.2009 10:31:11 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.05.2009 13:12:32 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.05.2009 14:34:09 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 17.06.2009 09:11:42 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 17.06.2009 09:15:27 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 17.06.2009 09:17:40 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 17.06.2009 09:21:35 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\P\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 22.06.2009 14:24:18 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 22.06.2009 14:31:54 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:23:47 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:25:39 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:33:46 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:34:50 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.07.2009 12:11:44 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 21.07.2009 13:41:16 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 23.07.2009 09:52:31 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 23.07.2009 09:53:53 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 27.07.2009 12:17:56 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 27.07.2009 12:34:50 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.07.2009 14:07:16 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 29.07.2009 14:50:29 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 24.09.2009 10:18:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 24.09.2009 10:25:06 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 22.12.2009 12:13:31 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 04.01.2010 13:49:57 | VER: 20100104 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.01.2010 08:52:15 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 15.01.2010 14:07:55 | VER: 20100115 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.01.2010 13:09:41 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 28.01.2010 13:09:54 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 11.03.2010 12:27:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 11.03.2010 12:29:33 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 09:31:04 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 09:37:13 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 09:46:42 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 09:47:36 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 14:05:19 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 14:50:03 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 15.04.2010 10:22:11 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 15.04.2010 10:22:24 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2010 11:50:48 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 21.04.2010 12:48:35 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.04.2010 09:33:17 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 28.04.2010 10:00:02 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.04.2010 12:45:41 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 29.04.2010 12:46:28 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 14.05.2010 20:36:26 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 14.05.2010 20:43:47 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 26.05.2010 15:22:43 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 26.05.2010 15:27:00 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 16.06.2010 12:04:29 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 16.06.2010 12:05:54 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.10.2010 08:24:18 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 01.10.2010 08:24:48 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.01.2011 08:38:41 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 05.01.2011 08:38:52 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.02.2011 11:45:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 28.02.2011 11:46:11 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.04.2011 13:09:05 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 12.04.2011 13:37:40 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.04.2011 13:38:05 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 12.04.2011 13:38:18 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 17.06.2011 15:18:19 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 17.06.2011 15:18:45 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 25.07.2011 10:13:40 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 25.07.2011 10:15:15 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 15.08.2011 18:55:41 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 15.08.2011 19:23:14 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 18.08.2011 16:18:40 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 18.08.2011 16:18:53 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 15:41:03 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:17 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 14.09.2011 21:04:48 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 14.09.2011 22:30:46 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:00:47 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:22:24 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:47:02 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 15:49:06 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:54:27 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:01:32 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 13.10.2011 20:19:31 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 13.10.2011 20:20:00 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: jaroslav.pfauser | DT: 04.01.2012 16:15:45 | VER: | TXT: zmena aktualniho roku | PC: PFAUSERJA-PC | FROM: L:\H\IQ10\PlugLib2 | TO: C:\Helios\Heo +// LIB | USER: jaroslav.pfauser | DT: 04.01.2012 16:16:12 | VER: ?? LB ?? | TXT: | PC: PFAUSERJA-PC | FROM: C:\Helios\Heo | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 25.01.2012 08:23:36 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 25.01.2012 08:24:20 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 31.01.2012 15:44:19 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 31.01.2012 15:46:10 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 03.08.2012 10:14:57 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 03.08.2012 10:15:41 | VER: ?? LB ?? | TXT: Cplg_SQLVersion_2008R2_SP2 | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 05.09.2012 13:09:58 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 05.09.2012 13:10:54 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 06.12.2012 12:34:52 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 06.12.2012 12:35:01 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: jaroslav.pfauser | DT: 02.01.2013 12:43:30 | VER: | TXT: | PC: PFAUSERJA-PC | FROM: L:\H\IQ10\PlugLib2 | TO: C:\HeO\dpr_pfa +// LIB | USER: jaroslav.pfauser | DT: 02.01.2013 12:43:56 | VER: ?? LB ?? | TXT: Cplg_AktualniRok = 2013 | PC: PFAUSERJA-PC | FROM: C:\HeO\dpr_pfa | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 04.04.2013 14:32:32 | VER: | TXT: | PC: KRUPICKARO-PC3 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 04.04.2013 14:33:23 | VER: ?? LB ?? | TXT: SQL2012 SP1 | PC: KRUPICKARO-PC3 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.04.2013 09:57:16 | VER: | TXT: | PC: KRUPICKARO-PC3 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample diff --git a/lib/plgTypeSoudky.inc b/lib/plgTypeSoudky.inc new file mode 100644 index 0000000..d21e96a --- /dev/null +++ b/lib/plgTypeSoudky.inc @@ -0,0 +1,5 @@ +type + TplgSoudek = (sdNeniVidet // neni videt ve stromecku (default) + +//last + ); diff --git a/lib/plgTypeTabulka.inc b/lib/plgTypeTabulka.inc new file mode 100644 index 0000000..1c859da --- /dev/null +++ b/lib/plgTypeTabulka.inc @@ -0,0 +1,7 @@ +// === TABULKY ================================================================ + +type + TplgTabulka = (tZadna + ); + +//last <- to je kvuli rychlejsimu hledani diff --git a/lib/plgTypeTxtEx.inc b/lib/plgTypeTxtEx.inc new file mode 100644 index 0000000..d581e37 --- /dev/null +++ b/lib/plgTypeTxtEx.inc @@ -0,0 +1,15 @@ +// === HLASKY OSTATNI ========================================================= +const +// priklad: +// plxMojeHlaska1=plx_MAX_Jadro+1; <--- POZOR musi byt plx_MAX_Jadro !! +// plxMojeHlaska2=plxMojeHlaska1+1; +// plx_MAX = plxMojeHlaska2; <--- plx_MAX se rovna posledni hlasce, ale bez +1 !! + + + plx_MAX = plx_MAX_Jadro; + +//last <- to je kvuli rychlejsimu hledani + + + + diff --git a/lib/plgTypeTxtJadro.INC b/lib/plgTypeTxtJadro.INC new file mode 100644 index 0000000..2007d69 --- /dev/null +++ b/lib/plgTypeTxtJadro.INC @@ -0,0 +1,192 @@ +// === HLASKY JADRA =========================================================== +const +plxNic=0; +plxOK=plxNic+1; +plxStorno=plxOK+1; +plxJadroUlozitZmeny=plxStorno+1; +plxJadroPrazdnaNeboChybneZadanaPolozka=plxJadroUlozitZmeny+1; +plxJadroOprPrejSmazAkt=plxJadroPrazdnaNeboChybneZadanaPolozka+1; +plxJadroOprPrejSmazVse=plxJadroOprPrejSmazAkt+1; +plxJadroNeni=plxJadroOprPrejSmazVse+1; +plxJadroPluginVyzadujeMinVerziX=plxJadroNeni+1; +plxJadroAkceNemuzeBytSpustena=plxJadroPluginVyzadujeMinVerziX+1; +plxJadroMenuEditace=plxJadroAkceNemuzeBytSpustena+1; +plxJadroAkceNovy=plxJadroMenuEditace+1; +plxJadroAkceOprava=plxJadroAkceNovy+1; +plxJadroAkceZrusit=plxJadroAkceOprava+1; +plxJadroPouzeKeCteni=plxJadroAkceZrusit+1; +plxJadroZavrit=plxJadroPouzeKeCteni+1; +plxJadroIndexSeZmenil=plxJadroZavrit+1; +plxJadroIndexV_DB_Chybi=plxJadroIndexSeZmenil+1; +plxJadroKontrolaPluginuX=plxJadroIndexV_DB_Chybi+1; +plxJadroSpustit=plxJadroKontrolaPluginuX+1; +plxJadroZmenoveSkripty=plxJadroSpustit+1; +plxJadroKontrolaTabulek=plxJadroZmenoveSkripty+1; +plxJadroKontrolaJednotlivychAtributu=plxJadroKontrolaTabulek+1; +plxJadroKontrolaUnikatnichKlicu=plxJadroKontrolaJednotlivychAtributu+1; +plxJadroKontrolaIntegritnichOmezeni=plxJadroKontrolaUnikatnichKlicu+1; +plxJadroKontrolaCizichKlicu=plxJadroKontrolaIntegritnichOmezeni+1; +plxJadroKontrolaUlozenychProcedur=plxJadroKontrolaCizichKlicu+1; +plxJadroKontrolaTriggeru=plxJadroKontrolaUlozenychProcedur+1; +plxJadroKontrolaIndexu=plxJadroKontrolaTriggeru+1; +plxJadroKontrolaPrehledu_a_Akci=plxJadroKontrolaIndexu+1; +plxJadroImportFormularuFilruOpisu=plxJadroKontrolaPrehledu_a_Akci+1; +plxJadroZmenovySkriptJizBylProveden=plxJadroImportFormularuFilruOpisu+1; +plxJadroUpdateZVerze_X_NaVerzi_Y=plxJadroZmenovySkriptJizBylProveden+1; +plxJadroZmenovychSkriptuX=plxJadroUpdateZVerze_X_NaVerzi_Y+1; +plxJadroInstalaceHotovo=plxJadroZmenovychSkriptuX+1; +plxJadro_X_BudeNyniUkoncen=plxJadroInstalaceHotovo+1; +plxJadroBylaDetekovanaZmenaStruktury=plxJadro_X_BudeNyniUkoncen+1; +plxJadroUvedeneTabulkyChybi=plxJadroBylaDetekovanaZmenaStruktury+1; +plxJadroVytvoreniZakladnichPrehledu=plxJadroUvedeneTabulkyChybi+1; +plxJadroZmenaStrukturyDB=plxJadroVytvoreniZakladnichPrehledu+1; +plxJadroOpravduSiPrejeteUvedeneZmeny=plxJadroZmenaStrukturyDB+1; +plxJadroPredZmenamiDoporucujemeZalohuDB=plxJadroOpravduSiPrejeteUvedeneZmeny+1; +plxJadroTlacitkoZalohovani=plxJadroPredZmenamiDoporucujemeZalohuDB+1; +plxJadroProvest=plxJadroTlacitkoZalohovani+1; +plxJadroAkceUkazSQLSkript=plxJadroProvest+1; +plxJadroDefinovaneFormulare=plxJadroAkceUkazSQLSkript+1; +plxJadroDefinovaneFiltry=plxJadroDefinovaneFormulare+1; +plxJadroDefinovaneOpisy=plxJadroDefinovaneFiltry+1; +plxJadroAutoImportInfo=plxJadroDefinovaneOpisy+1; +plxJadroAbout_OPluginu=plxJadroAutoImportInfo+1; +plxJadroKopirovat=plxJadroAbout_OPluginu+1; +plxJadroAbout_Nazev=plxJadroKopirovat+1; +plxJadroAbout_Hodnota=plxJadroAbout_Nazev+1; +plxJadroVerze=plxJadroAbout_Hodnota+1; +plxJadroAbout_Vyrobce=plxJadroVerze+1; +plxJadroAbout_MinVerze_X=plxJadroAbout_Vyrobce+1; +plxJadroAbout_JADRO=plxJadroAbout_MinVerze_X+1; +plxJadroVerze_V_DB=plxJadroAbout_JADRO+1; +plxJadroVerzePluginu=plxJadroVerze_V_DB+1; +plxJadroVerzePluginuJeNizsiNezVDB=plxJadroVerzePluginu+1; +plxJadroNeznamaAkce=plxJadroVerzePluginuJeNizsiNezVDB+1; +plxJadroJeTrebaSpustitInstalaciPluginu=plxJadroNeznamaAkce+1; +plxJadroVerzePluginuJeVyssiNezVDB=plxJadroJeTrebaSpustitInstalaciPluginu+1; +plxJadroMinulaInstalaceNeprobehlaKorektne=plxJadroVerzePluginuJeVyssiNezVDB+1; +plxJadroVymazat=plxJadroMinulaInstalaceNeprobehlaKorektne+1; +plxJadroZakazkaXJeUzavrena=plxJadroVymazat+1; +plxJadroNalezenoViceStejnychHodnotPolozky=plxJadroZakazkaXJeUzavrena+1; +plxJadroOrganizaceJeZakazana=plxJadroNalezenoViceStejnychHodnotPolozky+1; +plxJadroOrganizaceJeBlokovana=plxJadroOrganizaceJeZakazana+1; +plxJadroInfoOrg_DluhXKeDniY=plxJadroOrganizaceJeBlokovana+1; +plxJadroDatumPoslednihoAutoImportuFormularu=plxJadroInfoOrg_DluhXKeDniY+1; +plxJadroDatumPoslednihoAutoImportuFiltru=plxJadroDatumPoslednihoAutoImportuFormularu+1; +plxJadroDatumPoslednihoAutoImportuOpisu=plxJadroDatumPoslednihoAutoImportuFiltru+1; +plxJadroSystemoveCislo=plxJadroDatumPoslednihoAutoImportuOpisu+1; +plxJadroSysCisZkr=plxJadroSystemoveCislo+1; +plxJadroAutor=plxJadroSysCisZkr+1; +plxJadroDatumPorizeni=plxJadroAutor+1; +plxJadroZmenil=plxJadroDatumPorizeni+1; +plxJadroDatumZmeny=plxJadroZmenil+1; +plxJadroBlokovaniEditoru=plxJadroDatumZmeny+1; +plxJadroNovy=plxJadroBlokovaniEditoru+1; +plxJadroOprava=plxJadroNovy+1; +plxJadroZrusit=plxJadroOprava+1; +plxJadroObnovit=plxJadroZrusit+1; +plxJadroAno=plxJadroObnovit+1; +plxJadroNe=plxJadroAno+1; +plxJadroNebylNalezenPrehled_X_Y=plxJadroNe+1; +plxJadroNebylNalezenPrehledCislo_X=plxJadroNebylNalezenPrehled_X_Y+1; +plxJadroDefPrehledy_a_JejichAkce=plxJadroNebylNalezenPrehledCislo_X+1; +plxJadroExterniAkce=plxJadroDefPrehledy_a_JejichAkce+1; +plxJadroAkceProPrehledCislo_X=plxJadroExterniAkce+1; +plxJadroDefinovaneVazby=plxJadroAkceProPrehledCislo_X+1; +plxJadroExterniAtributy=plxJadroDefinovaneVazby+1; +plxJadroExterniAtribut_T_A=plxJadroExterniAtributy+1; +plxJadroUzivatelskeSoudecky=plxJadroExterniAtribut_T_A+1; +plxJadroPoradiSoudecku=plxJadroUzivatelskeSoudecky+1; +plxJadroInstalace=plxJadroPoradiSoudecku+1; +plxJadroZakladniInformace=plxJadroInstalace+1; +plxJadroTechnickyPopis=plxJadroZakladniInformace+1; +plxJadroMinVerzeSQLServeru=plxJadroTechnickyPopis+1; +plxJadroNeinstalovano=plxJadroMinVerzeSQLServeru+1; +plxJadroInstalovanaVerze=plxJadroNeinstalovano+1; +plxJadroUmisteni=plxJadroInstalovanaVerze+1; +plxJadroPrerusit=plxJadroUmisteni+1; +plxJadroOpravduAkciPrerusit=plxJadroPrerusit+1; +plxJadroPluginVyzadujeMinVerziSQL_X=plxJadroOpravduAkciPrerusit+1; +plxJadroNavaznyCiselnikSFiltraci=plxJadroPluginVyzadujeMinVerziSQL_X+1; +plxJadroNavaznyCiselnik=plxJadroNavaznyCiselnikSFiltraci+1; +plxJadroOdesilamPostu=plxJadroNavaznyCiselnik+1; +plxJadroMailNebylNalezenHeMail=plxJadroOdesilamPostu+1; +plxJadroMailNepodariloSeVytvoriKonfigSoubor=plxJadroMailNebylNalezenHeMail+1; +plxJadroKontrolaExternichAtributu=plxJadroMailNepodariloSeVytvoriKonfigSoubor+1; +plxJadroStredisko_X_JeZakazano=plxJadroKontrolaExternichAtributu+1; +plxJadroRegistrovanyOtaznik=plxJadroStredisko_X_JeZakazano+1; +plxJadroIdentifikator=plxJadroRegistrovanyOtaznik+1; +plxJadro_Nepouzito_=plxJadroIdentifikator+1; +plxJadroLogo=plxJadro_Nepouzito_+1; +plxJadroExterniHlasky=plxJadroLogo+1; +plxJadroDoplneniExternichHlasek=plxJadroExterniHlasky+1; +plxJadroAbout_IdentifikaceVyrobce=plxJadroDoplneniExternichHlasek+1; +plxJadroHistorieVerzi=plxJadroAbout_IdentifikaceVyrobce+1; +plxJadroZaznamJeBlokovanNelzeSmazat=plxJadroHistorieVerzi+1; +plxJadroDefinovanyPrehled_X_NebylNalezen=plxJadroZaznamJeBlokovanNelzeSmazat+1; +plxJadroCislaPrehleduBylaVycerpana=plxJadroDefinovanyPrehled_X_NebylNalezen+1; +plxJadroPredchoziRok=plxJadroCislaPrehleduBylaVycerpana+1; +plxJadroPredchoziMesic=plxJadroPredchoziRok+1; +plxJadroNasledujiciMesic=plxJadroPredchoziMesic+1; +plxJadroNasledujiciRok=plxJadroNasledujiciMesic+1; +plxJadroZvolteDatum=plxJadroNasledujiciRok+1; +plxJadroDnes=plxJadroZvolteDatum+1; +plxJadroKalendar=plxJadroDnes+1; +plxJadroAktualniCas=plxJadroKalendar+1; +plxJadroKalkulacka=plxJadroAktualniCas+1; +plxJadroKontrolaUzivatelskychFunkci=plxJadroKalkulacka+1; +plxJadroPrevodDoUNICODE=plxJadroKontrolaUzivatelskychFunkci+1; +plxJadroDoplneniPrehleduProUzivAtr=plxJadroPrevodDoUNICODE+1; +plxJadroSkupinaNastrojuPrizpusobeni=plxJadroDoplneniPrehleduProUzivAtr+1; +plxJadroDoplneniSkupiny=plxJadroSkupinaNastrojuPrizpusobeni+1; +plxJadroVlastniInstalace=plxJadroDoplneniSkupiny+1; +plxJadroHotovo=plxJadroVlastniInstalace+1; +plxJadroOmezeniVDBPrebyva=plxJadroHotovo+1; +plxJadroPocitanyAtributChybi=plxJadroOmezeniVDBPrebyva+1; +plxJadroAtributVTabulceChybi=plxJadroPocitanyAtributChybi+1; +plxJadroZmenaPocitanehoAtributuSmazani=plxJadroAtributVTabulceChybi+1; +plxJadroZmenaPocitanehoAtributuPridani=plxJadroZmenaPocitanehoAtributuSmazani+1; +plxJadroZmenaPocitanehoAtributuKodDB=plxJadroZmenaPocitanehoAtributuPridani+1; +plxJadroAtributVTabulcePrebyva=plxJadroZmenaPocitanehoAtributuKodDB+1; +plxJadroOmezeniJeVDBVypnuto=plxJadroAtributVTabulcePrebyva+1; +plxJadroOmezeniVDBChybi=plxJadroOmezeniJeVDBVypnuto+1; +plxJadroOmezeniSeVDBZmenilo=plxJadroOmezeniVDBChybi+1; +plxJadroOmezeniSeVDBZmeniloKodDB=plxJadroOmezeniSeVDBZmenilo+1; +plxJadroOmezeniJeVypnuto=plxJadroOmezeniSeVDBZmeniloKodDB+1; +plxJadroUlozenkaVDBChybi=plxJadroOmezeniJeVypnuto+1; +plxJadroNastaveniPravKUlozence=plxJadroUlozenkaVDBChybi+1; +plxJadroUlozenkaSeZmenila=plxJadroNastaveniPravKUlozence+1; +plxJadroFunkceVDBChybi=plxJadroUlozenkaSeZmenila+1; +plxJadroNastaveniPravKFunkci=plxJadroFunkceVDBChybi+1; +plxJadroFunkceSeZmenila=plxJadroNastaveniPravKFunkci+1; +plxJadroTriggerVDBChybi=plxJadroFunkceSeZmenila+1; +plxJadroTriggerVDBPrebyva=plxJadroTriggerVDBChybi+1; +plxJadroTriggerJeVDBVypnut=plxJadroTriggerVDBPrebyva+1; +plxJadroTriggerVDBSeZmenil=plxJadroTriggerJeVDBVypnut+1; +plxJadroIndexJeVDBPrejmenovan=plxJadroTriggerVDBSeZmenil+1; +plxJadroHeslo=plxJadroIndexJeVDBPrejmenovan+1; +plxJadroZobrazitHeslo=plxJadroHeslo+1; +plxJadroAdresarProJazykovaDLL=plxJadroZobrazitHeslo+1; +plxJadroVysledek=plxJadroAdresarProJazykovaDLL+1; +plxJadroPluginNeobsahujeZadneHlasky=plxJadroVysledek+1; +plxJadroNeniZadanoHeslo=plxJadroPluginNeobsahujeZadneHlasky+1; +plxJadroNeniZadanAdresarProJazykovaDLL=plxJadroNeniZadanoHeslo+1; +plxJadroAdresarProJazykovaDLLNeexistuje=plxJadroNeniZadanAdresarProJazykovaDLL+1; +plxJadroPodporaTicheInstalacePluginu=plxJadroAdresarProJazykovaDLLNeexistuje+1; +plxJadroNepodporaOdinstalace=plxJadroPodporaTicheInstalacePluginu+1; + +plx_MAX_Jadro = plxJadroNepodporaOdinstalace; + +//last <- to je kvuli rychlejsimu hledani + +// LOCAL | USER: RK | DT: 27.11.2006 09:11:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 27.11.2006 09:16:26 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2008 15:31:34 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.07.2008 15:34:00 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:01:28 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 10:03:08 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.03.2009 14:00:44 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 05.03.2009 14:05:46 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 16:52:33 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:38 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 16:19:41 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:28:35 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 diff --git a/lib/plgTypeUTA.inc b/lib/plgTypeUTA.inc new file mode 100644 index 0000000..e69de29 diff --git a/lib/plgTypeZbytek.inc b/lib/plgTypeZbytek.inc new file mode 100644 index 0000000..1fad3bc --- /dev/null +++ b/lib/plgTypeZbytek.inc @@ -0,0 +1,3 @@ + +// Typy a konstanty tykajici se pouze daneho pluginu + diff --git a/lib/plgUtaDef.inc b/lib/plgUtaDef.inc new file mode 100644 index 0000000..e69de29 diff --git a/lib/plgVerze.INC b/lib/plgVerze.INC new file mode 100644 index 0000000..1365162 --- /dev/null +++ b/lib/plgVerze.INC @@ -0,0 +1,14 @@ +$030020260407 +{MMnnRRRRMMDD} + +{ MM = major verze } +{ nn = minor verze } +{ RRRR = rok } +{ MM = mesic } +{ DD = den } + +{ - cislo (hexadecimalne) verze jako typ Int64 - je v include, protoze se } +{ externe nacita pri distribucni kompilaci pro pridani VERSION INFO do EXE } + +{ - toto cislo MUSI byt na PRVNIM RADKU tohoto souboru a na temze } +{ radku nesmi byt dalsi znaky (komentare apod.) } diff --git a/libSys/kopirujLib.cmd b/libSys/kopirujLib.cmd new file mode 100644 index 0000000..c6eb42d --- /dev/null +++ b/libSys/kopirujLib.cmd @@ -0,0 +1,15 @@ +@echo off +copy /y D:\Data\Helios\_space\Core\hecore\plgAkce.pas C:\_zakaznici\Montekord\_plg\libSys +copy /y D:\Data\Helios\_space\Core\hecore\plgMain.pas C:\_zakaznici\Montekord\_plg\libSys +rem copy /y D:\Data\Helios\_space\Core\hecore\plgHlasky.pas C:\_zakaznici\Montekord\_plg\libSys + +rem plgHlaskyEx.INC +rem plgHlaskyJadro.INC +rem plgTypeBrowse.INC +rem plgTypeSoudky.inc +rem plgTypeTabulka.inc +rem plgTypeTxtEx.inc +rem plgTypeTxtJadro.INC +rem plgTypeUTA.inc +rem plgTypeZbytek.inc +rem plgUtaDef.inc diff --git a/libSys/plgAkce.pas b/libSys/plgAkce.pas new file mode 100644 index 0000000..53debe5 --- /dev/null +++ b/libSys/plgAkce.pas @@ -0,0 +1,1368 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgAkce; + +interface + +uses + plgType, Classes, Forms, DB, plgQuery, ddPlugin_TLB; + +type + TplgJednaAkce = procedure of object; + + TKdyZapsatParametry = + (kzpNikdy, + kzpInsert{akce neexistuje - prvni instalace nebo byla smazana}, + kzpInsertUpdate{akce (ne)existuje - parametry se pri kazde (re)instalaci prepisi}); + + TplgAkctionContainer = class + NazevSys: string; + Nazev: string; + NazevTxt: TplgTxt; + Akce: TplgJednaAkce; + GUID: string; + HotKey: Integer; + Verejna: Boolean; + NazevPodmenu: string; + NazevPodmenuTxt: TplgTxt; + KdyZapsatParametry: TKdyZapsatParametry; + Parametry: string; + PridatOddelovacMenu: Boolean; + Napoveda: string; + NapovedaTxt: TplgTxt; + end; + + { +++++++++++++++++++++++++++ } + + TplgAkcePrehleduClass = class of TplgAkcePrehledu; + TplgAkcePrehledu = class(TplgAkcePrehleduBase) + private + FBrowse: TplgBrowse; + FTabulka: TplgTabulka; + FSetrideneAtributy: TStringList; + FSeznamAkci: TStringList; + + FDataSourceEdit : TDataSource; + FMemDataSet: TplgQuery; + + FPlgEditor: TForm; + FHelios : IHelios; + + procedure _VolejEditor(AQuery: TDataSet); + procedure CreateMemDataSet; + procedure My_OnGetText(Sender: TField; var Text: string; DisplayText: Boolean); + procedure My_OnSetText(Sender: TField; const Text: string); + + procedure MemDataSet_BeforePost(DataSet: TDataSet); + procedure MemDataSet_AfterCancel(DataSet: TDataSet); + + procedure Field_OnChange(Sender: TField); + + procedure ZrusUdalostiDataSetu; + function NahodBlokovaniEditoru(NacteniPoInsertu: Boolean): Boolean; + procedure NovyRadekDataSetu; + procedure NactiRadek_Z_DB(const IDStr: string); + + protected + FLastID: Variant; + + procedure VytvorSetrideneAtributy; + function TestNaTabulku: Boolean; dynamic; + function _GetValueFromField(F: TField): string; + function TestPredStandardnimiAkcemi(ChciID: Boolean): Boolean; + procedure AddAkce(const NazevSys, NazevVerejny: string; Akce: TplgJednaAkce; + const GUID: string; const NazevPodmenu: string = ''; HotKey: Integer = 0; + KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; + const Parametry: string = ''; AVerejna: Boolean = True); overload; + procedure AddAkce(const NazevSys: string; NazevVerejnyTxt: TplgTxt; Akce: TplgJednaAkce; + const GUID: string; NazevPodmenuTxt: TplgTxt = plxNic; HotKey: Integer = 0; + KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; const Parametry: string = ''; + PridatOddelovacMenu: Boolean = False; Napoveda: TplgTxt = plxNic; + AVerejna: Boolean = True); overload; + + function PripravProEditaci: Boolean; + function PripravProNova: Boolean; + procedure ProvedRefresh(NovaVeta: Boolean); + + public + FPlgEditorClass: TFormClass; + + constructor Create(aHelios: IHelios; aBrowse: TplgBrowse; aPlgEditorClass: TFormClass); virtual; + constructor CreateTab(AHelios: IHelios; AExtAkceDef: PplgExtAkceDef); virtual; + destructor Destroy; override; + + procedure ActionNew; dynamic; + procedure ActionEdit; dynamic; + procedure ActionDelete; dynamic; + + function SpustAkci(const GUIDAkce: string): string; + function FieldWasChanged(F: TField): Boolean; + + function NajdiPrvniVolny(ATabulka : TplgTabulka; + const AAtribut : string; + const AWHERE : string; + { klauzule WHERE, kterou se dosahne unikatnosti atributu } + { ocekavan je syntaxe pr.: RadaDokladu='101' AND DruhPohybuZbo=0 AND IDSklad='001' } + { nebo prazdny String - nefiltruje se } + AMin, AMax : Integer; + APlnitMezery: boolean = True): Integer; + + function GetIDHlavicky(var IDHlavicky: Integer): Boolean; + function NastavIDHlavickyDoRadku(FieldNaRadku: TField): Boolean; + + procedure OnNovaVeta( AFields : TFields; + var Prerusit : Boolean; + PrvniPruchod : Boolean); virtual; // dedit - override; + + function AfterInsertSkript: string; dynamic; + function AfterUpdateSkript: string; dynamic; + + property Browse: TplgBrowse read FBrowse; + property Helios: IHelios read FHelios; + property HlavniTabulka: TplgTabulka read FTabulka; + property PlgEditor: TForm read FPlgEditor; + property SetrideneAtributy: TStringList read FSetrideneAtributy; + end; + +{ =========================================================================== } + +implementation + +uses + SysUtils, Windows, Controls, Variants, Generics.Collections, + plgMain, plgEdit, plgBrowse, plgSpravce, plgInstalace, plgLadit; + +{ ########################################################################### } + +constructor TplgAkcePrehledu.Create(aHelios : IHelios; + aBrowse : TplgBrowse; + aPlgEditorClass: TFormClass); +begin + inherited Create; + + FHelios := aHelios; + FBrowse := aBrowse; + FTabulka := Cplg_SeznamVychozichNastaveniBrowse[FBrowse].HlavniTabulka; + FPlgEditorClass := aPlgEditorClass; + + SpravceHeliosu.NastavAkce(FHelios, Self); + + VytvorSetrideneAtributy; + + FSeznamAkci := TStringList.Create; // NETRIDIT !! + + with Cplg_SeznamVychozichNastaveniBrowse[FBrowse] do + begin + if GUID_ActionNew <> '' then + AddAkce('ActionNew', plxJadroAkceNovy, ActionNew, GUID_ActionNew, plxJadroMenuEditace, VK_F2); + + if GUID_ActionEdit <> '' then + AddAkce('ActionEdit', plxJadroAkceOprava, ActionEdit, GUID_ActionEdit, plxJadroMenuEditace, VK_RETURN); + + if GUID_ActionDelete <> '' then + AddAkce('ActionDelete', plxJadroAkceZrusit, ActionDelete, GUID_ActionDelete, plxJadroMenuEditace, VK_DELETE); + end; +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgAkcePrehledu.CreateTab(AHelios: IHelios; AExtAkceDef: PplgExtAkceDef); +begin + Create(AHelios, bZadny, AExtAkceDef.EditorClass); +end; + +{ --------------------------------------------------------------------------- } + +destructor TplgAkcePrehledu.Destroy; + var + II: Integer; +begin + SpravceHeliosu.NastavAkce(FHelios, nil); + + for II := 0 to FSeznamAkci.Count-1 do + TplgAkctionContainer(FSeznamAkci.Objects[II]).Free; + FSeznamAkci.Free; + FSetrideneAtributy.Free; + + inherited; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.VytvorSetrideneAtributy; +begin + FreeAndNil(FSetrideneAtributy); + FSetrideneAtributy := plgSetrideneAtributy(FTabulka); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.AddAkce(const NazevSys, NazevVerejny: string; + Akce: TplgJednaAkce; const GUID: string; const NazevPodmenu: string = ''; + HotKey: Integer = 0; KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; + const Parametry: string = ''; AVerejna: Boolean = True); + var + XX: TplgAkctionContainer; +begin + plgLadit_KontrolaGUIDInstalace(GUID); + + XX := TplgAkctionContainer.Create; + XX.NazevSys := NazevSys; + XX.Nazev := NazevVerejny; + XX.Akce := Akce; + XX.GUID := GUID; + XX.HotKey := HotKey; + XX.NazevPodmenu := NazevPodmenu; + XX.KdyZapsatParametry := KdyZapsatParametry; + XX.Parametry := Parametry; + XX.Verejna := AVerejna; + FSeznamAkci.AddObject(GUID, XX); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.AddAkce(const NazevSys: string; NazevVerejnyTxt: TplgTxt; + Akce: TplgJednaAkce; const GUID: string; NazevPodmenuTxt: TplgTxt = plxNic; + HotKey: Integer = 0; KdyZapsatParametry: TKdyZapsatParametry = kzpNikdy; + const Parametry: string = ''; PridatOddelovacMenu: Boolean = False; + Napoveda: TplgTxt = plxNic; AVerejna: Boolean = True); + var + XX: TplgAkctionContainer; +begin + plgLadit_KontrolaGUIDInstalace(GUID); + + XX := TplgAkctionContainer.Create; + XX.NazevSys := NazevSys; + XX.NazevTxt := NazevVerejnyTxt; + XX.Nazev := plgCtiOznam(XX.NazevTxt); + XX.Akce := Akce; + XX.GUID := GUID; + XX.HotKey := HotKey; + XX.NazevPodmenuTxt := NazevPodmenuTxt; + XX.NazevPodmenu := plgCtiOznam(XX.NazevPodmenuTxt); + XX.KdyZapsatParametry := KdyZapsatParametry; + XX.Parametry := Parametry; + XX.PridatOddelovacMenu := PridatOddelovacMenu; + XX.NapovedaTxt := Napoveda; + XX.Napoveda := plgCtiOznam(XX.Napoveda); + XX.Verejna := AVerejna; + FSeznamAkci.AddObject(GUID, XX); +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.GetIDHlavicky(var IDHlavicky: Integer): Boolean; + var + HeliosVlastnik: IHelios; + AkceVlastnika: TplgAkcePrehledu; +begin + Result := False; + + HeliosVlastnik := SpravceHeliosu.VratVlastnika(FHelios); + + // pokud neni navazan vlastnik, tak neni co priradit + if not Assigned(HeliosVlastnik) then + begin + FHelios.Error('NastavIDHlavickyDoRadku: Nen piazen HeliosVlastnik!'); + Exit; + end; + + AkceVlastnika := SpravceHeliosu.VratAkcePrehledu(HeliosVlastnik); + + if Assigned(AkceVlastnika) and Assigned(AkceVlastnika.FPlgEditor) then + IDHlavicky := TfrmPlgEditor(AkceVlastnika.FPlgEditor).DataSourceEdit.DataSet.FieldByName(plg_SystemoveCislo).AsInteger + else + IDHlavicky := HeliosVlastnik.CurrentRecordID; + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.NastavIDHlavickyDoRadku(FieldNaRadku: TField): Boolean; + var + IDHlavicky: Integer; +begin + Result := GetIDHlavicky(IDHlavicky); + if Result then + FieldNaRadku.AsInteger := IDHlavicky; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.OnNovaVeta( AFields : TFields; + var Prerusit : Boolean; + PrvniPruchod : Boolean); +begin + // dedi se +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.NajdiPrvniVolny(ATabulka : TplgTabulka; + const AAtribut : string; + const AWHERE : string; + AMin, AMax : Integer; + APlnitMezery: Boolean = True): Integer; + var + TabulkaStr: string; + PomInt: Integer; + Q: IHeQuery; +begin + Result := -1; + + TabulkaStr := plgJmenoTabulky(ATabulka); + if ((AMin > AMax) or (TabulkaStr = '')) then Exit; + + Q := FHelios.OpenSQL( + Format('EXEC dbo.hp_NajdiPrvniVolny %s,%s,%d,%d,%s,0,%d', + [plgNQuotedStr(TabulkaStr), plgNQuotedStr(AAtribut), AMin, AMax, + plgNQuotedStr(AWHERE), Integer(APlnitMezery)])); + if not varIsNull(Q.FieldValues(0)) then + begin + PomInt := Q.FieldValues(0); + if (AMin <= PomInt) and (PomInt <= AMax) then Result := PomInt; + end; +end; + +{ --------------------------------------------------------------------------- } + +var + OnGetText_PomSL: TStringList = nil; + +procedure TplgAkcePrehledu.My_OnGetText( Sender : TField; + var Text : String; + DisplayText : Boolean); + var + PA: PplgAtributTabulky; +begin + if Sender.Tag <> 0 then + PA := PplgAtributTabulky(Sender.Tag) + else + PA := plgAtribut(Sender.Origin); + + if Assigned(PA) then + begin + if not Assigned(OnGetText_PomSL) then + OnGetText_PomSL := TStringList.Create; + + OnGetText_PomSL.Text := PA.Konverze; + Text := plgHodnotaZKonverze(Sender.IsNULL, Sender.AsString, OnGetText_PomSL); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.My_OnSetText(Sender: TField; const Text: string); + var + PomSL : TStringList; + S : String; + PA : PplgAtributTabulky; +begin + if Sender.Tag <> 0 then + PA := PplgAtributTabulky(Sender.Tag) + else + PA := plgAtribut(Sender.Origin); + + PomSL := plgObracenaKonverze(PA.Konverze); + try + if PomSL.IndexOfName(Text) = -1 then // je v obracenem StringListu + Sender.AsString := Text // neni - nekonvertuj + else + begin // je - konvertuj s ohledem na hodnotu NULL + S := PomSL.Values[Text]; + if SameText(S, 'NULL') then + Sender.Clear + else + Sender.AsString := S; + end; + finally + PomSL.Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.Field_OnChange(Sender: TField); +begin + if Assigned(Sender.DataSet.BeforePost) then + Sender.ImportedConstraint := '1'; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.FieldWasChanged(F: TField): Boolean; +begin + //toto zlobi v pripade blobu + //Result := not plgVarSameValue(F.OldValue, F.Value); + Result := (F.ImportedConstraint = '1'); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.CreateMemDataSet; + var + PA : PplgAtributTabulky; + II : Integer; + TabName: string; + + { +++++++++++++++++++++++++++ } + + function CreateField(FC: TFieldClass): TField; + begin + Result := FC.Create(FMemDataSet); + with Result do + begin + FieldName := PA.JmenoSys; + Origin := TabName + '.' + PA.JmenoSys; + DataSet := FMemDataSet; + Tag := NativeInt(PA); + Required := False; + + OnChange := Field_OnChange; + + if PA.Konverze <> '' then + begin + OnGetText := My_OnGetText; + OnSetText := My_OnSetText; + Alignment := taLeftJustify; + end; + end; + end; + + { +++++++++++++++++++++++++++ } + +begin + FMemDataSet := TplgQuery.Create(nil); + try + with plgGetTabulkaDef(FTabulka)^ do + begin + TabName := JmenoSys; + + PA := Atributy; + for II := 1 to PocetAtributu do + begin + // pocitane a abstraktni neexistuji, binary nejde zpravne zobrazit... + if (PA.Pocitany = '') and (PA.Typ <> taBinary) and + (not(dvAbstraktni in PA.DalsiVlastnosti)) then + case PA.Typ of + taInt, // ftInteger + taIdentity: + with TIntegerField(CreateField(TIntegerField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + + taInt64, // ftLargeint + taIdentity64: + with TLargeintField(CreateField(TLargeintField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + +// taGUID: // ftString +// with TStringField(CreateField(TStringField)) do +// Size := 36; // napr. 85AA05CC-9D09-4BA9-B07B-7A25319BE5F4 + + taSmallInt: // ftSmallint + with TSmallIntField(CreateField(TSmallIntField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + + taByte: // ftByte + with TByteField(CreateField(TByteField)) do + begin + ValidChars := ValidChars - ['+','-']; + DisplayFormat := PA.MaskaDisplay; + end; + + taBoolean: // ftBoolean + with TBooleanField(CreateField(TBooleanField)) do + DisplayValues := 'A;N'; + + taVarChar, // ftString + taChar: + begin + //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + if PA.Delka=Cplg_DelkaNVarcharMax then + CreateField(TMemoField) + else + with TStringField(CreateField(TStringField)) do + Size := PA.Delka; + end; + + taText: // ftMemo + CreateField(TMemoField); + + taNVarChar, // ftWideString + taNChar: + begin + //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + if PA.Delka=Cplg_DelkaNVarcharMax then + CreateField(TWideMemoField) + else + with TWideStringField(CreateField(TWideStringField)) do + Size := PA.Delka; + end; + + taNText: // ftWideMemo + CreateField(TWideMemoField); + + taDateTime: // ftDateTime + CreateField(TDateTimeField); + + taTime: // ftTime + CreateField(TTimeField); + + taImage: // ftBlob + CreateField(TBlobField); + + taFloat: // ftFloat + with TFloatField(CreateField(TFloatField)) do + DisplayFormat := PA.MaskaDisplay; + + else + if PA.Typ in Cplg_SkupinaAtributuNumeric then // ftFloat + with TFloatField(CreateField(TFloatField)) do + begin + DisplayFormat := PA.MaskaDisplay; + Precision := 6; + end; + end; + + Inc(PA); + end; + end; + except + FreeAndNil(FMemDataSet); + raise; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu._VolejEditor(AQuery : TDataSet); +begin + if not Assigned(FPlgEditorClass) then Exit; + + FDataSourceEdit := TDataSource.Create(AQuery); + try + FDataSourceEdit.DataSet := AQuery; + try + FPlgEditor := TfrmPlgEditor(FPlgEditorClass.NewInstance).CreateEditor(Application, FHelios, Self, FDataSourceEdit); + try + Screen.Cursor := crDefault; + FPlgEditor.ShowModal; + finally + FreeAndNil(FPlgEditor); + end; + finally + if FDataSourceEdit.State <> dsBrowse then + FDataSourceEdit.DataSet.Cancel; + end; + finally + FreeAndNil(FDataSourceEdit); + ProvedRefresh(Lo(AQuery.Tag) = Cplg_tagNovaVeta); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ProvedRefresh(NovaVeta: Boolean); + var + PomID: Integer; +begin + FHelios.Refresh(NovaVeta); + if NovaVeta and (not varIsNull(FLastID)) then + begin + PomID := FLastID; + FHelios.Locate(plg_SystemoveCislo, PomID); + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu._GetValueFromField(F: TField): string; +begin + if F.IsNull then + Result := 'NULL' + else + case F.DataType of + ftInteger, + ftLargeInt, + ftSmallint, + ftShortint, + ftWord, + ftByte: + Result := F.AsString; + + ftBoolean: + if F.AsBoolean then + Result := '1' + else + Result := '0'; + + ftString, + ftMemo: + Result := QuotedStr(string(F.AsAnsiString)); + + ftWideString, + ftWideMemo: + Result := plgNQuotedStr(F.AsString); + + ftBlob: + Result := plgTextToBinary(F.AsAnsiString); + + ftDateTime: + Result := plgGetIndependentSQLDateTime(F.AsDateTime); + + ftFloat: + Result := plgGetIndependentSQLFloat('%.6f', F.AsFloat); + + else + Result := 'NULL'; // sem by to ale prijit nemelo + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.MemDataSet_AfterCancel(DataSet: TDataSet); + var + LF: TField; +begin + LF := DataSet.FieldByName(plg_SystemoveCislo); + + case Lo(FMemDataSet.Tag) of + Cplg_tagNovaVeta: + FHelios.ExecSQL( + Format(plgSkriptProDeleteJednohoZaznamu(FTabulka, False), [_GetValueFromField(LF)])); + + Cplg_tagOpravaVety: + FHelios.ExecSQL( + Format('UPDATE %s SET ' + plg_BlokovaniEditoru + '=NULL WHERE %s=%s', + [plgJmenoTabulky(FTabulka), LF.FieldName, _GetValueFromField(LF)])); + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.AfterInsertSkript: string; +begin + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.AfterUpdateSkript: string; +begin + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.MemDataSet_BeforePost(DataSet: TDataSet); + var + Skript, Hodnoty: string; + II: Integer; + LF: TField; + AfterSkript, Deklarace: string; + PridatZmenu: Boolean; +begin + Skript := ''; + Hodnoty := ''; + + case DataSet.State of + dsInsert: + begin + Deklarace := 'INT'; + for II := 0 to DataSet.Fields.Count-1 do + begin + LF := DataSet.Fields[II]; + if (LF <> TplgQuery(DataSet).RecIdField) and (LF.Tag <> 0) then + begin + if (not LF.IsNull) and (not (PplgAtributTabulky(LF.Tag).Typ in Cplg_MnozinaIdentity)) then + begin + Skript := Format('%s,%s', [Skript, LF.FieldName]); + Hodnoty := Format('%s,%s', [Hodnoty, _GetValueFromField(LF)]); + end + else + if PplgAtributTabulky(LF.Tag).Typ = taIdentity64 then + Deklarace := 'BIGINT'; + end; + end; + + if Skript <> '' then + begin + // zrus carky na zacatku + Delete(Skript, 1, 1); + Delete(Hodnoty, 1, 1); + + Skript := Format('INSERT %s(%s)VALUES(%s)', + [plgJmenoTabulky(FTabulka), Skript, Hodnoty]); + + AfterSkript := AfterInsertSkript; + if AfterSkript = '' then + Skript := Format('%s'#13'SELECT SCOPE_IDENTITY()', [Skript]) + else + Skript := + Format('BEGIN TRANSACTION'#13+ + 'DECLARE @ID %s'#13+ + '%s'#13+ // INSERT + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'SET @ID=SCOPE_IDENTITY()'#13+ + '%s'#13+ // AFTER INSERT SKRIPT + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'COMMIT'#13+ + 'SELECT @ID'#13+ + 'GOTO KONEC'#13+ + 'CHYBAROLLBACK:'#13+ + 'ROLLBACK'#13+ + 'KONEC:', + [Deklarace, Skript, AfterSkript]); + end; + end; + + dsEdit: + begin + // [RK 17.01.2007] doplnen test na skutecnou zmenu + if Assigned(FPlgEditor) and (FPlgEditor is TfrmPlgEditor) then + PridatZmenu := TfrmPlgEditor(FPlgEditor).BylaZmena + else + // [RK 20.10.2008] zmeneno na False, jelikoz to nastavovalo i pri editaci + // pri nahazovani BlokovaniEditoru + PridatZmenu := False; + + for II := 0 to DataSet.Fields.Count-1 do + begin + LF := DataSet.Fields[II]; + if (LF <> TplgQuery(DataSet).RecIdField) and (LF.Tag <> 0) and + (not(PplgAtributTabulky(LF.Tag).Typ in Cplg_MnozinaIdentity)) then + begin + if SameText(LF.FieldName, plg_Zmenil) and PridatZmenu then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, Cplg_LoginName]) + else + if SameText(LF.FieldName, plg_DatZmeny) and PridatZmenu then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, Cplg_GetDate]) + else + if SameText(LF.FieldName, plg_BlokovaniEditoru) then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, _GetValueFromField(LF)]) + else + if FieldWasChanged(LF) then + Skript := Format('%s,'#13'%s=%s', [Skript, LF.FieldName, _GetValueFromField(LF)]); + end; + end; + + if Skript <> '' then + begin + // zrus carku na zacatku + Delete(Skript, 1, 1); + + LF := DataSet.FieldByName(plg_SystemoveCislo); + Hodnoty := _GetValueFromField(LF); + + Skript := Format('UPDATE %s SET %s'#13'WHERE %s=%s', + [plgJmenoTabulky(FTabulka), Skript, LF.FieldName, Hodnoty]); + + // [RK 05.09.2012] AfterUpdateSkript pouze pri skutecne zmene, nikoliv pri nahozeni BlokovaniEditoru + if PridatZmenu then + AfterSkript := AfterUpdateSkript + else + AfterSkript := ''; + + if AfterSkript = '' then + Skript := Format('%s'#13'SELECT %s', [Skript, Hodnoty]) + else + Skript := + Format('BEGIN TRANSACTION'#13+ + 'DECLARE @ID INT'#13+ + '%s'#13+ // UPDATE + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'SET @ID=%s'#13+ + '%s'#13+ // AFTER UPDATE SKRIPT + 'IF @@ERROR<>0 GOTO CHYBAROLLBACK'#13+ + 'COMMIT'#13+ + 'SELECT @ID'#13+ + 'GOTO KONEC'#13+ + 'CHYBAROLLBACK:'#13+ + 'ROLLBACK'#13+ + 'KONEC:', + [Skript, Hodnoty, AfterSkript]); + end; + end; + end; + + if Skript = '' then + FLastID := NULL + else + try + FLastID := FHelios.OpenSQL(Skript).FieldValues(0); + finally + Screen.Cursor := crDefault; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.NahodBlokovaniEditoru(NacteniPoInsertu: Boolean): Boolean; + var + LF: TField; + TD: PplgTabulkaDef; +begin + FMemDataSet.BeforePost := MemDataSet_BeforePost; + + TD := plgGetTabulkaDef(FTabulka); + + // blokovani editoru - pri oprave vzdy, pri nove vete pouze pokud neni vypnuto + // [RK 20.10.2008] plg_dvtBlokovaniJenOprava + LF := FMemDataSet.FindField(plg_BlokovaniEditoru); + Result := Assigned(LF) and + ((Lo(FMemDataSet.Tag) = Cplg_tagOpravaVety) or + ((Lo(FMemDataSet.Tag) = Cplg_tagNovaVeta) and + (not (plg_dvtBlokovaniJenOprava in TD.DalsiVlastnosti)))); + + if Result then + begin + if (Lo(FMemDataSet.Tag) = Cplg_tagOpravaVety) and (not LF.IsNull) then + begin + // nastav Hi(Tag) na 1 - blokovano + FMemDataSet.Tag := FMemDataSet.Tag or $00000100; + LF := nil; + end + else + begin + // nastav Hi(Tag) na 0 - neblokovano + FMemDataSet.Tag := FMemDataSet.Tag and $FFFF00FF; + LF.AsInteger := FHelios.UserId; + + // [RK 05.09.2012] je treba signalizovat, ze zmena nebyla - kvuli datu zmeny !! + LF.ImportedConstraint := ''; + + with FMemDataSet do + begin + if not NacteniPoInsertu then + begin + Post; // toto jde do DB, ale pouze pri INSERTu ! + Edit; + end; + AfterCancel := MemDataSet_AfterCancel; // pro budouci shozeni priznaku v DB + end; + + // nacteni ID nove vety + if Lo(FMemDataSet.Tag) = Cplg_tagNovaVeta then + FMemDataSet.FieldByName(plg_SystemoveCislo).Value := FLastID; + end; + + if Assigned(LF) then + begin + with FMemDataSet do + begin + // ulozeni ID a BlokovaniEditoru, ale ne do DB !! + BeforePost := nil; + + // BlokovaniEditoru opet vynullujeme + // [RK 05.09.2012] presunuto az za BeforePost := nil -> jinak nahodi zmenu na True + LF.Clear; + + // bez ulozeni by se to ptalo na zmenu a v ID by bylo NULL po Cancel + Post; + Edit; + + // obnovime update DB + BeforePost := MemDataSet_BeforePost; + end; + end; + end; + + FMemDataSet.SetModified(False); +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ZrusUdalostiDataSetu; + var + II: Integer; +begin + with FMemDataSet do + begin + ReadOnly := False; + BeforePost := nil; + AfterCancel := nil; + + // zrus priznak zmeny atributu - viz Field_OnChange + for II := 0 to Fields.Count-1 do + Fields[II].ImportedConstraint := ''; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.NovyRadekDataSetu; +begin + with FMemDataSet do + begin + Open; + while RecordCount > 0 do Delete; + Insert; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.PripravProNova: Boolean; + var + II: Integer; + PA: PplgAtributTabulky; + LPrerusit: Boolean; + LF: TField; +begin + Result := False; + + // nastaveni Lo(Tag) - signalizuj Nova + FMemDataSet.Tag := (FMemDataSet.Tag and $FFFFFF00) or Lo(Cplg_tagNovaVeta); + + ZrusUdalostiDataSetu; + NovyRadekDataSetu; + + for II := FMemDataSet.Fields.Count-1 downto 0 do + begin + LF := FMemDataSet.Fields[II]; + if (LF <> FMemDataSet.RecIdField) and (LF.Tag <> 0) then + begin + PA := PplgAtributTabulky(LF.Tag); + + // kdyz nebyla zmena a nema povoleno NULL a nema DEFAULT -> pokus se vyplnit + if (LF.IsNULL) and (PA.NULL <> nNULL) and (PA.ServerDEFAULT = '') then + if (not(PA.Typ in Cplg_MnozinaIdentity)) or (Trim(PA.Pocitany) <> '') then + begin + if LF is TStringField then + LF.AsString := '' + else + if LF is TNumericField then + LF.AsInteger := 0; + end; + end; + end; + + LPrerusit := False; + OnNovaVeta(FMemDataSet.Fields, LPrerusit, True); + if LPrerusit then Exit; + + if NahodBlokovaniEditoru(False) then + begin + ZrusUdalostiDataSetu; + NactiRadek_Z_DB(varToStr(FLastID)); + NahodBlokovaniEditoru(True); + end; + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.TestNaTabulku: Boolean; +begin + Result := plgJeObecnyPrehled(FHelios.MainBrowseTable); +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.TestPredStandardnimiAkcemi(ChciID: Boolean): Boolean; + var + TD: PplgTabulkaDef; +begin + Result := False; + + if not TestNaTabulku then Exit; + + TD := plgGetTabulkaDef(FTabulka); + if not Assigned(TD) then Exit; + if plg_dvtAbstraktni in TD.DalsiVlastnosti then Exit; + + if ChciID then + if varToStr(FHelios.CurrentRecordID) = '' then Exit; + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ActionNew; +begin + if not TestPredStandardnimiAkcemi(False) then Exit; + + CreateMemDataSet; + try + if not PripravProNova then Exit; + _VolejEditor(FMemDataSet); + finally + FreeAndNil(FMemDataSet); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.NactiRadek_Z_DB(const IDStr: string); + var + II: Integer; + SelectStr: string; + LF: TField; + LFieldList: TList; + Q: IHeQuery; +begin + NovyRadekDataSetu; + + LFieldList := TList.Create; + try + // sestaveni selectu pro nacteni hodnot + SelectStr := ''; + for II := 0 to FMemDataSet.Fields.Count-1 do + begin + LF := FMemDataSet.Fields[II]; + if (LF <> FMemDataSet.RecIdField) and (LF.Tag <> 0) then + begin + SelectStr := Format('%s,%s', [SelectStr, LF.FieldName]); + LFieldList.Add(LF); + end; + end; + Delete(SelectStr, 1, 1); + + Q := FHelios.OpenSQL(Format('SELECT %s FROM %s WHERE %s=%s', + [SelectStr, plgJmenoTabulky(FTabulka), + plg_SystemoveCislo, IDStr])); + if Q.EOF then Exit; + + for II := 0 to LFieldList.Count-1 do + begin + LF := LFieldList[II]; +// if PplgAtributTabulky(LF.Tag).Typ = taGUID then +// LF.AsString := varToStr(Q.FieldValues(II)) +// else + LF.Value := Q.FieldValues(II); + end; + finally + LFieldList.Free; + end; + + // zplatneni hodnot v datasetu + with FMemDataSet do + begin + Post; First; Edit; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.PripravProEditaci: Boolean; + var + IDStr: string; +begin + Result := False; + + IDStr := varToStr(FHelios.CurrentRecordID); + if IDStr = '' then Exit; + + // nastaveni Lo(Tag) - signalizuj Oprava + FMemDataSet.Tag := (FMemDataSet.Tag and $FFFFFF00) or Lo(Cplg_tagOpravaVety); + + ZrusUdalostiDataSetu; + NactiRadek_Z_DB(IDStr); + NahodBlokovaniEditoru(False); + + Result := True; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ActionEdit; +begin + if not TestPredStandardnimiAkcemi(True) then Exit; + + CreateMemDataSet; + try + if not PripravProEditaci then Exit; + _VolejEditor(FMemDataSet); + finally + FreeAndNil(FMemDataSet); + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure TplgAkcePrehledu.ActionDelete; + var + PomStr: string; + SL: TStringList; + II: Integer; +begin + if not TestPredStandardnimiAkcemi(True) then Exit; + + SL := TStringList.Create; + try + PomStr := FHelios.SelectedRecordIDs; + if PomStr <> '' then + SL.CommaText := PomStr + else + SL.Add(varToStr(FHelios.CurrentRecordID)); + + if SL.Count > 1 then + PomStr := Format('%s (%d) ?', [plgCtiOznam(plxJadroOprPrejSmazVse), SL.Count]) + else + PomStr := plgCtiOznam(plxJadroOprPrejSmazAkt); + + if not FHelios.YesNo(PomStr, False) then Exit; + + PomStr := plgSkriptProDeleteJednohoZaznamu(FTabulka, True); + for II := 0 to SL.Count-1 do + FHelios.ExecSQL(Format(PomStr, [SL.Strings[II]])); + finally + SL.Free; + FHelios.Refresh(True); + end; +end; + +{ --------------------------------------------------------------------------- } + +function TplgAkcePrehledu.SpustAkci(const GUIDAkce: string): string; + var + II: Integer; +begin + Result := ''; + + if SameText(GUIDAkce, Cplg_GUID_Instalace) then + Result := GetInstallScriptForAction(Helios, FSeznamAkci, Self.ClassName) + else + begin + II := FSeznamAkci.IndexOf(GUIDAkce); + if II = -1 then Exit; + + if Assigned(FSeznamAkci.Objects[II]) then + TplgAkctionContainer(FSeznamAkci.Objects[II]).Akce; + end; +end; + +{ ########################################################################### } + +end. +// LIB | USER: rk | DT: 28.01.2005 14:36:48 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 31.01.2005 10:42:30 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 31.01.2005 10:59:47 | VER: ?? LB ?? | TXT: taGUID | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 31.01.2005 11:11:41 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 31.01.2005 11:16:43 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 31.01.2005 15:02:48 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 31.01.2005 15:45:54 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 31.01.2005 16:02:51 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 31.01.2005 16:03:52 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 31.01.2005 16:22:16 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 31.01.2005 16:26:24 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 01.02.2005 16:12:40 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 01.02.2005 16:19:15 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 01.02.2005 16:24:59 | VER: | TXT: | PC: RK | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 01.02.2005 16:27:40 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 03.02.2005 09:38:40 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 03.02.2005 11:31:04 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 04.02.2005 08:40:45 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 04.02.2005 13:39:30 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 07.02.2005 14:01:15 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 07.02.2005 15:33:17 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 07.02.2005 15:33:17 | VER: ?? LB ?? | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 07.02.2005 16:23:26 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.02.2005 10:36:11 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.02.2005 10:40:22 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.02.2005 10:40:22 | VER: ?? LB ?? | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.02.2005 11:05:46 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 09.02.2005 09:08:28 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 09.02.2005 09:09:36 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 10.02.2005 16:45:56 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.02.2005 16:47:40 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 10.02.2005 16:49:40 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.02.2005 16:51:50 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 14.02.2005 14:44:41 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 14.02.2005 14:48:26 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 15.02.2005 09:22:06 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 15.02.2005 09:25:26 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 15.02.2005 09:51:18 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 15.02.2005 10:04:28 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 07.03.2005 13:04:22 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 07.03.2005 13:19:52 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 07.03.2005 13:50:45 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 07.03.2005 13:53:49 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 07.03.2005 13:58:36 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 07.03.2005 13:59:05 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 10:39:47 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 11:10:00 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 11:53:30 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 11:58:44 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 13:06:58 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 13:28:44 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 13:55:07 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 14:13:54 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 14:15:32 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 14:28:32 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 15:42:41 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 15:47:32 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 16:09:40 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 16:19:46 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 16:26:16 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 16:28:06 | VER: ?? LB ?? | TXT: beze zmn | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 09.03.2005 13:28:19 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 09.03.2005 14:02:04 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 09.03.2005 16:20:24 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 09.03.2005 16:32:08 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 10.03.2005 09:46:44 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.03.2005 10:10:58 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 10.03.2005 10:10:58 | VER: ?? LB ?? | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.03.2005 12:34:36 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 10.03.2005 12:37:31 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.03.2005 12:49:18 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 10.03.2005 13:04:47 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.03.2005 13:13:48 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 11.03.2005 13:24:33 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 11.03.2005 15:35:52 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 11.03.2005 16:05:37 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 14.03.2005 11:26:56 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 14.03.2005 13:51:47 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 14.03.2005 13:53:37 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 15.03.2005 09:12:10 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 15.03.2005 09:19:54 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 16.03.2005 13:32:54 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 16.03.2005 14:10:47 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 24.03.2005 13:39:42 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 24.03.2005 13:40:21 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 25.03.2005 14:49:27 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 25.03.2005 14:52:25 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 29.03.2005 14:30:35 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 29.03.2005 14:33:39 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 29.03.2005 14:34:12 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 29.03.2005 14:36:48 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.03.2005 10:30:02 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.03.2005 10:36:58 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.05.2005 11:17:51 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.05.2005 11:20:25 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 19.05.2005 09:28:19 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 19.05.2005 09:44:34 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 24.05.2005 15:06:34 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 24.05.2005 15:08:33 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.06.2005 13:18:51 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.06.2005 13:47:57 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.06.2005 14:14:28 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.06.2005 14:18:21 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.06.2005 09:39:05 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.06.2005 09:41:44 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.06.2005 11:14:22 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.06.2005 12:41:39 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.06.2005 13:47:17 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.06.2005 14:20:39 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 07.07.2005 13:16:29 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 07.07.2005 13:17:02 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 21.07.2005 10:46:01 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 21.07.2005 10:55:34 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.08.2005 10:07:53 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.08.2005 10:09:12 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 05.08.2005 09:51:00 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 05.08.2005 09:56:29 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 10.08.2005 10:24:27 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 10.08.2005 10:25:16 | VER: ?? LB ?? | TXT: beze zmn | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.08.2005 09:46:43 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 17.08.2005 09:47:01 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 31.08.2005 13:00:14 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 31.08.2005 13:08:07 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 31.08.2005 13:46:56 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 31.08.2005 13:55:17 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.09.2005 13:15:28 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.09.2005 13:22:14 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 13:39:41 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 13:57:58 | VER: ?? LB ?? | TXT: beze zmn | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:57:21 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:57:25 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 16:00:57 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 21.03.2006 16:09:15 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.06.2006 14:43:12 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 29.06.2006 14:48:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 30.06.2006 10:00:26 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 30.06.2006 10:37:08 | VER: ?? LB ?? | TXT: nastaveni Autor a Zmenil na nazev pluginu | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.07.2006 14:52:56 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 17.07.2006 15:14:09 | VER: ?? LB ?? | TXT: odstraneni IFDEF Ladit | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 09:20:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 18.07.2006 10:07:27 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:30:13 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 13:33:50 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:53:17 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 13:59:15 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 16:06:46 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 24.07.2006 09:32:30 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 25.07.2006 15:51:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 25.07.2006 16:06:58 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 25.07.2006 16:34:32 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 25.07.2006 16:36:32 | VER: ?? LB ?? | TXT: zmena hlasek | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 11.09.2006 12:18:38 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 11.09.2006 12:18:49 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 08.12.2006 13:22:13 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 08.12.2006 13:23:03 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.01.2007 09:14:14 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 17.01.2007 09:21:13 | VER: ?? LB ?? | TXT: PridatZmenu | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.01.2007 09:27:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 17.01.2007 09:27:25 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 16.05.2007 16:26:16 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\HELIOS +// LIB | USER: RK | DT: 16.05.2007 16:27:24 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\HELIOS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.05.2007 12:37:15 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.05.2007 12:41:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 08:54:00 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 08:57:53 | VER: ?? LB ?? | TXT: const -> var | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 10:12:01 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 10:26:26 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 14.03.2008 21:48:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 14.03.2008 21:51:19 | VER: 20080313 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.03.2008 08:16:09 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 18.03.2008 08:19:07 | VER: 20080313 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 13:41:12 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 14:49:14 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 13:37:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 13:48:47 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.10.2008 12:38:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.10.2008 12:39:08 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.10.2008 10:28:35 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.10.2008 12:28:18 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 23.10.2008 15:49:30 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 23.10.2008 15:51:06 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 15:53:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 15:59:36 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 13.03.2009 13:15:15 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 13.03.2009 13:20:48 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 13:09:28 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 21.04.2009 13:48:52 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.05.2009 13:07:52 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.05.2009 14:34:00 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:26:54 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:27:32 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:35:51 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:36:25 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.07.2009 13:42:47 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 21.07.2009 14:09:04 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 23.07.2009 10:03:01 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 23.07.2009 10:03:19 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.08.2009 17:25:17 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 21.08.2009 17:31:28 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 11.03.2010 12:23:14 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 11.03.2010 12:29:31 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 14:22:38 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 14:50:07 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 13.09.2011 09:50:20 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:45 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 14.09.2011 20:46:55 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 14.09.2011 22:31:23 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 06.12.2011 08:38:14 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 06.12.2011 08:49:48 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 27.01.2012 15:33:38 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 31.01.2012 15:48:09 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 31.01.2012 16:02:30 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 31.01.2012 16:02:49 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 05.09.2012 12:54:33 | VER: | TXT: | PC: KRUPICKARO-PC2 | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 05.09.2012 13:11:12 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC2 | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 diff --git a/libSys/plgBrowse.pas b/libSys/plgBrowse.pas new file mode 100644 index 0000000..c9e98d5 --- /dev/null +++ b/libSys/plgBrowse.pas @@ -0,0 +1,25 @@ +unit plgBrowse; + +interface + +uses + plgType; + +var + Cplg_SeznamVychozichNastaveniBrowse : array[TplgBrowse] of TplgVychoziNastaveniBrowse = + ( + (SelfIdent : bZadny; + ) + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgExtAkce.pas b/libSys/plgExtAkce.pas new file mode 100644 index 0000000..ce80209 --- /dev/null +++ b/libSys/plgExtAkce.pas @@ -0,0 +1,29 @@ +unit plgExtAkce; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceExtAkci : array[0..0] of TplgExtAkceDef = + ( + // aby bylo mozno nemit zadnou externi akci, + // musi zustat prvni akce nedefinovana !! + (BrowseID : 0) + + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgExtAttr.pas b/libSys/plgExtAttr.pas new file mode 100644 index 0000000..4aff235 --- /dev/null +++ b/libSys/plgExtAttr.pas @@ -0,0 +1,29 @@ +unit plgExtAttr; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceExtAttr : array[0..0] of TplgExterniAtribut = + ( + // aby bylo mozno nemit zadny externi atribut, + // musi zustat prvni akce nedefinovana !! + (JmenoTabulky : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. + diff --git a/libSys/plgExtTrigger.pas b/libSys/plgExtTrigger.pas new file mode 100644 index 0000000..187c6e7 --- /dev/null +++ b/libSys/plgExtTrigger.pas @@ -0,0 +1,27 @@ +unit plgExtTrigger; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceExtTrigger : array[0..0] of TplgExterniTrigger = + ( + // aby bylo mozno nemit zadny externi trigger, + // musi zustat prvni trigger nedefinovan !! + (JmenoTabulky : '') + + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgFunkce.pas b/libSys/plgFunkce.pas new file mode 100644 index 0000000..95fc3bd --- /dev/null +++ b/libSys/plgFunkce.pas @@ -0,0 +1,33 @@ +unit plgFunkce; + +interface + +uses + plgType; + +// !!! POZOR !!! ############################################################## +// Funkce musi byt zadana tak, aby CREATE FUNCTION bylo na jednom radku: +// napr. 'CREATE FUNCTION dbo.pf_MujPrefix_MujNazev'#13+ +// ############################################################################ + +{ =========================================================================== } + +const + SeznamUzivatelskychFunkci : array[0..0] of TplgUzivatelskaFunkce = + ( + // aby bylo mozno nemit zadnou uzivatelskou funkci :-) + // musi zustat prvni funkce definovana !! + (Text : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgHlasky.pas b/libSys/plgHlasky.pas new file mode 100644 index 0000000..53e622b --- /dev/null +++ b/libSys/plgHlasky.pas @@ -0,0 +1,28 @@ +unit plgHlasky; + +interface + +// [RK 10.10.2011] zapnuto vzdy vkuli prekladovemu portalu +{$DEFINE EdHlasky} + +uses + plgType; + +// rozsah hlasek je W=5000000-5999999 + +const + GplgHlasky : array[TplgTxt] of TplgHlaska = + ( + {$I ..\lib\plgHlaskyJadro.INC} // definice hlasek jadra + {$I ..\lib\plgHlaskyEx.INC} // definice ostatnich hlasek + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgMain.pas b/libSys/plgMain.pas new file mode 100644 index 0000000..93544b3 --- /dev/null +++ b/libSys/plgMain.pas @@ -0,0 +1,2727 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgMain; + +interface + +uses + SysUtils, Messages, Forms, DBCtrls, Classes, StdCtrls, + ddPlugin_TLB, plgType, plgKonfig; + +type + TplgJakaVerze = + (jvZakladni, // '1.0' + jvMajor, // '1' + jvMinor, // '0' + jvDatumRRRRMMDD, // '20050307' + jvCela, // '1.0.2005.0307' + jvCelaUnicode, // '2.0.2009.0909 - UNICODE' + jvHexa // '010020050307' <- bez znaku $ + ); + + TplgPorovnaniVerzi = (pvStejneVerze, pvDBMaVetsi, pvDBMaMensi); + +// --- verze pluginu ---------------------------------------------------------- +function plgVerzePluginu(AJakaVerze: TplgJakaVerze): String; +function plgObecnaVerze(Averze: Int64; AJakaVerze: TplgJakaVerze): String; +function plgNactiVerziPluginuZDB(Helios: IHelios; var ZmenyOK: Boolean): String; +function plgPorovnejVerziPluginuSVerziDB(const VerzeDB: String): TplgPorovnaniVerzi; +function plgVerzeSQLServeru(AVerze: Integer): String; + +// --- prace s tabulkami a atributy ------------------------------------------- +function plgJmenoSys2Tabulka(const AJmenoSys: String): TplgTabulka; +function plgGetTabulkaDef(aTabulka : TplgTabulka): PplgTabulkaDef; +function plgJmenoTabulky(aTabulka : TplgTabulka): String; +function plgVerejneJmenoTabulky(const AJmenoSys: String) : String; +function plgAtribut(aTabulka: TplgTabulka; const AJmenoSysAtributuBezTabulky : String): PplgAtributTabulky; overload; +function plgAtribut(const AJmenoSysAtributu : String): PplgAtributTabulky; overload; +function plgSetrideneAtributy(aTabulka : TplgTabulka): TStringList; +function plgSkupinaAtributu(ATypAtributu: TplgTypAtributu) : TplgSkupinaAtributu; +function plgMuzeBytSumovat(aTypAtributu : TplgTypAtributu): Boolean; +function plgHodnotaZKonverze(JeNULL: Boolean; const Hodnota: String; SLKonverze: TStringList): String; +// pouze cisty typ (bez IDENTITY, NULL apod.) - napr. INT, VARCHAR(20), NUMERIC(19,6) +function plgTypAtributu2Str(PA: PplgAtributTabulky): String; +function plgStr2TypAtributu(const ANazevTypu: String; APrecision, AScale: Integer): TplgTypAtributu; + +// --- prehledy --------------------------------------------------------------- +function plgJmenoView2Browse(const AJmenoView: String): TplgBrowse; +function plgBrowse2BID(Helios: IHelios; Browse: TplgBrowse): Integer; +function plgBID2JmenoView(Helios: IHelios; BID: Integer): String; +function plgJeObecnyPrehled(const NazevSys: String): Boolean; overload; +function plgJeObecnyPrehled(BID: Integer): Boolean; overload; +// VBL: 21.4.2018 funkce vrac BID dle systmovho jmna +function plgJmenoView2BID(Helios: IHelios; AJmenoView: String): Integer; + +// --- databaze --------------------------------------------------------------- +function plgGetDBName(Helios: IHelios): String; +function plgExistuje(Helios: IHelios; const Tabulka, Podminka: String): Boolean; +function plgSkriptProDeleteJednohoZaznamu(Tabulka: TplgTabulka; KontrolaBE: Boolean): String; +function plgAtributExistujeVDatabazi(Helios: IHelios; const Tabulka, Atribut: String): Boolean; + +// --- zurnal ----------------------------------------------------------------- +procedure plgZapisDoZurnalu(Helios: IHelios; Uroven: Byte; Udalost: Integer; const Akce: String); + +// --- vraci nazev DLL pluginu s celou cestou --------------------------------- +function plgGetPluginPathAndName: String; + +// --- vraci cestu na TEMP adresar +function plgGetTemporaryPath: string; + +// --- vraci nazev docasneho souboru s danym prefixem (prvni 3 znaky) a priponou +function plgGetTemporaryFileName(Prefix, Extension : String): String; + +// --- testuje existenci prepinace /XX (instalace bez preruseni) -------------- +function plgJeParametrXX: Boolean; + +// --- testuje existenci prepinace /X (tichy chod) ---------------------------- +function plgJeParametrX: Boolean; + +// --- jsem v modu tiche instalace? (vynuceno bud ExtKomID = -3 nebo /XX) ----- +function plgJeTichaInstalace: Boolean; + +// --- vrati nazev pocitace --------------------------------------------------- +function plgJmenoPocitace: String; + +// --- produkt ---------------------------------------------------------------- +function plgJeToHeliosEasy(Helios: IHelios): Boolean; +function plgJeToHeliosGermany(Helios: IHelios): Boolean; + +// --- centruje form na obrazovce --------------------------------------------- +// - na rozdil od poScreenCenter bere ohled na TaskBar +procedure plgCenterForm(AForm : TForm); +// --- minimalizuje aplikaci -------------------------------------------------- +function plgMinimizeApplication(AForm: TForm; var AMessage: TWMSysCommand): Boolean; + +// --- nahozeni, shozeni a test priznaku blokovani editoru -------------------- +// - predpoklada dotaz na jeden radek !!! +function plgZablokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +function plgOdblokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +function plgJeZaznamBlokovan(Helios: IHelios; const TabName, Where : String): Boolean; + +// --- preklad hlasek --------------------------------------------------------- +function plgCtiOznam(const AHlaska: String): String; overload; +function plgCtiOznam(ATxt: TplgTxt): String; overload; +function plgPrepniJazykoveDLL(Helios: IHelios; Jazyk1, Jazyk2: Integer): Boolean; + +// --- prelozeni vyjimek s cislem vetsim nebo rovno 5000000 ----------------- +function plgPrelozException(const Hlaska: String): String; + +// --- RTTI procedury a funkce - pracuji s published atributy ----------------- +function plgHasPropertyRTTI(Instance: TObject; const aProperty : String): Boolean; +function plgGetStringPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: String): Boolean; +function plgGetObjectPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: TObject): Boolean; +procedure plgSetPropertiesOfObjectRTTI( + Instance: TObject; const AProperty: array of string; const AValues: array of const); +procedure plgSetPropertiesOfListOfObjectsRTTI( + AObjectList: TList; const AProperty: array of string; const AValues: array of const); overload; +procedure plgSetPropertiesOfListOfObjectsRTTI( + AObjectList: TStringList; const AProperty: array of string; const AValues: array of const); overload; +procedure plgSetPropertiesOfArrayOfObjectsRTTI( + const AObjectArray: array of TObject; const AProperty: array of string; const AValues: array of const); + +// --- prace s retezci -------------------------------------------------------- +// - odstrani z retezce S zadanou mnozinu znaku +function plgFilterStr(const S: String; CS: TSysCharSet): String; +// - odstrani vsechny znaky krome zadanych +function plgFilterVseKrome(const S: string; CS: TSysCharSet): string; +// - vrati retezec ze Znaku o delce Delka +function plgCharStr(Znak: Char; Delka: Integer): String; inline; +// - prevede retezec do hexa vyjadreni pouzitelne pro SQL +// - napr. '012:' -> '0x3031323A' +function plgTextToBinary(const S: AnsiString): String; +// Unicode varianta QuotedStr(), tedy N'...' (pokud pouvm v neUnicode Delphi, tak je to to sam, co QuotedStr()) } +// pouvat jen na SQL-typy: na NCHAR, NVARCHAR, NTEXT, ne nap. na DATETIME, CHAR, VARCHAR, TEXT } +function plgNQuotedStr(const S: string): string; inline; +// zrusi z GUIDStr zavorky a pomlcky +function plgGUIDBezPomlcek(const GUIDStr: String): String; + +// --- prace s Varianty ------------------------------------------------------- +// - porovna 2 varianty, funguje i s variantnim polem (s dimenzi 1) +function plgVarSameValue(const A, B: Variant): Boolean; + +// --- fonty ------------------------------------------------------------------ +function plgFontExistuje(const FaceName: String): Boolean; +function plgTestMSSansSerifFont(const AFontName: string): String; + +// --- podpora pro praci s konverzi ------------------------------------------- +// - vrati obracenou konverzi: misto 1=Ano vrati Ano=1 +function plgObracenaKonverze(const AKonverze : String) : TStringList; + +// - plni kombo externi konverzi - stejne texty, ale nektere chybi +function plgNaplnNeDBComboZVenku(ACombo: TCustomComboBox; const AKonverze : String; + ATridit: Boolean = False) : Boolean; +// - plni kombo externi konverzi +function plgNaplnComboZVenku(ADBCombo: TDBComboBox; AKonverze : String): Boolean; + +// --- podpora pro prevod hodnot do SQL skriptu ------------------------------- +// - Vrati datum ve formatu nezavislem na nastaveni SET DATETIME dmy +// - Pokud je ADate rovno 0, vraci NULL !!! +function plgGetIndependentSQLDate(ADate: TDateTime): String; +function plgGetIndependentSQLDateTime(ADateTime: TDateTime; Quotovat : Boolean = True): String; + +// - Vrati cislo jako string ve formatu SQL nezavislem na mistnim nastaveni +// - AMaska ... maska pro prikaz Format, napr. '%.2f' +function plgGetIndependentSQLFloat(const AMaska: String; ACislo: Extended): String; + +// --- zobrazi okno s memo komponentou se zadanym textem ---------------------- +procedure plgHelpForm(const ACaption, AText: String); + +// --- prace s definicemi ----------------------------------------------------- +function plgVratVztah(Index: Integer): PplgVztahDef; +function plgVratExtAkci(Index: Integer): PplgExtAkceDef; +function plgVratExtAttr(Index: Integer): PplgExterniAtribut; +function plgVratExtTrigger(Index: Integer): PplgExterniTrigger; +function plgVratZmenovySkript(Index : Integer): PplgZmenovySkript; +function plgVratUProc(Index: Integer): PplgUlozenaProcedura; +function plgVratUzivFunkci(Index: Integer): PplgUzivatelskaFunkce; + +// - kdyz neni definovana zadna tabulka, vrati tZadna a False +function plgJeNejakaTabulka(var Prvni: TplgTabulka): Boolean; +// - kdyz neni definovana zadny prehled, vrati bZadny a False +function plgJeNejakyPrehled(var Prvni: TplgBrowse): Boolean; +// - kdyz neni definovana zadny soudek, vrati sdNeniVidet a False +function plgJeNejakySoudek(var Prvni: TplgSoudek): Boolean; + +// --- konfiguracni objekt pluginu -------------------------------------------- +function PluginKonfig: TPluginKonfig; + +// --- zakladni inicializace -------------------------------------------------- +procedure InicializaceJadraPluginu(Helios: IHelios); + +// --- spusti specifickou akci nad danou tabulkou ----------------------------- +// - navratova hodnota ma smysl pouze pro akci plgGlobAkce_GenerujPrehledy +// - v takovem pripade vraci skript pro vygenerovani externich akci +function SpustAkciPluginu(Helios: IHelios; Browse: TplgBrowse; const GUIDAkce: String): String; +function SpustAkciPluginuProTab(Helios: IHelios; BrowseID: Integer; const GUIDAkce: String): String; + +// --- provede vygenerovani, popr. pregenerovani vsech zakladnich prehledu ---- +function plgExtKomIDInstalace(Helios: IHelios): Boolean; +procedure InstalacePluginu(Helios: IHelios; TichaInstalace: Boolean); + +// --- zobrazeni informace o pluginu ------------------------------------------ +procedure InformaceOPluginu(Helios: IHelios); + +// --- preklad hlasek --------------------------------------------------------- +procedure plgPresunHlaskyNaWeb(Helios: IHelios); +procedure plgStahniZWebuJazykovaDLL(Helios: IHelios); + +// --- controller pro editory ------------------------------------------------- +procedure SpustControllerEditoru(Helios: IHelios); + +var + Global_Legislativa : Integer = -1; + +{ =========================================================================== } + +implementation + +uses + Windows, Controls, Types, TypInfo, Math, ComObj, Variants, + sqIcons, + plgEdit, plgTable, plgInstalace, plgUta, plgSoudky, plgDMGlob, plgLadit, + plgUProc, plgFunkce, plgZmeny, plgExtAttr, plgExtAkce, plgExtTrigger, + plgVazby, plgHlasky, plgBrowse, plgAkce, plgAbout, plgPreklady, + plgExtController, plgController; + +var + InicializaceProbehla: Boolean = False; + + Global_PluginKonfig: TPluginKonfig = nil; + + AktivniJazyk1: Integer = Cplg_jJazykNedefinovan; + AktivniJazyk2: Integer = Cplg_jJazykNedefinovan; + AktivniJazyky: TStringList = nil; + +type + TplgPrekladHlasekA = function(LW: LongWord): PAnsiChar; + TplgPrekladHlasekW = function(LW: LongWord): PWideChar; + TplgPrekladHlasekCP = function(LW: LongWord; var CP: Integer): PAnsiChar; stdcall; + + TplgAktivniJazyk = class + protected + FHandle_JazykDLL: HINST; + public + destructor Destroy; override; + function CtiOznam(AHlaska: TplgTxt): string; virtual; abstract; + end; + + TplgJazykPrekladHlasekA = class(TplgAktivniJazyk) + private + FPreklad: TplgPrekladHlasekA; + public + constructor Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekA); + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + + TplgJazykPrekladHlasekW = class(TplgAktivniJazyk) + private + FPreklad: TplgPrekladHlasekW; + public + constructor Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekW); + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + + TplgJazykPrekladHlasekCP = class(TplgAktivniJazyk) + private + FPreklad: TplgPrekladHlasekCP; + public + constructor Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekCP); + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + + TplgJazykPrekladHlasek04 = class(TplgAktivniJazyk) + public + function CtiOznam(AHlaska: TplgTxt): string; override; + end; + +{ ########################################################################### } + +destructor TplgAktivniJazyk.Destroy; +begin + if FHandle_JazykDLL <> 0 then + FreeLibrary(FHandle_JazykDLL); + + inherited; +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgJazykPrekladHlasekA.Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekA); +begin + FHandle_JazykDLL := AHandleDLL; + FPreklad := APreklad; +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasekA.CtiOznam(AHlaska: TplgTxt): string; + var + LAnsiS: RawByteString; +begin + LAnsiS := FPreklad(GplgHlasky[AHlaska].W); + SetCodePage(LAnsiS, 1250, False); //hlky "po staru" jsou vdy v CP1250 + Result := string(LAnsiS); +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgJazykPrekladHlasekW.Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekW); +begin + FHandle_JazykDLL := AHandleDLL; + FPreklad := APreklad; +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasekW.CtiOznam(AHlaska: TplgTxt): string; +begin + Result := FPreklad(GplgHlasky[AHlaska].W); +end; + +{ --------------------------------------------------------------------------- } + +constructor TplgJazykPrekladHlasekCP.Create(AHandleDLL: HINST; APreklad: TplgPrekladHlasekCP); +begin + FHandle_JazykDLL := AHandleDLL; + FPreklad := APreklad; +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasekCP.CtiOznam(AHlaska: TplgTxt): string; + var + LAnsiS: RawByteString; + CP: Integer; +begin + LAnsiS := FPreklad(GplgHlasky[AHlaska].W, CP); + SetCodePage(LAnsiS, CP, False); + Result := string(LAnsiS); +end; + +{ --------------------------------------------------------------------------- } + +function TplgJazykPrekladHlasek04.CtiOznam(AHlaska: TplgTxt): string; +begin + Result := GplgHlasky[AHlaska].SK; +end; + +{ =========================================================================== } + +function PluginKonfig: TPluginKonfig; +begin + if not Assigned(Global_PluginKonfig) then + Global_PluginKonfig := TPluginKonfig.Create; + + Result := Global_PluginKonfig; +end; + +{ --------------------------------------------------------------------------- } + +function SpustAkciPluginu(Helios: IHelios; Browse: TplgBrowse; const GUIDAkce: String): String; + var + plgAkcePrehleduClass: TplgAkcePrehleduClass; + frmPlgEditorClass: TfrmPlgEditorClass; + AP: TplgAkcePrehledu; +begin + with Cplg_SeznamVychozichNastaveniBrowse[Browse] do + begin + plgAkcePrehleduClass := TplgAkcePrehleduClass(DMAkceClass); + frmPlgEditorClass := TfrmPlgEditorClass(EditorClass); + end; + + if not Assigned(plgAkcePrehleduClass) then + Result := '' + else + begin + AP := plgAkcePrehleduClass.Create(Helios, Browse, frmPlgEditorClass); + plgLadit_KontrolaTridyAkce(AP); + with AP do + try + Result := SpustAkci(GUIDAkce); + finally + Free; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +function SpustAkciPluginuProTab(Helios: IHelios; BrowseID: Integer; const GUIDAkce: String): String; + var + EA: PplgExtAkceDef; + II: Integer; + plgAkcePrehleduClass: TplgAkcePrehleduClass; +begin + Result := ''; + + II := 1; + EA := plgVratExtAkci(II); + while Assigned(EA) do + begin + if EA.BrowseID = BrowseID then + begin + plgAkcePrehleduClass := TplgAkcePrehleduClass(EA.DMAkceClass); + if Assigned(plgAkcePrehleduClass) then + begin + with plgAkcePrehleduClass.CreateTab(Helios, EA) do + try + Result := SpustAkci(GUIDAkce); + finally + Free; + end; + end; + Exit; + end; + + Inc(II); + EA := plgVratExtAkci(II); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgObecnaVerze(Averze: Int64; AJakaVerze: TplgJakaVerze): String; + var + LMajor, LMinor, LDatum : String; + + { +++++++++++++++++++++++++++ } + + function UdelejCislo(ACislo: Int64): string; + begin + Result := Format('%.2x', [ACislo]); + if Result[1] = '0' then + Result := Result[2]; + end; + + { +++++++++++++++++++++++++++ } + +begin + LMajor := UdelejCislo(Lo(AVerze shr (32 + 4 + 4))); // '1' + LMinor := UdelejCislo(Lo(AVerze shr (32))); // '0' + LDatum := Format('%.8x', [LongWord(AVerze)]); // '19990924' + case AJakaVerze of + jvZakladni : Result := Format('%s.%s', [LMajor, LMinor]); + jvMajor : Result := LMajor; + jvMinor : Result := LMinor; + jvDatumRRRRMMDD : Result := LDatum; + jvCela, + jvCelaUnicode : Result := Format('%s.%s.%s.%s', [LMajor, LMinor, Copy(LDatum, 1, 4), Copy(LDatum, 5, MaxInt)]); + jvHexa : Result := Format('%.12x', [AVerze]); + else Result := ''; + end; + + if AJakaVerze = jvCelaUnicode then + Result := Result + ' - UNICODE' + {$IFDEF VER220}+' XE'{$ENDIF} + {$IFDEF VER240}+' XE3'{$ENDIF} + {$IFDEF VER280}+' XE7'{$ENDIF} + {$IFDEF VER310}+' 10.1'{$ENDIF} + {$IFDEF VER330}+' 10.3'{$ENDIF} + {$IFDEF VER340}+' 10.4'{$ENDIF} + {$IFDEF VER350}+' 11.0'{$ENDIF} + {$IFDEF VER360}+' 12.0'{$ENDIF} + {$IFDEF VER370}+' 13.0'{$ENDIF} + + {$IFDEF CPUX64} + + ' / 64bit' + {$ELSE} + + ' / 32bit' + {$ENDIF}; +end; + +{ --------------------------------------------------------------------------- } + +function plgVerzePluginu(AJakaVerze: TplgJakaVerze): String; +begin + Result := plgObecnaVerze(CVerzePluginu, AJakaVerze); +end; + +{ --------------------------------------------------------------------------- } + +function plgVerzeSQLServeru(AVerze: Integer): String; +begin + if AVerze >= Cplg_SQLVersion_2014 then + Result := '2014' + else + if AVerze >= Cplg_SQLVersion_2012_SP2 then + Result := '2012 SP2' + else + if AVerze >= Cplg_SQLVersion_2012_SP1 then + Result := '2012 SP1' + else + if AVerze >= Cplg_SQLVersion_2012 then + Result := '2012' + else + if AVerze >= Cplg_SQLVersion_2008R2_SP3 then + Result := '2008 R2 SP3' + else + if AVerze >= Cplg_SQLVersion_2008R2_SP2 then + Result := '2008 R2 SP2' + else + if AVerze >= Cplg_SQLVersion_2008R2_SP1 then + Result := '2008 R2 SP1' + else + if AVerze >= Cplg_SQLVersion_2008R2 then + Result := '2008 R2' + else + if AVerze >= Cplg_SQLVersion_2008_SP4 then + Result := '2008 SP4' + else + if AVerze >= Cplg_SQLVersion_2008_SP3 then + Result := '2008 SP3' + else + if AVerze >= Cplg_SQLVersion_2008_SP2 then + Result := '2008 SP2' + else + if AVerze >= Cplg_SQLVersion_2008_SP1 then + Result := '2008 SP1' + else + if AVerze >= Cplg_SQLVersion_2008 then + Result := '2008' + else + if AVerze >= Cplg_SQLVersion_2005_SP3 then + Result := '2005 SP3' + else + if AVerze >= Cplg_SQLVersion_2005_SP2 then + Result := '2005 SP2' + else + if AVerze >= Cplg_SQLVersion_2005_SP1 then + Result := '2005 SP1' + else + if AVerze >= Cplg_SQLVersion_2005 then + Result := '2005' + else + if AVerze >= Cplg_SQLVersion_2000_SP4 then + Result := '2000 SP4' + else + if AVerze >= Cplg_SQLVersion_2000_SP3 then + Result := '2000 SP3' + else + if AVerze >= Cplg_SQLVersion_2000_SP2 then + Result := '2000 SP2' + else + if AVerze >= Cplg_SQLVersion_2000_SP1 then + Result := '2000 SP1' + else + if AVerze >= Cplg_SQLVersion_2000 then + Result := '2000' + else + if AVerze >= Cplg_SQLVersion_7_0_SP4 then + Result := '7.00 SP4' + else + if AVerze >= Cplg_SQLVersion_7_0_SP3 then + Result := '7.00 SP3' + else + if AVerze >= Cplg_SQLVersion_7_0_SP2 then + Result := '7.00 SP2' + else + if AVerze >= Cplg_SQLVersion_7_0_SP1 then + Result := '7.00 SP1' + else + Result := '7.00'; + + Result := Format('MS SQL Server %s', [Result]); +end; + +{ --------------------------------------------------------------------------- } + +function plgNactiVerziPluginuZDB(Helios: IHelios; var ZmenyOK: Boolean): String; + var + Q: IHeQuery; +begin + Q := Helios.OpenSQL( + Format( + 'IF EXISTS(SELECT*FROM TabPluginInfo WHERE NazevSys=%s)'#13+ + 'SELECT VerzePluginu, CAST(ZmenyOK AS INT) FROM TabPluginInfo WHERE NazevSys=%0:s'#13+ + 'ELSE'#13+ + 'SELECT %s, CAST(0 AS INT)', + [plgNQuotedStr(PluginKonfig.PluginSystemoveJmeno), + plgNQuotedStr(Cplg_VerzePluginu_Nula_Str)])); + + Result := varToStr(Q.FieldValues(0)); + ZmenyOK := (Q.FieldValues(1) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgPorovnejVerziPluginuSVerziDB(const VerzeDB: String): TplgPorovnaniVerzi; + var + VerzePlg: String; +begin + VerzePlg := plgVerzePluginu(jvHexa); + + if SameText(VerzeDB, VerzePlg) then + Result := pvStejneVerze + else + if VerzeDB > VerzePlg then + Result := pvDBMaVetsi + else + Result := pvDBMaMensi; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetDBName(Helios: IHelios): String; +begin + Result := varToStr(Helios.OpenSQL('SELECT DB_NAME()').FieldValues(0)); +end; + +{ --------------------------------------------------------------------------- } + +function plgExistuje(Helios: IHelios; const Tabulka, Podminka: String): Boolean; +begin + Result := + (Helios.OpenSQL( + Format('IF EXISTS(SELECT*FROM %s WHERE %s) SELECT 1 ELSE SELECT 0', + [Tabulka, Podminka])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgAtributExistujeVDatabazi(Helios: IHelios; const Tabulka, Atribut: String): Boolean; +begin + Result := + (Helios.OpenSQL( + Format('IF COLUMNPROPERTY(OBJECT_ID(N''%s'',N''U''),N''%s'',N''AllowsNull'')IS NOT NULL SELECT 1 ELSE SELECT 0', + [Tabulka, Atribut])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgZapisDoZurnalu(Helios: IHelios; Uroven: Byte; Udalost: Integer; const Akce: String); + var + InfoText: String; +begin + InfoText := Copy(PluginKonfig.PluginSystemoveJmeno + ' - ' + Akce, 1, 255); + Helios.ExecSQL( + Format('EXEC dbo.hp_ZapisDoZurnalu %d,%d,%s', + [Uroven, Udalost, plgNQuotedStr(InfoText)])); +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoSys2Tabulka(const AJmenoSys: String): TplgTabulka; +begin + if plgJeNejakaTabulka(Result) and (Trim(AJmenoSys) <> '') then + for Result := Result to High(TplgTabulka) do + if SameText(AJmenoSys, Cplg_SeznamTabulek[Result].JmenoSys) then Exit; + + // nic jsme nenalezli + Result := tZadna; +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoView2Browse(const AJmenoView: String): TplgBrowse; +begin + if plgJeNejakyPrehled(Result) and (Trim(AJmenoView) <> '') then + for Result := Result to High(TplgBrowse) do + if SameText(AJmenoView, Cplg_SeznamVychozichNastaveniBrowse[Result].JmenoView) then Exit; + + // nic jsme nenalezli + Result := bZadny; +end; + +{ --------------------------------------------------------------------------- } + +function plgBrowse2BID(Helios: IHelios; Browse: TplgBrowse): Integer; + var + Q: IHeQuery; +begin + with Cplg_SeznamVychozichNastaveniBrowse[Browse] do + begin + if JmenoView = '' then + Result := 0 + else + if not plgJeObecnyPrehled(JmenoView) then + Result := 0 + else + begin + Q := Helios.OpenSQL( + Format('SELECT Cislo FROM TabObecnyPrehled WHERE NazevSys=%s', + [plgNQuotedStr(JmenoView)])); + // [RK 26.07.2005] doplnena vyjimka + if Q.RecordCount = 0 then + raise Exception.Create( + Format(plgCtiOznam(plxJadroNebylNalezenPrehled_X_Y)+#13#13#1'%s'#1, + [JmenoView, Jmeno, + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu)])) + else + Result := Q.FieldValues(0) + Cplg_ObecnePohledy_BID_Base; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgBID2JmenoView(Helios: IHelios; BID: Integer): String; + var + Q: IHeQuery; +begin + if not plgJeObecnyPrehled(BID) then + Result := '' + else + begin + Q := Helios.OpenSQL( + Format('SELECT NazevSys FROM TabObecnyPrehled WHERE Cislo=%d', + [BID - Cplg_ObecnePohledy_BID_Base])); + + if Q.RecordCount = 0 then + raise Exception.Create( + Format(plgCtiOznam(plxJadroNebylNalezenPrehledCislo_X)+#13#13#1'%s'#1, + [BID - Cplg_ObecnePohledy_BID_Base, + plgCtiOznam(plxJadroJeTrebaSpustitInstalaciPluginu)])) + else + Result := varToStr(Q.FieldValues(0)); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeObecnyPrehled(const NazevSys: String): Boolean; +begin + Result := SameText(Cplg_View_Prefix, Copy(NazevSys, 1, Cplg_View_PrefixLen)); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeObecnyPrehled(BID: Integer): Boolean; +begin + Result := (BID >= Cplg_ObecnePohledy_BID_Base); +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoView2BID(Helios: IHelios; AJmenoView: String): Integer; + var + Q: IHeQuery; +begin + Result := 0; + if (Trim(AJmenoView) <> '') and plgJeObecnyPrehled(AJmenoView) then + begin + Q := Helios.OpenSQL(Format('SELECT Cislo FROM TabObecnyPrehled WHERE NazevSys=%s', [plgNQuotedStr(AJmenoView)])); + if Q.RecordCount = 0 then + raise Exception.Create(Format(plgCtiOznam(plxJadroNebylNalezenPrehled_X_Y),[AJmenoView, AJmenoView])) + else + Result := Q.FieldValues(0) + Cplg_ObecnePohledy_BID_Base; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetTabulkaDef(aTabulka : TplgTabulka): PplgTabulkaDef; +begin + Result := Cplg_SeznamTabulek[ATabulka]; +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoTabulky(aTabulka : TplgTabulka): String; +begin + if Assigned(Cplg_SeznamTabulek[aTabulka]) then + Result := Cplg_SeznamTabulek[aTabulka].JmenoSys + else + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgMuzeBytSumovat(aTypAtributu : TplgTypAtributu): Boolean; +begin + Result := (not (aTypAtributu in [taBoolean])) and + (plgSkupinaAtributu(aTypAtributu) in [skpCelaCisla, skpDesetinnaCisla]); +end; + +{ --------------------------------------------------------------------------- } + +function plgHodnotaZKonverze(JeNULL: Boolean; const Hodnota: String; SLKonverze: TStringList): String; +begin + if not JeNULL then + begin + if SLKonverze.IndexOfName(Hodnota) <> -1 then + Result := SLKonverze.Values[Hodnota] + else + Result := Hodnota; + end + else + begin + if SLKonverze.IndexOfName('NULL') > -1 then + Result := SLKonverze.Values['NULL'] + else + Result := plgCtiOznam(plxJadroNeni); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgSkupinaAtributu(ATypAtributu: TplgTypAtributu) : TplgSkupinaAtributu; +begin + case ATypAtributu of + taInt, + taIdentity, + taInt64, + taIdentity64, + taSmallInt, + taByte, + taBoolean: + Result := skpCelaCisla; + + taNVarChar, + taNChar, + taNText, + taVarChar, + taChar, + taText: + Result := skpRetezce; + + taDateTime, + taTime: + Result := skpDatumy; + + taFloat, + taNumeric_4_2, + taNumeric_5_2, + taNumeric_7_2, + taNumeric_9_2, + taNumeric_15_0, + taNumeric_19_2, + taNumeric_19_6, + taNumeric_20_6, + taNumeric_28_0: + Result := skpDesetinnaCisla; + +// taGUID, + taBinary, + taImage: + Result := skpBinarni; + + else + Result := skpZadna; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgTypAtributu2Str(PA: PplgAtributTabulky): String; +begin + Result := UpperCase(Cplg_GTypy[PA.Typ].T); + if (Pos('CHAR', Result) > 0) or (Pos('BINARY', Result) > 0) then + begin + if PA.Delka=Cplg_DelkaNVarcharMax then + Result := Format('%s(%s)', [Result, 'MAX']) //[JAS 13.2.2018] - rozsireni o (N)VARCHAR(MAX) + else + Result := Format('%s(%d)', [Result, PA.Delka]) + end + else + if SameText(Result, 'NUMERIC') then + Result := Format('%s(%d,%d)', [Result, Cplg_GTypy[PA.Typ].P, Cplg_GTypy[PA.Typ].S]); +end; + +{ --------------------------------------------------------------------------- } + +function plgStr2TypAtributu(const ANazevTypu: String; APrecision, AScale: Integer): TplgTypAtributu; + var + TT: TplgTypAtributu; + JeNumeric: Boolean; +begin + Result := taBlbe; + + if SameText(ANazevTypu, 'BIGINT IDENTITY') then + begin + Result := taIdentity64; + Exit; + end; + + if SameText(ANazevTypu, 'INT IDENTITY') then + begin + Result := taIdentity; + Exit; + end; + + if APrecision = -1 then + begin + if SameText(ANazevTypu, 'NVARCHAR') then Exit(taNText); + if SameText(ANazevTypu, 'VARCHAR') then Exit(taText); + end; + + JeNumeric := SameText(ANazevTypu, 'NUMERIC'); + + for TT := Succ(Low(TplgTypAtributu)) to High(TplgTypAtributu) do + begin + if SameText(ANazevTypu, Cplg_GTypy[TT].T) then + begin + if not JeNumeric then + begin + Result := TT; + Exit; + end; + + if (Cplg_GTypy[TT].P = APrecision) and (Cplg_GTypy[TT].S = AScale) then + begin + Result := TT; + Exit; + end; + end; + end; + + // pokud to je numeric a nemam ho definovany, tak vezmi ten "nejvetsi" + if JeNumeric then + Result := taNumeric_20_6; +end; + +{ --------------------------------------------------------------------------- } + +function plgVerejneJmenoTabulky(const AJmenoSys: String): String; + var + LTabulka: TplgTabulka; +begin + if plgJeNejakaTabulka(LTabulka) and (Trim(AJmenoSys) <> '') then + for LTabulka := LTabulka to High(TplgTabulka) do + if SameText(AJmenoSys, Cplg_SeznamTabulek[LTabulka].JmenoSys) then + begin + Result := Cplg_SeznamTabulek[LTabulka].Jmeno; + Exit; {!} + end; + + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgSetrideneAtributy(aTabulka: TplgTabulka): TStringList; + var + PA : PplgAtributTabulky; + II : Integer; +begin + Result := TStringList.Create; + if Cplg_SeznamTabulek[aTabulka] = nil then Exit; + + with Cplg_SeznamTabulek[aTabulka]^ do + begin + PA := Atributy; + for II := 1 to PocetAtributu do + begin + Result.AddObject(PA.JmenoSys, TObject(PA)); + Inc(PA); + end; + end; + Result.Sorted := True; // setrideni az na zaver (je to nejrychlejsi) +end; + +{ --------------------------------------------------------------------------- } + +function plgAtribut(aTabulka : TplgTabulka; + const AJmenoSysAtributuBezTabulky : String): PplgAtributTabulky; + var + PA : PplgAtributTabulky; + II : Integer; +begin + if Cplg_SeznamTabulek[aTabulka] <> nil then + begin + with Cplg_SeznamTabulek[aTabulka]^ do + begin + PA := Atributy; + for II := 1 to PocetAtributu do + begin + if SameText(AJmenoSysAtributuBezTabulky, PA.JmenoSys) then + begin + Result := PA; + Exit; {!} + end; + Inc(PA); + end; + end; + end; + + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgAtribut(const AJmenoSysAtributu : String): PplgAtributTabulky; + var + I: Integer; + LJmenoSysTabulky, + LJmenoSysAtributu: String; + LTabulka: TplgTabulka; +begin + Result := nil; + + I := Pos('.', AJmenoSysAtributu); + if I = 0 then Exit; + + LJmenoSysTabulky := Copy(AJmenoSysAtributu, 1, I-1); + LJmenoSysAtributu := Copy(AJmenoSysAtributu, I+1, MaxInt); + + LTabulka := plgJmenoSys2Tabulka(LJmenoSysTabulky); + Result := plgAtribut(LTabulka, LJmenoSysAtributu); +end; + +{ --------------------------------------------------------------------------- } + +function plgSkriptProDeleteJednohoZaznamu(Tabulka: TplgTabulka; KontrolaBE: Boolean): String; + var + PD: PplgTabulkaDef; +begin + PD := plgGetTabulkaDef(Tabulka); + + if KontrolaBE and (plgAtribut(Tabulka, plg_BlokovaniEditoru) <> nil) then + Result := Format('IF EXISTS(SELECT*FROM %s WHERE ' + plg_SystemoveCislo + '=@ID'+ + ' AND ' + plg_BlokovaniEditoru + ' IS NOT NULL)'#13+ + 'BEGIN'#13+ + 'RAISERROR(%s, 16, 1)'#13+ + 'RETURN'#13+ + 'END'#13, + [PD.JmenoSys, plgNQuotedStr(plgCtiOznam(plxJadroZaznamJeBlokovanNelzeSmazat))]) + else + Result := ''; + + Result := + Format( + 'DECLARE @ID INT'#13+ + 'SET @ID = %s'#13+ + '%s', // test blokovani editoru + ['%s', Result]); + + if PD.TriggerBeforeDelete = '' then + Result := + Format( + '%s'#13+ + 'DELETE %s WHERE ' + plg_SystemoveCislo + '=@ID', + [Result, PD.JmenoSys]) + else + Result := + Format( + '%s'#13+ + 'DECLARE @Mazat BIT'#13+ + 'SET @Mazat = 1'#13+ // moznost v TriggerBeforeDelete vypnout mazani + + 'BEGIN TRANSACTION'#13+ + + '%s'#13+ // TriggerBeforeDelete + 'IF @@ERROR <> 0 GOTO CHYBAROLLBACK'#13+ + + 'IF @Mazat = 1'#13+ + 'BEGIN'#13+ + 'DELETE %s WHERE ' + plg_SystemoveCislo + '=@ID'#13+ + 'IF @@ERROR <> 0 GOTO CHYBAROLLBACK'#13+ + 'END'#13+ + + 'IF @@TRANCOUNT <> 0 COMMIT'#13+ + 'RETURN'#13+ + + 'CHYBAROLLBACK:'#13+ + 'IF @@TRANCOUNT <> 0 ROLLBACK', + [Result, PD.TriggerBeforeDelete, PD.JmenoSys]); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetPluginPathAndName: String; + var + PomName: array[0..MAX_PATH] of Char; +begin + SetString(Result, PomName, GetModuleFileName(hInstance, PomName, SizeOf(PomName))); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetTemporaryPath: string; +begin + // cesta na TEMP adresar + SetLength(Result, MAX_PATH); + SetLength(Result, Windows.GetTempPath(MAX_PATH, PChar(Result))); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetTemporaryFileName(Prefix, Extension : String): String; + var + Temp : String; + Pocet : Integer; + Existuje : Boolean; +begin + // cesta na TEMP adresar + Temp := plgGetTemporaryPath; + + Pocet := 0; + repeat + Result := StringOfChar(#0, MAX_PATH); + // tato funkce nevraci vyslednou delku jako napr. GetTempPath + GetTempFileName(PChar(Temp), PChar(Prefix), 0, PChar(Result)); + Result := StrPas(PChar(Result)); + + if Length(Extension) > 0 then + begin + if Extension[1] <> '.' then + Extension := '.' + Extension; + + Temp := Result; + Result := ChangeFileExt(Temp, Extension); + + // zruseni puvodniho souboru (ma koncovku TMP) + if not SameText(Temp, Result) then + if FileExists(Temp) then SysUtils.DeleteFile(Temp); + + // pokud soubor existuje, tak to projedu cele znovu (max. 10x) + Existuje := FileExists(Result); + end + else + Existuje := False; + + Inc(Pocet); + until (not Existuje) or (Pocet >= 10); + + if Existuje then Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgJmenoPocitace: String; + var + DW: DWORD; +begin + DW := MAX_COMPUTERNAME_LENGTH + 1; + SetLength(Result, DW); + if GetComputerName(PChar(Result), DW) then + SetLength(Result, DW) + else + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeToHeliosEasy(Helios: IHelios): Boolean; + var + S: string; +begin + S := Copy(Helios.SerNum, 1, Cplg_SerNum_PrefixLen); + Result := SameText(S, Cplg_Prefix_SN_HEED) or SameText(S, Cplg_Prefix_SN_HEEF); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeToHeliosGermany(Helios: IHelios): Boolean; + var + S: string; +begin + S := Copy(Helios.SerNum, 1, Cplg_SerNum_PrefixLen); + Result := SameText(S, Cplg_Prefix_SN_ASDT) or SameText(S, Cplg_Prefix_SN_ASDE); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgCenterForm(AForm: TForm); + var + LRect: TRect; + LMon: TMonitor; +begin + // [RK 26.05.2010] centrovani na monitoru, kde okno lezi + with AForm do + begin + LMon := Monitor; + if LMon <> nil then + LRect := LMon.WorkareaRect + else + LRect := Screen.WorkareaRect; + + SetBounds(LRect.Left + ((RectWidth(LRect) - Width) div 2), + LRect.Top + ((RectHeight(LRect) - Height) div 2), Width, Height); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgMinimizeApplication(AForm: TForm; var AMessage: TWMSysCommand): Boolean; +begin + // [RK 18.08.2011] uprava podle Heliosu + Result := ((AMessage.CmdType and $FFF0) = SC_MINIMIZE); + if Result then + begin + AMessage.Result := 0; + EnableWindow(Application.Handle, True); + ShowWindow(Application.Handle, SW_MINIMIZE); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgZablokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +begin + // pokud ho neblokuje nekdo jiny, tak ho muzu zablokovat + Result := + (Helios.OpenSQL( + Format( + 'IF (SELECT ' + plg_BlokovaniEditoru + ' FROM %s WHERE %s) IS NULL'#13+ + 'BEGIN'#13+ + 'UPDATE %0:s SET ' + plg_BlokovaniEditoru + '=%2:d WHERE %1:s'#13+ + 'SELECT 1'#13+ + 'END'#13+ + 'ELSE'#13+ + 'SELECT 0', + [{0}TabName, {1}Where, {2}Helios.UserId])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgOdblokujZaznam(Helios: IHelios; const TabName, Where : String): Boolean; +begin + // pokud ho blokuji ja, tak muzu odblokovat + Result := + (Helios.OpenSQL( + Format( + 'IF (SELECT ' + plg_BlokovaniEditoru + ' FROM %s WHERE %s)=%d'#13+ + 'BEGIN'#13+ + 'UPDATE %0:s SET ' + plg_BlokovaniEditoru + '=NULL WHERE %s'#13+ + 'SELECT 1'#13+ + 'END'#13+ + 'ELSE'#13+ + 'SELECT 0', + [{0}TabName, {1}Where, {2}Helios.UserId])).FieldValues(0) = 1); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeZaznamBlokovan(Helios: IHelios; const TabName, Where : String): Boolean; +begin + Result := + (Helios.OpenSQL( + Format( + 'IF (SELECT ' + plg_BlokovaniEditoru + ' FROM %s WHERE %s) IS NULL SELECT 0 ELSE SELECT 1', + [{0}TabName, {1}Where])).FieldValues(0) = 1); +end; + +{ =========================================================================== } + +function _plgCtiOznam1(AHlaska: TplgTxt): String; +begin + Result := GplgHlasky[AHlaska].H; +end; + +{ --------------------------------------------------------------------------- } + +function _plgCtiOznamX(AHlaska: TplgTxt): String; // cizi jazyky + var + II: Integer; +begin + for II := 0 to AktivniJazyky.Count-1 do + begin + Result := TplgAktivniJazyk(AktivniJazyky.Objects[II]).CtiOznam(AHlaska); + if Result <> '' then Exit; + end; + + Result := GplgHlasky[AHlaska].H; +end; + +{ --------------------------------------------------------------------------- } + +var + { default je etina s diakritikou (1) } + _plgCtiOznam : function(ATxt : TplgTxt) : String = _plgCtiOznam1; + +{ --------------------------------------------------------------------------- } + +function plgCtiOznam(ATxt: TplgTxt): String; +begin + Result := _plgCtiOznam(ATxt); +end; + +{ --------------------------------------------------------------------------- } + +function plgCtiOznam(const AHlaska: String): String; +begin + Result := AHlaska; +end; + +{ =========================================================================== } + +function plgPrelozException(const Hlaska: String): String; + var + LTxt: TplgTxt; + Cislo: Integer; +begin + Cislo := StrToIntDef(Hlaska, -1); + if Cislo >= Cplg_HlaskyBase then + for LTxt := Succ(Low(TplgTxt)) to High(TplgTxt) do + if Cislo = Integer(GplgHlasky[LTxt].W) then // pretypovani, aby nerval kompilator warning + begin + // [RK 18.07.2008] nebylo pres plgCtiOznam() + Result := plgCtiOznam(LTxt); //GplgHlasky[LTxt].H; + Exit; + end; + + Result := Hlaska; +end; + +{ --------------------------------------------------------------------------- } + +function plgHasPropertyRTTI(Instance: TObject; const aProperty : String): Boolean; +begin + Result := Assigned(GetPropInfo(Instance, aProperty)); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetStringPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: String): Boolean; + var + PropInfo : PPropInfo; +begin + PropInfo := GetPropInfo(Instance, aProperty); + if Assigned(PropInfo) then + begin + aValue := GetStrProp(Instance, PropInfo); + Result := True; + end + else + Result := False; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetObjectPropValueOfObjectRTTI( + Instance: TObject; const aProperty: String; var aValue: TObject): Boolean; + var + PropInfo : PPropInfo; +begin + PropInfo := GetPropInfo(Instance, aProperty); + if Assigned(PropInfo) then + begin + aValue := GetObjectProp(Instance, PropInfo); + Result := True; + end + else + Result := False; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfObjectRTTI( Instance : TObject; + const AProperty : array of string; + const AValues : array of const); + var + JJ : Integer; + PropInfo : PPropInfo; + + { +++++++++++++++++++++++++++ } + + procedure _RaiseErrorVar(const aPropKind: String; aVarKind: Integer); + begin + raise + Exception.Create( + Format('plgMain.plgSetPropertiesOfObjectRTTI: nezapojeny typ variantu (%s,%d)', + [aPropKind, aVarKind])); + end; + + { +++++++++++++++++++++++++++ } + +begin + if not Assigned(Instance) then Exit; + + for JJ := Low(AProperty) to High(AProperty) do + begin + PropInfo := GetPropInfo(Instance, AProperty[JJ]); + if Assigned(PropInfo) then + begin + case PropInfo^.PropType^^.Kind of + tkInteger: + case AValues[JJ].VType of + vtInteger: + SetOrdProp(Instance, PropInfo, AValues[JJ].VInteger); + else + _RaiseErrorVar('tkInteger', AValues[JJ].VType); + end; + + tkEnumeration: + case AValues[JJ].VType of + vtBoolean: + SetEnumProp(Instance, PropInfo, BooleanIdents[AValues[JJ].VBoolean]); + vtString: + SetEnumProp(Instance, PropInfo, string(AValues[JJ].VString^)); + vtAnsiString: + SetEnumProp(Instance, PropInfo, string(AnsiString(AValues[JJ].VAnsiString))); + vtWideString: + SetEnumProp(Instance, PropInfo, WideString(AValues[JJ].VWideString)); + vtUnicodeString: + SetEnumProp(Instance, PropInfo, UnicodeString(AValues[JJ].VUnicodeString)); + else + _RaiseErrorVar('tkEnumeration', AValues[JJ].VType); + end; + + tkClass: + case AValues[JJ].VType of + vtObject: + SetObjectProp(Instance, PropInfo, AValues[JJ].VObject); + vtPointer: + SetObjectProp(Instance, PropInfo, TObject(AValues[JJ].VPointer)); + else + _RaiseErrorVar('tkClass', AValues[JJ].VType); + end; + + tkString, tkLString, tkWString, tkUString: + case AValues[JJ].VType of + vtString: + SetStrProp(Instance, PropInfo, string(AValues[JJ].VString^)); + vtAnsiString: + SetAnsiStrProp(Instance, PropInfo, AnsiString(AValues[JJ].VAnsiString)); + vtWideString: + {$IF CompilerVersion >= 36.0} + SetStrProp(Instance, PropInfo, WideString(AValues[JJ].VWideString)); + {$ELSE} + SetWideStrProp(Instance, PropInfo, WideString(AValues[JJ].VWideString)); + {$ENDIF} + vtUnicodeString: + {$IF CompilerVersion >= 36.0} + SetStrProp(Instance, PropInfo, UnicodeString(AValues[JJ].VUnicodeString)); + {$ELSE} + SetUnicodeStrProp(Instance, PropInfo, UnicodeString(AValues[JJ].VUnicodeString)); + {$ENDIF} + else + _RaiseErrorVar('tkString/tkLString/tkWString/tkUString', AValues[JJ].VType); + end; + + else + raise + Exception.Create( + Format('plgMain.plgSetPropertiesOfObjectRTTI: nezapojeny typ property (%d)', + [Integer(PropInfo^.PropType^^.Kind)])); + end; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfListOfObjectsRTTI( AObjectList : TList; + const AProperty : array of string; + const AValues : array of const); + var + II : Integer; +begin + if Assigned(AObjectList) then + for II := 0 to AObjectList.Count - 1 do + plgSetPropertiesOfObjectRTTI(TObject(AObjectList.Items[II]), AProperty, AValues); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfListOfObjectsRTTI( AObjectList : TStringList; + const AProperty : array of string; + const AValues : array of const); + var + II : Integer; +begin + if Assigned(AObjectList) then + for II := 0 to AObjectList.Count - 1 do + plgSetPropertiesOfObjectRTTI(AObjectList.Objects[II], AProperty, AValues); +end; + +{ --------------------------------------------------------------------------- } + +procedure plgSetPropertiesOfArrayOfObjectsRTTI(const AObjectArray : array of TObject; + const AProperty : array of string; + const AValues : array of const); + var + II : Integer; +begin + for II := Low(AObjectArray) to High(AObjectArray) do + plgSetPropertiesOfObjectRTTI(TObject(AObjectArray[II]), AProperty, AValues); +end; + +{ --------------------------------------------------------------------------- } + +function plgFilterStr(const S: String; CS: TSysCharSet): String; + var + II : Integer; +begin + Result := ''; + for II := 1 to Length(S) do + if not CharInSet(S[II], CS) then + Result := Result + S[II]; +end; + +{ ---------------------------------------------------------------------------- } + +function plgFilterVseKrome(const S: string; CS: TSysCharSet): string; + var + II : Integer; +begin + Result := ''; + for II := 1 to Length(S) do + if CharInSet(S[II], CS) then + Result := Result + S[II]; +end; + +{ --------------------------------------------------------------------------- } + +function plgCharStr(Znak: Char; Delka: Integer): String; +begin + Result := StringOfChar(Znak, Delka); +end; + +{ ---------------------------------------------------------------------------- } + +function plgTextToBinary(const S: AnsiString): String; + var + BufSize: Integer; +begin + BufSize := Length(S); + SetLength(Result, 2 + (2 * BufSize)); + Result[1] := '0'; + Result[2] := 'x'; + Classes.BinToHex(PAnsiChar(S), PWideChar(Result) + 2, BufSize); +end; + +{ --------------------------------------------------------------------------- } + +function plgNQuotedStr(const S: string): string; inline; +begin + Result := 'N' + SysUtils.QuotedStr(S); +end; + +{ --------------------------------------------------------------------------- } + +function plgGUIDBezPomlcek(const GUIDStr: String): String; +begin + Result := plgFilterStr(GUIDStr, ['{','-','}']); +end; + +{ --------------------------------------------------------------------------- } + +function plgVarSameValue(const A, B: Variant): Boolean; + var + II, XLo, XHi: Integer; +begin + if VarIsArray(A) or VarIsArray(B) then + begin + Result := False; + + // pole a nepole jsou si vdy nerovna + if (not VarIsArray(A)) or + (not VarIsArray(B)) then Exit; + + // ob pole mus mt prv jednu dimenzi + if (VarArrayDimCount(A) <> 1) or + (VarArrayDimCount(B) <> 1) then Exit; + + // pole se povauj za shodn, pokud maj stejn doln a horn index + XLo := VarArrayLowBound(A, 1); + XHi := VarArrayHighBound(A, 1); + if (XLo <> VarArrayLowBound(B, 1)) or + (XHi <> VarArrayHighBound(B, 1)) then Exit; + + // mohu porovnvat + for II := XLo to XHi do + if not VarSameValue(A[II], B[II]) then Exit; + + // kdy to dolo a sem, tak se rovnaj + Result := True; + end + else + // ani A ani B nen pole, mohu "postaru" + Result := VarSameValue(A, B); +end; + +{ --------------------------------------------------------------------------- } + +function plgObracenaKonverze(const AKonverze : String) : TStringList; + var + II, JJ : Integer; + PomStr : String; +begin + Result := TStringList.Create; + Result.Text := AKonverze; + for II := 0 to Result.Count-1 do + begin + PomStr := Result[II]; + JJ := Pos('=', PomStr); + Result[II] := Format('%s=%s', [Copy(PomStr, JJ+1, MaxInt), Copy(PomStr, 1, JJ-1)]); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgNaplnNeDBComboZVenku(ACombo : TCustomComboBox; const AKonverze : String; + ATridit: Boolean = False) : Boolean; + var + II, JJ : Integer; + SL : TStringList; +begin + Result := True; + + if Trim(AKonverze) = '' then Exit; + + SL := TStringList.Create; + try + SL.Text := AKonverze; + for II := 0 to SL.Count-1 do + begin + JJ := Pos('=', SL.Strings[II]); + // zapamatuj si skutecnou "DB" hodnotu + if ATridit then + SL.Objects[II] := TObject(StrToIntDef(Copy(SL.Strings[II], 1, JJ-1), -1)); + SL.Strings[II] := Copy(SL.Strings[II], JJ+1, MaxInt); + end; + + // setrideni seznamu + if ATridit then SL.Sorted := True; + + // zde se zavola DataChange a tim se nastavi aktualni hodnota + ACombo.Items := SL; + finally + SL.Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgNaplnComboZVenku(ADBCombo : TDBComboBox; AKonverze : String): Boolean; +begin + Result := plgNaplnNeDBComboZVenku(ADBCombo, AKonverze); + + // pokud se nezdari nastavit ItemIndex komponente, udelam to za ni - FM + if ADBCombo.ItemIndex = -1 then + if Assigned(ADBCombo.Field) then + ADBCombo.ItemIndex := ADBCombo.Items.IndexOf(ADBCombo.Field.Text); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetIndependentSQLDate(ADate: TDateTime): String; +begin + if ADate = 0 then + Result := 'NULL' + else + {! NEMENIT ! Tento format data je pro SQL nezavisly !} + Result := QuotedStr(FormatDateTime('yyyymmdd', ADate)); +end; + +{ --------------------------------------------------------------------------- } + +function plgGetIndependentSQLDateTime(ADateTime: TDateTime; Quotovat : Boolean = True): String; +begin + if ADateTime = 0 then + Result := 'NULL' + else + {! NEMENIT ! Tento format data je pro SQL nezavisly !} + begin + Result := FormatDateTime('yyyymmdd hh":"nn":"ss.zzz', ADateTime); + if Quotovat then + Result := QuotedStr(Result); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgGetIndependentSQLFloat(const AMaska: String; ACislo: Extended): String; + var + OldThousandSeparator : Char; + OldDecimalSeparator : Char; +begin + OldThousandSeparator := FormatSettings.ThousandSeparator; + OldDecimalSeparator := FormatSettings.DecimalSeparator; + + // pro jistotu, kdyby byly nastaveny oba stejne v mistnim nastaveni + FormatSettings.ThousandSeparator := ','; + FormatSettings.DecimalSeparator := '.'; {! NEMENIT ! SQL Server pouziva tecku !} + + try + // prevod cisla a vybagrovani oddelovace tisicu a prebytecnych mezer + Result := plgFilterStr(Format(AMaska, [ACislo]), [FormatSettings.ThousandSeparator, ' ']); + finally + FormatSettings.ThousandSeparator := OldThousandSeparator; + FormatSettings.DecimalSeparator := OldDecimalSeparator; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgHelpForm(const ACaption, AText: String); + var + LForm : TForm; +begin + LForm := TForm.CreateNew(nil); + try + with TButton.Create(LForm) do + begin + Parent := LForm; + Cancel := True; + ModalResult := mrCancel; + Width := 0; + Height := 0; + end; + + with TMemo.Create(LForm) do + begin + Parent := LForm; + Align := alClient; + Lines.Text := AText; + ReadOnly := True; + end; + + with LForm do + begin + Caption := ACaption; + Font.Height := -11; + WindowState := wsMaximized; + + ShowModal; + end; + finally + LForm.Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratVztah(Index: Integer): PplgVztahDef; +begin + if (Index >= Low(GDefiniceVztahu)) and (Index <= High(GDefiniceVztahu)) then + Result := @GDefiniceVztahu[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratExtAkci(Index: Integer): PplgExtAkceDef; +begin + if (Index >= Low(GDefiniceExtAkci)) and (Index <= High(GDefiniceExtAkci)) then + Result := @GDefiniceExtAkci[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratExtAttr(Index: Integer): PplgExterniAtribut; +begin + if (Index >= Low(GDefiniceExtAttr)) and (Index <= High(GDefiniceExtAttr)) then + Result := @GDefiniceExtAttr[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratExtTrigger(Index: Integer): PplgExterniTrigger; +begin + if (Index >= Low(GDefiniceExtTrigger)) and (Index <= High(GDefiniceExtTrigger)) then + Result := @GDefiniceExtTrigger[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratZmenovySkript(Index : Integer): PplgZmenovySkript; +begin + if (Index >= Low(GZmenoveSkripty)) and (Index <= High(GZmenoveSkripty)) then + Result := @GZmenoveSkripty[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratUProc(Index: Integer): PplgUlozenaProcedura; +begin + if (Index >= Low(SeznamUlozenychProcedur)) and (Index <= High(SeznamUlozenychProcedur)) then + Result := @SeznamUlozenychProcedur[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgVratUzivFunkci(Index: Integer): PplgUzivatelskaFunkce; +begin + if (Index >= Low(SeznamUzivatelskychFunkci)) and (Index <= High(SeznamUzivatelskychFunkci)) then + Result := @SeznamUzivatelskychFunkci[Index] + else + Result := nil; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeNejakaTabulka(var Prvni: TplgTabulka): Boolean; +begin + Prvni := tZadna; + + Result := High(TplgTabulka) > Prvni; + if Result and (Cplg_SeznamTabulek[tZadna] = nil) then + Prvni := Succ(Prvni); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeNejakyPrehled(var Prvni: TplgBrowse): Boolean; +begin + Prvni := bZadny; + + Result := High(TplgBrowse) > Prvni; + if Result then + Prvni := Succ(Prvni); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeNejakySoudek(var Prvni: TplgSoudek): Boolean; +begin + Prvni := sdNeniVidet; + + Result := High(TplgSoudek) > Prvni; + if Result then + Prvni := Succ(Prvni); +end; + +{ --------------------------------------------------------------------------- } + +function FontExistsCallback(const lplf: TLogFont; const lptm: TTextMetric; + dwType: DWORD; lpData: LPARAM): Integer; stdcall; +begin + Boolean(Pointer(lpData)^) := True; + Result := 1; +end; + +{ --------------------------------------------------------------------------- } + +function plgFontExistuje(const FaceName: String): Boolean; + var + DC: HDC; +begin + Result := False; + DC := GetDC(0); + try + EnumFonts(DC, PChar(FaceName), @FontExistsCallback, @Result); + finally + ReleaseDC(0, DC); + end; +end; + +{ --------------------------------------------------------------------------- } + +function plgTestMSSansSerifFont(const AFontName: string): String; +begin + // nahrada fontu "MS Sans Serif" jinym pismem (je to hnusne rastrove pismo) + if not SameText(AFontName, 'MS Sans Serif') then + Result := AFontName + else + if plgFontExistuje('Microsoft Sans Serif') then + Result := 'Microsoft Sans Serif' + else + if plgFontExistuje('Tahoma') then + Result := 'Tahoma' + else +// if FontExists('Segoe UI') then +// Result := 'Segoe UI' +// else + Result := AFontName; +end; + +{ --------------------------------------------------------------------------- } + +function plgPrepniJazykoveDLL(Helios: IHelios; Jazyk1, Jazyk2: Integer): Boolean; + + { +++++++++++++++++++++++++++ } + + procedure ZkusJazyk(J: Integer); + var + H: HINST; + A: TplgPrekladHlasekA; + W: TplgPrekladHlasekW; + CP: TplgPrekladHlasekCP; + DLLName: string; + OK: Boolean; + begin + // zjisteni jazykoveho DLL + DLLName := PluginKonfig.PluginJazykoveDLL_Ext(J); + + // neni nastaveno jazykove DLL => jazyk nebyl prepnut + OK := (DLLName <> ''); + if OK then + begin + // jazykove DLL neexistuje => jazyk nebyl prepnut + DLLName := ExtractFilePath(plgGetPluginPathAndName) + DLLName; + OK := FileExists(DLLName); + end; + + if not OK then + begin + // slovenstina ma vyjimku (je primo v plgHlasky) + if J = Cplg_jSlovenctina then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasek04.Create); + Exit; + end; + + H := LoadLibrary(PChar(DLLName)); + try + if H > 0 then + begin + @A := GetProcAddress(H, 'CtiOznamID'); + if Assigned(A) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekA.Create(H, A)) + else + begin + @CP := GetProcAddress(H, 'TranslateCP'); + if Assigned(CP) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekCP.Create(H, CP)) + else + begin + @W := GetProcAddress(H, 'CtiOznamIDW'); + if Assigned(W) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekW.Create(H, W)) + else + begin + @W := GetProcAddress(H, 'TranslateW'); + if Assigned(W) then + AktivniJazyky.AddObject(IntToStr(J), TplgJazykPrekladHlasekW.Create(H, W)) + else + RaiseLastOSError; + end; + end; + end; + end + else + RaiseLastOSError; + except + on E: Exception do + begin + Helios.Error(#1'Chyba pi natn jazykovho DLL'#1#13+ + DLLName + #13#13 + E.Message); + end; + end; + end; + + { +++++++++++++++++++++++++++ } + +begin + // -2 prichazi z instalace po instalaci ruznych jazykovych mutaci do TabExtHlasky + if Jazyk1 = -2 then + Jazyk1 := AktivniJazyk1; + + if Jazyk2 = -2 then + Jazyk2 := AktivniJazyk2; + + // nejdrive uvolnime aktivni DLL + AktivniJazyky.Clear; + + case Jazyk1 of + Cplg_jCeskyASCII, Cplg_jCesky: + begin + _plgCtiOznam := _plgCtiOznam1; + Result := True; + end; + + else + begin + ZkusJazyk(Jazyk1); + + if (Jazyk1 <> Jazyk2) and (Jazyk2 <> Cplg_jJazykNedefinovan) then + ZkusJazyk(Jazyk2); + + Result := (AktivniJazyky.Count > 0); + if Result then + _plgCtiOznam := _plgCtiOznamX + else + _plgCtiOznam := _plgCtiOznam1; + end; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure InicializaceJadraPluginu(Helios: IHelios); + var + LTabulka: TplgTabulka; + LBrowse: TplgBrowse; + PA, PAOld: PplgAtributTabulky; + UA: TplgUzivatelskeAtributyDef; + II, JJ: Integer; + TD: PplgTabulkaDef; + PVD: PplgVztahDef; + AT: PplgExterniAtribut; + NewDef, OldDef: PplgTabulkaDef; + SLVyjmute: TStringList; + Q: IHeQuery; + Jaz1, Jaz2: Integer; + LSysDB: string; +begin + plgLadit_KontrolaPriInicializaci; + + // --- inicializace tabulek ------------------------------------------------- + if not InicializaceProbehla then + begin + InicializaceProbehla := True; + + if plgJeNejakaTabulka(LTabulka) then + for LTabulka := LTabulka to High(TplgTabulka) do + begin + // nejprve se vytvori definice podle Predka + if Cplg_SeznamTabulek[LTabulka].Predek <> tZadna then + begin + NewDef := Cplg_SeznamTabulek[LTabulka]; + OldDef := Cplg_SeznamTabulek[Cplg_SeznamTabulek[LTabulka].Predek]; + + plgLadit_KontrolaPredkaTabulky(LTabulka, NewDef, OldDef); + + SLVyjmute := TStringList.Create; + try + SLVyjmute.Text := NewDef.VyjmuteAttrPredka; + SLVyjmute.Sorted := True; + + // pocet atributu predka + JJ := 0; + PA := OldDef.Atributy; + for II := 1 to OldDef.PocetAtributu do + begin + if SLVyjmute.IndexOf(PA.JmenoSys) = -1 then Inc(JJ); + Inc(PA); + end; + + // pridame pocet atributu nove tabulky + II := NewDef.PocetAtributu + JJ; + + // vytvorime novy seznam atributu + GetMem(PA, II * SizeOf(TplgAtributTabulky)); + FillChar(PA^, II * SizeOf(TplgAtributTabulky), 0); + + // seznam priradime a zapamatujeme si puvodni + PAOld := NewDef.Atributy; + NewDef.Atributy := PA; + + // prenos puvodni definice + if NewDef.PocetAtributu <> 0 then + begin + Move(PAOld^, NewDef.Atributy^, NewDef.PocetAtributu * SizeOf(TplgAtributTabulky)); + Inc(PA, NewDef.PocetAtributu); // prvni volna pozice + end; + NewDef.PocetAtributu := II; // novy pocet atributu + + // prekopirovani definice predka + PAOld := OldDef.Atributy; + for II := 1 to OldDef.PocetAtributu do + begin + if SLVyjmute.IndexOf(PAOld.JmenoSys) = -1 then + begin + plgLadit_KontrolaPrevzetiAtributuPredkaTabulky(LTabulka, PAOld); + + PA^ := PAOld^; + with PA^ do + begin + if not (plg_dvtKopirovatOmezeni in NewDef.DalsiVlastnosti) then + begin + PK_UQ := puNic; + ForeignKey := ''; + Check := ''; + end; + if Pocitany <> '' then + Pocitany := StringReplace(Pocitany, OldDef.JmenoSys+'.', NewDef.JmenoSys+'.', [rfReplaceAll, rfIgnoreCase]); + end; + + Inc(PA); + end; + + Inc(PAOld); + end; + finally + SLVyjmute.Free; + end; + end; + + // inicializace atributu + PA := Cplg_SeznamTabulek[LTabulka].Atributy; + for II := 1 to Cplg_SeznamTabulek[LTabulka].PocetAtributu do + begin + if PA.UTyp <> plg_utaZadny then + begin + UA := Cplg_UzivatelskeAtributy[PA.UTyp]; + if PA.JmenoSys = '' then PA.JmenoSys := UA.A.JmenoSys; + if PA.JmenoVerejne = '' then PA.JmenoVerejne := UA.A.JmenoVerejne; + if PA.JmenoVerejneTxt = plxNic then PA.JmenoVerejneTxt := UA.A.JmenoVerejneTxt; + if PA.JmenoVerejneZkr = '' then PA.JmenoVerejneZkr := UA.A.JmenoVerejneZkr; + if PA.JmenoVerejneZkrTxt = plxNic then PA.JmenoVerejneZkrTxt := UA.A.JmenoVerejneZkrTxt; + if PA.Typ = taBlbe then PA.Typ := UA.A.Typ; + if PA.Delka = 0 then PA.Delka := UA.A.Delka; + if PA.Pocitany = '' then PA.Pocitany := UA.A.Pocitany; + if PA.NULL = nNic then PA.NULL := UA.A.NULL; + if PA.PK_UQ = puNic then PA.PK_UQ := UA.A.PK_UQ; + if PA.ForeignKey = '' then PA.ForeignKey := UA.A.ForeignKey; + if PA.ServerDefault = '' then PA.ServerDefault := UA.A.ServerDefault; + if PA.CHECK = '' then PA.CHECK := Format(UA.A.CHECK, [PA.JmenoSys]); + if PA.Vyzadovany = vDefault then PA.Vyzadovany := UA.A.Vyzadovany; + if PA.Verejny = vDefault then PA.Verejny := UA.A.Verejny; + if PA.Konverze = '' then PA.Konverze := UA.A.Konverze; + if PA.KonverzeTxt = plxNic then PA.KonverzeTxt := UA.A.KonverzeTxt; + if PA.SirkaSloupce = 0 then PA.SirkaSloupce := UA.A.SirkaSloupce; + if PA.MaskaDisplay = '' then PA.MaskaDisplay := UA.A.MaskaDisplay; + if not PA.Sumovat then PA.Sumovat := UA.A.Sumovat; + if PA.Hint = '' then PA.Hint := UA.A.Hint; + if PA.HintTxt = plxNic then PA.HintTxt := UA.A.HintTxt; + if PA.DalsiVlastnosti = [] then PA.DalsiVlastnosti := UA.A.DalsiVlastnosti; + if PA.HeliosAttr = '' then PA.HeliosAttr := UA.A.HeliosAttr; + + // kvuli definice tabulek... + PA.UTyp := plg_utaZadny; + end; + + // z nedefinovaneho stavu na definovany + if PA.NULL = nNic then PA.NULL := nNOTNULL; + if PA.Vyzadovany = vDefault then PA.Vyzadovany := vFalse; + if PA.Verejny = vDefault then PA.Verejny := vFalse; + + plgLadit_KontrolaAtributu(LTabulka, PA, II); + + Inc(PA); + end; + + plgLadit_KontrolaMaTabulkaID(LTabulka); + end; + end; + + // --- nastaveni jazyka ----------------------------------------------------- + Q := Helios.OpenSQL( + 'SELECT Jazyk, Jazyk2 FROM TabUziv WHERE LoginName = ' + Cplg_LoginName); + + if Q.RecordCount > 0 then + begin + Jaz1 := Q.FieldValues(0); + Jaz2 := Q.FieldValues(1); + end + else + begin + Jaz1 := Cplg_jCesky; + Jaz2 := Cplg_jJazykNedefinovan; + end; + + if (AktivniJazyk1 <> Jaz1) or (AktivniJazyk2 <> Jaz2) then + begin + AktivniJazyk1 := Jaz1; + AktivniJazyk2 := Jaz2; + + plgPrepniJazykoveDLL(Helios, AktivniJazyk1, AktivniJazyk2); + + // --- TABULKY --- + if plgJeNejakaTabulka(LTabulka) then + for LTabulka := LTabulka to High(TplgTabulka) do + begin + TD := Cplg_SeznamTabulek[LTabulka]; + if Assigned(TD) then + begin + if TD.JmenoTxt <> plxNic then + TD.Jmeno := plgCtiOznam(TD.JmenoTxt); + + PA := TD.Atributy; + for II := 1 to TD.PocetAtributu do + begin + if PA.JmenoVerejneTxt <> plxNic then + PA.JmenoVerejne := plgCtiOznam(PA.JmenoVerejneTxt) + else + if PA.HeliosAttr <> '' then // [RK 01.04.2010] + PA.JmenoVerejne := Helios.AttrPublicName(PA.HeliosAttr); + + if PA.JmenoVerejneZkrTxt <> plxNic then + PA.JmenoVerejneZkr := plgCtiOznam(PA.JmenoVerejneZkrTxt); + + if PA.KonverzeTxt <> plxNic then + PA.Konverze := plgCtiOznam(PA.KonverzeTxt) + else + if PA.HeliosAttr <> '' then // [RK 01.04.2010] + PA.Konverze := Helios.Konverze(PA.HeliosAttr); + + if PA.HintTxt <> plxNic then + PA.Hint := plgCtiOznam(PA.HintTxt); + + Inc(PA); + end; + end; + end; + + // --- PREHLEDY --- + if plgJeNejakyPrehled(LBrowse) then + for LBrowse := LBrowse to High(TplgBrowse) do + begin + with Cplg_SeznamVychozichNastaveniBrowse[LBrowse] do + begin + if Jmeno = '*' then + begin + TD := plgGetTabulkaDef(HlavniTabulka); + if Assigned(TD) then + Jmeno := TD.Jmeno; + end + else + if JmenoTxt <> plxNic then + Jmeno := plgCtiOznam(JmenoTxt); + + plgLadit_KontrolaVerejnehoJmenaPrehledu(LBrowse); + + if PomocnicekTxt <> plxNic then + Pomocnicek := plgCtiOznam(PomocnicekTxt); + end; + end; + + // --- VAZBY --- + II := 1; + PVD := plgVratVztah(II); + while Assigned(PVD) do + begin + if PVD.NazevLPTxt <> plxNic then + PVD.NazevLP := plgCtiOznam(PVD.NazevLPTxt) + else + if PVD.NazevLP = '' then + PVD.NazevLP := Cplg_SeznamVychozichNastaveniBrowse[plgJmenoView2Browse(PVD.TabPStr)].Jmeno; + + if PVD.NazevPLTxt <> plxNic then + PVD.NazevPL := plgCtiOznam(PVD.NazevPLTxt) + else + if PVD.NazevPL = '' then + PVD.NazevPL := Cplg_SeznamVychozichNastaveniBrowse[plgJmenoView2Browse(PVD.TabLStr)].Jmeno; + + plgLadit_KontrolaVazby(PVD); + + Inc(II); + PVD := plgVratVztah(II); + end; + + // --- EXTERNI ATRIBUTY --- + II := 1; + AT := plgVratExtAttr(II); + while Assigned(AT) do + begin + if AT.JmenoVerejneTxt <> plxNic then + AT.JmenoVerejne := plgCtiOznam(AT.JmenoVerejneTxt); + + if AT.JmenoVerejneZkrTxt <> plxNic then + AT.JmenoVerejneZkr := plgCtiOznam(AT.JmenoVerejneZkrTxt); + + if AT.KonverzeTxt <> plxNic then + AT.Konverze := plgCtiOznam(AT.KonverzeTxt); + + if AT.PoznamkaTxt <> plxNic then + AT.Poznamka := plgCtiOznam(AT.PoznamkaTxt); + + if AT.BublinaTxt <> plxNic then + AT.Bublina := plgCtiOznam(AT.BublinaTxt); + + if AT.ExtEd_ZalozkaTxt <> plxNic then + AT.ExtEd_Zalozka := plgCtiOznam(AT.ExtEd_ZalozkaTxt); + + Inc(II); + AT := plgVratExtAttr(II); + end; + end; + + // --- nacteni ikonek ------------------------------------------------------- + if not Assigned(DataModuleGlobPLG) then + begin + // barevne ikonky jsou implementovany az od verze 3.0.2020.0152 + if Helios.HeVersion >= $030020200152 then + begin + LSysDB := Helios.SystemDB; + if LSysDB <> '' then + begin + if not IsValidIdent(LSysDB) then + begin + LSysDB := AnsiQuotedStr(LSysDB, ']'); + LSysDB[1] := '['; + end; + + try + G_SadaIkonekKterouChci := Helios.OpenSQL('SELECT SadaIkonek FROM ' + LSysDB + '..TabUserCfg WHERE LoginName = '+ Cplg_LoginName).FieldValues(0); + except + G_SadaIkonekKterouChci := C_SadaIkonek_Default; + end; + end; + end; + + DataModuleGlobPLG := TDataModuleGlobPLG.Create(Application); + end; + + // --- nastaveni legislativy ------------------------------------------------ + if Global_Legislativa = -1 then + Global_Legislativa := Helios.OpenSQL('SELECT Legislativa FROM TabHGlob').FieldValues(0); +end; + +{ --------------------------------------------------------------------------- } + +function plgJeParametrXX: Boolean; + var + II: Integer; + S: String; +begin + for II := 1 to ParamCount do + begin + S := ParamStr(II); + if (Length(S) >= 3) and CharInSet(S[1], ['/','-']) and (UpperCase(Copy(S,2,2)) = 'XX') then + begin + Result := True; + Exit; + end; + end; + Result := False; +end; + +{ --------------------------------------------------------------------------- } + +function plgJeParametrX: Boolean; +begin + Result := FindCmdLineSwitch('X', ['/','-'], True); +end; + +{ --------------------------------------------------------------------------- } + +var + G_TichaInstalace: Boolean; + +function plgJeTichaInstalace: Boolean; +begin + Result := G_TichaInstalace or plgJeParametrXX; +end; + +{ --------------------------------------------------------------------------- } + +function plgExtKomIDInstalace(Helios: IHelios): Boolean; +begin + Result := (Helios.ExtKomID = Cplg_ExtKomID_Instalace) or + (Helios.ExtKomID = Cplg_ExtKomID_TichaInstalace); +end; + +{ --------------------------------------------------------------------------- } + +procedure InstalacePluginu(Helios: IHelios; TichaInstalace: Boolean); +begin + G_TichaInstalace := TichaInstalace; + with TfrmInstalace.Create(Application) do + try + ShowModalEx(Helios); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure InformaceOPluginu(Helios: IHelios); +begin + with TfrmAbout.Create(Application) do + try + ShowModalEx(Helios); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgPresunHlaskyNaWeb(Helios: IHelios); +begin + with TfrmPreklady.Create(Application) do + try + ShowModalEx(Helios, sphNaWeb); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure plgStahniZWebuJazykovaDLL(Helios: IHelios); +begin + with TfrmPreklady.Create(Application) do + try + ShowModalEx(Helios, sphDoDLL); + finally + Free; + end; +end; + +{ --------------------------------------------------------------------------- } + +procedure SpustControllerEditoru(Helios: IHelios); + var + LControllerClass: TplgEditorControllerClass; + LController: TplgEditorController; + II: Integer; + LKlicProDB: string; +begin + LControllerClass := nil; + LKlicProDB := Helios.FormIdent; + + II := Low(GDefiniceControlleru) + 1; // prvni prvek je defaultne prazdny + while II <= High(GDefiniceControlleru) do + begin + if LKlicProDB = GDefiniceControlleru[II].FormIdent then + begin + LControllerClass := TplgEditorControllerClass(GDefiniceControlleru[II].ControllerClass); + Break; + end; + Inc(II); + end; + + if LControllerClass <> nil then + begin + LController := LControllerClass.Create(Helios); + Helios.RegisterPluginController(LController); + end + {$IFnDEF BezLadit} + else + Helios.Error(plgCtiOznam('{Ladit} - Controller nenalezen!')) + {$ENDIF} + ; +end; + +{ ########################################################################### } + +initialization + AktivniJazyky := TStringList.Create(True); + +{ ########################################################################### } + +end. + +// LOCAL | USER: rk | DT: 07.03.2005 11:29:59 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 07.03.2005 13:20:00 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rj | DT: 07.03.2005 15:01:47 | VER: | TXT: | PC: RJ-XP | FROM: L:\H\IQ10\Extern een\Eurest\PluginEurest | TO: C:\Eurest\Bin +// LIB | USER: rj | DT: 07.03.2005 15:03:13 | VER: ?? LB ?? | TXT: | PC: RJ-XP | FROM: C:\Eurest\Bin | TO: L:\H\IQ10\Extern een\Eurest\PluginEurest +// LOCAL | USER: rk | DT: 08.03.2005 12:30:08 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 13:28:59 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 16:00:32 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 16:20:02 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 16:33:56 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 16:48:09 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 09.03.2005 11:20:26 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 09.03.2005 12:47:21 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 09.03.2005 12:47:21 | VER: ?? LB ?? | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 09.03.2005 12:56:33 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 09.03.2005 13:27:38 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 09.03.2005 13:28:08 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 10.03.2005 13:11:42 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 10.03.2005 13:13:53 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 14.03.2005 09:33:31 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 14.03.2005 10:04:09 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 14.03.2005 10:12:37 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 14.03.2005 11:26:54 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: rk | DT: 15.03.2005 13:49:38 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 15.03.2005 13:50:24 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 24.03.2005 13:40:02 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 24.03.2005 13:40:16 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 25.03.2005 11:58:14 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 25.03.2005 12:54:56 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 04.04.2005 14:58:55 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 04.04.2005 15:12:36 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 06.05.2005 15:43:40 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 06.05.2005 16:25:48 | VER: ?? LB ?? | TXT: SpustAkciPluginuProTab | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.05.2005 09:28:27 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.05.2005 09:44:57 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.05.2005 12:41:07 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.05.2005 12:42:54 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 18.05.2005 11:14:44 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 18.05.2005 11:17:23 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 18.05.2005 11:19:14 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 18.05.2005 11:19:51 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 18.05.2005 13:24:47 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 18.05.2005 13:31:14 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 18.05.2005 13:52:13 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 18.05.2005 13:53:16 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 19.05.2005 12:08:09 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 19.05.2005 13:13:03 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 25.05.2005 10:34:16 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 25.05.2005 11:13:07 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.06.2005 13:59:23 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.06.2005 14:11:01 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.06.2005 12:53:34 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.06.2005 12:55:30 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.07.2005 12:50:37 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.07.2005 12:54:19 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.07.2005 12:57:29 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.07.2005 13:01:49 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.07.2005 13:47:03 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.07.2005 13:47:14 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.07.2005 13:48:06 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.07.2005 13:48:14 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 12.07.2005 16:30:05 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 12.07.2005 16:32:49 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 21.07.2005 10:33:35 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 21.07.2005 10:35:40 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 21.07.2005 10:49:31 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 21.07.2005 10:52:50 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 26.07.2005 15:14:31 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 26.07.2005 15:29:54 | VER: ?? LB ?? | TXT: plgBrowse2BID - doplnena vyjimka | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.08.2005 09:43:19 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.08.2005 09:46:46 | VER: ?? LB ?? | TXT: beze zmn | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.08.2005 09:50:50 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.08.2005 10:09:05 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.08.2005 10:17:24 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.08.2005 10:17:27 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 01.08.2005 10:44:09 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 01.08.2005 11:03:49 | VER: ?? LB ?? | TXT: uprava okolo Succ() | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.08.2005 13:34:09 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.08.2005 13:52:10 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.08.2005 15:36:14 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.08.2005 15:37:50 | VER: ?? LB ?? | TXT: taFloat | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 04.08.2005 09:06:21 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 04.08.2005 09:10:36 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 05.08.2005 09:52:58 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 05.08.2005 09:56:34 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.08.2005 11:04:29 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.08.2005 11:07:16 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 10.08.2005 09:26:20 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 10.08.2005 10:08:01 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 10.08.2005 10:50:48 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 10.08.2005 10:53:32 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 10.08.2005 11:07:54 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 10.08.2005 11:09:39 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 10.08.2005 12:04:50 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 10.08.2005 13:41:39 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 11.08.2005 16:32:36 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 11.08.2005 16:32:49 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 15.08.2005 11:09:26 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 15.08.2005 11:19:34 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 24.08.2005 14:11:49 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 24.08.2005 14:21:36 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 30.08.2005 14:03:02 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 30.08.2005 14:18:08 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 31.08.2005 13:00:20 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 31.08.2005 13:08:09 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 02.09.2005 13:08:47 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 02.09.2005 13:22:17 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 07.09.2005 14:29:58 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 07.09.2005 14:31:14 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.10.2005 10:38:44 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 17.10.2005 10:39:28 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 09.11.2005 14:38:26 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 09.11.2005 14:48:53 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 16.01.2006 12:06:22 | VER: | TXT: | PC: RK-2K | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: RK | DT: 16.01.2006 12:16:33 | VER: 20060116 | TXT: | PC: RK-2K | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:21:33 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:51:17 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:55:13 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:55:39 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.02.2006 13:25:38 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 22.02.2006 13:40:28 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.02.2006 14:11:26 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 22.02.2006 14:11:36 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 10:11:23 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.03.2006 10:18:50 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.03.2006 16:05:35 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 21.03.2006 16:09:21 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.03.2006 10:08:26 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 22.03.2006 10:09:19 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.03.2006 10:10:21 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 22.03.2006 10:23:59 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.03.2006 10:25:35 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 22.03.2006 10:27:36 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.03.2006 10:28:39 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 22.03.2006 10:29:28 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 14.04.2006 08:33:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 14.04.2006 08:34:00 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.04.2006 13:23:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 18.04.2006 13:24:22 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.05.2006 15:03:09 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.05.2006 15:06:00 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 30.05.2006 13:43:34 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 30.05.2006 13:56:26 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 31.05.2006 12:05:12 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 31.05.2006 12:25:07 | VER: ?? LB ?? | TXT: plgJeParametrXX | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 07.06.2006 11:04:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 07.06.2006 11:07:04 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.06.2006 09:33:27 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.06.2006 09:40:23 | VER: ?? LB ?? | TXT: beze zmn | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 12.06.2006 12:32:25 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBodyKarty +// LIB | USER: RK | DT: 12.06.2006 12:57:44 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBodyKarty | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 22.06.2006 09:27:34 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 22.06.2006 09:36:18 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.06.2006 10:45:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiskalEasyPos +// LIB | USER: RK | DT: 29.06.2006 10:48:56 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiskalEasyPos | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 10.07.2006 09:43:32 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 10.07.2006 10:03:29 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.07.2006 13:28:22 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.07.2006 13:49:40 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.07.2006 14:16:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 17.07.2006 14:17:02 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.07.2006 15:14:30 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 17.07.2006 15:23:27 | VER: ?? LB ?? | TXT: odstraneni IFDEF Ladit | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 17.07.2006 15:54:36 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIBalickyAkce +// LIB | USER: RK | DT: 17.07.2006 16:04:52 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIBalickyAkce | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 09:17:30 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 18.07.2006 10:07:22 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2006 13:51:47 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginProFitnessZS +// LIB | USER: RK | DT: 18.07.2006 13:59:13 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginProFitnessZS | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 14:23:50 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 21.07.2006 14:32:50 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2006 15:41:41 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 24.07.2006 09:32:33 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 24.07.2006 13:41:44 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 24.07.2006 13:48:53 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 25.07.2006 15:38:49 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 25.07.2006 15:50:02 | VER: ?? LB ?? | TXT: plgBID2JmenoView | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 25.07.2006 16:35:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 25.07.2006 16:36:43 | VER: ?? LB ?? | TXT: zmena hlasek | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.07.2006 10:46:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 26.07.2006 10:50:56 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 31.07.2006 09:20:54 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 31.07.2006 09:45:33 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 10:36:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 10:42:31 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 10:42:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 11:10:21 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 11:11:15 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 11:12:00 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 09.08.2006 11:55:52 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 09.08.2006 11:56:56 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.09.2006 14:12:58 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 11.09.2006 08:42:29 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 11.09.2006 12:19:03 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 11.09.2006 12:19:21 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 11.09.2006 12:27:42 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 11.09.2006 12:31:16 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 11.09.2006 12:38:59 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 11.09.2006 12:50:46 | VER: ?? LB ?? | TXT: upravy kolem Succ(Low()) - vadi Delphi2006 | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 15.09.2006 08:23:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 15.09.2006 08:26:48 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 26.09.2006 09:01:48 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 26.09.2006 09:04:41 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.10.2006 08:54:23 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.10.2006 09:50:46 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.10.2006 09:34:24 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFiro +// LIB | USER: RK | DT: 04.10.2006 09:34:53 | VER: ?? LB ?? | TXT: beze zmn | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFiro | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.11.2006 10:23:57 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.11.2006 10:33:12 | VER: ?? LB ?? | TXT: uprava testu vazby sama na sebe | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 04.01.2007 10:58:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 04.01.2007 11:10:47 | VER: ?? LB ?? | TXT: zmena plgSkriptProDeleteJednohoZaznamu | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 03.05.2007 09:42:30 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 03.05.2007 09:46:34 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 08:55:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 08:57:56 | VER: ?? LB ?? | TXT: const -> var | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 09:41:50 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 10:26:23 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.11.2007 12:11:09 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 21.11.2007 12:46:38 | VER: ?? LB ?? | TXT: uprava kontroly externich triggeru | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 13.12.2007 12:59:07 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 13.12.2007 13:04:26 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 28.05.2008 13:47:45 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 28.05.2008 13:54:47 | VER: 20080528 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 28.05.2008 15:15:20 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginFilmoteka +// LIB | USER: RK | DT: 28.05.2008 15:15:59 | VER: 20080528 | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginFilmoteka | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 18.07.2008 10:03:18 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 18.07.2008 14:49:11 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 21.07.2008 15:02:53 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginLCSEIUctenek +// LIB | USER: RK | DT: 21.07.2008 15:03:51 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 29.09.2008 10:34:58 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 29.09.2008 13:48:56 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 09:59:21 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 09:59:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 30.09.2008 10:39:33 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 30.09.2008 10:40:09 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 03.10.2008 11:46:12 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 03.10.2008 11:51:32 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 12:38:50 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 13:34:19 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 02.03.2009 15:56:15 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 02.03.2009 15:59:48 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 03.03.2009 15:29:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 03.03.2009 15:45:54 | VER: ?? LB ?? | TXT: ticha instalace | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 12.03.2009 10:20:17 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 12.03.2009 10:33:14 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 13.03.2009 13:10:33 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 13.03.2009 13:11:52 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 13.03.2009 13:15:40 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 13.03.2009 13:20:45 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 16.03.2009 10:18:35 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginyBanka\PluginBanka0300 +// LIB | USER: RK | DT: 16.03.2009 10:20:00 | VER: 20090310 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginyBanka\PluginBanka0300 | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 21.04.2009 13:18:01 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 21.04.2009 13:48:49 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.05.2009 12:38:56 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ1\PluginExample +// LIB | USER: RK | DT: 20.05.2009 14:33:57 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ1\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 20.07.2009 10:25:50 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 20.07.2009 10:26:48 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 23.07.2009 09:59:40 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 23.07.2009 10:03:32 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 23.07.2009 14:25:03 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginLCSEIUctenek +// LIB | USER: RK | DT: 23.07.2009 14:28:45 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginLCSEIUctenek | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 29.07.2009 14:12:27 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 29.07.2009 14:50:51 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 17.08.2009 15:11:27 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 17.08.2009 15:14:32 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 28.08.2009 15:05:56 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: RK | DT: 28.08.2009 15:08:28 | VER: ?? LB ?? | TXT: beze zmn | PC: RK-VI-D | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: HT | DT: 15.09.2009 14:10:39 | VER: | TXT: nic | PC: HT-XP-D | FROM: L:\H\IQ10\PlugLib2 | TO: C:\Externi_a_pluginy\PluginBankaSporDrazdany +// LIB | USER: HT | DT: 15.09.2009 14:11:16 | VER: ?? LB ?? | TXT: | PC: HT-XP-D | FROM: C:\Externi_a_pluginy\PluginBankaSporDrazdany | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 24.09.2009 10:15:37 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 24.09.2009 10:23:26 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 24.09.2009 12:33:02 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 24.09.2009 12:35:32 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 22.12.2009 12:50:22 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 04.01.2010 13:50:00 | VER: 20100104 | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 13:50:42 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 13:53:39 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 01.04.2010 14:39:00 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 01.04.2010 14:49:45 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 26.05.2010 15:15:29 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 26.05.2010 15:26:50 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: RK | DT: 05.11.2010 09:25:44 | VER: | TXT: | PC: RK-VI-D | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: RK | DT: 05.11.2010 09:28:45 | VER: ?? LB ?? | TXT: | PC: RK-VI-D | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 30.06.2011 08:28:34 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 30.06.2011 08:36:10 | VER: ?? LB ?? | TXT: beze zmn | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 04.08.2011 08:18:09 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 04.08.2011 08:51:12 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 18.08.2011 16:10:42 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 18.08.2011 16:16:56 | VER: ?? LB ?? | TXT: plgMinimizeApplication | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.09.2011 16:50:13 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 13.09.2011 13:39:21 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 14.09.2011 19:33:16 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 14.09.2011 22:31:18 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 15.09.2011 21:16:05 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 15.09.2011 21:17:04 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 10.10.2011 15:55:44 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 10.10.2011 16:01:44 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 12.10.2011 15:42:04 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\P\PluginExample +// LIB | USER: roman.krupicka | DT: 12.10.2011 16:04:43 | VER: 20110913 | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\P\PluginExample | TO: L:\H\IQ10\PlugLib2 +// LOCAL | USER: roman.krupicka | DT: 13.10.2011 20:19:15 | VER: | TXT: | PC: KRUPICKARO-PC | FROM: L:\H\IQ10\PlugLib2 | TO: D:\!\IQ2\HELIOS +// LIB | USER: roman.krupicka | DT: 13.10.2011 20:19:57 | VER: ?? LB ?? | TXT: | PC: KRUPICKARO-PC | FROM: D:\!\IQ2\HELIOS | TO: L:\H\IQ10\PlugLib2 diff --git a/libSys/plgQuery.pas b/libSys/plgQuery.pas new file mode 100644 index 0000000..5c57a90 --- /dev/null +++ b/libSys/plgQuery.pas @@ -0,0 +1,34 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgQuery; + +interface + +uses + dxmdaset, DB; + +type + TplgQuery = class(TdxMemData) + public + // zmena viditelnosti - abych mohl shodit DataSet.Modified + procedure SetModified(Value: Boolean); + end; + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +procedure TplgQuery.SetModified(Value: Boolean); +begin + inherited; +end; + +{ ########################################################################### } + +end. diff --git a/libSys/plgSoudky.pas b/libSys/plgSoudky.pas new file mode 100644 index 0000000..fe53924 --- /dev/null +++ b/libSys/plgSoudky.pas @@ -0,0 +1,24 @@ +unit plgSoudky; + +interface + +uses + plgType; + +const + Cplg_SeznamSoudku : array [TplgSoudek] of TplgSoudekDef = + ((SelfIdent: sdNeniVidet; + Jmeno : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgSpravce.pas b/libSys/plgSpravce.pas new file mode 100644 index 0000000..3fadceb --- /dev/null +++ b/libSys/plgSpravce.pas @@ -0,0 +1,189 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgSpravce; + +interface + +uses + plgAkce, ddPlugin_TLB, Contnrs, Classes; + +type + TJedenHelios = class + private + FHelios: IHelios; + FAkce: TplgAkcePrehledu; + public + property Helios: IHelios read FHelios; + property Akce: TplgAkcePrehledu read FAkce; + end; + + TSpravceHeliosu = class + private + FSeznam: TObjectList; + function NajdiHelios(Helios: IHelios): Integer; + function NajdiIdent(Helios: IHelios): Integer; + public + constructor Create; + destructor Destroy; override; + + // === pouze interni pouziti !!! ============================= + procedure PridejHelios(Helios: IHelios); + procedure OdeberHelios(Helios: IHelios); + procedure NastavAkce(Helios: IHelios; Akce: TplgAkcePrehledu); + // =========================================================== + + function VratVlastnika(Helios: IHelios): IHelios; + function VratAkcePrehledu(Helios: IHelios): TplgAkcePrehledu; + end; + +var + SpravceHeliosu: TSpravceHeliosu = nil; + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +constructor TSpravceHeliosu.Create; +begin + inherited Create; + FSeznam := TObjectList.Create; +end; + +{ --------------------------------------------------------------------------- } + +destructor TSpravceHeliosu.Destroy; +begin + FSeznam.Free; + inherited; +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.NajdiHelios(Helios: IHelios): Integer; + var + II: Integer; +begin + // jedeme odzadu - bude to rychlejsi + if Assigned(Helios) then + for II := FSeznam.Count-1 downto 0 do + begin + if TJedenHelios(FSeznam.Items[II]).FHelios = Helios then + begin + Result := II; + Exit; + end; + end; + + Result := -1; // nenalezeno +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.NajdiIdent(Helios: IHelios): Integer; + var + II: Integer; +begin + // jedeme odzadu - bude to rychlejsi + if Assigned(Helios) then + for II := FSeznam.Count-1 downto 0 do + begin + if TJedenHelios(FSeznam.Items[II]).FHelios.Ident = Helios.Ident then + begin + Result := II; + Exit; + end; + end; + + Result := -1; // nenalezeno +end; + +{ --------------------------------------------------------------------------- } + +procedure TSpravceHeliosu.PridejHelios(Helios: IHelios); + var + JH: TJedenHelios; +begin + if not Assigned(Helios) then Exit; + + JH := TJedenHelios.Create; + JH.FHelios := Helios; + FSeznam.Add(JH); +end; + +{ --------------------------------------------------------------------------- } + +procedure TSpravceHeliosu.OdeberHelios(Helios: IHelios); + var + II: Integer; +begin + II := NajdiHelios(Helios); + if II <> -1 then FSeznam.Delete(II); +end; + +{ --------------------------------------------------------------------------- } + +procedure TSpravceHeliosu.NastavAkce(Helios: IHelios; Akce: TplgAkcePrehledu); + var + II: Integer; +begin + II := NajdiHelios(Helios); + if II <> -1 then + TJedenHelios(FSeznam.Items[II]).FAkce := Akce; +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.VratVlastnika(Helios: IHelios): IHelios; + var + II: Integer; + Vlastnik: IHelios; +begin + if not Assigned(Helios) then + Result := nil + else + begin + Vlastnik := Helios.HeliosVlastnik; + II := NajdiIdent(Vlastnik); + if II <> -1 then + Result := TJedenHelios(FSeznam.Items[II]).FHelios + else + Result := Vlastnik; + end; +end; + +{ --------------------------------------------------------------------------- } + +function TSpravceHeliosu.VratAkcePrehledu(Helios: IHelios): TplgAkcePrehledu; + var + II: Integer; +begin + II := NajdiIdent(Helios); + if II <> -1 then + Result := TJedenHelios(FSeznam.Items[II]).FAkce + else + Result := nil; +end; + +{ ########################################################################### } + +initialization + SpravceHeliosu := TSpravceHeliosu.Create; + +{ ########################################################################### } + +end. +// LIB | USER: rk | DT: 08.03.2005 13:29:04 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 08.03.2005 13:54:41 | VER: | TXT: | PC: RK | FROM: P:\ | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 08.03.2005 14:13:52 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ +// LOCAL | USER: rk | DT: 15.03.2005 09:35:54 | VER: | TXT: | PC: RK | FROM: P:\PlugLib | TO: D:\!\IQ1\Eurest +// LIB | USER: rk | DT: 15.03.2005 10:05:23 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\PlugLib +// LOCAL | USER: RK | DT: 17.02.2006 09:58:05 | VER: | TXT: | PC: RK-2K | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginEurest +// LIB | USER: RK | DT: 17.02.2006 09:58:09 | VER: ?? LB ?? | TXT: | PC: RK-2K | FROM: D:\!\IQ1\PluginEurest | TO: L:\H\IQ10\PlugLib +// LOCAL | USER: RK | DT: 01.08.2007 08:37:19 | VER: | TXT: | PC: RK-XP-D | FROM: L:\H\IQ10\PlugLib | TO: D:\!\IQ1\PluginTest +// LIB | USER: RK | DT: 01.08.2007 08:52:07 | VER: ?? LB ?? | TXT: | PC: RK-XP-D | FROM: D:\!\IQ1\PluginTest | TO: L:\H\IQ10\PlugLib diff --git a/libSys/plgTable.pas b/libSys/plgTable.pas new file mode 100644 index 0000000..ae76945 --- /dev/null +++ b/libSys/plgTable.pas @@ -0,0 +1,23 @@ +unit plgTable; + +interface + +uses + plgType; + +var + Cplg_SeznamTabulek : array[TplgTabulka] of PplgTabulkaDef = + (nil // tZadna + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgType.pas b/libSys/plgType.pas new file mode 100644 index 0000000..080f4d7 --- /dev/null +++ b/libSys/plgType.pas @@ -0,0 +1,29 @@ +unit plgType; + +interface + +uses + System.Classes, Vcl.Forms; + +const + CVerzePluginu = Int64({$I ..\lib\plgVerze.INC}); + +{$I ..\lib\plgTypeTabulka.INC} // definice typu TplgTabulka +{$I ..\lib\plgTypeSoudky.INC} // definice typu TplgSoudek +{$I ..\lib\plgTypeBrowse.INC} // definice typu TplgBrowse +{$I ..\lib\plgTypeTxtJadro.INC} // definice "typu" TplgTxt - hlasky jadra +{$I ..\lib\plgTypeTxtEx.INC} // definice "typu" TplgTxt - ostatni hlasky +{$I ..\lib\plgTypeJadro.INC} // zakladni typy a konstanty jadra 1 +{$I ..\lib\plgTypeZbytek.INC} // vsechny ostatni typy a konstanty + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. + +// LIB | USER: rk | DT: 09.02.2005 09:09:48 | VER: ?? LB ?? | TXT: | PC: RK | FROM: D:\!\IQ1\Eurest | TO: P:\ diff --git a/libSys/plgUProc.pas b/libSys/plgUProc.pas new file mode 100644 index 0000000..398c0fc --- /dev/null +++ b/libSys/plgUProc.pas @@ -0,0 +1,33 @@ +unit plgUProc; + +interface + +uses + plgType; + +// !!! POZOR !!! ############################################################## +// Ulozenka musi byt zadana tak, aby CREATE PROC bylo na jednom radku: +// napr. 'CREATE PROCEDURE dbo.pp_MujPrefix_MujNazev'#13+ +// ############################################################################ + +{ =========================================================================== } + +const + SeznamUlozenychProcedur : array[0..0] of TplgUlozenaProcedura = + ( + // aby bylo mozno nemit zadnou ulozenou proceduru :-) + // musi zustat prvni procedura definovana !! + (Text : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgUta.pas b/libSys/plgUta.pas new file mode 100644 index 0000000..ed2dd5e --- /dev/null +++ b/libSys/plgUta.pas @@ -0,0 +1,181 @@ +{ *************************************************************************** } +{ } +{ Jadro pluginu 2 Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgUta; + +interface + +uses + plgType; + +const + plg_uta_SystemoveCislo = plg_SystemoveCislo; + plg_uta_Autor = 'Autor'; + plg_uta_DatPorizeni = 'DatPorizeni'; + plg_uta_Zmenil = plg_Zmenil; + plg_uta_DatZmeny = plg_DatZmeny; + plg_uta_BlokovaniEditoru = plg_BlokovaniEditoru; + plg_uta_GUID = 'GUID'; + plg_uta_Mena = 'Mena'; + plg_uta_TextChyby = 'TextChyby'; + plg_uta_ImpSoubor = 'ImpSoubor'; + plg_uta_SkupZbo = 'SkupZbo'; + plg_uta_RegCis = 'RegCis'; + + Cplg_DisplaySirkaDatum = 20; // [RK 02.07.2012] 12 -> 20 + + { +++++++++++++++++++++++++++ } + + Cplg_UzivatelskeAtributy : array [TplgUzivatelskyTypAtributu] of TplgUzivatelskeAtributyDef = + ((SelfIdent: plg_utaZadny) + + ,(SelfIdent: plg_utaSystemoveCislo; + A:(JmenoSys : plg_uta_SystemoveCislo; + JmenoVerejneTxt : plxJadroSystemoveCislo; + JmenoVerejneZkrTxt : plxJadroSysCisZkr; + Typ : taIdentity; + PK_UQ : puPrimaryKey; + Vyzadovany : vTrue; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaSystemoveCislo64; + A:(JmenoSys : plg_uta_SystemoveCislo; + JmenoVerejneTxt : plxJadroSystemoveCislo; + JmenoVerejneZkrTxt : plxJadroSysCisZkr; + Typ : taIdentity64; + PK_UQ : puPrimaryKey; + Vyzadovany : vTrue; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaAutor; + A:(JmenoSys : plg_uta_Autor; + JmenoVerejneTxt : plxJadroAutor; + Typ : taNVarChar; + Delka : 128; + ServerDefault : Cplg_LoginName; + Verejny : vTrue; + SirkaSloupce : 15) + ) + + ,(SelfIdent: plg_utaDatPorizeni; + A:(JmenoSys : plg_uta_DatPorizeni; + JmenoVerejneTxt : plxJadroDatumPorizeni; + Typ : taDateTime; + ServerDefault : Cplg_GetDate; + Verejny : vTrue; + SirkaSloupce : Cplg_DisplaySirkaDatum) + ) + + ,(SelfIdent: plg_utaZmenil; + A:(JmenoSys : plg_uta_Zmenil; + JmenoVerejneTxt : plxJadroZmenil; + Typ : taNVarChar; + Delka : 128; + NULL : nNULL; + Verejny : vTrue; + SirkaSloupce : 20) + ) + + ,(SelfIdent: plg_utaDatZmeny; + A:(JmenoSys : plg_uta_DatZmeny; + JmenoVerejneTxt : plxJadroDatumZmeny; + Typ : taDateTime; + NULL : nNULL; + Verejny : vTrue; + SirkaSloupce : Cplg_DisplaySirkaDatum) + ) + + ,(SelfIdent: plg_utaBlokovaniEditoru; + A:(JmenoSys : plg_uta_BlokovaniEditoru; + JmenoVerejneTxt : plxJadroBlokovaniEditoru; + Typ : taSmallInt; + NULL : nNULL; + Vyzadovany : vTrue; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaGUID; + A:(JmenoSys : plg_uta_GUID; + JmenoVerejne : 'GUID'; + Typ : taBinary; + Delka : 16; + Verejny : vFalse) + ) + + ,(SelfIdent: plg_utaSazbaDPH; + A:(Typ : taNumeric_5_2; + NULL : nNULL; + ForeignKey : 'TabDPH(Sazba)'; + Verejny : vTrue) + ) + + ,(SelfIdent: plg_utaCena; + A:(Typ : taNumeric_19_6; + ServerDefault : '0.0'; + Verejny : vTrue; + MaskaDisplay : DisplayMaskPenize; + Sumovat : True) + ) + + ,(SelfIdent: plg_utaMena; + A:(JmenoSys : plg_uta_Mena; + JmenoVerejne : 'Mna'; + Typ : taNVarChar; + Delka : 3; + ForeignKey : 'TabKodMen(Kod)'; + Verejny : vTrue) + ) + + ,(SelfIdent: plg_utaTextChyby; + A:(JmenoSys : plg_uta_TextChyby; + JmenoVerejne : 'Text chyby'; + Typ : taNVarChar; + Delka : 255; + ServerDefault : ''''''; + Verejny : vTrue; + SirkaSloupce : 30) + ) + + ,(SelfIdent: plg_utaImpSoubor; + A:(JmenoSys : plg_uta_ImpSoubor; + JmenoVerejne : 'Importn soubor'; + Typ : taNVarChar; + Delka : 255; + ServerDefault : ''''''; + Verejny : vTrue; + SirkaSloupce : 30) + ) + + ,(SelfIdent: plg_utaSkupZbo; + A:(JmenoSys : plg_uta_SkupZbo; + Typ : taNVarChar; + Delka : 3; + Verejny : vTrue; + HeliosAttr : 'TabKmenZbozi.SkupZbo') + ) + + ,(SelfIdent: plg_utaRegCis; + A:(JmenoSys : plg_uta_RegCis; + Typ : taNVarChar; + Delka : 30; + Verejny : vTrue; + HeliosAttr : 'TabKmenZbozi.RegCis') + ) + + {$I ..\lib\plgUtaDef.inc} + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgVazby.pas b/libSys/plgVazby.pas new file mode 100644 index 0000000..b723e5e --- /dev/null +++ b/libSys/plgVazby.pas @@ -0,0 +1,28 @@ +unit plgVazby; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GDefiniceVztahu : array[0..0] of TplgVztahDef = + ( + // aby bylo mozno nemit zadnou vazbu, + // musi zustat prvni vazba nedefinovana !! + (GUIDVazby : '') + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/libSys/plgZmeny.pas b/libSys/plgZmeny.pas new file mode 100644 index 0000000..544001c --- /dev/null +++ b/libSys/plgZmeny.pas @@ -0,0 +1,60 @@ +{ *************************************************************************** } +{ } +{! SKRIPTY BY MLY BT PSNY TAK, ABY BYLY SPUSTITELN VCEKRT - TZN. MLY !} +{! BY OBSAHOVAT RZN TESTY EXISTENCE - NAP.: !} +{ } +{ -existuje tabulka TabXXX ? } +{ IF OBJECT_ID('TabXXX','U')IS NOT NULL ... } +{ } +{ -existuje sloupec ABC v tabulce TabXXX ? } +{ IF COLUMNPROPERTY(OBJECT_ID('TabXXX','U'),'ABC','AllowsNull')IS NOT NULL ... } +{ } +{ -existuje default DF__TabXXX__ABC na sloupci ABC v tabulce TabXXX ? } +{ IF OBJECT_ID('DF__TabXXX__ABC','D')IS NOT NULL ... } +{ } +{ kde vezmu 2. parametr systmov funkce OBJECT_ID() - je to sysobjects.xtype } +{ - viz BOL } +{ } +{!!! POZOR - POUIT RETURN VE ZMNOVCH SKRIPTECH V plgZmeny.pas NEN BEZTRESTN !!!} +{ -protoe zmnov skripty jsou obaleny knihovanmi BEGIN TRAN..COMMIT, tak } +{ by ppadn RETURN ponechal transakci neuzavenou ! Proto bych ml } +{ pout tuto konstrukci: } +{ IF @@TRANCOUNT>0 ROLLBACK /* nebo COMMIT dle situace */ } +{ RETURN } +{ -pokud je kd spoutn pes EXEC() nebo sp_executesql, tak tam naopak } +{ ROLLBACK (COMMIT) bt NESM, protoe RETURN ukonuje jen dan EXEC() } +{ -pln nejlep je se RETURNu ve zmnovch skriptech pln vyhnout } +{ } +{ *************************************************************************** } + +unit plgZmeny; + +interface + +uses + plgType; + +{ =========================================================================== } + +const + GZmenoveSkripty : array[0..0] of TplgZmenovySkript = + ( + // aby bylo mozno nemit zadny zmenovy skript, + // musi zustat prvni skript nedefinovan !! + (PlatiOd : $010020050210; + Skript : ''; + ) + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. + diff --git a/plgExtController.pas b/plgExtController.pas new file mode 100644 index 0000000..678c823 --- /dev/null +++ b/plgExtController.pas @@ -0,0 +1,31 @@ +unit plgExtController; + +interface + +uses + plgType; //, pec_ObjednavkaDopravy, pec_DosleObjednavky; + +{ =========================================================================== } + +const + GDefiniceControlleru: array[0..0] of TplgEditorControllerDef = + ( + // aby bylo mozno nemit zadnou definici controlleru, + // musi zustat prvni prvek nedefinovan !! + (FormIdent : '') + +// ,(FormIdent: 'TedfrmUTEditorhvw_Bonum_ObjednavkyDopravy'; +// ControllerClass: TplgBonumExtReseniGornicky3DObjednavkaDopravyController) + +//last + ); + +{ =========================================================================== } + +implementation + +{ ########################################################################### } + +{ ########################################################################### } + +end. diff --git a/plgHDCMontekord.dpr b/plgHDCMontekord.dpr new file mode 100644 index 0000000..538ccfc --- /dev/null +++ b/plgHDCMontekord.dpr @@ -0,0 +1,45 @@ +library plgHDCMontekord; + +{$WEAKLINKRTTI ON} +{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} +{$IFOPT D-} + {$SetPEFlags $AC0E} + {$SetPEOptFlags $AC0E} +{$ELSE} + {$SetPEFlags $AA02} + {$SetPEOptFlags $AA02} +{$ENDIF} + +// IMAGE_FILE_RELOCS_STRIPPED = $0001 +// IMAGE_FILE_EXECUTABLE_IMAGE = $0002 * +// IMAGE_FILE_LINE_NUMS_STRIPPED = $0004 * +// IMAGE_FILE_LOCAL_SYMS_STRIPPED = $0008 * +// IMAGE_FILE_AGGRESIVE_WS_TRIM = $0010 +// IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020 +// IMAGE_FILE_BYTES_REVERSED_LO = $0080 +// IMAGE_FILE_32BIT_MACHINE = $0100 +// IMAGE_FILE_DEBUG_STRIPPED = $0200 +// IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400 * +// IMAGE_FILE_NET_RUN_FROM_SWAP = $0800 * +// IMAGE_FILE_SYSTEM = $1000 +// IMAGE_FILE_DLL = $2000 * +// IMAGE_FILE_UP_SYSTEM_ONLY = $4000 +// IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000 * + +uses + System.Win.ComServ, + ddPlugin_TLB, + ComObjekt in 'ComObjekt.pas', + frmImportKusovnik in 'frmImportKusovnik.pas' {formImportKusovnik}, + dataModul in 'dataModul.pas' {datModul: TDataModule}; + +exports + DllGetClassObject, + DllCanUnloadNow, + DllRegisterServer, + DllUnregisterServer; + +{$R *.RES} + +BEGIN +END. diff --git a/plgHDCMontekord.dproj b/plgHDCMontekord.dproj new file mode 100644 index 0000000..789d545 --- /dev/null +++ b/plgHDCMontekord.dproj @@ -0,0 +1,1065 @@ + + + {C69D956F-623E-44C2-8E54-EB85FD598916} + plgHDCMontekord.dpr + True + Release + 1 + Library + VCL + 20.4 + Win32 + plgHDCMontekord + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + false + false + false + false + false + 00400000 + .\lib;.\libSys;$(DCC_UnitSearchPath) + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + true + plgHDCMontekord + 1029 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= + + + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + activity-1.1.0.dex.jar;annotation-1.2.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;biometric-1.1.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.1.0.dex.jar;core-runtime-2.1.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.2.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.2.0.dex.jar;lifecycle-runtime-2.2.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.2.0.dex.jar;lifecycle-viewmodel-savedstate-2.2.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;savedstate-1.0.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar + + + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_192x192.png + activity-1.1.0.dex.jar;annotation-1.2.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;asynclayoutinflater-1.0.0.dex.jar;billing-4.0.0.dex.jar;biometric-1.1.0.dex.jar;browser-1.0.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;coordinatorlayout-1.0.0.dex.jar;core-1.5.0-rc02.dex.jar;core-common-2.1.0.dex.jar;core-runtime-2.1.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;firebase-annotations-16.0.0.dex.jar;firebase-common-20.0.0.dex.jar;firebase-components-17.0.0.dex.jar;firebase-datatransport-18.0.0.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.0.0.dex.jar;firebase-installations-interop-17.0.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-22.0.0.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;legacy-support-core-ui-1.0.0.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.2.0.dex.jar;lifecycle-livedata-2.0.0.dex.jar;lifecycle-livedata-core-2.2.0.dex.jar;lifecycle-runtime-2.2.0.dex.jar;lifecycle-service-2.0.0.dex.jar;lifecycle-viewmodel-2.2.0.dex.jar;lifecycle-viewmodel-savedstate-2.2.0.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;play-services-ads-20.1.0.dex.jar;play-services-ads-base-20.1.0.dex.jar;play-services-ads-identifier-17.0.0.dex.jar;play-services-ads-lite-20.1.0.dex.jar;play-services-base-17.5.0.dex.jar;play-services-basement-17.6.0.dex.jar;play-services-cloud-messaging-16.0.0.dex.jar;play-services-drive-17.0.0.dex.jar;play-services-games-21.0.0.dex.jar;play-services-location-18.0.0.dex.jar;play-services-maps-17.0.1.dex.jar;play-services-measurement-base-18.0.0.dex.jar;play-services-measurement-sdk-api-18.0.0.dex.jar;play-services-places-placereport-17.0.0.dex.jar;play-services-stats-17.0.0.dex.jar;play-services-tasks-17.2.0.dex.jar;print-1.0.0.dex.jar;room-common-2.1.0.dex.jar;room-runtime-2.1.0.dex.jar;savedstate-1.0.0.dex.jar;slidingpanelayout-1.0.0.dex.jar;sqlite-2.0.1.dex.jar;sqlite-framework-2.0.1.dex.jar;swiperefreshlayout-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.0.0.dex.jar;transport-runtime-3.0.0.dex.jar;user-messaging-platform-1.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.1.0.dex.jar + + + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) + 1029 + + + RELEASE;$(DCC_Define) + 0 + false + 0 + + + Debug + + + true + 3 + 2026 + 415 + CompanyName=HD Consulting Strakonice;FileDescription=$(MSBuildProjectName);FileVersion=3.0.2026.415;InternalName=plgHDCMontekord.dll;LegalCopyright=T. Buzin;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=XE13.1;ProgramID=;LastCompiledTime=2026.04.17 12:11:40 + (None) + none + D:\Data\Helios\HeliosMain.exe + D:\Data\Helios + true + + + DEBUG;$(DCC_Define) + false + true + true + true + + + Debug + + + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=3.0.2024.1210;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);LastCompiledTime=2026.04.15 09:58:10 + D:\Data\Helios\HeliosMain.exe + true + 3 + 2024 + 1210 + true + (None) + none + true + + + + MainSource + + + +
formImportKusovnik
+ dfm +
+ +
datModul
+ dfm + TDataModule +
+ + + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + + + + + plgHDCMontekord.dpr + + + Interbase Express Adapters for ExpressDataController by Developer Express Inc. + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + False + False + False + True + False + + + + + plgHDCMontekord.dll + true + + + + + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 1 + .framework + + + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 1 + + + 1 + + + + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + + + + 12 + + + + +
diff --git a/plgHDCMontekord.res b/plgHDCMontekord.res new file mode 100644 index 0000000..12c68ac Binary files /dev/null and b/plgHDCMontekord.res differ diff --git a/plgKonfig.pas b/plgKonfig.pas new file mode 100644 index 0000000..ae02d1c --- /dev/null +++ b/plgKonfig.pas @@ -0,0 +1,109 @@ +{ *************************************************************************** } +{ } +{ PluginExample Asseco Solutions } +{ } +{ *************************************************************************** } + +unit plgKonfig; + +interface + +uses + plgKonfigBase, ddPlugin_TLB; + +// ============================================================================ +// !!! Konfigurace zavisla na danem pluginu, je treba ji nastavit !!! +// ============================================================================ + +type + TPluginKonfig = class(TPluginKonfigBase) + protected + procedure NastaveniKonfigu; override; + function GetPluginVerejneJmeno: String; override; + function GetPluginTechnickyPopis: String; override; + function GetPluginHistorieVerzi: String; override; + public + function PartnerIdentification: string; override; + function PluginJazykoveDLL (AJazyk: Integer): string; override; + procedure VlastniInicializacePluginu (Helios: IHelios); override; + end; + +{ =========================================================================== } + +implementation + +uses + SysUtils, ComObj, plgType, plgMain; + +{ ########################################################################### } + +procedure TPluginKonfig.NastaveniKonfigu; +begin + // !! POZOR !! Tento GUID je pouze pro PlgBonum_ExtReseniGornicky3D !! + FPluginClass_ID := StringToGUID('{32EAE564-687F-475D-9CFC-49F18260D835}'); + + FPluginSystemoveJmeno := 'plgHDCMontekord'; + FPluginClassName := 'runMe'; + FPluginMinimalniPozadovanaVerzeHeliosu := Cplg_PrvniUnicodeVerzeHeliosu; + FPluginCopyrightVyrobce := Format(' 2012-%d NTS/HD Consulting s.r.o. Strakonice', [Cplg_AktualniRok]); + FPluginIdentifikator := 'Lovato'; + + FPluginMinimalniPozadovanaVerzeSQLServeru:= Cplg_SQLVersion_2022_CU22; +end; + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.PartnerIdentification: string; +begin + // zde zadejte partnerskou identifikaci + Result := ''; +end; + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.GetPluginVerejneJmeno: String; +begin + Result := plgCtiOznam('Plugin Extern een pro LOVATO Psek'); +end; + + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.GetPluginTechnickyPopis: String; +begin + Result := 'Plugin pro extern een'; +end; + + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.GetPluginHistorieVerzi: String; +begin + Result := 'Historie verz'; +end; + + +{ --------------------------------------------------------------------------- } + +function TPluginKonfig.PluginJazykoveDLL (AJazyk: Integer): string; +begin + case AJazyk of + Cplg_jAnglictina, + Cplg_jExtAnglictina: Result := 'plgLovatoLng1033.DLL'; + else Result := ''; + end; +end; + + +{ --------------------------------------------------------------------------- } + +procedure TPluginKonfig.VlastniInicializacePluginu (Helios: IHelios); +begin + // - tato procedura se vola vzdy pri spusteni externi akce !! + // - pokud je treba udelat nejakou inicializaci pouze jednou, je treba + // pouzit promennou, ktera bude signalizovat prvni a dalsi volani +end; + +{ ########################################################################### } + +end.