Files
Rootvin-pluginHDCRTN/_plgPlan/frmVyrobniTyden.pas
2025-05-21 21:06:33 +02:00

119 lines
2.6 KiB
ObjectPascal

unit frmVyrobniTyden;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid,
Vcl.StdCtrls;
type
TformVyberTydne = class(TForm)
grdTydny: TJvDBGrid;
cbRok: TComboBox;
btnDnes: TButton;
procedure FormShow (Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure grdTydnyDblClick(Sender: TObject);
procedure cbRokChange(Sender: TObject);
procedure btnDnesClick(Sender: TObject);
private
procedure NactiKalendar (rok: integer; tyden: byte=0; autoIns: boolean=false);
public
rok, tyden: integer;
datOd, datDo: string;
retVal: integer;
end;
var
formVyberTydne: TformVyberTydne;
implementation
uses System.DateUtils,
helUtils, datMod2;
{$R *.dfm}
procedure TformVyberTydne.btnDnesClick (Sender: TObject);
var t: integer;
begin
t:= System.DateUtils.WeekOf(Now);
grdTydny.DataSource.DataSet.Locate('colRok;colTyden', VarArrayOf([cbRok.Text, t]), []);
end;
procedure TformVyberTydne.cbRokChange (Sender: TObject);
begin
NactiKalendar (cbRok.Text.ToInteger);
end;
procedure TformVyberTydne.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:= TCloseAction.caFree;
end;
procedure TformVyberTydne.NactiKalendar (rok: Integer; tyden: byte=0; autoIns: boolean=false);
var rNow, m: integer;
begin
retVal:= 0;
datOd:= '';
datDo:= '';
rNow:= YearOf(Now);
if (autoIns) then
begin
cbRok.Items.Clear;
cbRok.Items.Add((rok-1).ToString);
cbRok.Items.Add(rok.ToString);
cbRok.Items.Add((rok+1).ToString);
cbRok.ItemIndex:= cbRok.Items.IndexOf(rok.ToString);
end;
if (Assigned(datMod2.dm2)) then
begin
if (dm2.vtVyrobniTyden<>nil) then
dm2.NactiVyrobniTydny (rok);
if (rok=rNow) then
m:= WeekOf(Now)
else
m:= System.DateUtils.WeeksInAYear (rok);
if (tyden>0) then
m:= tyden;
dm2.vtVyrobniTyden.Locate ('colRok;colTyden', VarArrayOf ([rok, m]), []);
end;
end;
procedure TformVyberTydne.FormShow (Sender: TObject);
begin
NactiKalendar (YearOf(Now), tyden, true);
end;
procedure TformVyberTydne.grdTydnyDblClick (Sender: TObject);
begin
retVal:= 10;
tyden:= dm2.vtVyrobniTyden.FieldByName('colTyden').AsInteger;
rok:= dm2.vtVyrobniTyden.FieldByName('colRok').AsInteger;
datOd:= dm2.vtVyrobniTyden.FieldByName('colDatumOd').AsString;
datDo:= dm2.vtVyrobniTyden.FieldByName('colDatumDo').AsString;
Close;
end;
end.