Prvni verze
This commit is contained in:
821
_plgPlan/datMod2.pas
Normal file
821
_plgPlan/datMod2.pas
Normal file
@ -0,0 +1,821 @@
|
||||
unit datMod2;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils, System.Classes,
|
||||
ddPlugin_TLB, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error,
|
||||
FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, Data.DB, FireDAC.Comp.DataSet,
|
||||
FireDAC.Comp.Client,
|
||||
frmPlan, frmRamcovyPlan, Vcl.BaseImageCollection, Vcl.ImageCollection, System.ImageList, Vcl.ImgList,
|
||||
Vcl.VirtualImageList, Vcl.Controls;
|
||||
|
||||
{$I iConsts.inc}
|
||||
|
||||
type
|
||||
TGridColWidthKoefs = record
|
||||
fieldName: string;
|
||||
widthKoef: Extended;
|
||||
end;
|
||||
|
||||
TDavkaPrikazOdv = record
|
||||
cislo: integer;
|
||||
idPrikaz: integer;
|
||||
idDavka: integer;
|
||||
mnozOdvPrikaz: extended;
|
||||
mnozZapsane: Extended;
|
||||
mnozOdvPredchozi: extended;
|
||||
end;
|
||||
|
||||
|
||||
Tdm2 = class(TDataModule)
|
||||
vtRozpis: TFDMemTable;
|
||||
dsRozpis: TDataSource;
|
||||
dsKalendar: TDataSource;
|
||||
vtKalendar: TFDMemTable;
|
||||
vtRozpiscolDatum: TDateField;
|
||||
vtRozpiscolID: TIntegerField;
|
||||
vtRozpiscolHodOd: TSmallintField;
|
||||
vtRozpiscolHodDo: TSmallintField;
|
||||
vtRozpiscolSkupZbo: TStringField;
|
||||
vtRozpiscolRegCis: TStringField;
|
||||
vtRozpiscolNazev: TStringField;
|
||||
vtRozpiscolPrikaz: TStringField;
|
||||
vtRozpiscolMnoz: TSmallintField;
|
||||
vtRozpiscolMnozHotovo: TSmallintField;
|
||||
vtKalendarcolIDStroj: TIntegerField;
|
||||
vtKalendarcolStroj: TStringField;
|
||||
vtKalendarcolNe: TSmallintField;
|
||||
vtKalendarcolPo: TSmallintField;
|
||||
vtKalendarcolUt: TSmallintField;
|
||||
vtKalendarcolSt: TSmallintField;
|
||||
vtKalendarcolCt: TSmallintField;
|
||||
vtKalendarcolPa: TSmallintField;
|
||||
vtKalendarcolSo: TSmallintField;
|
||||
vtKalendarcolKodStroj: TStringField;
|
||||
dsKmen: TDataSource;
|
||||
vtKmen: TFDMemTable;
|
||||
vtKmencolID: TIntegerField;
|
||||
vtKmencolSZ: TStringField;
|
||||
vtKmencolRegCis: TStringField;
|
||||
vtKmencolNazev1: TStringField;
|
||||
vtKmencolMJEvid: TStringField;
|
||||
vtKmencolDilec: TBooleanField;
|
||||
vtKmencolMaterial: TBooleanField;
|
||||
vtKmencolSluzba: TBooleanField;
|
||||
vtKmencolSKP: TStringField;
|
||||
imgCol: TImageCollection;
|
||||
imgList: TVirtualImageList;
|
||||
ImageList1: TImageList;
|
||||
vtKmenIDZaklad: TIntegerField;
|
||||
vtKmencolZaklad: TStringField;
|
||||
vtKmencolIDStroj: TIntegerField;
|
||||
vtKmencolStroj: TStringField;
|
||||
vtKmencolKSvKA: TIntegerField;
|
||||
vtKmencolKAnaPAL: TIntegerField;
|
||||
vtKmencolKSnaPAL: TIntegerField;
|
||||
vtKmencolIDZakModif: TIntegerField;
|
||||
dsZavady: TDataSource;
|
||||
vtZavady: TFDMemTable;
|
||||
vtZavadycolID: TIntegerField;
|
||||
vtZavadycolKod: TStringField;
|
||||
vtZavadycolTyp: TIntegerField;
|
||||
vtZavadycolNazev: TStringField;
|
||||
vtRozpiscolIDDavkaAdvPlan: TIntegerField;
|
||||
vtRozpiscolIdKmen: TIntegerField;
|
||||
vtRozpiscolIdPrikaz: TIntegerField;
|
||||
vtVyrobniTyden: TFDMemTable;
|
||||
dsVyrobniTyden: TDataSource;
|
||||
vtVyrobniTydencolTyden: TIntegerField;
|
||||
vtVyrobniTydencolDatumOd: TDateField;
|
||||
vtVyrobniTydencolDatumDo: TDateField;
|
||||
vtVyrobniTydencolRok: TIntegerField;
|
||||
dsRamcovyPlan: TDataSource;
|
||||
vtRamcovyPlan: TFDMemTable;
|
||||
vtRamcovyPlanID: TIntegerField;
|
||||
vtRamcovyPlanIDKmen: TIntegerField;
|
||||
vtRamcovyPlanSZ: TStringField;
|
||||
vtRamcovyPlanRegCis: TStringField;
|
||||
vtRamcovyPlanNazev1: TStringField;
|
||||
vtRamcovyPlanMJ: TStringField;
|
||||
vtRamcovyPlanKs: TIntegerField;
|
||||
vtRamcovyPlanKA: TIntegerField;
|
||||
vtRamcovyPlanCisloOrg: TIntegerField;
|
||||
vtRamcovyPlanM01: TIntegerField;
|
||||
vtRamcovyPlanM02: TIntegerField;
|
||||
vtRamcovyPlanM03: TIntegerField;
|
||||
vtRamcovyPlanM04: TIntegerField;
|
||||
vtRamcovyPlanM05: TIntegerField;
|
||||
vtRamcovyPlanM06: TIntegerField;
|
||||
vtRamcovyPlanM07: TIntegerField;
|
||||
vtRamcovyPlanM08: TIntegerField;
|
||||
vtRamcovyPlanM09: TIntegerField;
|
||||
vtRamcovyPlanM10: TIntegerField;
|
||||
vtRamcovyPlanM11: TIntegerField;
|
||||
vtRamcovyPlanM12: TIntegerField;
|
||||
vtRamcovyPlanSumace: TIntegerField;
|
||||
vtRamcovyPlanVyroba: TIntegerField;
|
||||
vtRamcovyPlanZbyva: TIntegerField;
|
||||
vtRamcovyPlanSklRoo: TIntegerField;
|
||||
vtRamcovyPlanSklTvin: TIntegerField;
|
||||
vtRamcovyPlanSklAlter: TIntegerField;
|
||||
vtRamcovyPlanSklMimoPlan: TBooleanField;
|
||||
dsRPlanAlter: TDataSource;
|
||||
vtRPlanAlter: TFDMemTable;
|
||||
vtRPlanAlterID: TIntegerField;
|
||||
vtRPlanAlterKalibr: TStringField;
|
||||
vtRPlanAlterDelkaJm: TFloatField;
|
||||
vtRPlanAlterStroj: TStringField;
|
||||
vtRPlanAlterIDStroj: TIntegerField;
|
||||
dsPlanPL: TDataSource;
|
||||
vtPlanPL: TFDMemTable;
|
||||
vtPlanPLIDVCPrikaz: TIntegerField;
|
||||
vtPlanPLCisloPL: TStringField;
|
||||
vtPlanPLDatVyrobaZadano: TDateTimeField;
|
||||
vtPlanPLDatVyrobaStart: TDateTimeField;
|
||||
vtPlanPLDatExpedice: TDateTimeField;
|
||||
vtPlanPLKAnaPal: TFloatField;
|
||||
vtPlanPLKusu: TIntegerField;
|
||||
vtPlanPLIDPrikaz: TIntegerField;
|
||||
vtPlanPLDatExpirace: TDateTimeField;
|
||||
vtRozpiscolIDPlan: TIntegerField;
|
||||
vtPlanPLCisloExtZak: TStringField;
|
||||
vtRozpiscolJeUdrzba: TSmallintField;
|
||||
vtZavadycolIDPrikaz: TIntegerField;
|
||||
procedure DataModuleCreate (Sender: TObject);
|
||||
procedure vtKmenCalcFields(DataSet: TDataSet);
|
||||
private
|
||||
public
|
||||
Helios: IHelios;
|
||||
function VratPrepocetMJ (idKmen: integer; hlavniMJ, odvozenaMJ: string; sloupec: string='PocetOdvozene'): Extended;
|
||||
procedure VymazRozpis (f: TformPlan); safecall;
|
||||
procedure NactiRozpis (f: TformPlan; prazdny: boolean=false); safecall;
|
||||
procedure NactiDavkyPlanu (f: TformPlan; idStroj: Integer=0); safecall;
|
||||
procedure GenerujRozpis (odData: TDateTime; pocetDnu: integer=14); safecall;
|
||||
procedure NactiKalendar (f: TformPlan; idStroj: integer=0); safecall;
|
||||
procedure NactiKmenZbozi (podm: string=''); safecall;
|
||||
procedure NactiUdrzbu (kodModif: string=''; podm: string=''); safecall;
|
||||
procedure NactiVyrobniTydny (rok: integer);
|
||||
procedure PlanPalListyNactiSarzePrikazu (idPrikaz, ksVKA: integer; var externiZak: string);
|
||||
end;
|
||||
|
||||
var
|
||||
dm2: Tdm2;
|
||||
dmCreated, apiMod: boolean;
|
||||
apiServer, phServer, url, sqlLang: string;
|
||||
idAdvKPl, bidPalety: integer;
|
||||
|
||||
implementation
|
||||
{%CLASSGROUP 'Vcl.Controls.TControl'}
|
||||
uses System.Variants, System.StrUtils, Winapi.Windows, System.DateUtils,
|
||||
helTabsBIDs, helUtils;
|
||||
{$R *.dfm}
|
||||
|
||||
|
||||
procedure Tdm2.DataModuleCreate (Sender: TObject);
|
||||
begin
|
||||
dmCreated:= true;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
function Tdm2.VratPrepocetMJ (idKmen: integer; hlavniMJ, odvozenaMJ: string; sloupec: string='PocetOdvozene'): Extended;
|
||||
var lSQL: string;
|
||||
begin
|
||||
result:= 0;
|
||||
sloupec:= sqlSanitize (sloupec);
|
||||
lSQL:= 'SELECT ' + sloupec + ' FROM ' + tblMJZbo + ' WHERE IDKmenZbozi=' + idKmen.ToString + ' AND LOWER(KodMJ1)=N' + hlavniMJ.ToLower.QuotedString
|
||||
+ ' AND LOWER(KodMJ2)=N' + odvozenaMJ.ToLower.QuotedString;
|
||||
try
|
||||
result:= helUtils.getHeliosFloatVal (Helios, 0, lSQL);
|
||||
finally
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.NactiUdrzbu (kodModif: string=''; podm: string='');
|
||||
var lSQL, kod: string;
|
||||
idPrPost: Integer;
|
||||
begin
|
||||
if not(vtZavady.Active) then
|
||||
vtZavady.Open;
|
||||
|
||||
// lehka sanitizace SQL
|
||||
podm:= podm.Replace(';', '').Replace('--','');
|
||||
|
||||
lSQL:= 'SELECT TOP(1) pp.ID, pp.Nazev, pp.IDPrikaz, pp.operace FROM ' + tblPrPost + ' pp INNER JOIN ' + tblVPr + ' vp ON (vp.ID=pp.IDPrikaz AND pp.IDOdchylkyDo IS NULL AND pp.priorita=0)'
|
||||
+ ' INNER JOIN ' + tblZakazModif + ' m ON (m.ID=vp.IDZakazModif) INNER JOIN ' + tblPrikazRada + ' vpr ON (vpr.Rada=vp.Rada) WHERE pp.Typ=0 AND vp.StavPrikazu=30 AND m.Kod=N'
|
||||
+ kodModif.QuotedString + ' AND vpr.nazev LIKE N''%<25>dr<64>b%''';
|
||||
|
||||
{ lSQL:= 'SELECT ID, Kod, Nazev, Typ FROM ' + tblCZavad;
|
||||
if (podm<>'') then
|
||||
lSQL:= lSQL + ' WHERE ' + podm;
|
||||
}
|
||||
lSQL:= lSQL + ' ORDER BY pp.Nazev';
|
||||
try
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
vtZavady.Append;
|
||||
idPrPost:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
||||
vtZavady.FieldByName('colID').AsInteger:= idPrPost;
|
||||
vtZavady.FieldByName('colNazev').AsString:= VarToStr(FieldByNameValues('Nazev'));
|
||||
vtZavady.FieldByName('colIDPrikaz').AsInteger:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
|
||||
vtZavady.FieldByName('colKod').AsString:= VarToStr(FieldByNameValues('operace')).Trim;
|
||||
// vtZavady.FieldByName('colTyp').AsInteger:= VarToStr(FieldByNameValues('Typ')).ToInteger;
|
||||
vtZavady.Post;
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.NactiKmenZbozi (podm: string='');
|
||||
var lSQL, mjEvid: string;
|
||||
idKZ, idZakazModif, idZakazModifDilce: Integer;
|
||||
begin
|
||||
if not(vtKmen.Active) then
|
||||
vtKmen.Open;
|
||||
|
||||
// lehka sanitizace SQL
|
||||
podm:= podm.Replace(';', '').Replace('--','');
|
||||
|
||||
lSQL:= 'SELECT k.ID, k.SkupZbo, k.RegCis, k.Nazev1, k.SKP, k.MJEvidence, k.Material, k.Dilec, k.Sluzba, zm.Nazev AS NazevModif, zmd.ID AS IdZMD, zm.ID AS IdZM'
|
||||
+ ', ISNULL( (SELECT TOP(1) kN.Nazev1 FROM ' + tblKVaz + ' v INNER JOIN ' + tblKZ + ' kN ON (kN.ID=v.nizsi) WHERE v.vyssi=k.ID'
|
||||
+ ' AND v.ZmenaDo IS NULL AND v.IDZakazModif=zm.ID AND kN.SkupZbo=N''702''), N'''') AS Zaklad'
|
||||
+ ' FROM ' + tblZakazModifDilce + ' zmd INNER JOIN ' + tblZakazModif + ' zm ON (zm.ID=zmd.IDZakazModif) INNER JOIN ' + tblKZ
|
||||
+ ' k ON (k.ID=zmd.IDKmenZbozi)';
|
||||
if (podm<>'') then
|
||||
lSQL:= lSQL + ' WHERE ' + podm;
|
||||
lSQL:= lSQL + ' ORDER BY k.SkupZbo, k.RegCis, zm.Nazev';
|
||||
try
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
vtKmen.Append;
|
||||
idKZ:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
||||
vtKmen.FieldByName('colID').AsInteger:= idKZ;
|
||||
vtKmen.FieldByName('colSZ').AsString:= VarToStr(FieldByNameValues('SkupZbo'));
|
||||
vtKmen.FieldByName('colRegCis').AsString:= VarToStr(FieldByNameValues('RegCis'));
|
||||
vtKmen.FieldByName('colNazev1').AsString:= VarToStr(FieldByNameValues('Nazev1'));
|
||||
vtKmen.FieldByName('colSKP').AsString:= VarToStr(FieldByNameValues('SKP'));
|
||||
mjEvid:= VarToStr(FieldByNameValues('MJEvidence'));
|
||||
vtKmen.FieldByName('colMJEvid').AsString:= mjEvid;
|
||||
vtKmen.FieldByName('colMaterial').AsBoolean:= FieldByNameValues('Material');
|
||||
vtKmen.FieldByName('colDilec').AsString:= FieldByNameValues('Dilec'); // TrueBoolStrs
|
||||
vtKmen.FieldByName('colSluzba').AsBoolean:= FieldByNameValues('Sluzba');
|
||||
vtKmen.FieldByName('colZaklad').AsString:= VarToStr(FieldByNameValues('Zaklad'));
|
||||
|
||||
if (mjEvid='KA') then
|
||||
begin
|
||||
lSQL:= 'SELECT PocetOdvozene FROM ' + tblMJZbo + ' WHERE IDKmenZbozi=' + idKZ.ToString + ' AND KodMJ1=N''KA'' AND KodMJ2=N''ks''';
|
||||
vtKmen.FieldByName('colKSvKA').AsInteger:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
|
||||
|
||||
lSQL:= 'SELECT PocetHlavni FROM ' + tblMJZbo + ' WHERE IDKmenZbozi=' + idKZ.ToString + ' AND KodMJ1=N''KA'' AND KodMJ2=N''Pal''';
|
||||
vtKmen.FieldByName('colKAnaPAL').AsInteger:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
|
||||
end;
|
||||
|
||||
vtKmen.FieldByName('colIDZakModifDilce').AsInteger:= VarToStr(FieldByNameValues('IdZMD')).ToInteger;
|
||||
vtKmen.FieldByName('colIDZakModif').AsInteger:= VarToStr(FieldByNameValues('IdZM')).ToInteger;
|
||||
vtKmen.FieldByName('colZakModif').AsString:= VarToStr(FieldByNameValues('NazevModif'));
|
||||
|
||||
vtKmen.Post;
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.NactiKalendar (f: TformPlan; idStroj: Integer=0);
|
||||
var lSQL: string;
|
||||
dStart, dAkt, dNedele, dTesty, dNow, d1: TDateTime;
|
||||
datumNe, datumTesty: string;
|
||||
dAktD, dAktM, dAktR, dTestD, dTestM, dTestR: integer;
|
||||
i, cnt, cntNe, cntPo, cntUt, cntSt, cntCt, cntPa, cntSo: integer;
|
||||
begin
|
||||
if not(vtKalendar.Active) then
|
||||
vtKalendar.Open;
|
||||
vtKalendar.EmptyDataSet;
|
||||
|
||||
idAdvKPl:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblAdvKPlan + ' WHERE Kod=N''99''');
|
||||
|
||||
dNedele:= 0;
|
||||
dNow:= Now;
|
||||
d1:= dNow;
|
||||
if (f.sgCas.Cells[2,1]<>'') then // datumOd
|
||||
begin
|
||||
d1:= StrToDateTime(f.sgCas.Cells[2,1]);
|
||||
dNedele:= d1;
|
||||
end;
|
||||
|
||||
dStart:= StartOfTheWeek (d1);
|
||||
if (dNow=d1) and (dNedele=0) then
|
||||
dNedele:= IncDay (dStart, -1);
|
||||
dAkt:= d1;
|
||||
dAktD:= DayOf (dAkt);
|
||||
dAktM:= MonthOf (dAkt);
|
||||
dAktR:= YearOf (dAkt);
|
||||
|
||||
lSQL:= 'SELECT cs.ID, cs.Kod, cs.Nazev FROM ' + tblCStroju + ' cs LEFT JOIN ' + tblCStrojuE + ' cse ON (cse.ID=cs.ID) WHERE cs.Blokovano=0';
|
||||
lSQL:= lSQL + IfThen(idStroj>0, ' AND cs.ID=' + idStroj.ToString, '') + ' AND ISNULL(cse._Planovani,0)=1 ORDER BY cs.Nazev';
|
||||
try
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
dTesty:= dNedele;
|
||||
vtKalendar.Append;
|
||||
idStroj:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
||||
vtKalendar.FieldByName('colIDStroj').AsInteger:= idStroj;
|
||||
vtKalendar.FieldByName('colKodStroj').AsString:= VarToStr(FieldByNameValues('Kod'));
|
||||
vtKalendar.FieldByName('colStroj').AsString:= VarToStr(FieldByNameValues('Nazev'));
|
||||
|
||||
for i:=0 to 6 do
|
||||
begin
|
||||
// datumTesty:= FormatDateTime ('dd.MM.yyyy', dTesty);
|
||||
dTestD:= DayOf (dTesty);
|
||||
dTestM:= MonthOf (dTesty);
|
||||
dTestR:= YearOf (dTesty);
|
||||
|
||||
lSQL:= 'SELECT COUNT(d.ID) FROM ' + tblAdvKPlanDavky + ' d INNER JOIN ' + tblVPr + ' p ON (p.ID=d.IDPrikaz) WHERE d.IdAdvKapacPlan=' + idAdvKPl.ToString
|
||||
+ IfThen(idStroj=0, '', ' AND d.IDStroje=' + idStroj.ToString) + ' AND p.StavPrikazu IN (30,40) AND d.CasOd_D=' + dTestD.ToString
|
||||
+ ' AND d.CasOd_M=' + dTestM.ToString + ' AND d.CasOd_Y=' + dTestR.ToString;
|
||||
cnt:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
|
||||
case i of
|
||||
0: begin vtKalendar.FieldByName('colNe').AsInteger:= cnt; cntNe:= cnt; end;
|
||||
1: begin vtKalendar.FieldByName('colPo').AsInteger:= cnt; cntPo:= cnt; end;
|
||||
2: begin vtKalendar.FieldByName('colUt').AsInteger:= cnt; cntUt:= cnt; end;
|
||||
3: begin vtKalendar.FieldByName('colSt').AsInteger:= cnt; cntSt:= cnt; end;
|
||||
4: begin vtKalendar.FieldByName('colCt').AsInteger:= cnt; cntCt:= cnt; end;
|
||||
5: begin vtKalendar.FieldByName('colPa').AsInteger:= cnt; cntPa:= cnt; end;
|
||||
6: begin vtKalendar.FieldByName('colSo').AsInteger:= cnt; cntSo:= cnt; end;
|
||||
end;
|
||||
dTesty:= IncDay (dTesty, 1);
|
||||
end;
|
||||
|
||||
vtKalendar.Post;
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.VymazRozpis (f: TformPlan);
|
||||
var i: integer;
|
||||
d: string;
|
||||
h: integer;
|
||||
begin
|
||||
if not(vtRozpis.Active) then
|
||||
vtRozpis.Open;
|
||||
|
||||
d:= FormatDateTime ('dd.MM.yyyy', Now);
|
||||
h:= HourOf(Now);
|
||||
|
||||
vtRozpis.DisableControls;
|
||||
vtRozpis.First;
|
||||
while not(vtRozpis.Eof) do
|
||||
begin
|
||||
vtRozpis.Edit;
|
||||
vtRozpis.FieldByName('colID').AsInteger:= 0;
|
||||
vtRozpis.FieldByName('colIDDavkaAdvPlan').AsInteger:= 0;
|
||||
vtRozpis.FieldByName('colPrikaz').AsString:= '';
|
||||
vtRozpis.FieldByName('colSkupZbo').AsString:= '';
|
||||
vtRozpis.FieldByName('colRegCis').AsString:= '';
|
||||
vtRozpis.FieldByName('colNazev').AsString:= '';
|
||||
vtRozpis.FieldByName('colMnoz').AsInteger:= 0;
|
||||
vtRozpis.Post;
|
||||
vtRozpis.Next;
|
||||
end;
|
||||
vtRozpis.EnableControls;
|
||||
vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([d, h]), []);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.NactiDavkyPlanu (f: TformPlan; idStroj: Integer = 0);
|
||||
var lSQL: string;
|
||||
datum, hodiny, radaPrikaz, prikaz, mj, sz, regCis, nazev1, altPrP, nazevOper: string;
|
||||
prvniDatum, prvniHod: string;
|
||||
colID, idVPr, idKmen, idVPrOld, casOd, doklPrP, doklPrPOld, jeUdrzba: integer;
|
||||
cislo, iTemp: integer;
|
||||
mnoz, kusyCisteVPr, mnozOdv, mnozProZapis, mnozZapsane, ksVKA: extended;
|
||||
fnd: boolean;
|
||||
d, d2: TDateTime;
|
||||
aDavkaVPrOdv: TArray<TDavkaPrikazOdv>;
|
||||
|
||||
function SumaZapsanehoMnozstviPred (a: TArray<TDavkaPrikazOdv>; idPrikaz: integer; predCislem: integer=0): extended;
|
||||
var i, c: integer;
|
||||
begin
|
||||
result:= 0;
|
||||
for i:=0 to Length(a)-1 do
|
||||
begin
|
||||
if (a[i].idPrikaz=idPrikaz) then
|
||||
if (a[i].cislo<predCislem) then
|
||||
result:= result + a[i].mnozZapsane;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
idVPrOld:= 0;
|
||||
doklPrPOld:= 0;
|
||||
mnozZapsane:= 0;
|
||||
iTemp:= 0;
|
||||
|
||||
d:= 0;
|
||||
if (f.sgCas.Cells[2,1]<>'') then
|
||||
d:= StrToDate(f.sgCas.Cells[2,1]);
|
||||
GenerujRozpis (d, 7);
|
||||
vtRozpis.EmptyDataSet;
|
||||
|
||||
prvniDatum:= '';
|
||||
prvniHod:= '';
|
||||
|
||||
lSQL:= 'SELECT MIN(da.CasOd) FROM ' + tblAdvKPlanDavky + ' da INNER JOIN ' + tblAdvKPlan + ' kp ON (kp.ID=da.IDAdvKapacPlan) INNER JOIN '
|
||||
+ tblVPr + ' vp ON (vp.ID=da.IDPrikaz) WHERE kp.Kod=N''99'' AND da.IDStroje=' + idStroj.ToString + ' AND vp.StavPrikazu IN (30,40)';
|
||||
if (f.sgCas.Cells[2,1]<>'') then
|
||||
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)>=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[2,1].QuotedString + ',104))';
|
||||
if (f.sgCas.Cells[3,1]<>'') then
|
||||
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)<=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[3,1].QuotedString + ',104))';
|
||||
datum:= helUtils.getHeliosDateTimeVal (Helios, 0, lSQL).ToString;
|
||||
if (datum<>'30.12.1899') then
|
||||
begin
|
||||
if (datum.IndexOf(' ')>-1) then
|
||||
begin
|
||||
prvniDatum:= LeftStr(datum, datum.IndexOf(' '));
|
||||
prvniHod:= MidStr(datum, datum.IndexOf(' ')+1, 255);
|
||||
if (prvniHod.IndexOf(':')>-1) then
|
||||
prvniHod:= LeftStr(prvniHod, prvniHod.IndexOf(':')).Trim;
|
||||
end
|
||||
else
|
||||
begin
|
||||
prvniDatum:= datum;
|
||||
prvniHod:= '0';
|
||||
end;
|
||||
if (datum.IndexOf(' ')>-1) then
|
||||
datum:= LeftStr(datum, datum.IndexOf(' '));
|
||||
GenerujRozpis (StrToDateTime(datum), 7);
|
||||
vtRozpis.IndexFieldNames:= 'colDatum;colHodOd';
|
||||
vtRozpis.Refresh;
|
||||
NactiRozpis (f);
|
||||
vtRozpis.Refresh;
|
||||
end;
|
||||
|
||||
|
||||
lSQL:= 'SELECT da.ID, da.CasOd, da.CasDo, ISNULL(dae._MnozstviKs,0) AS MnozstviKs, vp.RadaPrikaz, vp.Prikaz, vp.ID AS IDPrikaz, k.ID AS IDKmen'
|
||||
+ ', k.SkupZbo, k.RegCis, k.Nazev1, ISNULL(vp.IDPlan,0) AS IDPlan, da.DokladPrPostup, da.AltPrPostup'
|
||||
+ ', CONVERT(int, CASE WHEN vpr.nazev LIKE N''%<25>dr<64>b%'' THEN 1 ELSE 0 END) AS JeUdrzba'
|
||||
+ ' FROM ' + tblAdvKPlanDavky + ' da LEFT JOIN ' + tblAdvKPlanDavky_E
|
||||
+ ' dae ON (dae.ID=da.ID) INNER JOIN ' + tblAdvKPlan + ' kp ON (kp.ID=da.IDAdvKapacPlan) INNER JOIN ' + tblVPr + ' vp ON (vp.ID=da.IDPrikaz) INNER JOIN '
|
||||
+ tblPrikazRada + ' vpr ON (vpr.Rada=vp.Rada) INNER JOIN '
|
||||
+ tblKZ + ' k ON (k.ID=vp.IDTabKmen) WHERE kp.Kod=N''99'' AND da.IDStroje=' + idStroj.ToString + ' AND vp.StavPrikazu IN (30,40)';
|
||||
if (f.sgCas.Cells[2,1]<>'') then
|
||||
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)>=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[2,1].QuotedString + ',104))';
|
||||
if (f.sgCas.Cells[3,1]<>'') then
|
||||
lSQL:= lSQL + ' AND dbo.hf_TruncDate(da.CasOd)<=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[3,1].QuotedString + ',104))';
|
||||
lSQL:= lSQL + ' ORDER BY da.CasOd';
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
colID:= FieldByNameValues('ID');
|
||||
datum:= VarToStr(FieldByNameValues('CasOd'));
|
||||
|
||||
idVPr:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
|
||||
doklPrP:= VarToStr(FieldByNameValues('DokladPrPostup')).ToInteger;
|
||||
altPrP:= VarToStr(FieldByNameValues('AltPrPostup'));
|
||||
|
||||
lSQL:= 'SELECT TOP(1) nazev FROM ' + tblPrPost + ' WHERE IDPrikaz=' + idVpr.ToString + ' AND Doklad=' + doklPrP.ToString + ' AND Alt=N' + altPrP.QuotedString
|
||||
+ ' AND IDOdchylkyDo IS NULL AND Priorita=0';
|
||||
nazevOper:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
||||
|
||||
|
||||
Inc(cislo);
|
||||
if (idVPr<>idVPrOld) then
|
||||
begin
|
||||
cislo:= 1;
|
||||
idKmen:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDTabKmen FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString);
|
||||
mj:= helUtils.getHeliosStrVal (Helios, '', 'SELECT MJEvidence FROM ' + tblKZ + ' WHERE ID=' + idKmen.ToString);
|
||||
ksVKA:= helUtils.getHeliosFloatVal (Helios, 0, 'SELECT dbo.ef_Kmen_VratPocetKsVKartonu (' + idKmen.ToString + ')');
|
||||
|
||||
kusyCisteVPr:= helUtils.getHeliosFloatVal (Helios, 0, 'SELECT kusy_ciste FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString);
|
||||
lSQL:= 'SELECT SUM(kusy_odv+kusy_zmet_opr+kusy_zmet_neopr) FROM ' + tblPMZ + ' WHERE IDPrikaz=' + idVPr.ToString + ' AND DokladPrPostup=' + doklPrP.ToString;
|
||||
mnozOdv:= helUtils.getHeliosFloatVal (Helios, 0, lSQL);
|
||||
if (mj.ToUpper='KA') then
|
||||
begin
|
||||
kusyCisteVPr:= kusyCisteVPr * ksVKA;
|
||||
mnozOdv:= mnozOdv * ksVKA;
|
||||
end;
|
||||
idVPrOld:= idVPr;
|
||||
end;
|
||||
|
||||
// idVPrOld:= idVPr;
|
||||
|
||||
|
||||
{
|
||||
mnoz:= FieldByNameValues('MnzstviKs');
|
||||
radaPrikaz:= FieldByNameValues('RadaPrikaz');
|
||||
prikaz:= FieldByNameValues('Prikaz');
|
||||
regCis:= FieldByNameValues('RegCis');
|
||||
nazev1:= FieldByNameValues('Nazev1');
|
||||
}
|
||||
if (datum<>'') then
|
||||
begin
|
||||
if (datum.IndexOf(' ')=-1) then
|
||||
datum:= datum + ' 00:00:00';
|
||||
if (datum.IndexOf(' ')>-1) then
|
||||
begin
|
||||
hodiny:= MidStr(datum, datum.IndexOf(' ')+1, 255).Trim;
|
||||
casOd:= LeftStr(hodiny, hodiny.IndexOf(':')).ToInteger;
|
||||
datum:= LeftStr(datum, datum.IndexOf(' '));
|
||||
|
||||
mnozProZapis:= VarToStr(FieldByNameValues('MnozstviKs')).ToExtended;
|
||||
|
||||
SetLength (aDavkaVPrOdv, iTemp+1);
|
||||
aDavkaVPrOdv[iTemp].idPrikaz:= idVPr;
|
||||
aDavkaVPrOdv[iTemp].cislo:= cislo;
|
||||
aDavkaVPrOdv[iTemp].idDavka:= colID;
|
||||
|
||||
|
||||
fnd:= vtRozpis.Locate ('colIDDavkaAdvPlan', VarArrayOf ([colID]), []); // colID / colDatum / colHodOd
|
||||
if not(fnd) then
|
||||
begin
|
||||
fnd:= vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([datum, casOd]), []);
|
||||
if (fnd) then
|
||||
begin
|
||||
vtRozpis.Edit;
|
||||
vtRozpis.FieldByName('colID').AsInteger:= colID;
|
||||
vtRozpis.FieldByName('colIDDavkaAdvPlan').AsInteger:= colID;
|
||||
vtRozpis.FieldByName('colIdKmen').AsString:= VarToStr (FieldByNameValues('IDKmen'));
|
||||
vtRozpis.FieldByName('colPrikaz').AsString:= VarToStr (FieldByNameValues('RadaPrikaz'));
|
||||
vtRozpis.FieldByName('colIdPrikaz').AsString:= VarToStr (FieldByNameValues('IDPrikaz'));
|
||||
vtRozpis.FieldByName('colSkupZbo').AsString:= VarToStr (FieldByNameValues('SkupZbo'));
|
||||
vtRozpis.FieldByName('colRegCis').AsString:= VarToStr (FieldByNameValues('RegCis'));
|
||||
vtRozpis.FieldByName('colNazev').AsString:= VarToStr (FieldByNameValues('Nazev1'));
|
||||
vtRozpis.FieldByName('colMnoz').AsExtended:= mnozProZapis;
|
||||
vtRozpis.FieldByName('colIDPlan').AsInteger:= VarToStr (FieldByNameValues('IDPlan')).ToInteger;
|
||||
|
||||
jeUdrzba:= VarToStr(FieldByNameValues('JeUdrzba')).ToInteger;
|
||||
vtRozpis.FieldByName('colJeUdrzba').AsInteger:= jeUdrzba;
|
||||
if (jeUdrzba=1) then
|
||||
vtRozpis.FieldByName('colNazev').AsString:= nazevOper;
|
||||
|
||||
|
||||
if (mnozOdv>0) then
|
||||
begin
|
||||
mnozZapsane:= SumaZapsanehoMnozstviPred (aDavkaVPrOdv, idVPr, cislo);
|
||||
mnozOdv:= mnozOdv - mnozZapsane;
|
||||
if (mnozOdv>mnozProZapis) then
|
||||
begin
|
||||
vtRozpis.FieldByName('colMnozHotovo').AsExtended:= mnozProZapis;
|
||||
aDavkaVPrOdv[iTemp].cislo:= cislo;
|
||||
aDavkaVPrOdv[iTemp].idPrikaz:= idVPr;
|
||||
aDavkaVPrOdv[iTemp].mnozZapsane:= mnozProZapis;
|
||||
end
|
||||
else
|
||||
begin
|
||||
vtRozpis.FieldByName('colMnozHotovo').AsExtended:= mnozOdv;
|
||||
aDavkaVPrOdv[iTemp].cislo:= cislo;
|
||||
aDavkaVPrOdv[iTemp].idPrikaz:= idVPr;
|
||||
aDavkaVPrOdv[iTemp].mnozZapsane:= mnozOdv;
|
||||
mnozOdv:= 0;
|
||||
end;
|
||||
Inc (iTemp);
|
||||
end;
|
||||
|
||||
vtRozpis.Post;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
|
||||
if (vtRozpis.RecordCount=0) then
|
||||
NactiRozpis (f, true);
|
||||
|
||||
vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([FormatDateTime ('dd.MM.yyyy', d), HourOf(d)]), []);
|
||||
|
||||
if (prvniDatum<>'') and (prvniHod<>'') then
|
||||
vtRozpis.Locate('colDatum;colHodOd', VarArrayOf ([prvniDatum, prvniHod]), []);
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.NactiVyrobniTydny (rok: integer);
|
||||
var i: integer;
|
||||
d: TDateTime;
|
||||
den1ledna: byte;
|
||||
begin
|
||||
den1ledna:= DayOfWeek(EncodeDate(rok, 1, 1));
|
||||
|
||||
if not(vtVyrobniTyden.Active) then
|
||||
vtVyrobniTyden.Open;
|
||||
for i:=1 to WeeksInAYear(rok) do
|
||||
begin
|
||||
vtVyrobniTyden.Append;
|
||||
vtVyrobniTyden.FieldByName('colRok').AsInteger:= rok;
|
||||
vtVyrobniTyden.FieldByName('colTyden').AsInteger:= i;
|
||||
d:= IncDay(StartOfAWeek (rok, i, 1), -1);
|
||||
vtVyrobniTyden.FieldByName('colDatumOd').AsDateTime:= d;
|
||||
vtVyrobniTyden.FieldByName('colDatumDo').AsDateTime:= IncDay(d, 6);
|
||||
vtVyrobniTyden.Post;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.NactiRozpis (f: TformPlan; prazdny: boolean=false);
|
||||
var lSQL, where, datum: string;
|
||||
hDo, casOd: integer;
|
||||
fnd: boolean;
|
||||
begin
|
||||
if not(vtRozpis.Active) then
|
||||
vtRozpis.Open;
|
||||
|
||||
// lSQL:= 'SELECT Datum FROM ' + tblPlanRozpad + ' WHERE Datum>=DATEADD(day, -2, dbo.hf_TruncDate(GETDATE())) ORDER BY Datum';
|
||||
where:= '';
|
||||
|
||||
lSQL:= 'SELECT Datum, CasOd FROM ' + tblPlanRozpad;
|
||||
if not(prazdny) then
|
||||
begin
|
||||
where:= 'Datum>=dbo.hf_TruncDate( ISNULL( (SELECT MIN(d.CasOd) FROM ' + tblAdvKPlanDavky + ' d INNER JOIN ' + tblVPr;
|
||||
where:= where + ' p ON (p.ID=d.IDPrikaz) WHERE p.StavPrikazu IN (30,40) AND d.IdAdvKapacPlan=' + idAdvKPl.ToString + '), DATEADD(day, -2, dbo.hf_TruncDate(GETDATE()))) )';
|
||||
end;
|
||||
|
||||
if (f.sgCas.Cells[2,1]<>'') then
|
||||
where:= where + IfThen(where<>'', ' AND ', '') + 'dbo.hf_TruncDate(Datum)>=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[2,1].QuotedString + ',104))';
|
||||
if (f.sgCas.Cells[3,1]<>'') then
|
||||
where:= where + IfThen(where<>'', ' AND ', '') + 'dbo.hf_TruncDate(Datum)<=dbo.hf_TruncDate(CONVERT(datetime, N' + f.sgCas.Cells[3,1].QuotedString + ',104))';
|
||||
|
||||
if (where<>'') then
|
||||
lSQL:= lSQL + ' WHERE ' + where;
|
||||
lSQL:= lSQL + ' ORDER BY Datum, CasOd';
|
||||
|
||||
try
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
datum:= VarToStr(FieldByNameValues('Datum'));
|
||||
if (datum.IndexOf(' ')>-1) then
|
||||
datum:= LeftStr(datum, datum.IndexOf(' '));
|
||||
casOd:= VarToStr(FieldByNameValues('CasOd')).ToInteger;
|
||||
fnd:= vtRozpis.Locate ('colDatum;colHodOd', VarArrayOf ([datum, casOd]), []);
|
||||
if not(fnd) then
|
||||
begin
|
||||
vtRozpis.Append;
|
||||
vtRozpis.FieldByName('colDatum').AsString:= datum; // FormatDateTime('dd.mm.yyyy', FieldByNameValues('Datum'));
|
||||
vtRozpis.FieldByName('colHodOd').AsInteger:= casOd; // FormatDateTime('h', FieldByNameValues('Datum'));
|
||||
// hDo:= vtRozpis.FieldByName('colHodOd').AsInteger + 1;
|
||||
hDo:= casOd + 1;
|
||||
// if (hDo>=24) then hDo:= 0;
|
||||
vtRozpis.FieldByName('colHodDo').AsInteger:= hDo;
|
||||
vtRozpis.Post;
|
||||
end;
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.vtKmenCalcFields (DataSet: TDataSet);
|
||||
var ksVKar, karNaPal: integer;
|
||||
begin
|
||||
ksVKar:= 0;
|
||||
if not (DataSet.FieldByName('colKSvKA').IsNull) then
|
||||
ksVKar:= DataSet.FieldByName('colKSvKA').AsInteger;
|
||||
|
||||
karNaPal:= 0;
|
||||
if not (DataSet.FieldByName('colKAnaPAL').IsNull) then
|
||||
karNaPal:= DataSet.FieldByName('colKAnaPAL').AsInteger;
|
||||
|
||||
DataSet.FieldByName('colKSnaPAL').AsInteger:= ksVKar * karNaPal;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.GenerujRozpis (odData: TDateTime; pocetDnu: integer=14);
|
||||
var lSQL, d: string;
|
||||
c: integer;
|
||||
begin
|
||||
if (pocetDnu<0) or (pocetDnu>14) then
|
||||
pocetDnu:= 14;
|
||||
|
||||
if (helUtils.SQLObjectExists (Helios, 'dbo.ef_Vyroba_GenerujRozpadCasu'))
|
||||
and (helUtils.SQLObjectExists (Helios, tblPlanRozpad)) then
|
||||
begin
|
||||
// rozpad na 14 dnu dopredu, po 60 minutach
|
||||
lSQL:= 'DECLARE @d DATETIME=NULL' + CRLF + 'DROP TABLE IF EXISTS #Tab' + CRLF + 'CREATE TABLE #Tab (Datum DATETIME)' + CRLF
|
||||
+ IfThen(odData>0, 'SET @d = CONVERT(datetime, N' + FormatDateTime ('dd.mm.yyyy', odData).QuotedString + ', 104)', '') + CRLF
|
||||
+ 'INSERT #Tab (Datum) SELECT * FROM dbo.ef_Vyroba_GenerujRozpadCasu (@d, ' + pocetDnu.ToString + ', 60)' + CRLF
|
||||
+ 'SELECT CAST(Datum AS DATETIME) AS Datum FROM #Tab ORDER BY Datum';
|
||||
try
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
if (RecordCount>0) then
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
d:= VarToStr(FieldByNameValues('Datum'));
|
||||
if not(d.Contains('00:00')) then
|
||||
d:= d + ' 00:00:00';
|
||||
c:= MidStr(d, d.IndexOf(' ')+1, 20).Length;
|
||||
if (c=8) then
|
||||
d:= d.Replace(' ', ' 0');
|
||||
lSQL:= 'IF NOT EXISTS (SELECT 1 FROM ' + tblPlanRozpad + ' WHERE Datum=CONVERT(datetime, N' + d.QuotedString + ', 104) )' + CRLF
|
||||
+ 'INSERT ' + tblPlanRozpad + ' (Datum) SELECT CONVERT(datetime, N' + d.QuotedString + ', 104)';
|
||||
Helios.ExecSQL (lSQL);
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure Tdm2.PlanPalListyNactiSarzePrikazu (idPrikaz, ksVKA: Integer; var externiZak: string);
|
||||
var lSQL: string;
|
||||
idVC: integer;
|
||||
|
||||
begin
|
||||
if not(vtPlanPL.Active) then
|
||||
vtPlanPL.Open;
|
||||
vtPlanPL.EmptyDataSet;
|
||||
|
||||
lSQL:= 'SELECT ID, VyrCislo, Popis, DatExpirace, Mnozstvi FROM ' + tblPrikazVC + ' WHERE IDPrikaz=' + idPrikaz.ToString + ' ORDER BY VyrCislo';
|
||||
try
|
||||
with Helios.OpenSQL (lSQL) do
|
||||
if (RecordCount>0) then
|
||||
begin
|
||||
First;
|
||||
while not(EOF) do
|
||||
begin
|
||||
vtPlanPL.Append;
|
||||
vtPlanPL.FieldByName('idPrikaz').AsInteger:= idPrikaz;
|
||||
idVC:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
||||
vtPlanPL.FieldByName('IDVCPrikaz').AsInteger:= idVC;
|
||||
vtPlanPL.FieldByName('CisloPL').AsString:= VarToStr(FieldByNameValues('VyrCislo'));
|
||||
vtPlanPL.FieldByName('KAnaPal').AsInteger:= VarToStr(FieldByNameValues('Mnozstvi')).ToInteger;
|
||||
vtPlanPL.FieldByName('kusu').AsInteger:= vtPlanPL.FieldByName('KAnaPal').AsInteger * ksVKA;
|
||||
vtPlanPL.FieldByName('DatExpirace').AsString:= VarToStr(FieldByNameValues('DatExpirace'));
|
||||
externiZak:= VarToStr(FieldByNameValues('Popis'));
|
||||
|
||||
with Helios.OpenSQL('SELECT DatZahajeni FROM ' + tblPalety + ' WHERE IDVyrCisPrikaz=' + idVC.ToString) do
|
||||
if (RecordCount=1) then
|
||||
begin
|
||||
vtPlanPL.FieldByName('DatVyrobaZadano').AsString:= VarToStr(FieldByNameValues('DatZahajeni'));
|
||||
end;
|
||||
|
||||
vtPlanPL.Post;
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user