5030 lines
176 KiB
ObjectPascal
5030 lines
176 KiB
ObjectPascal
unit frmMain;
|
|
|
|
{$I plgEMPDeleniTrubek.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.ActiveX, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
|
|
ddPlugin_TLB, Vcl.StdCtrls, System.ImageList, Vcl.ImgList, Vcl.Mask,
|
|
Vcl.ExtCtrls, Vcl.VirtualImageList, Vcl.BaseImageCollection,
|
|
Vcl.ImageCollection, Vcl.ControlList, ES.ControlListControls,
|
|
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,
|
|
System.Generics.Collections,
|
|
datModul, Vcl.Buttons, Vcl.Touch.GestureMgr, JvExStdCtrls, JvScrollBar, RzTabs,
|
|
JvExControls, JvgDigits,
|
|
Winapi.ShlObj, Winapi.KnownFolders, Vcl.ComCtrls, JvExComCtrls,
|
|
JvDateTimePicker, AdvDateTimePicker, RzEdit,
|
|
System.SyncObjs,
|
|
arrayHelper;
|
|
|
|
const
|
|
skladMat = '1030';
|
|
PRINTER_OPTION_NO_CACHE = 1 shl 0;
|
|
KLF_ACTIVATE = $00000001;
|
|
KLF_SETFORPROCESS = $00000100;
|
|
|
|
|
|
type
|
|
{
|
|
TControlList = class(Vcl.Controllist.TControlList)
|
|
private
|
|
procedure CNCommand(var Message: TWMCommand); message CN_COMMAND;
|
|
procedure WMVScroll(var Msg: TWMHScroll); message WM_VSCROLL;
|
|
end;
|
|
}
|
|
|
|
TformMain = class(TForm)
|
|
imgListOld: TImageList;
|
|
imgColl: TImageCollection;
|
|
imgList: TVirtualImageList;
|
|
ctrlFronta: TControlList;
|
|
cbPrevod: TEsControlListCheckBox;
|
|
lblMaterial: TLabel;
|
|
lblDeleni: TLabel;
|
|
lblNadoba: TLabel;
|
|
lblRegCisPrikaz: TLabel;
|
|
Label1: TLabel;
|
|
cbZamest: TComboBox;
|
|
lblRegCis: TLabel;
|
|
lblMaterialSort: TLabel;
|
|
Label3: TLabel;
|
|
lblNadobaSort: TLabel;
|
|
edtFiltrMaterial: TEdit;
|
|
edtFiltrNadoba: TEdit;
|
|
btnSmazFiltry: TSpeedButton;
|
|
Label4: TLabel;
|
|
lblRecCount: TLabel;
|
|
edtFiltrPila: TEdit;
|
|
edtFiltrPlan: TEdit;
|
|
panelPila: TPanel;
|
|
panelPlan: TPanel;
|
|
btnAddPila: TSpeedButton;
|
|
btnAddPila2: TSpeedButton;
|
|
boxFiltry: TGroupBox;
|
|
frontaPanel: TPanel;
|
|
btnFiltrPila: TBitBtn;
|
|
btnFiltrPlan: TBitBtn;
|
|
lblPila1RegCis: TLabel;
|
|
lblPila1Skladem: TLabel;
|
|
lblPila1Sarze: TLabel;
|
|
lblPila1SarzeSkladem: TLabel;
|
|
frontaPila: TControlList;
|
|
lblPila1ItemDeleni: TLabel;
|
|
lblPila1ItemNadoba: TLabel;
|
|
btnPauzaPila: TSpeedButton;
|
|
btnPila2Pauza: TSpeedButton;
|
|
lblPila1ItemRadaPrikaz: TLabel;
|
|
lblRadaPrikaz: TLabel;
|
|
lblRecSelected: TLabel;
|
|
Panel1: TPanel;
|
|
btnFrontaUp: TSpeedButton;
|
|
btnFrontaPgUp: TSpeedButton;
|
|
btnFrontaPgDown: TSpeedButton;
|
|
btnFrontaDown: TSpeedButton;
|
|
cbFrontaAll: TCheckBox;
|
|
timerNactiFrontu: TTimer;
|
|
time2: TTimer;
|
|
btnStopPila: TSpeedButton;
|
|
btnPila2Stop: TSpeedButton;
|
|
btnDelPila: TSpeedButton;
|
|
btnPila2Del: TSpeedButton;
|
|
Label2: TLabel;
|
|
pgCtrl: TRzPageControl;
|
|
shPila: TRzTabSheet;
|
|
shPlan: TRzTabSheet;
|
|
frontaPlan: TControlList;
|
|
lblPlanItemDeleni: TLabel;
|
|
lblPlanItemNadoba: TLabel;
|
|
lblPlanItemRadaPrikaz: TLabel;
|
|
btnTiskStitku: TSpeedButton;
|
|
btnPlanUp: TSpeedButton;
|
|
btnPlanPgUp: TSpeedButton;
|
|
btnPlanPgDown: TSpeedButton;
|
|
btnPlanDown: TSpeedButton;
|
|
btnPilaPgUp: TSpeedButton;
|
|
btnPilaUp: TSpeedButton;
|
|
btnPilaDown: TSpeedButton;
|
|
btnPilaPgDown: TSpeedButton;
|
|
lblPlanRegCis: TLabel;
|
|
lblPlanSkladem: TLabel;
|
|
lblPlanSarze: TLabel;
|
|
lblPlanSarzeSkladem: TLabel;
|
|
lblPlanDelkaSum: TLabel;
|
|
lblPilaDelkaSum: TLabel;
|
|
btnDigitReset: TButton;
|
|
digitTimer: TTimer;
|
|
lblTimerPila: TLabel;
|
|
btnObrazek: TSpeedButton;
|
|
btnPosliNaPilu: TBitBtn;
|
|
btnFiltrMat: TSpeedButton;
|
|
btnCalc: TSpeedButton;
|
|
Label5: TLabel;
|
|
Label6: TLabel;
|
|
Label7: TLabel;
|
|
Label8: TLabel;
|
|
Label9: TLabel;
|
|
Label10: TLabel;
|
|
Label11: TLabel;
|
|
Label12: TLabel;
|
|
lblPila1Nazev1: TLabel;
|
|
lblPlanNazev1: TLabel;
|
|
timer3: TTimer;
|
|
btnAllZamest: TButton;
|
|
btnDelPilaOne: TSpeedButton;
|
|
btnSrot: TButton;
|
|
btnCalcNadoba: TSpeedButton;
|
|
edtFiltrNazev: TEdit;
|
|
btnFiltrNazev: TSpeedButton;
|
|
edtFiltrDN: TEdit;
|
|
edtFiltrPrumer: TEdit;
|
|
edtFiltrTloustka: TEdit;
|
|
edtFiltrJakost: TEdit;
|
|
edtFiltrProfil: TEdit;
|
|
Label13: TLabel;
|
|
lblPrumer: TLabel;
|
|
Label14: TLabel;
|
|
lblTloustka: TLabel;
|
|
lblFiltrDN: TLabel;
|
|
lblFiltrPrumer: TLabel;
|
|
lblFiltrTloustka: TLabel;
|
|
lblFiltrJakostMat: TLabel;
|
|
lblFiltrProfil: TLabel;
|
|
btnKonecDavky: TButton;
|
|
btnFiltrPilaDel: TSpeedButton;
|
|
lblRezatUhel: TLabel;
|
|
lblRezatUhelPlan: TLabel;
|
|
lblRezatUhelPila: TLabel;
|
|
btnZmenaSarze: TButton;
|
|
pgCtrlMD: TRzPageControl;
|
|
shFrontaPrace: TRzTabSheet;
|
|
shMatDavky: TRzTabSheet;
|
|
ctrlMD: TControlList;
|
|
lblMDCislo: TLabel;
|
|
pnlHeaderMD: TPanel;
|
|
Label15: TLabel;
|
|
lblMDDatum: TLabel;
|
|
lblMDCisloZbo: TLabel;
|
|
lblMDNazev: TLabel;
|
|
lblMDPrumer: TLabel;
|
|
lblMDTloustka: TLabel;
|
|
lblMDJakost: TLabel;
|
|
lblMDDM: TLabel;
|
|
Label16: TLabel;
|
|
Label17: TLabel;
|
|
Label18: TLabel;
|
|
Label19: TLabel;
|
|
Label20: TLabel;
|
|
Label21: TLabel;
|
|
Label22: TLabel;
|
|
Label24: TLabel;
|
|
Label25: TLabel;
|
|
Shape1: TShape;
|
|
edtFiltrMDCislo: TEdit;
|
|
btnSmazFiltryMD: TSpeedButton;
|
|
dtFiltrMDDatum: TRzDateTimeEdit;
|
|
lblMDPozic: TLabel;
|
|
btnTiskBezEvidence: TBitBtn;
|
|
lblPozicePilaFronta: TLabel;
|
|
lblRegCisPrikaz2: TLabel;
|
|
edtFiltrMDDM: TEdit;
|
|
edtFiltrMDSila: TEdit;
|
|
edtFiltrMDPrumer: TEdit;
|
|
lblJsemAlter: TLabel;
|
|
edtFiltrMDRegCisMat: TEdit;
|
|
edtFiltrMDRozmer: TEdit;
|
|
edtFiltrMDNormaMAT: TEdit;
|
|
lblMDRozmer: TLabel;
|
|
lblMDNormaMat: TLabel;
|
|
procedure FormShow (Sender: TObject);
|
|
procedure cbZamestChange (Sender: TObject);
|
|
procedure ctrlFrontaBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
procedure cbPrevodClick (Sender: TObject);
|
|
procedure lblNadobaSortClick (Sender: TObject);
|
|
procedure lblMaterialSortClick (Sender: TObject);
|
|
procedure edtFiltrMaterialExit (Sender: TObject);
|
|
procedure edtFiltrNadobaExit (Sender: TObject);
|
|
procedure btnSmazFiltryClick (Sender: TObject);
|
|
procedure edtFiltrMaterialEnter (Sender: TObject);
|
|
procedure edtFiltrNadobaEnter (Sender: TObject);
|
|
procedure ctrlFrontaItemClick (Sender: TObject);
|
|
procedure ctrlFrontaMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
procedure btnFiltrPilaClick (Sender: TObject);
|
|
procedure edtFiltrPilaExit (Sender: TObject);
|
|
procedure btnFiltrPlanClick (Sender: TObject);
|
|
procedure edtFiltrPlanExit (Sender: TObject);
|
|
procedure edtFiltrPilaEnter (Sender: TObject);
|
|
procedure edtFiltrPlanEnter (Sender: TObject);
|
|
procedure btnAddPilaClick (Sender: TObject);
|
|
procedure frontaPilaBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
procedure edtFiltrMaterialKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure lblMaterialClick (Sender: TObject);
|
|
procedure lblRegCisClick (Sender: TObject);
|
|
procedure btnFrontaDownClick (Sender: TObject);
|
|
procedure btnFrontaPgDownClick (Sender: TObject);
|
|
procedure btnFrontaPgUpClick (Sender: TObject);
|
|
procedure btnFrontaUpClick (Sender: TObject);
|
|
procedure cbFrontaAllClick (Sender: TObject);
|
|
procedure timerNactiFrontuTimer (Sender: TObject);
|
|
procedure btnDelPilaClick (Sender: TObject);
|
|
procedure btnPila2DelClick (Sender: TObject);
|
|
procedure btnPilaPgUpClick (Sender: TObject);
|
|
procedure btnPilaUpClick (Sender: TObject);
|
|
procedure btnPilaDownClick (Sender: TObject);
|
|
procedure btnPilaPgDownClick (Sender: TObject);
|
|
procedure btnPlanPgUpClick (Sender: TObject);
|
|
procedure btnPlanPgDownClick (Sender: TObject);
|
|
procedure btnPlanUpClick (Sender: TObject);
|
|
procedure btnPlanDownClick (Sender: TObject);
|
|
procedure frontaPlanBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
procedure FormClose (Sender: TObject; var Action: TCloseAction);
|
|
procedure frontaPlanAfterDrawItems (ACanvas: TCanvas; ARect: TRect);
|
|
procedure btnTiskStitkuClick (Sender: TObject);
|
|
procedure btnDigitResetClick (Sender: TObject);
|
|
procedure digitTimerTimer (Sender: TObject);
|
|
procedure btnPosliNaPiluClick (Sender: TObject);
|
|
procedure pgCtrlChange (Sender: TObject);
|
|
procedure btnObrazekClick (Sender: TObject);
|
|
procedure btnFiltrMatClick (Sender: TObject);
|
|
procedure frontaPilaItemClick (Sender: TObject);
|
|
procedure btnCalcClick (Sender: TObject);
|
|
procedure timer3Timer (Sender: TObject);
|
|
procedure btnAllZamestClick (Sender: TObject);
|
|
procedure btnDelPilaOneClick (Sender: TObject);
|
|
procedure btnSrotClick (Sender: TObject);
|
|
procedure lblPlanItemDeleniClick (Sender: TObject);
|
|
procedure btnCalcNadobaClick (Sender: TObject);
|
|
procedure edtFiltrNazevEnter (Sender: TObject);
|
|
procedure edtFiltrNazevExit (Sender: TObject);
|
|
procedure edtFiltrDNEnter (Sender: TObject);
|
|
procedure edtFiltrPrumerEnter (Sender: TObject);
|
|
procedure edtFiltrTloustkaEnter (Sender: TObject);
|
|
procedure edtFiltrJakostEnter (Sender: TObject);
|
|
procedure edtFiltrJakostExit (Sender: TObject);
|
|
procedure edtFiltrJakostKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrProfilEnter (Sender: TObject);
|
|
procedure edtFiltrProfilExit (Sender: TObject);
|
|
procedure edtFiltrProfilKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrDNExit (Sender: TObject);
|
|
procedure edtFiltrDNKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrPrumerExit (Sender: TObject);
|
|
procedure edtFiltrPrumerKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrTloustkaExit (Sender: TObject);
|
|
procedure edtFiltrTloustkaKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrNazevKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure btnKonecDavkyClick (Sender: TObject);
|
|
procedure btnFiltrPilaDelClick (Sender: TObject);
|
|
procedure frontaPilaAfterDrawItems (ACanvas: TCanvas; ARect: TRect);
|
|
procedure ctrlMDBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
procedure ctrlMDBeforeDrawItems (ACanvas: TCanvas; ARect: TRect);
|
|
procedure ctrlMDItemClick (Sender: TObject);
|
|
procedure lblMDCisloZboClick (Sender: TObject);
|
|
procedure btnZmenaSarzeClick (Sender: TObject);
|
|
procedure ctrlMDMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
procedure edtFiltrMDCisloKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrMDCisloExit (Sender: TObject);
|
|
procedure dtFiltrMDDatumChange (Sender: TObject);
|
|
procedure btnSmazFiltryMDClick (Sender: TObject);
|
|
procedure dtFiltrMDDatumDateTimeChange (Sender: TObject; DateTime: TDateTime);
|
|
procedure pgCtrlMDChange (Sender: TObject);
|
|
procedure edtFiltrPilaChange (Sender: TObject);
|
|
procedure btnTiskBezEvidenceClick (Sender: TObject);
|
|
procedure Label4MouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
procedure edtFiltrMDDMKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrMDDMExit (Sender: TObject);
|
|
procedure edtFiltrMDSilaExit (Sender: TObject);
|
|
procedure edtFiltrMDSilaKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrMDRegCisMatExit (Sender: TObject);
|
|
procedure edtFiltrMDRegCisMatKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrMDRozmerExit (Sender: TObject);
|
|
procedure edtFiltrMDRozmerKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure edtFiltrMDNormaMatExit (Sender: TObject);
|
|
procedure edtFiltrMDNormaMatKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
private
|
|
FTiskThread: TThread;
|
|
apiTiskTasks: TArrayRecord<integer>;
|
|
canAktPilu: boolean;
|
|
// FPila: TList<TZaznamPily>;
|
|
// FPlan: TList<TZaznamPily>;
|
|
function EvidencePrace (idRezRozpisR: integer): integer; // vystup je TabPrikazMzdyAZmetky.ID nebo 0
|
|
|
|
procedure ShowTabTip;
|
|
procedure CloseTabTip;
|
|
procedure NactiPracovnikyPily;
|
|
procedure NactiRozpracovanePolozky;
|
|
procedure NactiFrontu;
|
|
procedure UpdateVyber;
|
|
procedure AktualizujFrontuPila;
|
|
procedure NactiMnozstviSkladu (pila: boolean=true; idKZ: integer=0; sarze: string='');
|
|
procedure VymazUdajePilaNeboPlan (plan: Boolean=false);
|
|
procedure NactiZamestnanceDleIDNeboCisla (id: integer=0; cislo: Integer=0);
|
|
procedure ZapisInfoMaterialPila;
|
|
procedure ZapisInfoMaterialPlan;
|
|
procedure TiskniZAPIAddTask (idRezPredpisR, idPrKV: integer);
|
|
procedure TTiskThreadDestroy (Sender: TObject);
|
|
public
|
|
Helios: IHelios;
|
|
dm: Tdm;
|
|
idDP: integer;
|
|
end;
|
|
|
|
var
|
|
formMain: TformMain;
|
|
bc, szrc, sz, rc, sarze, msgProTimer: string;
|
|
sklMat: string;
|
|
mamSarzi, kmenStavOK, sarzeStavOK, materialOK, materialPilaOK, jsemZUlozenych: boolean;
|
|
idKZ, idSS, idVCS, cisZam, idZam: integer;
|
|
mnozSkl: extended;
|
|
idPrac: integer;
|
|
pilaOK, planOK, canSelFronta, firstNacitani: boolean;
|
|
pilaDelkaSum, planDelkaSum: extended;
|
|
timerPila: integer;
|
|
itemPilaProTisk: integer;
|
|
oVar1, oVar2: OleVariant;
|
|
pilaReqSN, planReqSN: boolean;
|
|
calcTyp: byte;
|
|
tick1: Cardinal;
|
|
showMDDetail: boolean;
|
|
|
|
implementation
|
|
uses System.StrUtils, System.Character, System.Rtti, System.Math, WinAPI.ShellAPI, Vcl.Clipbrd,
|
|
System.Threading, Winapi.WinSpool, Vcl.Printers,
|
|
frmCalc, frmObrazekKZ, frmKeyb, frmPolozkyMD, helUtils;
|
|
{$R *.dfm}
|
|
|
|
|
|
|
|
procedure TformMain.UpdateVyber;
|
|
var i: integer;
|
|
begin
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.CloseTabTip;
|
|
var HwndTabTip: HWND;
|
|
begin
|
|
HwndTabTip := FindWindow(PChar('IPTip_Main_Window'), nil);
|
|
if (HwndTabTip <> 0) then
|
|
PostMessage(HwndTabTip, WM_SYSCOMMAND, SC_CLOSE, 0);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ShowTabTip;
|
|
var SI: TStartupInfo;
|
|
PI: TProcessInformation;
|
|
ExeName: string;
|
|
begin
|
|
ExeName:= GetEnvironmentVariable('CommonProgramW6432') + '\microsoft shared\ink\TabTip.exe';
|
|
ZeroMemory(@SI, SizeOf(SI));
|
|
SI.cb := SizeOf(SI);
|
|
if not CreateProcess (PChar(ExeName), nil, nil, nil, False, 0, nil, nil, SI, PI) then
|
|
RaiseLastOSError;
|
|
CloseHandle(PI.hProcess);
|
|
CloseHandle(PI.hThread);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ZapisInfoMaterialPila;
|
|
var lSQL: string;
|
|
begin
|
|
if (datModul.idKmenMaterialPila>0) then
|
|
begin
|
|
// if (edtFiltrPila.Text='') then
|
|
begin
|
|
lSQL:= 'SELECT k.Nazev1 + N'' '' + ISNULL(ke._Rozmer, N'''') + N'' / '' + ISNULL(ke._S1_X, N'''') + N'' '' + ISNULL(ke._JakostMaterialu, N'''') AS Nazev1, k.RegCis FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE k.id=' + datModul.idKmenMaterialPila.ToString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
lblPila1Nazev1.Caption:= VarToStr(FieldByNameValues('Nazev1'));
|
|
lblPila1RegCis.Caption:= VarToStr(FieldByNameValues('RegCis'));
|
|
end;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
lblPila1Nazev1.Caption:= '';
|
|
lblPila1RegCis.Caption:= '';
|
|
lblPila1Skladem.Caption:= '';
|
|
lblPila1Sarze.Caption:= '';
|
|
lblPila1SarzeSkladem.Caption:= '';
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TformMain.ZapisInfoMaterialPlan;
|
|
var lSQL: string;
|
|
begin
|
|
if (datModul.idKmenMaterialPlan>0) then
|
|
begin
|
|
if (edtFiltrPila.Text='') then
|
|
begin
|
|
lSQL:= 'SELECT k.Nazev1 + N'' '' + ISNULL(ke._Rozmer, N'''') + N'' / '' + ISNULL(ke._S1_X, N'''') + N'' '' + ISNULL(ke._JakostMaterialu, N'''') AS Nazev1, k.RegCis FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE k.id=' + datModul.idKmenMaterialPlan.ToString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
lblPlanNazev1.Caption:= VarToStr(FieldByNameValues('Nazev1'));
|
|
lblPlanRegCis.Caption:= VarToStr(FieldByNameValues('RegCis'));
|
|
end;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
lblPlanNazev1.Caption:= '';
|
|
lblPlanRegCis.Caption:= '';
|
|
lblPlanSkladem.Caption:= '';
|
|
lblPlanSarze.Caption:= '';
|
|
lblPlanSarzeSkladem.Caption:= '';
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.NactiRozpracovanePolozky;
|
|
var lSQL, prpA, sarze: string;
|
|
i, idH, poz, iTemp: integer;
|
|
idPol, idVPr, prpD, idPrVaz, idPrP, idPrac, idKZMat, idMaD: integer;
|
|
z, zx: TZamestnanec;
|
|
jeTiskAkt: boolean;
|
|
begin
|
|
if not(dm.tblPila.Active) then
|
|
dm.tblPila.Open;
|
|
if not(dm.tblPlan.Active) then
|
|
dm.tblPlan.Open;
|
|
|
|
canAktPilu:= false;
|
|
|
|
Helios.ExecSQL('SELECT 2 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 2''');
|
|
|
|
iTemp:= 0;
|
|
lSQL:= 'SELECT TOP(1) ID, ISNULL(OsCislo,0) AS OsCislo, ISNULL(Sarze, N'''') AS Sarze, ISNULL(IdKmenZboMaterial,0) AS IdKmenZboMaterial, ISNULL(IDPlanMD,0) AS IDPlanMD FROM ' + tblRezPredpis;
|
|
lSQL:= lSQL + ' WHERE Splneno=0 AND IDPlanMD IS NOT NULL AND JePlan=0 AND LoginName=SUSER_SNAME()'; // DeviceID=N' + datModul.devID.QuotedString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
|
|
idH:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
sarze:= VarToStr(FieldByNameValues('Sarze'));
|
|
datModul.idHlavPila:= idH;
|
|
cisZam:= VarToStr(FieldByNameValues('OsCislo')).ToInteger;
|
|
idZam:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCZam + ' WHERE Cislo=' + cisZam.ToString);
|
|
z:= TZamestnanec.Create(0, cisZam, Helios);
|
|
for i:=0 to cbZamest.Items.Count-1 do
|
|
begin
|
|
zx:= (cbZamest.Items.Objects[i] as TZamestnanec);
|
|
if (zx.Cislo=z.Cislo) then
|
|
cbZamest.ItemIndex:= i;
|
|
end;
|
|
FreeAndNil (z);
|
|
FreeAndNil (zx);
|
|
|
|
|
|
// nacti udaje z Materialove davky
|
|
idMaD:= VarToStr(FieldByNameValues('IDPlanMD')).ToInteger;
|
|
if (idMaD>0) and (datModul.idMatDavka=0) then
|
|
datModul.idMatDavka:= idMaD;
|
|
if (idMaD>0) and (shPila.Caption='DÁVKA') then
|
|
shPila.Caption:= 'DÁVKA ' + helUtils.getHeliosStrVal(Helios, '', 'SELECT Cislo FROM ' + tblMatDavkyH + ' WHERE ID=' + idMaD.ToString);
|
|
|
|
if (datModul.idMatDavka>0) then
|
|
datModul.idMatDavkaKmen:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDKmenZboziMat FROM ' + tblMatDavkyH + ' WHERE ID=' + datModul.idMatDavka.ToString);
|
|
if (datModul.idMatDavkaKmen>0) then
|
|
NactiMnozstviSkladu (true, datModul.idMatDavkaKmen, '');
|
|
|
|
|
|
Helios.ExecSQL('SELECT 3 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 3''');
|
|
|
|
// dopln vazby na operaci
|
|
lSQL:= 'MERGE ' + tblRezPredpisR + ' AS T USING (SELECT v.ID AS IDPrKVazby, p.Doklad, p.Alt FROM ' + tblPrKVaz + ' v LEFT JOIN ' + tblPrPost;
|
|
lSQL:= lSQL + ' p ON (p.operace=v.Operace AND p.IDPrikaz=v.IDPrikaz AND p.IDOdchylkyDo IS NULL)) AS S ON (T.IDPrKVazby=S.IDPrKVazby)';
|
|
lSQL:= lSQL + ' WHEN MATCHED AND T.DokladOper IS NULL THEN UPDATE SET T.DokladOper=S.Doklad, T.AltOper=S.Alt;';
|
|
// Helios.ExecSQL(lSQL);
|
|
|
|
|
|
Helios.ExecSQL('SELECT 4 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 4''');
|
|
|
|
lSQL:= 'SELECT r.ID, r.IDPrikaz, r.Doklad, ISNULL(r.Operace, IIF(TRIM(r.Operace)<>N'''', TRIM(r.Operace), o.Operace)) AS Operace, ISNULL(r.DokladOper, o.Doklad) AS DokladOper';
|
|
lSQL:= lSQL + ', ISNULL(r.AltOper, o.Alt) AS AltOper, r.IDPrKVazby, r.IDKmenMaterial, r.MnozstviKs, r.Mnozstvi, r.MnozstviReal';
|
|
lSQL:= lSQL + ', r.MnozstviRealKs, r.Tisk, ISNULL(r.IdMzdy,0) AS IdMzdy, r.IDPlanMD, r.IDPlanMDPol FROM ' + tblRezPredpisR + ' r';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblPrKVaz + ' v ON (v.ID=r.IDPrKVazby AND v.IDOdchylkyDo IS NULL)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblPrPost + ' o ON (o.Operace=v.Operace AND o.IDPrikaz=r.IDPrikaz AND o.IDOdchylkyDo IS NULL)';
|
|
lSQL:= lSQL + ' WHERE r.IDMzdy IS NULL AND r.Tisk=0 AND ISNULL(v.Splneno,0)=0 AND r.IDHlavicka=' + idH.ToString;
|
|
lSQL:= lSQL + ' AND r.IDPrikaz IN (SELECT ID FROM ' + tblVPr + ' WHERE DATEDIFF(year, DatPorizeni, GETDATE())<5 AND StavPrikazu IN (30))';
|
|
lSQL:= lSQL + ' ORDER BY r.Pozice, r.ID';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
idPol:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
idVPr:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
|
|
prpD:= VarToStr(FieldByNameValues('DokladOper')).ToInteger;
|
|
prpA:= VarToStr(FieldByNameValues('AltOper'));
|
|
idPrVaz:= VarToStr(FieldByNameValues('IDPrKVazby')).ToInteger;
|
|
|
|
lSQL:= 'SELECT ID FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString + ' AND Doklad=' + prpD.ToString + ' AND Alt=N' + prpA.QuotedString;
|
|
idPrP:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
|
|
idPrac:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT pracoviste FROM ' + tblPrPost + ' WHERE ID=' + idPrP.ToString);
|
|
poz:= dm.MaxPoziceTab (dm.tblPila) + 10;
|
|
|
|
dm.tblPila.Append;
|
|
dm.tblPila.FieldByName('colPozice').AsInteger:= poz;
|
|
dm.tblPila.FieldByName('colPoziceInt').AsInteger:= poz;
|
|
dm.tblPila.FieldByName('colIDPrKVazby').AsInteger:= idPrVaz;
|
|
dm.tblPila.FieldByName('colIDPrPostup').AsInteger:= idPrP;
|
|
dm.tblPila.FieldByName('colIDHlavicka').AsInteger:= idH;
|
|
dm.tblPila.FieldByName('colIDPolozka').AsInteger:= idPol;
|
|
|
|
dm.tblPila.FieldByName('colIDPlanH').AsInteger:= idMaD;
|
|
dm.tblPila.FieldByName('colIDPlanR').AsString:= VarToStr(FieldByNameValues('IDPlanMDPol'));
|
|
|
|
dm.tblPila.FieldByName('colKs').AsExtended:= VarToStr(FieldByNameValues('MnozstviKs')).ToExtended;
|
|
dm.tblPila.FieldByName('colOperace').AsString:= VarToStr(FieldByNameValues('Operace'));
|
|
dm.tblPila.FieldByName('colTisk').AsString:= VarToStr(FieldByNameValues('Tisk'));
|
|
dm.tblPila.FieldByName('colIDMzdy').AsInteger:= VarToStr(FieldByNameValues('IdMzdy')).ToInteger;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= (dm.tblPila.FieldByName('colIDMzdy').AsInteger=0);
|
|
dm.tblPila.FieldByName('colPokracujVTisku').AsBoolean:= dm.tblPila.FieldByName('colPovoleno').AsBoolean;
|
|
|
|
lSQL:= 'SELECT pp.ID, mvaz.ID AS IDMVaz, kzvp.SkupZbo, kzvp.RegCis, kzvp.Nazev1, kzmvaz.ID AS IDKmenMat, kzmvaz.SkupZbo AS SkupZboMat, kzmvaz.RegCis AS RegCisMat, kzmvaz.Nazev1 AS Nazev1Mat, mvaz.pozice';
|
|
lSQL:= lSQL + ', ISNULL(zak.Nazev,N'''') AS CisloNadoby, kzf.Nazev1, kzf.Vykres, pp.operace, ISNULL(mvaz.mnozstvi,0)*1000 AS MnozMat, ISNULL(mvaz.mnoz_Nevydane,0)*1000 AS MnozMatCelkem';
|
|
lSQL:= lSQL + ', ISNULL(mvazv.mnoz_Nevydane, (mvaz.mnoz_Nevydane/mvaz.mnozstvi)) AS MnozVys, vp.RadaPrikaz, ISNULL(kzmvazE._Rozmer, N'''') AS Rozmer';
|
|
lSQL:= lSQL + ', ISNULL(pp.Plan_zadani, vp.Plan_zadani) AS Datum, vp.RadaPrikaz, ISNULL(kzmvazE._JakostMaterialu, N'''') AS JakostMat';
|
|
lSQL:= lSQL + ', ISNULL(kzmvazE._S1_X, N'''') AS SilaMat, ISNULL(kzmvazE._Dm1_X, 0) AS Prumer, ISNULL(kzmvazE._DN1, N'''') AS DN';
|
|
lSQL:= lSQL + ' FROM ' + tblPrPost + ' pp INNER JOIN ' + tblPrikaz + ' vp ON (vp.ID=pp.IDPrikaz) INNER JOIN ' + tblKZ + ' kzvp ON (kzvp.ID=vp.IdTabKmen)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblPrikaz + ' vpv ON (vpv.ID=vp.IDPrikazVyssi) LEFT JOIN ' + tblPrikaz + ' vpf ON (vpf.ID=vp.IDPrikazRidici)';
|
|
lSQL:= lSQL + ' INNER JOIN ' + tblPrVaz + ' mvaz ON (mvaz.Splneno=0 AND mvaz.IDPrikaz=vp.ID AND mvaz.operace=pp.operace AND mvaz.IDOdchylkyDo IS NULL)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblZak + ' zak ON (zak.ID=vpf.IDZakazka) INNER JOIN ' + tblKZ + ' kzf ON (kzf.ID=vpf.IdTabKmen)';
|
|
lSQL:= lSQL + ' LEFT JOIN dbo.TabPrKVazby mvazv ON (mvazv.IDPrikaz=vpv.ID AND mvazv.IDOdchylkyDo IS NULL AND mvazv.nizsi=mvaz.vyssi)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblKZ + ' kzmvaz ON (kzmvaz.ID=mvaz.nizsi) LEFT JOIN ' + tblKZe + ' kzmvazE ON (kzmvazE.ID=kzmvaz.ID)';
|
|
lSQL:= lSQL + ' WHERE pp.ID=' + idPrP.ToString + ' AND ISNULL(vpf.StavPrikazu,30)=30 AND vp.StavPrikazu=30 AND pp.prednastaveno=1';
|
|
lSQL:= lSQL + ' AND pp.splneno=0 AND pp.IDOdchylkyDo IS NULL AND pp.pracoviste=' + idPrac.ToString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
First;
|
|
dm.tblPila.FieldByName('colSZ').AsString:= VarToStr(FieldByNameValues('SkupZboMat'));
|
|
dm.tblPila.FieldByName('colRegCis').AsString:= VarToStr(FieldByNameValues('RegCisMat'));
|
|
dm.tblPila.FieldByName('colCisloZboziMat').AsString:= VarToStr(FieldByNameValues('SkupZboMat')).Trim + VarToStr(FieldByNameValues('RegCisMat')).Trim;
|
|
dm.tblPila.FieldByName('colIDKmenMat').AsString:= VarToStr(FieldByNameValues('IDKmenMat')).Trim;
|
|
dm.tblPila.FieldByName('colRozmer').AsString:= VarToStr(FieldByNameValues('Rozmer')).Trim;
|
|
dm.tblPila.FieldByName('colNazev1').AsString:= VarToStr(FieldByNameValues('Nazev1Mat'));
|
|
dm.tblPila.FieldByName('colKs').AsExtended:= VarToStr(FieldByNameValues('MnozVys')).ToExtended;
|
|
dm.tblPila.FieldByName('colDelka').AsExtended:= VarToStr(FieldByNameValues('MnozMat')).ToExtended;
|
|
dm.tblPila.FieldByName('colDelkaCelkem').AsExtended:= dm.tblPila.FieldByName('colKs').AsExtended * VarToStr(FieldByNameValues('MnozMat')).ToExtended;
|
|
dm.tblPila.FieldByName('colNadoba').AsString:= VarToStr(FieldByNameValues('CisloNadoby')).Trim;
|
|
dm.tblPila.FieldByName('colVykresFin').AsString:= VarToStr(FieldByNameValues('Vykres')).Trim;
|
|
// dm.tblPila.FieldByName('colPozice').AsString:= VarToStr(FieldByNameValues('pozice')).Trim;
|
|
dm.tblPila.FieldByName('colJakostMat').AsString:= VarToStr(FieldByNameValues('JakostMat')).Trim;
|
|
dm.tblPila.FieldByName('colSilaMat').AsString:= VarToStr(FieldByNameValues('SilaMat')).Trim;
|
|
dm.tblPila.FieldByName('colDatum').AsDateTime:= FieldByNameValues('Datum');
|
|
dm.tblPila.FieldByName('colVybran').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colSmazat').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colRadaPrikaz').AsString:= VarToStr(FieldByNameValues('RadaPrikaz')).Replace(' ', '').Trim;
|
|
|
|
dm.tblPila.FieldByName('colSZPrikaz').AsString:= VarToStr(FieldByNameValues('SkupZbo')).Trim; // SZ dilce vyrobniho prikazu
|
|
dm.tblPila.FieldByName('colRegCisPrikaz').AsString:= VarToStr(FieldByNameValues('RegCis')).Trim; // RegCis dilce vyrobniho prikazu
|
|
|
|
dm.tblPila.FieldByName('colPrumer').AsString:= VarToStr(FieldByNameValues('Prumer')).Trim;
|
|
dm.tblPila.FieldByName('colDN').AsString:= VarToStr(FieldByNameValues('DN')).Trim;
|
|
|
|
dm.tblPila.Post;
|
|
end
|
|
else
|
|
dm.tblPila.Cancel;
|
|
Next;
|
|
end;
|
|
|
|
Helios.ExecSQL('SELECT 5 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 5''');
|
|
|
|
jsemZUlozenych:= true;
|
|
edtFiltrPila.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloZbozi FROM ' + tblKZ + ' WHERE ID=' + datModul.idMatDavkaKmen.ToString);
|
|
|
|
iTemp:= 0;
|
|
if (datModul.idKmenMaterialPila>0) then
|
|
begin
|
|
iTemp:= datModul.idKmenMaterialPila;
|
|
datModul.idMatDavkaKmen:= iTemp;
|
|
end;
|
|
{
|
|
firstNacitani:= true;
|
|
edtFiltrPilaExit (self);
|
|
firstNacitani:= false;
|
|
}
|
|
if (iTemp>0) then
|
|
datModul.idKmenMaterialPila:= iTemp;
|
|
|
|
edtFiltrPila.Text:= '';
|
|
jsemZUlozenych:= false;
|
|
end;
|
|
|
|
Next;
|
|
end;
|
|
end;
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= btnDelPila.Enabled;
|
|
frontaPila.Invalidate;
|
|
|
|
|
|
Helios.ExecSQL('SELECT 6 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 6''');
|
|
|
|
|
|
|
|
lSQL:= 'SELECT ID, ISNULL(OsCislo,0) AS OsCislo, ISNULL(Sarze, N'''') AS Sarze FROM ' + tblRezPredpis;
|
|
lSQL:= lSQL + ' WHERE Splneno=0 AND JePlan=1 AND LoginName=SUSER_SNAME()'; // DeviceID=N' + datModul.devID.QuotedString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
Helios.ExecSQL('SELECT 7 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 7''');
|
|
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
idH:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
sarze:= VarToStr(FieldByNameValues('Sarze'));
|
|
datModul.idHlavPlan:= idH;
|
|
if (cbZamest.ItemIndex=-1) then
|
|
begin
|
|
cisZam:= VarToStr(FieldByNameValues('OsCislo')).ToInteger;
|
|
idZam:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblCZam + ' WHERE Cislo=' + cisZam.ToString);
|
|
z:= TZamestnanec.Create(0, cisZam, Helios);
|
|
for i:=0 to cbZamest.Items.Count-1 do
|
|
begin
|
|
zx:= (cbZamest.Items.Objects[i] as TZamestnanec);
|
|
if (zx.Cislo=z.Cislo) then
|
|
cbZamest.ItemIndex:= i;
|
|
end;
|
|
FreeAndNil(z);
|
|
FreeAndNil(zx);
|
|
end;
|
|
|
|
Helios.ExecSQL('SELECT 8 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 8''');
|
|
|
|
lSQL:= 'SELECT ID, IDPrikaz, Doklad, Operace, DokladOper, AltOper, IDPrKVazby, IDKmenMaterial, MnozstviKs, Mnozstvi, MnozstviReal, MnozstviRealKs, Tisk FROM ';
|
|
lSQL:= lSQL + tblRezPredpisR + ' WHERE IDMzdy IS NULL AND IDHlavicka=' + idH.ToString + ' ORDER BY Pozice, ID';
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
Helios.ExecSQL('SELECT 9 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 9''');
|
|
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
idPol:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
idVPr:= VarToStr(FieldByNameValues('IDPrikaz')).ToInteger;
|
|
prpD:= VarToStr(FieldByNameValues('DokladOper')).ToInteger;
|
|
prpA:= VarToStr(FieldByNameValues('AltOper'));
|
|
idPrVaz:= VarToStr(FieldByNameValues('IDPrKVazby')).ToInteger;
|
|
lSQL:= 'SELECT ID FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString + ' AND Doklad=' + prpD.ToString + ' AND Alt=N' + prpA.QuotedString;
|
|
idPrP:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
idPrac:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT pracoviste FROM ' + tblPrPost + ' WHERE ID=' + idPrP.ToString);
|
|
idKZMat:= VarToStr(FieldByNameValues('IDKmenMaterial')).ToInteger;
|
|
poz:= dm.MaxPoziceTab (dm.tblPlan) + 10;
|
|
|
|
if (datModul.idKmenMaterialPlan=0) then
|
|
datModul.idKmenMaterialPlan:= idKZMat;
|
|
|
|
NactiMnozstviSkladu (true, idKZMat, '');
|
|
|
|
dm.tblPlan.Append;
|
|
dm.tblPlan.FieldByName('colPozice').AsInteger:= poz;
|
|
dm.tblPlan.FieldByName('colIDPrKVazby').AsInteger:= idPrVaz;
|
|
dm.tblPlan.FieldByName('colIDPrPostup').AsInteger:= idPrP;
|
|
dm.tblPlan.FieldByName('colIDHlavicka').AsInteger:= idH;
|
|
dm.tblPlan.FieldByName('colIDPolozka').AsInteger:= idPol;
|
|
dm.tblPlan.FieldByName('colKs').AsExtended:= VarToStr(FieldByNameValues('MnozstviKs')).ToExtended;
|
|
dm.tblPlan.FieldByName('colOperace').AsString:= VarToStr(FieldByNameValues('Operace'));
|
|
|
|
Helios.ExecSQL('SELECT 10 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 10''');
|
|
|
|
lSQL:= 'SELECT pp.ID, mvaz.ID AS IDMVaz, kzvp.SkupZbo, kzvp.RegCis, kzvp.Nazev1, kzmvaz.SkupZbo AS SkupZboMat, kzmvaz.RegCis AS RegCisMat, kzmvaz.Nazev1 AS Nazev1Mat, mvaz.pozice';
|
|
lSQL:= lSQL + ', ISNULL(zak.Nazev,N'''') AS CisloNadoby, kzf.Nazev1, kzf.Vykres, pp.operace, ISNULL(mvaz.mnozstvi,0)*1000 AS MnozMat, ISNULL(mvaz.mnoz_Nevydane,0)*1000 AS MnozMatCelkem';
|
|
lSQL:= lSQL + ', ISNULL(mvazv.mnoz_Nevydane, (mvaz.mnoz_Nevydane/mvaz.mnozstvi)) AS MnozVys, vp.RadaPrikaz, ISNULL(kzmvazE._Rozmer, N'''') AS Rozmer';
|
|
lSQL:= lSQL + ', ISNULL(pp.Plan_zadani, vp.Plan_zadani) AS Datum, vp.RadaPrikaz, ISNULL(kzmvazE._JakostMaterialu, N'''') AS JakostMat';
|
|
lSQL:= lSQL + ', ISNULL(kzmvazE._S1_X, N'''') AS SilaMat';
|
|
lSQL:= lSQL + ' FROM ' + tblPrPost + ' pp INNER JOIN ' + tblPrikaz + ' vp ON (vp.ID=pp.IDPrikaz) INNER JOIN ' + tblKZ + ' kzvp ON (kzvp.ID=vp.IdTabKmen)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblPrikaz + ' vpv ON (vpv.ID=vp.IDPrikazVyssi) LEFT JOIN ' + tblPrikaz + ' vpf ON (vpf.ID=vp.IDPrikazRidici)';
|
|
lSQL:= lSQL + ' INNER JOIN ' + tblPrVaz + ' mvaz ON (mvaz.Splneno=0 AND mvaz.IDPrikaz=vp.ID AND mvaz.operace=pp.operace AND mvaz.IDOdchylkyDo IS NULL)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblZak + ' zak ON (zak.ID=vpf.IDZakazka) INNER JOIN ' + tblKZ + ' kzf ON (kzf.ID=vpf.IdTabKmen)';
|
|
lSQL:= lSQL + ' LEFT JOIN dbo.TabPrKVazby mvazv ON (mvazv.IDPrikaz=vpv.ID AND mvazv.IDOdchylkyDo IS NULL AND mvazv.nizsi=mvaz.vyssi)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblKZ + ' kzmvaz ON (kzmvaz.ID=mvaz.nizsi) LEFT JOIN ' + tblKZe + ' kzmvazE ON (kzmvazE.ID=kzmvaz.ID)';
|
|
lSQL:= lSQL + ' WHERE pp.ID=' + idPrP.ToString + ' AND vp.StavPrikazu=30 AND pp.prednastaveno=1 AND pp.splneno=0 AND pp.IDOdchylkyDo IS NULL AND pp.pracoviste=' + idPrac.ToString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount>0) then
|
|
begin
|
|
First;
|
|
Helios.ExecSQL('SELECT 11 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 11''');
|
|
|
|
dm.tblPlan.FieldByName('colSZ').AsString:= VarToStr(FieldByNameValues('SkupZboMat'));
|
|
dm.tblPlan.FieldByName('colRegCis').AsString:= VarToStr(FieldByNameValues('RegCisMat'));
|
|
dm.tblPlan.FieldByName('colNazev1').AsString:= VarToStr(FieldByNameValues('Nazev1Mat'));
|
|
dm.tblPlan.FieldByName('colPovoleno').AsBoolean:= true;
|
|
|
|
dm.tblPlan.FieldByName('colCisloZboziMat').AsString:= VarToStr(FieldByNameValues('SkupZboMat')).Trim + VarToStr(FieldByNameValues('RegCisMat')).Trim;
|
|
dm.tblPlan.FieldByName('colRozmer').AsString:= VarToStr(FieldByNameValues('Rozmer')).Trim;
|
|
dm.tblPlan.FieldByName('colDelka').AsExtended:= VarToStr(FieldByNameValues('MnozMat')).ToExtended;
|
|
dm.tblPlan.FieldByName('colNadoba').AsString:= VarToStr(FieldByNameValues('CisloNadoby')).Trim;
|
|
dm.tblPlan.FieldByName('colVykresFin').AsString:= VarToStr(FieldByNameValues('Vykres')).Trim;
|
|
// dm.tblPlan.FieldByName('colPozice').AsString:= VarToStr(FieldByNameValues('pozice')).Trim;
|
|
dm.tblPlan.FieldByName('colJakostMat').AsString:= VarToStr(FieldByNameValues('JakostMat')).Trim;
|
|
dm.tblPlan.FieldByName('colSilaMat').AsString:= VarToStr(FieldByNameValues('SilaMat')).Trim;
|
|
dm.tblPlan.FieldByName('colDatum').AsDateTime:= FieldByNameValues('Datum');
|
|
dm.tblPlan.FieldByName('colVybran').AsBoolean:= false;
|
|
dm.tblPlan.FieldByName('colSmazat').AsBoolean:= false;
|
|
dm.tblPlan.FieldByName('colRadaPrikaz').AsString:= VarToStr(FieldByNameValues('RadaPrikaz')).Replace(' ', '').Trim;
|
|
end;
|
|
|
|
dm.tblPlan.Post;
|
|
Next;
|
|
end;
|
|
|
|
Helios.ExecSQL('SELECT 12 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 12''');
|
|
|
|
edtFiltrPlan.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloZbozi FROM ' + tblKZ + ' WHERE ID=' + idKZMat.ToString);
|
|
iTemp:= datModul.idKmenMaterialPlan;
|
|
edtFiltrPlanExit (self);
|
|
datModul.idKmenMaterialPlan:= iTemp;
|
|
edtFiltrPlan.Text:= '';
|
|
end;
|
|
|
|
Next;
|
|
end;
|
|
|
|
frontaPlan.ItemCount:= dm.tblPlan.RecordCount;
|
|
btnDelPila.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
frontaPlan.Invalidate;
|
|
|
|
Helios.ExecSQL('SELECT 13 AS DebugStep');
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 13''');
|
|
|
|
end;
|
|
|
|
canAktPilu:= true;
|
|
|
|
ZapisInfoMaterialPila;
|
|
ZapisInfoMaterialPlan;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.NactiFrontu;
|
|
var lSQL, oldFiltr: string;
|
|
idPP: integer;
|
|
begin
|
|
Exit; // nove dm.NactiFrontu
|
|
|
|
|
|
// hvw_RezaciPredpisFronta
|
|
|
|
lSQL:= '/* NactiFrontu*/ SELECT pp.ID, mvaz.ID AS IDMVaz, kzvp.SkupZbo, kzvp.RegCis, kzvp.Nazev1, kzmvaz.SkupZbo AS SkupZboMat, kzmvaz.RegCis AS RegCisMat, kzmvaz.Nazev1 AS Nazev1Mat, mvaz.pozice';
|
|
lSQL:= lSQL + ', zak.Nazev AS CisloNadoby, kzf.Nazev1 AS Nazev1Fin, kzf.Vykres, pp.operace, mvaz.mnozstvi*1000 AS MnozMat, mvaz.mnoz_Nevydane*1000 AS MnozMatCelkem';
|
|
lSQL:= lSQL + ', ISNULL(mvazv.mnoz_Nevydane, (mvaz.mnoz_Nevydane/mvaz.mnozstvi)) AS MnozVys, vp.RadaPrikaz, ISNULL(kzmvazE._Rozmer, N'''') AS Rozmer';
|
|
lSQL:= lSQL + ', ISNULL(pp.Plan_zadani, vp.Plan_zadani) AS Datum, vpf.RadaPrikaz AS RadaPrikazFin, ISNULL(kzmvazE._JakostMaterialu, N'''') AS JakostMat';
|
|
lSQL:= lSQL + ', ISNULL(kzmvazE._S1_X, N'''') AS SilaMat, ISNULL(kzmvazE._Dm1_X, N'''') AS DN ';
|
|
lSQL:= lSQL + ' FROM ' + tblPrPost + ' pp INNER JOIN ' + tblPrikaz + ' vp ON (vp.ID=pp.IDPrikaz) INNER JOIN ' + tblKZ + ' kzvp ON (kzvp.ID=vp.IdTabKmen)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblPrikaz + ' vpv ON (vpv.ID=vp.IDPrikazVyssi) LEFT JOIN ' + tblPrikaz + ' vpf ON (vpf.ID=vp.IDPrikazRidici)';
|
|
lSQL:= lSQL + ' INNER JOIN ' + tblPrVaz + ' mvaz ON (mvaz.Splneno=0 AND mvaz.IDPrikaz=vp.ID AND mvaz.operace=pp.operace AND mvaz.IDOdchylkyDo IS NULL)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblZak + ' zak ON (zak.ID=vpf.IDZakazka) LEFT JOIN ' + tblKZ + ' kzf ON (kzf.ID=vpf.IdTabKmen)';
|
|
lSQL:= lSQL + ' LEFT JOIN dbo.TabPrKVazby mvazv ON (mvazv.IDPrikaz=vpv.ID AND mvazv.IDOdchylkyDo IS NULL AND mvazv.nizsi=mvaz.vyssi)';
|
|
lSQL:= lSQL + ' LEFT JOIN ' + tblKZ + ' kzmvaz ON (kzmvaz.ID=mvaz.nizsi) LEFT JOIN ' + tblKZe + ' kzmvazE ON (kzmvazE.ID=kzmvaz.ID)';
|
|
lSQL:= lSQL + ' WHERE vp.StavPrikazu=30 AND pp.prednastaveno=1 AND pp.splneno=0 AND pp.IDOdchylkyDo IS NULL AND pp.pracoviste=' + idPrac.ToString;
|
|
|
|
if (dm.tblPila.RecordCount>0) then
|
|
lSQL:= lSQL + ' AND mvaz.ID NOT IN (' + dm.VratIdPrKVazebNaPile (false) + ')';
|
|
if (dm.tblPlan.RecordCount>0) then
|
|
lSQL:= lSQL + ' AND mvaz.ID NOT IN (' + dm.VratIdPrKVazebNaPile (true) + ')';
|
|
|
|
lSQL:= lSQL + ' ORDER BY ISNULL(pp.Plan_zadani, vp.Plan_zadani)';
|
|
|
|
try
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
if (RecordCount>0) then
|
|
begin
|
|
if not(dm.tblFronta.Active) then
|
|
dm.tblFronta.Open;
|
|
|
|
dm.tblFronta.Filtered:= false;
|
|
|
|
dm.tblFronta.Clear; // .EmptyDataSet;
|
|
while not(EOF) do
|
|
begin
|
|
dm.tblFronta.Append;
|
|
idPP:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
dm.tblFronta.FieldByName('colIDPrPostup').AsInteger:= idPP;
|
|
dm.tblFronta.FieldByName('colIDPrKVazby').AsInteger:= VarToStr(FieldByNameValues('IDMVaz')).ToInteger;
|
|
dm.tblFronta.FieldByName('colOperace').AsString:= VarToStr(FieldByNameValues('operace')).Trim;
|
|
dm.tblFronta.FieldByName('colRegCis').AsString:= VarToStr(FieldByNameValues('RegCisMat')).Trim;
|
|
dm.tblFronta.FieldByName('colSZ').AsString:= VarToStr(FieldByNameValues('SkupZboMat')).Trim;
|
|
dm.tblFronta.FieldByName('colCisloZboziMat').AsString:= VarToStr(FieldByNameValues('SkupZboMat')).Trim + VarToStr(FieldByNameValues('RegCisMat')).Trim;
|
|
dm.tblFronta.FieldByName('colRozmer').AsString:= VarToStr(FieldByNameValues('Rozmer')).Trim;
|
|
dm.tblFronta.FieldByName('colNazev1').AsString:= VarToStr(FieldByNameValues('Nazev1Mat')).Trim;
|
|
dm.tblFronta.FieldByName('colKs').AsExtended:= VarToStr(FieldByNameValues('MnozVys')).ToExtended;
|
|
dm.tblFronta.FieldByName('colDelka').AsExtended:= VarToStr(FieldByNameValues('MnozMat')).ToExtended;
|
|
dm.tblFronta.FieldByName('colDelkaCelkem').AsExtended:= dm.tblFronta.FieldByName('colKs').AsExtended * VarToStr(FieldByNameValues('MnozMat')).ToExtended;
|
|
dm.tblFronta.FieldByName('colNadoba').AsString:= VarToStr(FieldByNameValues('CisloNadoby')).Trim;
|
|
dm.tblFronta.FieldByName('colVykresFin').AsString:= VarToStr(FieldByNameValues('Vykres')).Trim;
|
|
dm.tblFronta.FieldByName('colPozice').AsString:= VarToStr(FieldByNameValues('pozice')).Trim;
|
|
dm.tblFronta.FieldByName('colJakostMat').AsString:= VarToStr(FieldByNameValues('JakostMat')).Trim;
|
|
dm.tblFronta.FieldByName('colSilaMat').AsString:= VarToStr(FieldByNameValues('SilaMat')).Trim;
|
|
dm.tblFronta.FieldByName('colDN').AsString:= VarToStr(FieldByNameValues('DN')).Trim;
|
|
dm.tblFronta.FieldByName('colDatum').AsDateTime:= FieldByNameValues('Datum');
|
|
dm.tblFronta.FieldByName('colVybran').AsBoolean:= false;
|
|
dm.tblFronta.FieldByName('colSmazat').AsBoolean:= false;
|
|
dm.tblFronta.FieldByName('colRadaPrikaz').AsString:= VarToStr(FieldByNameValues('RadaPrikaz')).Replace(' ', '').Trim;
|
|
dm.tblFronta.Post;
|
|
Next;
|
|
end;
|
|
|
|
end
|
|
else
|
|
Helios.Error(#1'Žádný hutní materiál, požadovaný na zadaných výrobních příkazech,'#1 + CRLF + #1'na sobě nemá navázanou operaci.'#1)
|
|
|
|
end;
|
|
finally
|
|
end;
|
|
|
|
edtFiltrMaterialExit (self);
|
|
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.NactiPracovnikyPily;
|
|
var lSQL, p, j: string;
|
|
begin
|
|
cbZamest.Clear;
|
|
lSQL:= '/* NactiPracovnikyPily */ SELECT z.ID, z.Cislo, z.Jmeno, z.Prijmeni FROM ' + tblCisZam + ' z INNER JOIN ' + tblCisZamE + ' ze ON (ze.ID=z.ID) WHERE ze._VyrobaPilar=1 ORDER BY z.PrijmeniJmeno';
|
|
try
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
idZam:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
cisZam:= VarToStr(FieldByNameValues('Cislo')).ToInteger;
|
|
p:= FieldByNameValues('Prijmeni');
|
|
j:= FieldByNameValues('Jmeno');
|
|
cbZamest.Items.AddObject(p + ' ' + j, TZamestnanec.Create (idZam, cisZam, Helios));
|
|
Next;
|
|
end;
|
|
idZam:= 0;
|
|
cisZam:= 0;
|
|
end;
|
|
finally
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.ctrlMDItemClick (Sender: TObject); // Na pilu
|
|
var f: TformPolozkyMD;
|
|
i, newPoz, idMD, polId: integer;
|
|
lSQL, s: string;
|
|
begin
|
|
if not(showMDDetail) then
|
|
Exit;
|
|
|
|
showMDDetail:= false;
|
|
|
|
if not(dm.tblMatDavky.Active) then
|
|
dm.tblMatDavky.Open;
|
|
|
|
i:= ctrlMD.HotItemIndex;
|
|
dm.tblMatDavky.RecNo:= i + 1;
|
|
idMD:= dm.tblMatDavky.FieldByName('colID').AsInteger;
|
|
|
|
f:= TformPolozkyMD.Create(nil);
|
|
try
|
|
f.Helios:= Helios;
|
|
f.mForm:= self;
|
|
f.idMatDavky:= idMD;
|
|
f.dm:= dm;
|
|
f.ShowModal;
|
|
if (f.mrVal=1) then // na pilu
|
|
begin
|
|
|
|
if (cbZamest.ItemIndex<0) then
|
|
begin
|
|
Helios.Error(#1'Není vybrán zaměstnanec !'#1);
|
|
if (cbZamest.CanFocus) then
|
|
cbZamest.SetFocus;
|
|
Exit;
|
|
end;
|
|
|
|
datModul.idMatDavka:= idMD;
|
|
// datModul.idKmenMaterialPila:= dm.tblMatDavky.FieldByName('colIDKmenMat').AsInteger;
|
|
datModul.idKmenMaterialPila:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDKmenZboziMat FROM ' + tblMatDavkyH + ' WHERE ID=' + idMd.ToString);
|
|
datModul.idMatDavkaKmen:= datModul.idKmenMaterialPila;
|
|
ZapisInfoMaterialPila;
|
|
|
|
shPila.Caption:= 'DÁVKA ' + helUtils.getHeliosStrVal(Helios, '', 'SELECT Cislo FROM ' + tblMatDavkyH + ' WHERE ID=' + idMD.ToString);
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET CisloDavky=N' + shPila.Caption.Replace('DÁVKA ', '').QuotedString + ' WHERE LoginName=SUSER_SNAME() AND Aktivni=1');
|
|
|
|
digitTimer.Enabled:= true;
|
|
btnTiskStitku.Enabled:= false;
|
|
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 6''');
|
|
|
|
if (datModul.idHlavPila=0) then // delam cely novy seznam Pila ?
|
|
begin
|
|
s:= helUtils.GetClientComputerName(1);
|
|
lSQL:= 'INSERT ' + tblRezPredpis + ' (IDPlanMD, BlokovaniEditoru, IDPila, JePlan, DeviceID, OsCislo, CompName, IDKmenZboMaterial, LoginName) SELECT ' + idMD.ToString;
|
|
lSQL:= lSQL + ', ' + Helios.UserId.ToString + ', ' + IfThen(datModul.idPila=0, 'NULL', datModul.idPila.ToString) + ', 0, N' + datModul.devID.QuotedString + ', ' + cisZam.ToString;
|
|
lSQL:= lSQL + ', N' + s.QuotedString + ', ' + datModul.idKmenMaterialPila.ToString + ', SUSER_SNAME()' + CRLF + 'SELECT SCOPE_IDENTITY()';
|
|
datModul.idHlavPila:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
|
|
try
|
|
dm.tblPila.Close;
|
|
dm.tblPila.Assign (dm.tblPolozkyMD);
|
|
dm.tblPila.Open;
|
|
dm.tblPila.IndexFieldNames:= '';
|
|
dm.tblPila.Refresh;
|
|
dm.tblPila.IndexFieldNames:= 'colPoziceInt ASC';
|
|
dm.tblPila.Refresh;
|
|
// frontaPila.ItemIndex:= 0;
|
|
|
|
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 7''');
|
|
Helios.ExecSQL('UPDATE ' + tblMatDavkyH + ' SET NaPile=1 WHERE ID=' + idMD.ToString);
|
|
except on E:Exception do
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 7-1 ERROR''');
|
|
end;
|
|
|
|
end
|
|
else
|
|
begin // ne, jen potrebuju pridat z materialove davky jen chybejici polozky
|
|
dm.tblPolozkyMD.First;
|
|
while not(dm.tblPolozkyMD.Eof) do
|
|
begin
|
|
if not(dm.tblPila.Locate('colIDPrPostup', VarArrayOf([dm.tblPolozkyMD.FieldByName('colIDPrPostup').AsInteger]), [loCaseInsensitive])) then
|
|
begin
|
|
dm.tblPila.Append;
|
|
for i:=0 to dm.tblPolozkyMD.FieldCount-1 do
|
|
dm.tblPila.FieldByName(dm.tblPolozkyMD.Fields[i].FieldName).Value:= dm.tblPolozkyMD.Fields[i].Value;
|
|
dm.tblPila.Post;
|
|
end;
|
|
dm.tblPolozkyMD.Next;
|
|
end;
|
|
end;
|
|
|
|
|
|
dm.tblPila.IndexFieldNames:= '';
|
|
dm.tblPila.First;
|
|
dm.tblPila.DisableControls;
|
|
while not(dm.tblPila.Eof) do
|
|
begin
|
|
newPoz:= dm.MaxPoziceTab (dm.tblPila) + 10;
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colIDHlavicka').AsInteger:= datModul.idHlavPila;
|
|
dm.tblPila.FieldByName('colPozice').AsInteger:= newPoz;
|
|
dm.tblPila.FieldByName('colPoziceInt').AsInteger:= newPoz;
|
|
|
|
polId:= 0;
|
|
lSQL:= 'UPDATE ' + tblMatDavkyR + ' SET NaPile=1 WHERE ID=' + dm.tblPila.FieldByName('colIDPlanR').AsString + CRLF;
|
|
lSQL:= lSQL + 'INSERT ' + tblRezPredpisR + ' (IDPlanMD, IDPlanMDPol, IDHlavicka, Pozice, IDPrKVazby, MnozstviKs, Mnozstvi, IDKmenMaterial)';
|
|
lSQL:= lSQL + ' SELECT ' + idMD.ToString + ', ' + dm.tblPila.FieldByName('colIDPlanR').AsString + ', ' + datModul.idHlavPila.ToString + ', ' + newPoz.ToString;
|
|
lSQL:= lSQL + ', ' + dm.tblPila.FieldByName('colIDPrKVazby').AsString + ', ' + dm.tblPila.FieldByName('colKs').AsExtended.ToString.Replace(',', '.');
|
|
lSQL:= lSQL + ', ' + (dm.tblPila.FieldByName('colDelka').AsExtended/1000).ToString.Replace(',', '.') + ', ' + datModul.idKmenMaterialPila.ToString + CRLF;
|
|
lSQL:= lSQL + 'SELECT SCOPE_IDENTITY() AS newid';
|
|
with Helios.OpenSQL(lSQL) do
|
|
polId:= VarToStr(FieldByNameValues('newid')).ToInteger;
|
|
dm.tblPila.FieldByName('colIDPolozka').AsInteger:= polId;
|
|
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= true;
|
|
|
|
dm.tblPila.Post;
|
|
dm.tblPila.Next;
|
|
end;
|
|
dm.tblPila.EnableControls;
|
|
dm.tblPila.IndexFieldNames:= 'colPozice';
|
|
|
|
btnSmazFiltryMDClick (Sender);
|
|
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 8''');
|
|
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
dm.tblPolozkyMD.Clear;
|
|
idMD:= 0;
|
|
end;
|
|
finally
|
|
f.Free;
|
|
end;
|
|
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0);
|
|
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 9''');
|
|
|
|
dm.NactiMaterialoveDavky (self, idMD);
|
|
ctrlMD.ItemCount:= dm.tblMatDavky.RecordCount;
|
|
ctrlMD.Invalidate;
|
|
|
|
if (pgCtrlMD.ActivePage=shMatDavky) then
|
|
pgCtrlMDChange (Sender);
|
|
|
|
Helios.ExecSQL('INSERT dbo._hdc_Log (Typ, LogText) SELECT 11, N''DebugStep 10''');
|
|
|
|
if (edtFiltrPila.CanFocus) then
|
|
edtFiltrPila.SetFocus;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ctrlMDMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
if (GetTickCount-tick1<1500) then
|
|
begin
|
|
showMDDetail:= false;
|
|
Exit;
|
|
end;
|
|
showMDDetail:= true;
|
|
tick1:= GetTickCount;
|
|
ctrlMDItemClick (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.timerNactiFrontuTimer (Sender: TObject);
|
|
begin
|
|
if (dm.PocetOznacenychVeFronte=0) and (dm.tblPila.RecordCount=0) and (dm.tblPlan.RecordCount=0) then
|
|
dm.NactiFrontu (idPrac, self);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.timer3Timer (Sender: TObject);
|
|
begin
|
|
timer3.Enabled:= false;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.cbFrontaAllClick (Sender: TObject);
|
|
begin
|
|
if (cbFrontaAll.Checked) then
|
|
dm.FrontaOznacitVse
|
|
else
|
|
dm.FrontaOdznacitVse;
|
|
ctrlFronta.Invalidate;
|
|
lblRecSelected.Caption:= 'Výběr: ' + dm.PocetOznacenychVeFronte.ToString + ' / celkem ' + ((dm.SoucetDelekOznacenychVeFronte)/1000).ToString + ' m';
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.cbPrevodClick (Sender: TObject);
|
|
var i: integer;
|
|
begin
|
|
{
|
|
i:= ctrlFronta.HotItemIndex;
|
|
dm.tblFronta.RecNo:= i + 1;
|
|
dm.tblFronta.Edit;
|
|
dm.tblFronta.FieldByName('colVybran').AsBoolean:= cbPrevod.Checked;
|
|
dm.tblFronta.Post;
|
|
ctrlFronta.Invalidate;
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.cbZamestChange (Sender: TObject);
|
|
var z: TZamestnanec;
|
|
begin
|
|
if (cbZamest.ItemIndex>-1) then
|
|
begin
|
|
z:= TZamestnanec (cbZamest.Items.Objects[cbZamest.ItemIndex]);
|
|
cisZam:= z.Cislo;
|
|
idZam:= z.Id;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ctrlMDBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
var lSQL, sz, rc: string;
|
|
begin
|
|
dm.tblMatDavky.RecNo:= AIndex + 1; // AIndex zero-based
|
|
lblMDCislo.Caption:= VarToStr(dm.tblMatDavky.FieldByName('colCislo').Value).Trim;
|
|
lblMDDatum.Caption:= FormatDateTime ('d.m.yyyy', dm.tblMatDavky.FieldByName('colPlanVyroby').Value).Trim;
|
|
sz:= VarToStr(dm.tblMatDavky.FieldByName('colSZMat').Value).Trim;
|
|
rc:= VarToStr(dm.tblMatDavky.FieldByName('colRCMat').Value).Trim;
|
|
lblMDCisloZbo.Caption:= sz + ' ' + rc;
|
|
lblMDNazev.Caption:= VarToStr(dm.tblMatDavky.FieldByName('colNazev1Mat').Value).Trim;
|
|
// lblMDRozmer.Caption:= VarToStr(dm.tblMatDavky.FieldByName('colRozmer').Value).Trim;
|
|
|
|
lblMDPozic.Caption:= VarToStr(dm.tblMatDavky.FieldByName('colPocetRadku').Value).Trim;
|
|
|
|
lSQL:= '/* ctrlMDBeforeDrawItem */SELECT TOP(1) ISNULL(kze._DN1,N'''') AS DN, ISNULL(kze._JakostMaterialu,N'''') AS JakostMat, ISNULL(kze._Rozmer, N'''') AS Rozmer, ISNULL(kze._Dm1_X, 0) AS Prumer';
|
|
lSQL:= lSQL + ', ISNULL(kze._S1_X, N'''') AS SilaMat, ISNULL(kze._NormaMat,N'''') AS NormaMAT FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k INNER JOIN ' + tblKZe + ' kze ON (kze.ID=k.ID) WHERE k.SkupZbo=N' + sz.QuotedString + ' AND k.RegCis=N' + rc.QuotedString;
|
|
|
|
try
|
|
try
|
|
with Helios.OpenSQL(lSQL) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
// lblMDDM.Caption:= VarToStr(FieldByNameValues('DN'));
|
|
lblMDDM.Caption:= dm.tblMatDavky.FieldByName('colPrumerDM').AsString;
|
|
if (lblMDDM.Caption='0') then
|
|
lblMDDM.Caption:= '';
|
|
|
|
lblMDPrumer.Caption:= VarToStr(FieldByNameValues('Prumer'));
|
|
if (lblMDPrumer.Caption='0') then
|
|
lblMDPrumer.Caption:= '';
|
|
|
|
lblMDTloustka.Caption:= VarToStr(FieldByNameValues('SilaMat'));
|
|
if (lblMDTloustka.Caption='0') then
|
|
lblMDTloustka.Caption:= '';
|
|
|
|
lblMDJakost.Caption:= VarToStr(FieldByNameValues('JakostMat'));
|
|
|
|
lblMDRozmer.Caption:= VarToStr(FieldByNameValues('Rozmer'));
|
|
lblMDNormaMat.Caption:= VarToStr(FieldByNameValues('NormaMAT'));
|
|
|
|
end;
|
|
except
|
|
end;
|
|
finally
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ctrlMDBeforeDrawItems (ACanvas: TCanvas; ARect: TRect);
|
|
begin
|
|
// ctrlMD.ItemCount:= dm.tblMatDavky.RecordCount;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ctrlFrontaBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
var lSQL, sz, rc: string;
|
|
uhel: Extended;
|
|
begin
|
|
{ // pokud je povoleno, neni videt vyber polozky v seznamu
|
|
// Nastavení barvy pera pro rámeček
|
|
ACanvas.Pen.Color:= clBlack;
|
|
ACanvas.Pen.Width:= 1; // Šířka rámečku
|
|
// Nakreslení rámečku kolem položky
|
|
ACanvas.Rectangle(ARect);
|
|
}
|
|
|
|
|
|
|
|
dm.tblFronta.RecNo:= AIndex + 1; // AIndex zero-based
|
|
lblMaterial.Caption:= VarToStr(dm.tblFronta.FieldByName('colNazev1').Value).Trim;
|
|
// lblPozice.Caption:= VarToStr(dm.tblFronta.FieldByName('colPozice').Value).Trim;
|
|
lblRegCis.Caption:= VarToStr(dm.tblFronta.FieldByName('colRegCis').Value) + ' ' + VarToStr(dm.tblFronta.FieldByName('colRozmer').Value).Trim
|
|
+ '/' + VarToStr(dm.tblFronta.FieldByName('colSilaMat').Value) + ' ' + VarToStr(dm.tblFronta.FieldByName('colJakostMat').Value);
|
|
lblDeleni.Caption:= VarToStr(dm.tblFronta.FieldByName('colKs').Value) + ' x ' + VarToStr(dm.tblFronta.FieldByName('colDelka').Value) + ' mm ';
|
|
lblNadoba.Caption:= VarToStr(dm.tblFronta.FieldByName('colNadoba').Value);
|
|
lblRegCisPrikaz.Caption:= '' + VarToStr(dm.tblFronta.FieldByName('colRegCisPrikaz').Value).Trim;
|
|
lblRadaPrikaz.Caption:= VarToStr(dm.tblFronta.FieldByName('colRadaPrikaz').Value).Trim;
|
|
lblPrumer.Caption:= VarToStr(dm.tblFronta.FieldByName('colPrumer').Value).Trim;
|
|
lblTloustka.Caption:= VarToStr(dm.tblFronta.FieldByName('colSilaMat').Value).Trim;
|
|
|
|
lblRezatUhel.Caption:= '';
|
|
sz:= VarToStr(dm.tblFronta.FieldByName('colSZPrikaz').Value).Trim;
|
|
rc:= VarToStr(dm.tblFronta.FieldByName('colRegCisPrikaz').Value).Trim;
|
|
if (sz<>'') and (rc<>'') then
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) Uhel FROM dbo.hvw_ADE_INSERT_VYROBA WHERE SkupZbo=N' + sz.QuotedString + ' AND RegCis=N' + rc.QuotedString + ' AND LastRec=1 AND StavPolozky=N''50''';
|
|
uhel:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
if (uhel>1) then
|
|
lblRezatUhel.Caption:= 'úhel ' + uhel.ToString;
|
|
end;
|
|
|
|
cbPrevod.Checked:= dm.tblFronta.FieldByName('colVybran').AsBoolean;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.lblRegCisClick (Sender: TObject);
|
|
begin
|
|
lblMaterialClick (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.lblMaterialClick (Sender: TObject);
|
|
var i: integer;
|
|
begin
|
|
if (canSelFronta) then
|
|
begin
|
|
// cbPrevod.Checked:= not(cbPrevod.Checked);
|
|
cbPrevodClick(Sender);
|
|
|
|
cbPrevod.Checked:= not(cbPrevod.Checked);
|
|
cbPrevod.Invalidate;
|
|
|
|
i:= ctrlFronta.HotItemIndex;
|
|
dm.tblFronta.RecNo:= i + 1;
|
|
dm.tblFronta.Edit;
|
|
dm.tblFronta.FieldByName('colVybran').AsBoolean:= cbPrevod.Checked;
|
|
// dm.tblFronta.FieldByName('colSmazat').AsBoolean:= dm.tblFronta.FieldByName('colVybran').AsBoolean;
|
|
dm.tblFronta.Post;
|
|
ctrlFronta.Invalidate;
|
|
|
|
lblRecSelected.Caption:= 'Výběr: ' + dm.PocetOznacenychVeFronte.ToString + ' / celkem ' + ((dm.SoucetDelekOznacenychVeFronte)/1000).ToString + ' m';
|
|
btnAddPila.Enabled:= (dm.PocetOznacenychVeFronte>0);
|
|
btnObrazek.Enabled:= (dm.PocetOznacenychVeFronte=1);
|
|
btnFiltrMat.Enabled:= (dm.PocetOznacenychVeFronte=1);
|
|
|
|
ctrlFronta.ItemIndex:= -1;
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ctrlFrontaItemClick (Sender: TObject);
|
|
var i, rFronta: integer;
|
|
m1, m2, m3: string;
|
|
begin
|
|
i:= ctrlFronta.HotItemIndex;
|
|
dm.tblFronta.RecNo:= i + 1;
|
|
canSelFronta:= false;
|
|
|
|
rFronta:= dm.tblFronta.RecordCount;
|
|
|
|
if (pgCtrl.ActivePage=shPila) then
|
|
begin
|
|
m1:= dm.VybranyMaterialFronta;
|
|
m2:= dm.MaterialNaPile (false); // na pile
|
|
m3:= dm.tblFronta.FieldByName('colSZ').AsString + dm.tblFronta.FieldByName('colRegCis').AsString;
|
|
|
|
if (m1='') and (m2='') then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) and (m1='') and (m2=m3) then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) and (m1=m3) and (m2='') then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) and (m1=m3) and (m2=m3) then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) then
|
|
Helios.Error(#1'Můžete vybírat jen stejný typ materiálu jaký je vybrán ve frontě nebo v DÁVCE.'#1);
|
|
end;
|
|
|
|
|
|
if (pgCtrl.ActivePage=shPlan) then
|
|
begin
|
|
m1:= dm.VybranyMaterialFronta;
|
|
m2:= dm.MaterialNaPile (true); // v planu
|
|
m3:= dm.tblFronta.FieldByName('colSZ').AsString + dm.tblFronta.FieldByName('colRegCis').AsString;
|
|
|
|
if (m1='') and (m2='') then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) and (m1='') and (m2=m3) then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) and (m1=m3) and (m2='') then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) and (m1=m3) and (m2=m3) then
|
|
canSelFronta:= true;
|
|
|
|
if not(canSelFronta) then
|
|
Helios.Error(#1'Můžete vybírat jen stejný typ materiálu jaký je vybrán ve frontě nebo v PLÁNU.'#1);
|
|
|
|
end;
|
|
|
|
{
|
|
cbPrevodClick(Sender);
|
|
|
|
cbPrevod.Checked:= not(cbPrevod.Checked);
|
|
cbPrevod.Invalidate;
|
|
|
|
i:= ctrlFronta.HotItemIndex;
|
|
dm.tblFronta.RecNo:= i + 1;
|
|
dm.tblFronta.Edit;
|
|
dm.tblFronta.FieldByName('colVybran').AsBoolean:= cbPrevod.Checked;
|
|
dm.tblFronta.Post;
|
|
ctrlFronta.Invalidate;
|
|
|
|
lblRecSelected.Caption:= 'Výběr: ' + dm.PocetOznacenychVeFronte.ToString + ' / celkem ' + ((dm.SoucetDelekOznacenychVeFronte)/1000).ToString + ' m';
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.ctrlFrontaMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
// if (Button=mbLeft) then
|
|
// ctrlFrontaItemClick(Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.TTiskThreadDestroy (Sender: TObject);
|
|
begin
|
|
if Assigned(FTiskThread) then
|
|
FTiskThread:= nil;
|
|
end;
|
|
|
|
|
|
procedure TformMain.TiskniZAPIAddTask (idRezPredpisR, idPrKV: Integer);
|
|
var em: integer;
|
|
begin
|
|
FTiskThread:= TThread.CreateAnonymousThread (
|
|
procedure
|
|
begin
|
|
// while not TThread.CheckTerminated do
|
|
// begin
|
|
TThread.Queue (nil,
|
|
procedure
|
|
begin
|
|
try
|
|
em:= EvidencePrace (idRezPredpisR);
|
|
if (em>0) then
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colIDMzdy').AsInteger:= em;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= false;
|
|
dm.tblPila.Post;
|
|
|
|
if (Helios.PrintForm3 (bidPrKVaz, datModul.idTiskFormStitek, 'TabPrKVazby.ID=' + idPrKV.ToString)) then
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= true;
|
|
dm.tblPila.Post;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + idRezPredpisR.ToString);
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET PosledniTisk=GETDATE() WHERE Aktivni=1 AND LoginName=SUSER_SNAME()');
|
|
end;
|
|
|
|
btnPilaDownClick (nil);
|
|
end;
|
|
|
|
apiTiskTasks.Remove(idRezPredpisR);
|
|
// TerminateThread(TThread.Current.ThreadID, 0);
|
|
finally
|
|
end;
|
|
end);
|
|
|
|
// if TThread.CheckTerminated then
|
|
// Exit;
|
|
// end;
|
|
end
|
|
);
|
|
|
|
// FTiskThread.FreeOnTerminate:= true;
|
|
FTiskThread.NameThreadForDebugging (AnsiString('HDCDZAPITiskThread'), FTiskThread.ThreadID);
|
|
FTiskThread.OnTerminate:= TTiskThreadDestroy;
|
|
FTiskThread.Start;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.AktualizujFrontuPila;
|
|
var lSQL: string;
|
|
i, i2, idPrKV, em: integer;
|
|
spl, jeAPI: boolean;
|
|
bmk: TBookmark;
|
|
begin
|
|
if not(canAktPilu) then
|
|
Exit;
|
|
|
|
if (dm.tblPila.RecordCount>0) then // 010030INT00003061021550
|
|
begin
|
|
|
|
i:= dm.tblPila.RecNo;
|
|
bmk:= dm.tblPila.GetBookmark;
|
|
dm.tblPila.DisableControls;
|
|
|
|
dm.tblPila.First;
|
|
while not(dm.tblPila.Eof) do
|
|
begin
|
|
i2:= dm.tblPila.FieldByName('colIDPolozka').AsInteger;
|
|
idPrKV:= dm.tblPila.FieldByName('colIDPrKVazby').AsInteger;
|
|
|
|
{
|
|
jeAPI:= helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblRezPredpisR + ' WHERE TiskAPI=1 AND DatTisku IS NULL AND ID=' + i2.ToString);
|
|
if (jeAPI) then
|
|
begin
|
|
if (apiTiskTasks.IndexOf(i2)<0) then
|
|
begin
|
|
apiTiskTasks.Add(i2);
|
|
TiskniZAPIAddTask (i2, idPrKV);
|
|
end;
|
|
end;
|
|
}
|
|
|
|
{
|
|
if (dm.tblPila.FieldByName('colIDPlanR').AsInteger>0) then
|
|
begin
|
|
lSQL:= 'SELECT 1 FROM ' + tblRezPredpisR + ' WHERE TiskAPI=1 AND DatTisku IS NOT NULL AND ID=' + i2.ToString;
|
|
spl:= helUtils.sqlExistsTestGeneral(Helios, lSQL);
|
|
if (spl) then
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= false;
|
|
dm.tblPila.Post;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + i2.ToString);
|
|
end;
|
|
|
|
spl:= helUtils.getHeliosBoolVal(Helios, false, 'SELECT Splneno FROM ' + tblMatDavkyR + ' WHERE ID=' + dm.tblPila.FieldByName('colIDPlanR').AsString);
|
|
if (spl) then
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= false;
|
|
dm.tblPila.Post;
|
|
end;
|
|
end;
|
|
}
|
|
|
|
dm.tblPila.Next;
|
|
end;
|
|
|
|
dm.tblPila.RecNo:= i;
|
|
if (dm.tblPila.BookmarkValid(bmk)) then
|
|
dm.tblPila.GotoBookmark(bmk);
|
|
dm.tblPila.FreeBookmark(bmk);
|
|
dm.tblPila.EnableControls;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.digitTimerTimer (Sender: TObject);
|
|
var v: Integer;
|
|
h, m: integer;
|
|
begin
|
|
Inc(timerPila);
|
|
h:= (timerPila div 100);
|
|
m:= (timerPila mod 100);
|
|
lblTimerPila.Caption:= FormatFloat('00', h) + ':' + FormatFloat('00', m);
|
|
|
|
// kazde 2s aktualizuj udaje ve fronte Pila, osetri stav kdy je polozka "uzavrena" akci pres CERVENE TLACITKO
|
|
if (lblTimerPila.Caption.EndsWith('1') or lblTimerPila.Caption.EndsWith('4') or lblTimerPila.Caption.EndsWith('8') or lblTimerPila.Caption.EndsWith('9')) then
|
|
AktualizujFrontuPila;
|
|
|
|
panelPila.Invalidate;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.dtFiltrMDDatumChange (Sender: TObject);
|
|
begin
|
|
// dtFiltrMDDatum.Format:= '';
|
|
if (dtFiltrMDDatum.Date=0) then
|
|
dtFiltrMDDatum.Format:= ' '
|
|
else
|
|
dtFiltrMDDatum.Format:= '';
|
|
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.dtFiltrMDDatumDateTimeChange(Sender: TObject; DateTime: TDateTime);
|
|
begin
|
|
if (DateTime=0) then
|
|
dtFiltrMDDatum.Format:= ' '
|
|
else
|
|
dtFiltrMDDatum.Format:= '';
|
|
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.VymazUdajePilaNeboPlan (plan: Boolean=false);
|
|
begin
|
|
if (dm=nil) then
|
|
Exit;
|
|
|
|
try
|
|
if (plan) then
|
|
begin
|
|
if (dm.tblPlan<>nil) then
|
|
if (dm.tblPlan.RecordCount=0) then
|
|
begin
|
|
datModul.planSZ:= '';
|
|
datModul.planRC:= '';
|
|
datModul.planSarze:= '';
|
|
lblPlanRegCis.Caption:= '';
|
|
lblPlanNazev1.Caption:= '';
|
|
lblPlanSkladem.Caption:= '';
|
|
lblPlanSarze.Caption:= '';
|
|
lblPlanSarzeSkladem.Caption:= '';
|
|
// lblPlanDelkaSum.Caption:= '';
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
if (dm.tblPila<>nil) then
|
|
if (dm.tblPila.RecordCount=0) then
|
|
begin
|
|
shPila.Caption:= 'DÁVKA';
|
|
datModul.idKmenMaterialPila:= 0;
|
|
datModul.idMatDavka:= 0;
|
|
|
|
datModul.pilaSZ:= '';
|
|
datModul.pilaRC:= '';
|
|
datModul.pilaSarze:= '';
|
|
lblJsemAlter.Visible:= false;
|
|
lblPila1RegCis.Caption:= '';
|
|
lblPila1Nazev1.Caption:= '';
|
|
lblPila1Skladem.Caption:= '';
|
|
lblPila1Sarze.Caption:= '';
|
|
lblPila1SarzeSkladem.Caption:= '';
|
|
// lblPilaDelkaSum.Caption:= '';
|
|
end
|
|
end;
|
|
finally
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPilaChange (Sender: TObject);
|
|
begin
|
|
if (edtFiltrPila.Text='') then
|
|
begin
|
|
lblPila1RegCis.Caption:= '';
|
|
lblPila1Nazev1.Caption:= '';
|
|
lblPila1Sarze.Caption:= '';
|
|
lblPila1Skladem.Caption:= '';
|
|
lblPila1SarzeSkladem.Caption:= '';
|
|
btnZmenaSarze.Visible:= false;
|
|
|
|
lblRecCount.Caption:= 'Počet: 0';
|
|
lblRecSelected.Caption:= 'Výběr: 0 / celkem 0 m';
|
|
|
|
if (pgCtrlMD.ActivePage=shMatDavky) then
|
|
lblRecCount.Caption:= 'Počet dávek: ' + dm.tblMatDavky.RecordCount.ToString
|
|
else
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
|
|
btnAddPila.Enabled:= not(pgCtrlMD.ActivePage=shMatDavky);
|
|
btnAddPila.Enabled:= btnAddPila.Enabled and (dm.tblFronta.RecordCount>0);
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPilaEnter (Sender: TObject);
|
|
begin
|
|
LoadKeyboardLayout('00000409', KLF_ACTIVATE or KLF_SETFORPROCESS);
|
|
edtFiltrPila.Text:= '';
|
|
VymazUdajePilaNeboPlan (false);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPilaExit (Sender: TObject);
|
|
var lSQL, kod, sarze, sz, rc, matPila, errMsg: string;
|
|
d: byte;
|
|
canCont, jeMatPila: boolean;
|
|
i, i2, idKZ, idx, idMatOld: integer;
|
|
ks: Extended;
|
|
alter: boolean;
|
|
begin
|
|
edtFiltrPila.Text:= edtFiltrPila.Text.Trim;
|
|
|
|
datModul.pilaSZ:= '';
|
|
datModul.pilaRC:= '';
|
|
datModul.pilaSarze:= '';
|
|
|
|
// btnZmenaSarze.Visible:= false;
|
|
if (edtFiltrPila.Text<>'') then
|
|
begin
|
|
btnKonecDavky.Enabled:= false;
|
|
// btnZmenaSarze.Visible:= true;
|
|
// btnZmenaSarze.Enabled:= true;
|
|
|
|
idMatOld:= datModul.idKmenMaterialPila;
|
|
|
|
kod:= edtFiltrPila.Text;
|
|
d:= Length(kod);
|
|
sz:= '';
|
|
rc:= '';
|
|
sarze:= '';
|
|
|
|
if (d=13) then // 010030INT00003021022032 / 010030INT00003061021550
|
|
begin
|
|
sz:= LeftStr(kod, 3);
|
|
rc:= MidStr(kod, 4, 30);
|
|
end;
|
|
|
|
if (d=13) then
|
|
begin
|
|
sz:= LeftStr(kod, 3);
|
|
rc:= MidStr(kod, 4, 10);
|
|
end
|
|
else
|
|
if (d>13) and (LeftStr(kod,3)='010') then
|
|
begin
|
|
kod:= MidStr(kod, 4, 100);
|
|
sz:= LeftStr(kod, 3); // 030
|
|
rc:= MidStr(kod, 4, 10); // INT0000232
|
|
sarze:= MidStr(kod, 16, 50); // 1202106
|
|
end;
|
|
|
|
lSQL:= 'SELECT 1 FROM ' + tblSZ + ' s LEFT JOIN ' + tblSZe + ' se ON (se.ID=s.ID) WHERE se._MaterialProPilu=1';
|
|
jeMatPila:= helUtils.sqlExistsTestGeneral(Helios, lSQL);
|
|
|
|
|
|
if (jeMatPila) then
|
|
begin
|
|
|
|
idKZ:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE SkupZbo=N' + sz.QuotedString + ' AND RegCis=N' + rc.QuotedString);
|
|
if (idKZ=0) then
|
|
begin
|
|
Helios.Error(#1'Tento materiál nemá kartu !'#1 + CRLF + 'Naskenovaný kód: ' + kod);
|
|
materialOK:= false;
|
|
materialPilaOk:= false;
|
|
datModul.idKmenMaterialPila:= 0;
|
|
edtFiltrPila.Text:= '';
|
|
btnTiskStitku.Enabled:= false;
|
|
btnTiskBezEvidence.Enabled:= false;
|
|
if (edtFiltrPila.CanFocus) then
|
|
edtFiltrPila.SetFocus;
|
|
Exit;
|
|
end;
|
|
|
|
materialOK:= dm.NaskenovanyMaterialJeOK (idKZ, firstNacitani);
|
|
materialPilaOk:= materialOK;
|
|
btnTiskStitku.Enabled:= materialPilaOk;
|
|
btnTiskBezEvidence.Enabled:= materialPilaOk;
|
|
if not(materialPilaOk) then
|
|
begin
|
|
Helios.Error(#1'Naskenovaný materiál není původní požadovaný ani jeho alternativa'#1 + CRLF + 'Naskenovaný kód: ' + kod);
|
|
Exit;
|
|
end;
|
|
|
|
datModul.pilaSZ:= sz;
|
|
datModul.pilaRC:= rc;
|
|
datModul.pilaSarze:= sarze;
|
|
btnZmenaSarze.Visible:= true;
|
|
datModul.idKmenMaterialPila:= idKZ;
|
|
|
|
pilaReqSN:= helUtils.getHeliosBoolVal(Helios, false, 'SELECT CONVERT(bit, CASE WHEN KontrolaVyrC=N''N'' THEN 0 ELSE 1 END) FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString);
|
|
|
|
{
|
|
lSQL:= 'UPDATE ' + tblRezPredpis + ' SET IDKmenZboMaterial=' + idKZ.ToString + ', Sarze=N' + IfThen(sarze='', 'ULL', sarze.QuotedString);
|
|
lSQL:= lSQL + ' WHERE ID=' + datModul.idHlavPila.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
}
|
|
if not(firstNacitani) then
|
|
begin
|
|
digitTimer.Enabled:= true;
|
|
timerPila:= 0;
|
|
end;
|
|
|
|
ZapisInfoMaterialPila;
|
|
|
|
lblPila1Sarze.Caption:= sarze;
|
|
NactiMnozstviSkladu (true, idKZ, sarze);
|
|
|
|
if (sarze='') and (pilaReqSN) then
|
|
begin
|
|
if not(jsemZUlozenych) then
|
|
begin
|
|
Helios.Error(#1'Pozor, odpis naskenovaného materiálu vyžaduje ŠARŽI'#1);
|
|
materialOK:= false;
|
|
end;
|
|
end;
|
|
|
|
|
|
// pokud je vyzadovana Sarze, zvyrazni font cisla materialu
|
|
if (pilaReqSN) then
|
|
lblPila1RegCis.Font.Color:= clRed
|
|
else
|
|
lblPila1RegCis.Font.Color:= clWindowText;
|
|
lblPila1Sarze.Font.Color:= lblPila1RegCis.Font.Color;
|
|
|
|
|
|
|
|
if (dm.tblPila.RecordCount>0) then
|
|
begin
|
|
// materialOK:= true;
|
|
|
|
if (datModul.idKmenMaterialPila=0) then
|
|
datModul.idKmenMaterialPila:= dm.tblPila.FieldByName('colIDKmenMat').AsInteger;
|
|
|
|
|
|
matPila:= dm.MaterialNaPile (false);
|
|
if not(materialOK) then
|
|
begin
|
|
btnTiskStitku.Enabled:= false;
|
|
btnTiskBezEvidence.Enabled:= false;
|
|
lblJsemAlter.Visible:= false;
|
|
|
|
errMsg:= 'Máte vybrané položky z jiného materiálu než byl naskenovaný !!';
|
|
Helios.Error(#1 + errMsg + #1);
|
|
{
|
|
if (Helios.YesNo(#1'Naskenovaný materiál neodpovídá vybraným položkám'#1 + CRLF + 'Chcete provést záměnu materiálu ?', false)) then
|
|
begin
|
|
|
|
end
|
|
else
|
|
materialOK:= false;
|
|
}
|
|
end
|
|
else
|
|
begin
|
|
lblJsemAlter.Visible:= (datModul.idMatDavkaKmen<>idKZ);
|
|
|
|
datModul.idKmenMaterialPila:= idKZ;
|
|
if (materialOK) and (sarze='') and (pilaReqSN) then
|
|
begin
|
|
errMsg:= 'POZOR, ' + IfThen(jsemZUlozenych, 'uložená', 'naskenovaná') + ' KARTA vyžaduje ŠARŽI.';
|
|
if not(firstNacitani) then
|
|
errMsg:= '';
|
|
materialOK:= false;
|
|
end
|
|
else
|
|
begin
|
|
if (kmenStavOK=false) or ((sarzeStavOK=false) and (sarze<>'')) then
|
|
begin
|
|
|
|
if not(kmenStavOK) then
|
|
errMsg:= 'POZOR, ' + IfThen(jsemZUlozenych, 'uložená', 'naskenovaná') + ' KARTA ' + IfThen(jsemZUlozenych, 'z nezpracovaných položek pily' , '') + ' není evidována na skladě';
|
|
if (lblPila1Sarze.Caption<>'') and not(sarzeStavOK) then
|
|
errMsg:= 'POZOR, ' + IfThen(jsemZUlozenych, 'uložená', 'naskenovaná') + ' ŠARŽE ' + IfThen(jsemZUlozenych, 'z nezpracovaných položek pily' , '') + 'není evidována na skladě !';
|
|
materialOK:= false;
|
|
end;
|
|
// if (errMsg<>'') then
|
|
// Helios.Error(#1 + errMsg + #1);
|
|
end;
|
|
end;
|
|
|
|
if (errMsg='') then
|
|
begin
|
|
btnAddPila.Enabled:= false;
|
|
btnFiltrPilaDel.Enabled:= false;
|
|
btnKonecDavky.Enabled:= true;
|
|
{
|
|
try
|
|
for idx:=0 to frontaPila.ItemCount-1 do
|
|
begin
|
|
frontaPila.ItemIndex:= idx;
|
|
dm.tblPila.RecNo:= idx + 1; // index control listu je zero based
|
|
|
|
i:= dm.tblPila.FieldByName('colIDPrKVazby').AsInteger;
|
|
i2:= dm.tblPila.FieldByName('colIDPolozka').AsInteger;
|
|
ks:= dm.tblPila.FieldByName('colKs').AsExtended;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Sarze=N' + lblPila1Sarze.Caption.QuotedString + ' WHERE ID=' + i2.ToString);
|
|
|
|
if (Helios.PrintForm3 (bidPrKVaz, 78, 'TabPrKVazby.ID=' + i.ToString)) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + i2.ToString);
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= true;
|
|
dm.tblPila.Post;
|
|
end;
|
|
end;
|
|
except on E:Exception do
|
|
Helios.Error(#1'CHYBA'#1 + E.Message);
|
|
end;
|
|
}
|
|
|
|
|
|
// po vytisteni vsech stitku se puvodne smazala fronta pily (davka)
|
|
if (dm.KolikZbyvaKTisku=0) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET DatSplneno=GETDATE(), JeNovaVetaEditor=0 WHERE ID=' + datModul.idHlavPila.ToString);
|
|
datModul.idHlavPila:= 0;
|
|
|
|
dm.tblPila.Clear; // .EmptyDataSet;
|
|
frontaPila.ItemCount:= 0;
|
|
frontaPila.Invalidate;
|
|
digitTimer.Enabled:= false;
|
|
|
|
VymazUdajePilaNeboPlan (false);
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
edtFiltrPila.Text:= '';
|
|
end;
|
|
|
|
end
|
|
else
|
|
begin
|
|
if (errMsg.Contains('není evid')) then
|
|
begin
|
|
errMsg:= errMsg + CRLF + 'karta ' + sz + ' ' + rc + ' / šarže ' + sarze;
|
|
edtFiltrPila.Text:= '';
|
|
Helios.Error(#1 + errMsg + #1);
|
|
VymazUdajePilaNeboPlan (false);
|
|
if (edtFiltrPila.CanFocus) then
|
|
edtFiltrPila.SetFocus;
|
|
end;
|
|
end;
|
|
|
|
|
|
{
|
|
dm.tblPila.DisableControls;
|
|
dm.tblPila.Filtered:= false;
|
|
dm.tblPila.Filter:= 'colRegCis<>' + (sz+rc).ToUpper.QuotedString;
|
|
dm.tblPila.Filtered:= true;
|
|
i:= dm.tblPila.RecordCount;
|
|
dm.tblPila.Filtered:= false;
|
|
dm.tblPila.EnableControls;
|
|
pila1OK:= (i=0);
|
|
if (i>0) then
|
|
Helios.ExecSQL('Některé pozice zadané na PILU neodpovídají naskenovanému materiálu');
|
|
}
|
|
end;
|
|
|
|
|
|
end
|
|
else
|
|
begin
|
|
datModul.pilaSZ:= sz;
|
|
datModul.pilaRC:= rc;
|
|
datModul.pilaSarze:= sarze;
|
|
end;
|
|
|
|
end;
|
|
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= btnDelPila.Enabled;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPlanEnter (Sender: TObject);
|
|
begin
|
|
edtFiltrPlan.Text:= '';
|
|
VymazUdajePilaNeboPlan (true);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPlanExit (Sender: TObject);
|
|
var lSQL, kod, sarze, sz, rc, matPila: string;
|
|
d: byte;
|
|
canCont: boolean;
|
|
m1, m2: Extended;
|
|
begin
|
|
sz:= '';
|
|
rc:= '';
|
|
sarze:= '';
|
|
|
|
edtFiltrPlan.Text:= edtFiltrPlan.Text.Trim;
|
|
if (edtFiltrPlan.Text<>'') then
|
|
begin
|
|
kod:= edtFiltrPlan.Text;
|
|
d:= Length(kod);
|
|
|
|
if (d=13) then
|
|
begin
|
|
sz:= LeftStr(kod, 3);
|
|
rc:= MidStr(kod, 4, 10);
|
|
end
|
|
else
|
|
if (d>13) and (LeftStr(kod,3)='010') then // 010030INT0000232101202106
|
|
begin
|
|
kod:= MidStr(kod, 4, 100);
|
|
sz:= LeftStr(kod, 3); // 030
|
|
rc:= MidStr(kod, 4, 10); // INT0000232
|
|
sarze:= MidStr(kod, 16, 50); // 1202106
|
|
end;
|
|
|
|
if (sz='030') or (sz='130') then
|
|
begin
|
|
m1:= 0;
|
|
m2:= 0;
|
|
datModul.planSZ:= sz;
|
|
datModul.planRC:= rc;
|
|
datModul.planSarze:= sarze;
|
|
|
|
|
|
lSQL:= 'SELECT k.Nazev1 + N'' '' + ISNULL(ke._Rozmer, N'''') + N'' / '' + ISNULL(ke._S1_X, N'''') + N'' '' + ISNULL(ke._JakostMaterialu, N'''') FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE k.SkupZbo=N' + sz.QuotedString + ' AND k.RegCis=N' + rc.QuotedString;
|
|
lblPlanNazev1.Caption:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
// lblPila1Nazev1.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev1 FROM ' + tblKZ + ' WHERE SkupZbo=N' + sz.QuotedString + ' AND RegCis=N' + rc.QuotedString);
|
|
|
|
lblPlanRegCis.Caption:= rc;
|
|
lSQL:= 'SELECT s.Mnozstvi FROM ' + tblSS + ' s INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE k.SkupZbo=N' + sz.QuotedString + ' AND k.RegCis=N' + rc.QuotedString;
|
|
lSQL:= lSQL + ' AND s.IDSklad=N' + skladMat.QuotedString;
|
|
m1:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
lblPlanSkladem.Caption:= m1.ToString;
|
|
|
|
|
|
lblPlanSarze.Caption:= sarze;
|
|
if (sarze<>'') then
|
|
begin
|
|
lSQL:= 'SELECT vcs.Mnozstvi FROM ' + tblVyrCS + ' vcs INNER JOIN ' + tblSS + ' s ON (s.ID=vcs.IDStavSkladu) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE k.SkupZbo=N';
|
|
lSQL:= lSQL + sz.QuotedString + ' AND k.RegCis=N' + rc.QuotedString + ' AND s.IDSklad=N' + skladMat.QuotedString + ' AND vcs.Nazev1=N' + sarze.QuotedString;
|
|
m2:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
lblPlanSarzeSkladem.Caption:= m2.ToString;
|
|
end;
|
|
|
|
if (dm.tblPlan.RecordCount>0) then
|
|
begin
|
|
matPila:= dm.MaterialNaPile (true);
|
|
if (matPila<>sz+rc) then
|
|
Helios.Error(#1'Naskenovaný materiál neodpovídá vybraným položkám'#1)
|
|
else
|
|
begin
|
|
|
|
end;
|
|
{
|
|
dm.tblPlan.DisableControls;
|
|
dm.tblPlan.Filtered:= false;
|
|
dm.tblPlan.Filter:= 'colRegCis<>' + (sz+rc).ToUpper.QuotedString;
|
|
dm.tblPlan.Filtered:= true;
|
|
i:= dm.tblPlan.RecordCount;
|
|
dm.tblPlan.Filtered:= false;
|
|
dm.tblPlan.EnableControls;
|
|
pila1OK:= (i=0);
|
|
if (i>0) then
|
|
Helios.ExecSQL('Některé pozice zadané na PLÁN neodpovídají naskenovanému materiálu');
|
|
}
|
|
end;
|
|
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrProfilEnter (Sender: TObject);
|
|
var f: TformKeyb;
|
|
begin
|
|
edtFiltrProfil.Text:= '';
|
|
{
|
|
if (helUtils.IsAdmin) and (1=0) then
|
|
ShowTabTip
|
|
else
|
|
begin
|
|
if not(helUtils.IsPhysicalKeyboardConnected) then
|
|
begin
|
|
f:= TformKeyb.Create(nil);
|
|
try
|
|
f.ShowModal;
|
|
edtFiltrProfil.Text:= f.text.ToUpper;
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
finally
|
|
f.Free;
|
|
end;
|
|
end;
|
|
end;
|
|
}
|
|
end;
|
|
|
|
|
|
procedure TformMain.edtFiltrProfilExit (Sender: TObject);
|
|
begin
|
|
edtFiltrProfil.Text:= edtFiltrProfil.Text.ToUpper;
|
|
lblFiltrProfil.Visible:= (edtFiltrProfil.Text<>'');
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
CloseTabTip;
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
procedure TformMain.edtFiltrProfilKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
edtFiltrProfilExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPrumerEnter (Sender: TObject);
|
|
var f: TformCalc;
|
|
begin
|
|
edtFiltrPrumer.Text:= '';
|
|
{
|
|
f:= TformCalc.Create(nil);
|
|
try
|
|
f.mrVal:= 0;
|
|
f.retVal:= '';
|
|
f.edtNum.Text:= '';
|
|
f.pnlAkce:= 6;
|
|
f.Hide;
|
|
f.ShowModal;
|
|
|
|
if (f.mrVal<10) then
|
|
begin
|
|
if (f.retVal<>'') then
|
|
edtFiltrPrumer.Text:= f.retVal;
|
|
if (f.retVal='') or (f.retVal='0') then
|
|
edtFiltrPrumer.Text:= '';
|
|
end;
|
|
edtFiltrMaterialExit (Sender);
|
|
|
|
finally
|
|
f.Free;
|
|
end;
|
|
|
|
if (frontaPlan.CanFocus) then
|
|
frontaPlan.SetFocus;
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPrumerExit (Sender: TObject);
|
|
begin
|
|
edtFiltrPrumer.Text:= edtFiltrPrumer.Text.Trim;
|
|
lblFiltrPrumer.Visible:= (edtFiltrPrumer.Text<>'');
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
CloseTabTip;
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrPrumerKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) or (Key=VK_ESCAPE) then
|
|
edtFiltrPrumerExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrTloustkaEnter (Sender: TObject);
|
|
// var f: TformCalc;
|
|
begin
|
|
edtFiltrTloustka.Text:= '';
|
|
{
|
|
f:= TformCalc.Create(nil);
|
|
try
|
|
f.mrVal:= 0;
|
|
f.retVal:= '';
|
|
f.edtNum.Text:= '';
|
|
f.pnlAkce:= 7;
|
|
f.Hide;
|
|
f.ShowModal;
|
|
|
|
if (f.mrVal<10) then
|
|
begin
|
|
if (f.retVal<>'') then
|
|
edtFiltrTloustka.Text:= f.retVal;
|
|
if (f.retVal='') or (f.retVal='0') then
|
|
edtFiltrTloustka.Text:= '';
|
|
end;
|
|
edtFiltrMaterialExit (Sender);
|
|
|
|
finally
|
|
f.Free;
|
|
end;
|
|
|
|
if (frontaPlan.CanFocus) then
|
|
frontaPlan.SetFocus;
|
|
}
|
|
end;
|
|
|
|
|
|
procedure TformMain.edtFiltrTloustkaExit (Sender: TObject);
|
|
begin
|
|
edtFiltrTloustka.Text:= edtFiltrTloustka.Text.Trim;
|
|
lblFiltrTloustka.Visible:= (edtFiltrTloustka.Text<>'');
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
// if not(helUtils.IsPhysicalKeyboardConnected) then
|
|
CloseTabTip;
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
procedure TformMain.edtFiltrTloustkaKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) or (Key=VK_ESCAPE) then
|
|
edtFiltrTloustkaExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnTiskBezEvidenceClick (Sender: TObject);
|
|
var lSQL, oper, altPrP, sTemp, tiskarnaPila: string;
|
|
i, ii, i2, i3, idKZx, dokl, idKmenTisk, idMD, idVPr, doklPrP: integer;
|
|
ks, delka: Extended;
|
|
|
|
defPrintName: string;
|
|
hPrinter: THandle;
|
|
JobInfo: array[0..255] of TJobInfo1;
|
|
vPO: TPrinterOptions;
|
|
JobsReturned, ix: DWORD;
|
|
DocInfo: TDocInfo1;
|
|
begin
|
|
|
|
if (datModul.idTiskForm>0) then
|
|
begin
|
|
if (datModul.tiskarnaNazev='') then // ZDesigner ZD421 PILA
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) TiskFronta FROM ' + tblTiskDef + ' WHERE FormDefID=' + datModul.idTiskForm.ToString;
|
|
lSQL:= lSQL + ' AND (LoginName IS NULL OR LoginName=SUSER_SNAME()) ORDER BY ISNULL(LoginName, N'''') DESC';
|
|
datModul.tiskarnaNazev:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
end;
|
|
|
|
if not(helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblTiskDef + ' WHERE TiskDoSouboru=1 AND FormDefID=' + datModul.idTiskForm.ToString)) then
|
|
if (helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 AS A FROM ' + tblTiskDef + ' WHERE FormDefID=' + datModul.idTiskForm.ToString + ' AND Implicitni=0'))
|
|
and (datModul.tiskarnaNazev<>'') then
|
|
if not(dm.IsPrinterActiveFrmId(datModul.tiskarnaNazev, datModul.idTiskForm)) then
|
|
begin
|
|
Helios.Error('Tiskárna nenalezena nebo "' + datModul.tiskarnaNazev + '" není aktivní');
|
|
// Exit;
|
|
end;
|
|
end;
|
|
|
|
|
|
// zkusi zrusit probihajici tiskove joby
|
|
defPrintName:= Printer.Printers[Printer.PrinterIndex];
|
|
if (datModul.tiskarnaNazev<>'') then
|
|
defPrintName:= datModul.tiskarnaNazev;
|
|
if (defPrintName<>'') then
|
|
begin
|
|
vPO.dwFlags:= PRINTER_OPTION_NO_CACHE;
|
|
vPO.cbSize:= SizeOf(vPO);
|
|
if OpenPrinter2(PChar(defPrintName), @hPrinter, nil, @vPO) then
|
|
try
|
|
// Získání seznamu úloh
|
|
EnumJobs(hPrinter, 0, 255, 1, @JobInfo, SizeOf(JobInfo), JobsReturned, ix);
|
|
if (JobsReturned>0) then
|
|
for ix:=0 to JobsReturned - 1 do
|
|
begin
|
|
// Zrušení jednotlivých úloh
|
|
SetJob(hPrinter, JobInfo[ix].JobId, 0, nil, JOB_CONTROL_CANCEL);
|
|
end;
|
|
finally
|
|
ClosePrinter(hPrinter);
|
|
end;
|
|
end;
|
|
|
|
|
|
idMD:= dm.tblPila.FieldByName('colIDPlanH').AsInteger;
|
|
|
|
dm.tblPila.RecNo:= frontaPila.ItemIndex + 1; // index TControlListu je zero based
|
|
// dotaz na pocet stitku pri ks>1
|
|
i:= dm.tblPila.FieldByName('colIDPrKVazby').AsInteger;
|
|
idVPr:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
dokl:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT Doklad FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
|
|
ii:= dm.tblPila.FieldByName('colIDPrKVazbyAlter').AsInteger;
|
|
if (ii>0) then
|
|
begin
|
|
idKZx:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT nizsi FROM ' + tblPrKVaz + ' WHERE ID=' + ii.ToString);
|
|
if (idKZx<>datModul.idKmenMaterialPila) then
|
|
ii:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblPrKVaz + ' WHERE nizsi=' + datModul.idKmenMaterialPila.ToString + ' AND IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
end;
|
|
|
|
idKZx:= 0;
|
|
ii:= 0;
|
|
if (i>0) then
|
|
idKZx:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT nizsi FROM ' + tblPrKVaz + ' WHERE ID=' + i.ToString + ' AND IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
|
|
if (idKZx>0) then
|
|
if (idKZx<>datModul.idKmenMaterialPila) then
|
|
ii:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblPrKVaz + ' WHERE nizsi=' + datModul.idKmenMaterialPila.ToString + ' AND IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
|
|
if (ii>0) and (i<>ii) then
|
|
begin
|
|
i:= ii;
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colIDPrKVazby').AsInteger:= i;
|
|
dm.tblPila.Post;
|
|
end;
|
|
|
|
oper:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Operace FROM ' + tblPrKVaz + ' WHERE ID=' + i.ToString);
|
|
if (oper='') then
|
|
begin
|
|
lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString + ' AND pracoviste=' + datModul.idPracovistePila.ToString;
|
|
if (helUtils.getHeliosIntVal(Helios, 0, lSQL)=1) then
|
|
oper:= helUtils.getHeliosStrVal(Helios, '', lSQL.Replace('COUNT(ID)', 'operace'));
|
|
if (oper<>'') then
|
|
Helios.ExecSQL('UPDATE ' + tblPrKVaz + ' SET Operace=N' + oper.QuotedString + ' WHERE ID=' + i.ToString + ' AND ISNULL(Operace,N'''')<>N' + oper.QuotedString);
|
|
end;
|
|
|
|
delka:= dm.tblPila.FieldByName('colDelka').AsExtended;
|
|
ks:= dm.tblPila.FieldByName('colKs').AsExtended;
|
|
|
|
idKmenTisk:= datModul.idMatDavkaKmen;
|
|
if (datModul.idMatDavkaKmen<>datModul.idKmenMaterialPila) then
|
|
begin
|
|
lSQL:= 'SELECT ID FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND nizsi=' + datModul.idKmenMaterialPila.ToString + ' AND IDPrikaz=' + idVPr.ToString;
|
|
i3:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
|
|
if (i3=0) then
|
|
begin
|
|
lSQL:= 'DECLARE @i INT' + CRLF + 'EXEC @i=dbo.hp_NewPozadavek_TabPrKVazby @IDPrikaz=' + idVpr.ToString + ', @IDKmenZbozi=' + datModul.idKmenMaterialPila.ToString;
|
|
lSQL:= lSQL + ', @Mnozstvi=' + (helUtils.RoundToEX(delka, -4)/1000).ToString.Replace(',', '.');
|
|
lSQL:= lSQL + ', @Mnoz_zad=' + (helUtils.RoundToEX(delka * ks, -4)/1000).ToString.Replace(',', '.') + ', @Operace=N' + oper.QuotedString;
|
|
lSQL:= lSQL + ', @Alt_K_Dokladu=' + dokl.ToString + CRLF + 'SELECT @i';
|
|
i3:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
end;
|
|
if (i3>0) then
|
|
begin
|
|
i:= i3;
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colIDPrKVazby').AsInteger:= i;
|
|
dm.tblPila.Post;
|
|
idKmenTisk:= datModul.idKmenMaterialPila;
|
|
end;
|
|
end;
|
|
|
|
i2:= dm.tblPila.FieldByName('colIDPolozka').AsInteger;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET IdPrKVazby=' + i.ToString + ' WHERE ID=' + i2.ToString);
|
|
|
|
lSQL:= 'DROP TABLE IF EXISTS #TabPilaMatDavkaPolTisk' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabPilaMatDavkaPolTisk (ID INT IDENTITY(1,1) NOT NULL, IDPrKVazba INT, IDKmenZbozi INT, Sarze NVARCHAR(100), DelkaM NUMERIC(19,6) DEFAULT 0.0 )' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabPilaMatDavkaPolTisk (IDPrKVazba, IDKmenZbozi, Sarze, DelkaM)';
|
|
lSQL:= lSQL + ' SELECT ' + i.ToString + ', ' + idKmenTisk.ToString + ', N' + lblPila1Sarze.Caption.QuotedString + ', ' + (helUtils.RoundToEX(delka, -4)/1000).ToString.Replace(',', '.');
|
|
// Helios.ExecSQL(lSQL);
|
|
|
|
{
|
|
try
|
|
if (DirectoryExists('C:\Temp')) then
|
|
begin
|
|
sTemp:= '<$PF_WhereSys>TabPrKVazby.ID=' + i.ToString + '</$PF_WhereSys><$PF_TiskDoSouboru>1</$PF_TiskDoSouboru>';
|
|
sTemp:= sTemp + '<$PF_DoSouboruCesta>C:\Temp</$PF_DoSouboruCesta><$PF_IDTypDoSouboru>3</$PF_IDTypDoSouboru>';
|
|
Helios.PrintForm3 (bidPrKVaz, datModul.idTiskForm, sTemp);
|
|
end;
|
|
finally
|
|
end;
|
|
}
|
|
|
|
// tisk
|
|
|
|
Helios.ExecSQL ('UPDATE ' + tblPrKVaz + ' SET Prednastaveno=0 WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
Helios.ExecSQL ('UPDATE ' + tblPrKVaz + ' SET Prednastaveno=1 WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
|
|
if (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblPlgInfo + ' WHERE NazevSys=N''PluginRemotePrint''')) then
|
|
begin
|
|
try
|
|
tiskarnaPila:= datModul.tiskarnaNazev;
|
|
if (datModul.tiskarnaNazev='') then
|
|
begin
|
|
tiskarnaPila:= helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) Nazev FROM dbo.GTabRPSeznamTiskaren WHERE LOWER(Nazev) LIKE N''%pila%'' ORDER BY Nazev');
|
|
datModul.tiskarnaNazev:= tiskarnaPila;
|
|
end;
|
|
if (tiskarnaPila<>'') then
|
|
begin
|
|
lSQL:= 'DECLARE @u NVARCHAR(80)=SUSER_SNAME(); EXEC dbo.GEP_RP_NewPozadavekNaTisk @Uzivatel=@u, @Popis=N''Tisk štítku pila'', @BrowseID=11050, @TiskID=' + datModul.idTiskForm.ToString
|
|
+ ', @Filtr=N''TabPrKVazby.ID=' + i.ToString + ''', @Tiskarna=N' + tiskarnaPila.QuotedString + ', @PocetKopii=1';
|
|
{
|
|
lSQL:= 'INSERT dbo.GTabRPSeznamPozadavku (Typ, Uzivatel, Popis, BrowseID, Filtr, Tiskarna)'
|
|
+' SELECT 0, SUSER_SNAME(), N''Tisk štítku pila'', ' + datModul.idTiskForm.ToString + ', N''TabPrKVazby.ID=' + i.ToString + ''', N'
|
|
}
|
|
Helios.ExecSQL (lSQL);
|
|
end;
|
|
finally
|
|
end;
|
|
end;
|
|
|
|
try
|
|
if not(datModul.tiskJenPlgRP) then
|
|
try
|
|
if (Helios.PrintForm3 (bidPrKVaz, datModul.idTiskForm, 'TabPrKVazby.ID=' + i.ToString)) then
|
|
begin
|
|
lSQL:= 'INSERT ' + tblRezPredpisTisky + ' (MimoEvidenci, IDRezaciPredpisR, IDKmenMaterial, Sarze, CisloZboziMat, DeviceID, IDPila, IDPrikaz, IDPrKVazby, OperacePrP,IDPredpisdavkyPlan)';
|
|
lSQL:= lSQL + ' SELECT 1, ' + i2.ToString + ', ' + datModul.idKmenMaterialPila.ToString + ', N' + IfThen(lblPila1Sarze.Caption='', 'ULL', lblPila1Sarze.Caption.QuotedString);
|
|
lSQL:= lSQL + ', N' + (datModul.pilaSZ + datModul.pilaRC).QuotedString + ', N' + datModul.devID.QuotedString + ', ' + datModul.idPila.ToString;
|
|
lSQL:= lSQL + ', ' + idVPr.ToString + ', ' + i.ToString + ', N' + oper.QuotedString + ', ' + idMD.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET PosledniTisk=GETDATE(), PocetTiskuMimo=PocetTiskuMimo+1 WHERE Aktivni=1 AND LoginName=SUSER_SNAME()');
|
|
end;
|
|
except on E:Exception do
|
|
Helios.Error(#1'Chyba tisku: ' + #1 + E.Message);
|
|
end;
|
|
finally
|
|
end;
|
|
|
|
Helios.ExecSQL('DROP TABLE IF EXISTS #TabPilaMatDavkaPolTisk');
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnAddPilaClick (Sender: TObject);
|
|
var i, newPoz, polId: integer;
|
|
lSQL, errMsg, cZbo, s: string;
|
|
begin
|
|
|
|
if (cbZamest.ItemIndex<0) then
|
|
begin
|
|
Helios.Error(#1'Není vybrán zaměstnanec !'#1);
|
|
if (cbZamest.CanFocus) then
|
|
cbZamest.SetFocus;
|
|
Exit;
|
|
end;
|
|
|
|
if (dm.PocetVybranychMaterialuFronty>1) then
|
|
begin
|
|
Helios.Error(#1'Musíte vybrat jen jeden druh materiálu (reg.číslo) !'#1);
|
|
if (cbZamest.CanFocus) then
|
|
cbZamest.SetFocus;
|
|
Exit;
|
|
end;
|
|
|
|
btnDelPilaOne.Enabled:= true;
|
|
|
|
i:= 0;
|
|
cZbo:= '';
|
|
|
|
// lSQL:= 'DELETE X FROM (SELECT ID, ROW_NUMBER() OVER (PARTITION BY Pozice) AS Radek FROM ' + tblRezPredpisR + ') X WHERE WHERE JeNovaVetaEditor=0 AND '
|
|
|
|
|
|
dm.tblFronta.DisableControls;
|
|
dm.tblFronta.First;
|
|
while not(dm.tblFronta.Eof) do
|
|
begin
|
|
if (dm.tblFronta.FieldByName('colVybran').AsBoolean) then
|
|
begin
|
|
|
|
if not(dm.RadekFrontyUzNaPile(dm.tblFronta.RecNo, false)) and not(dm.RadekFrontyUzNaPile(dm.tblFronta.RecNo, true)) then
|
|
begin
|
|
|
|
// PILA
|
|
if (pgCtrl.ActivePage=shPila) then
|
|
begin
|
|
digitTimer.Enabled:= true;
|
|
btnTiskStitku.Enabled:= true;
|
|
|
|
if (datModul.idHlavPila=0) then
|
|
begin
|
|
s:= helUtils.GetClientComputerName(1);
|
|
lSQL:= 'INSERT ' + tblRezPredpis + ' (JePlan, DeviceID, OsCislo, JeNovaVetaEditor, CompName) SELECT 0, N' + datModul.devID.QuotedString;
|
|
lSQL:= lSQL + ', ' + cisZam.ToString + ', 1, N' + s.QuotedString + '; SELECT SCOPE_IDENTITY()';
|
|
datModul.idHlavPila:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
end;
|
|
|
|
newPoz:= dm.MaxPoziceTab (dm.tblPila) + 10;
|
|
dm.tblPila.Append;
|
|
if (dm.CopyRecord (dm.tblFronta, dm.tblPila, dm.tblFronta.RecNo)) then
|
|
begin
|
|
if (cZbo='') then
|
|
cZbo:= dm.tblPila.FieldByName('colCisloZboziMat').AsString;
|
|
|
|
if (cZbo<>'') and (datModul.idKmenMaterialPila=0) then
|
|
datModul.idKmenMaterialPila:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE CisloZbozi=N' + cZbo.QuotedString);
|
|
dm.tblPila.FieldByName('colIDKmenMat').AsInteger:= datModul.idKmenMaterialPila;
|
|
|
|
dm.tblPila.FieldByName('colIDHlavicka').AsInteger:= datModul.idHlavPila;
|
|
dm.tblPila.FieldByName('colPozice').AsInteger:= newPoz;
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= true;
|
|
try
|
|
dm.tblFronta.Edit;
|
|
dm.tblFronta.FieldByName('colSmazat').AsBoolean:= true;
|
|
dm.tblFronta.Post;
|
|
|
|
polId:= 0;
|
|
lSQL:= 'INSERT ' + tblRezPredpisR + ' (IDHlavicka, Pozice, IDPrKVazby, MnozstviKs, Mnozstvi, IDKmenMaterial)';
|
|
lSQL:= lSQL + ' SELECT ' + datModul.idHlavPila.ToString + ', ' + newPoz.ToString + ', ' + dm.tblPila.FieldByName('colIDPrKVazby').AsString;
|
|
lSQL:= lSQL + ', ' + dm.tblPila.FieldByName('colKs').AsExtended.ToString.Replace(',', '.');
|
|
lSQL:= lSQL + ', ' + (dm.tblPila.FieldByName('colDelka').AsExtended/1000).ToString.Replace(',', '.') + ', ' + datModul.idKmenMaterialPila.ToString + CRLF;
|
|
lSQL:= lSQL + 'SELECT SCOPE_IDENTITY() AS newid';
|
|
with Helios.OpenSQL(lSQL) do
|
|
polId:= VarToStr(FieldByNameValues('newid')).ToInteger;
|
|
dm.tblPila.FieldByName('colIDPolozka').AsInteger:= polId;
|
|
dm.tblPila.Post;
|
|
except on E:Exception do
|
|
begin
|
|
errMsg:= E.Message;
|
|
dm.tblPila.Cancel;
|
|
end;
|
|
end;
|
|
end
|
|
else
|
|
dm.tblPila.Cancel;
|
|
end // shPila
|
|
else
|
|
// PLAN
|
|
begin // shPlan
|
|
if (datModul.idHlavPlan=0) then
|
|
begin
|
|
s:= helUtils.GetClientComputerName(1);
|
|
lSQL:= 'INSERT ' + tblRezPredpis + ' (JePlan, DeviceID, OsCislo, JeNovaVetaEditor, CompName) SELECT 1, N' + datModul.devID.QuotedString;
|
|
lSQL:= lSQL + ', ' + cisZam.ToString + ', 1, N' + s.QuotedString + ' SELECT SCOPE_IDENTITY()';
|
|
datModul.idHlavPlan:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET IDPlan=' + datModul.idHlavPlan.ToString + ' WHERE ID=' + datModul.idHlavPila.ToString);
|
|
end;
|
|
|
|
if (datModul.idHlavPlan>0) then
|
|
begin
|
|
newPoz:= dm.MaxPoziceTab (dm.tblPlan) + 10;
|
|
dm.tblPlan.Append;
|
|
if (dm.CopyRecord (dm.tblFronta, dm.tblPlan, dm.tblFronta.RecNo)) then
|
|
begin
|
|
if (cZbo='') then
|
|
cZbo:= dm.tblPlan.FieldByName('colCisloZboziMat').AsString;
|
|
|
|
if (cZbo<>'') and (datModul.idKmenMaterialPlan=0) then
|
|
datModul.idKmenMaterialPlan:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE CisloZbozi=N' + cZbo.QuotedString);
|
|
dm.tblPlan.FieldByName('colIDKmenMat').AsInteger:= datModul.idKmenMaterialPlan;
|
|
|
|
dm.tblPlan.FieldByName('colIDHlavicka').AsInteger:= datModul.idHlavPlan;
|
|
dm.tblPlan.FieldByName('colPozice').AsInteger:= newPoz;
|
|
try
|
|
dm.tblFronta.Edit;
|
|
dm.tblFronta.FieldByName('colSmazat').AsBoolean:= true;
|
|
dm.tblFronta.Post;
|
|
|
|
polId:= 0;
|
|
lSQL:= 'INSERT ' + tblRezPredpisR + ' (IDHlavicka, Pozice, IDPrKVazby, MnozstviKs, Mnozstvi)';
|
|
lSQL:= lSQL + ' SELECT ' + datModul.idHlavPlan.ToString + ', ' + newPoz.ToString + ', ' + dm.tblPlan.FieldByName('colIDPrKVazby').AsString;
|
|
lSQL:= lSQL + ', ' + dm.tblPlan.FieldByName('colKs').AsExtended.ToString.Replace(',', '.');
|
|
lSQL:= lSQL + ', ' + (dm.tblPlan.FieldByName('colDelka').AsExtended/1000).ToString.Replace(',', '.') + CRLF;
|
|
lSQL:= lSQL + 'SELECT SCOPE_IDENTITY() AS newid';
|
|
with Helios.OpenSQL(lSQL) do
|
|
polId:= VarToStr(FieldByNameValues('newid')).ToInteger;
|
|
dm.tblPlan.FieldByName('colIDPolozka').AsInteger:= polId;
|
|
|
|
dm.tblPlan.Post;
|
|
except
|
|
dm.tblPlan.Cancel;
|
|
end;
|
|
end
|
|
else
|
|
dm.tblPlan.Cancel;
|
|
|
|
btnSrot.Enabled:= false; // (dm.tblPlan.RecordCount>0);
|
|
btnPosliNaPilu.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
end;
|
|
end; // shPlan
|
|
end;
|
|
end;
|
|
dm.tblFronta.Next;
|
|
end;
|
|
|
|
{
|
|
with Helios.OpenSQL('SELECT RegCis, Nazev1 FROM ' + tblKZ + ' WHERE CisloZbozi=N' + cZbo.QuotedString) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
if (pgCtrl.ActivePage=shPila) then
|
|
begin
|
|
if (edtFiltrPila.Text='') then
|
|
begin
|
|
lblPila1RegCis.Caption:= VarToStr(FieldByNameValues('RegCis'));
|
|
lSQL:= 'SELECT k.Nazev1 + N'' '' + ISNULL(ke._Rozmer, N'''') + N'' / '' + ISNULL(ke._S1_X, N'''') + N'' '' + ISNULL(ke._JakostMaterialu, N'''') FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE k.CisloZbozi=N' + cZbo.QuotedString;
|
|
lblPila1Nazev1.Caption:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
if (edtFiltrPlan.Text='') then
|
|
begin
|
|
lblPlanRegCis.Caption:= VarToStr(FieldByNameValues('RegCis'));
|
|
lSQL:= 'SELECT k.Nazev1 + N'' '' + ISNULL(ke._Rozmer, N'''') + N'' / '' + ISNULL(ke._S1_X, N'''') + N'' '' + ISNULL(ke._JakostMaterialu, N'''') FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE k.CisloZbozi=N' + cZbo.QuotedString;
|
|
lblPlanNazev1.Caption:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
end;
|
|
end;
|
|
end;
|
|
}
|
|
|
|
ZapisInfoMaterialPila;
|
|
ZapisInfoMaterialPlan;
|
|
|
|
dm.tblFronta.First;
|
|
while not(dm.tblFronta.Eof) do
|
|
begin
|
|
if (dm.tblFronta.FieldByName('colSmazat').AsBoolean) then
|
|
dm.tblFronta.Delete;
|
|
dm.tblFronta.Next;
|
|
end;
|
|
|
|
dm.NactiFrontu (idPrac, self);
|
|
|
|
cbFrontaAll.Checked:= false;
|
|
dm.FrontaOdznacitVse;
|
|
lblRecSelected.Caption:= 'Výběr: ' + dm.PocetOznacenychVeFronte.ToString + ' / celkem ' + dm.SoucetDelekOznacenychVeFronte.ToString + ' m';
|
|
|
|
|
|
dm.tblFronta.Refresh;
|
|
dm.tblFronta.RecNo:= 0;
|
|
dm.tblFronta.EnableControls;
|
|
|
|
btnAddPila.Enabled:= (dm.PocetOznacenychVeFronte>0);
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0) or (dm.tblPlan.RecordCount>0);
|
|
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
btnPlanUp.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
btnPlanDown.Enabled:= btnPlanUp.Enabled;
|
|
|
|
|
|
btnSmazFiltryMDClick (Sender);
|
|
|
|
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
ctrlFronta.Invalidate;
|
|
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
frontaPila.Invalidate;
|
|
|
|
frontaPlan.ItemCount:= dm.tblPlan.RecordCount;
|
|
frontaPlan.Invalidate;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnFiltrMatClick (Sender: TObject);
|
|
var s: string;
|
|
begin
|
|
if (dm.tblFronta.RecordCount>0) then
|
|
if (dm.PocetOznacenychVeFronte=1) then
|
|
begin
|
|
edtFiltrMaterial.Text:= dm.VratMaterialPrvniOznacenyVeFronte;
|
|
edtFiltrMaterialExit (Sender);
|
|
btnFiltrMat.Enabled:= (dm.PocetOznacenychVeFronte=1);
|
|
end;
|
|
btnAddPila.Enabled:= (dm.PocetOznacenychVeFronte>0);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnFiltrPilaClick (Sender: TObject);
|
|
var kod, sarze, sz, rc: string;
|
|
d: byte;
|
|
canCont: boolean;
|
|
begin
|
|
edtFiltrPila.Text:= edtFiltrPila.Text.Trim;
|
|
if (edtFiltrPila.Text<>'') then
|
|
begin
|
|
edtFiltrMaterial.Text:= datModul.pilaSZ + datModul.pilaRC;
|
|
dm.tblFronta.Filtered:= false;
|
|
dm.tblFronta.Filter:= 'colCisloZboziMat=' + edtFiltrMaterial.Text.ToUpper.QuotedString;
|
|
dm.tblFronta.Filtered:= true;
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
ctrlFronta.Invalidate;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnFiltrPilaDelClick (Sender: TObject);
|
|
begin
|
|
edtFiltrPila.Text:= '';
|
|
lblJsemAlter.Visible:= false;
|
|
// btnAddPila.Enabled:= true;
|
|
// btnDelPila.Enabled:= true;
|
|
// btnDelPilaOne.Enabled:= true;
|
|
btnKonecDavky.Enabled:= false;
|
|
|
|
datModul.idKmenMaterialPila:= 0;
|
|
btnZmenaSarze.Visible:= false;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnFiltrPlanClick(Sender: TObject);
|
|
var kod, sarze, sz, rc: string;
|
|
d: byte;
|
|
canCont: boolean;
|
|
begin
|
|
edtFiltrPlan.Text:= edtFiltrPlan.Text.Trim;
|
|
if (edtFiltrPlan.Text<>'') then
|
|
begin
|
|
edtFiltrMaterial.Text:= datModul.planSZ + datModul.planRC;
|
|
dm.tblFronta.Filtered:= false;
|
|
dm.tblFronta.Filter:= 'colCisloZboziMat=' + edtFiltrMaterial.Text.ToUpper.QuotedString;
|
|
dm.tblFronta.Filtered:= true;
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
ctrlFronta.Invalidate;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnFrontaDownClick (Sender: TObject);
|
|
begin
|
|
// SendMessage(ctrlFronta.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
|
|
if (ctrlFronta.ItemIndex<ctrlFronta.ItemCount-1) then
|
|
ctrlFronta.ItemIndex:= ctrlFronta.ItemIndex + 1;
|
|
end;
|
|
|
|
|
|
procedure TformMain.btnFrontaPgDownClick (Sender: TObject);
|
|
var i: integer;
|
|
OldScrollPos : integer;
|
|
begin
|
|
OldScrollPos := TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, OldScrollPos);
|
|
// SendMessage(ctrlFronta.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
|
|
i:= Trunc(ctrlFronta.ClientHeight / ctrlFronta.ItemHeight);
|
|
if (ctrlFronta.ItemIndex+i <= ctrlFronta.ItemCount) then
|
|
ctrlFronta.ItemIndex:= ctrlFronta.ItemIndex + i
|
|
else
|
|
ctrlFronta.ItemIndex:= ctrlFronta.ItemCount+1;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnFrontaUpClick (Sender: TObject);
|
|
var oldPos: integer;
|
|
begin
|
|
// oldPos:= TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
// TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, oldPos);
|
|
// SendMessage(ctrlFronta.Handle, WM_VSCROLL, SB_LINEUP, 0);
|
|
if (ctrlFronta.ItemIndex>0) then
|
|
ctrlFronta.ItemIndex:= ctrlFronta.ItemIndex - 1;
|
|
end;
|
|
|
|
|
|
procedure TformMain.btnFrontaPgUpClick (Sender: TObject);
|
|
var i: integer;
|
|
OldScrollPos : integer;
|
|
begin
|
|
OldScrollPos := TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, OldScrollPos);
|
|
// SendMessage(ctrlFronta.Handle, WM_VSCROLL, SB_PAGEUP, 0);
|
|
|
|
i:= Trunc(ctrlFronta.ClientHeight / ctrlFronta.ItemHeight);
|
|
if (ctrlFronta.ItemIndex-i >= 0) then
|
|
ctrlFronta.ItemIndex:= ctrlFronta.ItemIndex - i
|
|
else
|
|
ctrlFronta.ItemIndex:= 0;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnKonecDavkyClick (Sender: TObject);
|
|
var idx, i, i2, idM, pocMezdPrev: integer;
|
|
lSQL, tmpString: string;
|
|
ks: Extended;
|
|
arrIDRozpisR: TArray<integer>;
|
|
begin
|
|
|
|
if (frontaPila.ItemCount>0) and (1=0) then
|
|
begin
|
|
SetLength(arrIDRozpisR, frontaPila.ItemCount);
|
|
|
|
lSQL:= 'DROP TABLE IF EXISTS #TabEvidPracePila' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabEvidPracePila (ID INT IDENTITY(1,1) NOT NULL, OsCislo INT, IDPolozka INT NOT NULL, Sarze NVARCHAR(100), CasS INT, PocetKs NUMERIC(19,6) DEFAULT 1.0 NOT NULL)';
|
|
Helios.ExecSQL (lSQL);
|
|
|
|
for idx:=0 to frontaPila.ItemCount-1 do
|
|
begin
|
|
frontaPila.ItemIndex:= idx;
|
|
dm.tblPila.RecNo:= idx + 1; // index TControlListu je zero based
|
|
|
|
// dotaz na pocet stitku pri ks>1
|
|
|
|
i:= dm.tblPila.FieldByName('colIDPrKVazby').AsInteger;
|
|
i2:= dm.tblPila.FieldByName('colIDPolozka').AsInteger;
|
|
ks:= dm.tblPila.FieldByName('colKs').AsExtended;
|
|
|
|
// tisk - VYPNUTY !!!
|
|
if (1=0) and (Helios.PrintForm3 (bidPrKVaz, datModul.idTiskFormStitek, 'TabPrKVazby.ID=' + i.ToString)) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + i2.ToString);
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= true;
|
|
dm.tblPila.Post;
|
|
end;
|
|
|
|
// evidovat praci ? tj. IDMzdy je null/nulove
|
|
// je uz radek v evidenci operaci ?
|
|
idM:= 0;
|
|
if (i2>0) then
|
|
idM:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ISNULL(IdMzdy,0) FROM ' + tblRezPredpisR + ' WHERE ID=' + i2.ToString);
|
|
if (idM=0) then
|
|
begin
|
|
try
|
|
lSQL:= 'INSERT #TabEvidPracePila (OsCislo, IDPolozka, Sarze, CasS, PocetKs) SELECT ' + cisZam.ToString + ', ' + i2.ToString + ', N' + lblPila1Sarze.Caption.QuotedString;
|
|
lSQL:= lSQL + ', ' + timerPila.ToString + ', ' + ks.ToString.Replace(',', '.');
|
|
Helios.ExecSQL (lSQL);
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Sarze=N' + lblPila1Sarze.Caption.QuotedString + ' WHERE ID=' + i2.ToString);
|
|
arrIDRozpisR[idx]:= i2;
|
|
|
|
// co tohle bylo ? - nove stale VYPNUTO !!!
|
|
if (1=0) and
|
|
not(helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM dbo._HDC_Log WHERE DATEDIFF(s, DatPorizeni, GETDATE())<10 AND Typ=10 AND iTemp=' + i2.ToString)) then
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= false;
|
|
dm.tblPila.Post;
|
|
btnTiskStitku.Enabled:= false;
|
|
|
|
if (dm.KolikZbyvaKTisku=0) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET DatSplneno=GETDATE(), JeNovaVetaEditor=0 WHERE ID=' + datModul.idHlavPila.ToString);
|
|
datModul.idHlavPila:= 0;
|
|
|
|
dm.tblPila.Clear; // .EmptyDataSet;
|
|
frontaPila.ItemCount:= 0;
|
|
frontaPila.Invalidate;
|
|
digitTimer.Enabled:= false;
|
|
|
|
VymazUdajePilaNeboPlan (false); // = pila
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
edtFiltrPila.Text:= '';
|
|
end;
|
|
|
|
end;
|
|
except on E:Exception do
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Sarze=NULL WHERE ID=' + i2.ToString);
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
try
|
|
// spust proceduru pro zapis prace
|
|
lSQL:= 'IF OBJECT_ID(N''dbo.ep_HDC_EvidPracePila'', N''P'') IS NOT NULL EXEC dbo.ep_HDC_EvidPracePila @CelkovyCasS=' + timerPila.ToString + CRLF;
|
|
Helios.ExecSQL (lSQL);
|
|
Helios.ExecSQL ('DROP TABLE IF EXISTS #TabEvidPracePila');
|
|
|
|
// po ukonceni davky se smaze fronta a davka se oznaci jako splnena
|
|
if (1=1) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET DatSplneno=GETDATE(), JeNovaVetaEditor=0 WHERE ID=' + datModul.idHlavPila.ToString);
|
|
datModul.idHlavPila:= 0;
|
|
|
|
dm.tblPila.Clear; // .EmptyDataSet;
|
|
frontaPila.ItemCount:= 0;
|
|
frontaPila.Invalidate;
|
|
digitTimer.Enabled:= false;
|
|
|
|
VymazUdajePilaNeboPlan (false); // = pila
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
edtFiltrPila.Text:= '';
|
|
end;
|
|
except on E:Exception do
|
|
Helios.Error(#1'CHYBA'#1 + CRLF + E.Message);
|
|
end;
|
|
end;
|
|
|
|
btnFiltrPilaDel.Enabled:= true;
|
|
btnAddPila.Enabled:= true;
|
|
btnDelPila.Enabled:= true;
|
|
btnDelPilaOne.Enabled:= true;
|
|
btnKonecDavky.Enabled:= false;
|
|
|
|
timerPila:= 0;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnAllZamestClick(Sender: TObject);
|
|
var i: integer;
|
|
begin
|
|
if (Helios.Prenos(bidCisZam, 'TabCisZam.ID', oVar1, 'TabCisZam.StavES NOT IN (1,2,3,4)', 'Vyberte zaměstnance', false)) then
|
|
begin
|
|
i:= VarToStr(oVar1).ToInteger;
|
|
NactiZamestnanceDleIDNeboCisla (i, 0);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.NactiZamestnanceDleIDNeboCisla (id: Integer = 0; cislo: Integer = 0);
|
|
begin
|
|
if (id>0) then
|
|
cislo:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT Cislo FROM ' + tblCZam + ' WHERE ID=' + id.ToString);
|
|
if (cislo>0) then
|
|
begin
|
|
with Helios.OpenSQL('SELECT Jmeno, Prijmeni FROM ' + tblCZam + ' WHERE Cislo=' + cislo.ToString) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
cisZam:= cislo;
|
|
idZam:= id;
|
|
cbZamest.Items.Clear;
|
|
cbZamest.Items.AddObject(FieldByNameValues('Prijmeni') + ' ' + FieldByNameValues('Jmeno'), TZamestnanec.Create (idZam, cisZam, Helios));
|
|
cbZamest.ItemIndex:= 0;
|
|
end
|
|
else
|
|
Helios.Error(#1'Zadané osobní číslo neexistuje'#1);
|
|
end
|
|
else
|
|
Helios.Error(#1'Osobní číslo musí být větší než 0'#1);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnCalcClick (Sender: TObject);
|
|
var f: TformCalc;
|
|
begin
|
|
f:= TformCalc.Create(nil);
|
|
try
|
|
f.mrVal:= 0;
|
|
f.retVal:= '';
|
|
f.edtNum.Text:= '';
|
|
f.pnlAkce:= 1;
|
|
f.Hide;
|
|
f.ShowModal;
|
|
|
|
if (f.mrVal<10) then
|
|
begin
|
|
if not(TryStrToInt(f.retVal, cisZam)) then
|
|
cisZam:= 0;
|
|
if (cisZam>0) then
|
|
NactiZamestnanceDleIDNeboCisla (0, cisZam)
|
|
else
|
|
Helios.Error(#1'Musíte zadat platné osobní číslo'#1);
|
|
end;
|
|
|
|
finally
|
|
f.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnCalcNadobaClick (Sender: TObject);
|
|
var f: TformCalc;
|
|
cisNadoby: integer;
|
|
begin
|
|
cisNadoby:= 0;
|
|
|
|
f:= TformCalc.Create(nil);
|
|
try
|
|
f.mrVal:= 0;
|
|
f.retVal:= '';
|
|
f.edtNum.Text:= '';
|
|
if (calcTyp=1) then
|
|
f.pnlAkce:= 3;
|
|
if (calcTyp=2) then
|
|
f.pnlAkce:= 4;
|
|
f.Hide;
|
|
f.ShowModal;
|
|
|
|
if (f.mrVal<10) then
|
|
begin
|
|
|
|
case calcTyp of
|
|
1: begin
|
|
if not(TryStrToInt(f.retVal, cisNadoby)) then
|
|
cisNadoby:= 0;
|
|
if (cisNadoby>0) then
|
|
begin
|
|
edtFiltrNadoba.Text:= cisNadoby.ToString;
|
|
edtFiltrNadobaExit (Sender);
|
|
end
|
|
else
|
|
Helios.Error(#1'Musíte zadat platné číslo nádoby'#1);
|
|
end;
|
|
2: begin
|
|
edtFiltrNazev.Text:= f.retVal;
|
|
edtFiltrNazevExit (Sender);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
finally
|
|
f.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnDelPilaClick (Sender: TObject);
|
|
var ids, lSQL: string;
|
|
begin
|
|
|
|
if (pgCtrlMD.ActivePage=shMatDavky) then
|
|
begin
|
|
lblJsemAlter.Visible:= false;
|
|
shPila.Caption:= 'DÁVKA';
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET CisloDavky=NULL WHERE LoginName=SUSER_SNAME() AND Aktivni=1');
|
|
|
|
lSQL:= 'UPDATE ' + tblMatDavkyR + ' SET NaPile=0 WHERE ID IN (SELECT IDPlanMDPol FROM ' + tblRezPredpisR + ' WHERE IDPlanMDPol IS NOT NULL AND IDHlavicka=' + datModul.idHlavPila.ToString + ')';
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
if (dm.tblPila.RecordCount>0) then
|
|
if (dm.tblPila.FieldByName('colIDPlanH').AsInteger>0) then
|
|
Helios.ExecSQL('UPDATE ' + tblMatDavkyH + ' SET NaPile=0 WHERE ID=' + dm.tblPila.FieldByName('colIDPlanH').AsString);
|
|
|
|
|
|
ids:= dm.IDckaRezPredpisR (dm.tblPila);
|
|
try
|
|
dm.tblPila.Clear; // TFDMemTable.EmptyDataSet;
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE Tisk=0 AND ID IN (' + ids + ')');
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
finally
|
|
end;
|
|
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE DatTisku IS NULL AND Tisk=0 AND IDHlavicka=' + datModul.idHlavPila.ToString);
|
|
|
|
lSQL:= 'IF NOT EXISTS(SELECT 1 FROM ' + tblRezPredpisR + ' WHERE DatTisku IS NOT NULL AND IDHlavicka=' + datModul.idHlavPila.ToString + ')';
|
|
lSQL:= lSQL + ' DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + datModul.idHlavPila.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
|
|
// lSQL:= 'DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + datModul.idHlavPila.ToString;
|
|
// Helios.ExecSQL(lSQL);
|
|
|
|
|
|
datModul.idHlavPila:= 0;
|
|
frontaPila.Invalidate;
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= (dm.tblPila.RecordCount>0);
|
|
|
|
edtFiltrPila.Text:= '';
|
|
VymazUdajePilaNeboPlan (false);
|
|
|
|
timerPila:= 0;
|
|
digitTimerTimer(Self);
|
|
digitTimer.Enabled:= false;
|
|
|
|
datModul.idKmenMaterialPila:= 0;
|
|
datModul.idMatDavka:= 0;
|
|
|
|
dm.NactiMaterialoveDavky (self);
|
|
ctrlMD.ItemCount:= dm.tblMatDavky.RecordCount;
|
|
ctrlMD.Invalidate;
|
|
pgCtrlMDChange (Sender);
|
|
end
|
|
else
|
|
begin
|
|
if (pgCtrl.ActivePage=shPila) then
|
|
begin
|
|
shPila.Caption:= 'DÁVKA';
|
|
|
|
lSQL:= 'UPDATE ' + tblMatDavkyR + ' SET NaPile=0 WHERE ID IN (SELECT IDPlanMDPol FROM ' + tblRezPredpisR + ' WHERE IDPlanMDPol IS NOT NULL AND IDHlavicka=' + datModul.idHlavPila.ToString + ')';
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
ids:= dm.IDckaRezPredpisR(dm.tblPila);
|
|
try
|
|
dm.tblPila.Clear; // TFDMemTable.EmptyDataSet;
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE DatTisku IS NULL AND Tisk=0 AND ID IN (' + ids + ')');
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
finally
|
|
end;
|
|
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE DatTisku IS NULL AND IDHlavicka=' + datModul.idHlavPila.ToString);
|
|
lSQL:= 'DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + datModul.idHlavPila.ToString + ' AND ID NOT IN (SELECT IDHlavicka FROM '
|
|
+ tblRezPredpisR + ' WHERE IDHlavicka=' + datModul.idHlavPila.ToString + ')';
|
|
Helios.ExecSQL(lSQL);
|
|
datModul.idHlavPila:= 0;
|
|
frontaPila.Invalidate;
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= (dm.tblPila.RecordCount>0);
|
|
|
|
edtFiltrPila.Text:= '';
|
|
VymazUdajePilaNeboPlan (false);
|
|
|
|
timerPila:= 0;
|
|
digitTimerTimer(Self);
|
|
digitTimer.Enabled:= false;
|
|
|
|
datModul.idKmenMaterialPila:= 0;
|
|
datModul.idMatDavka:= 0;
|
|
|
|
dm.NactiMaterialoveDavky (self);
|
|
|
|
end;
|
|
|
|
if (pgCtrl.ActivePage=shPlan) then
|
|
begin
|
|
ids:= dm.IDckaRezPredpisR(dm.tblPlan);
|
|
try
|
|
dm.tblPlan.Clear; // .EmptyDataSet;
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE ID IN (' + ids + ')');
|
|
frontaPlan.ItemCount:= dm.tblPlan.RecordCount;
|
|
finally
|
|
end;
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE IDHlavicka=' + datModul.idHlavPlan.ToString);
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + datModul.idHlavPlan.ToString);
|
|
datModul.idHlavPlan:= 0;
|
|
frontaPlan.Invalidate;
|
|
btnDelPila.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
btnPosliNaPilu.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
|
|
datModul.idKmenMaterialPlan:= 0;
|
|
|
|
end;
|
|
end;
|
|
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
|
|
ZapisInfoMaterialPlan;
|
|
ZapisInfoMaterialPila;
|
|
|
|
btnTiskStitku.Enabled:= false;
|
|
btnTiskBezEvidence.Enabled:= false;
|
|
dm.NactiFrontu (idPrac, self);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnDelPilaOneClick (Sender: TObject);
|
|
var lSQL: string;
|
|
i, ii, idPol, idMD, idMDPlanR: integer;
|
|
begin
|
|
if (pgCtrl.ActivePage=shPila) then
|
|
begin
|
|
if (dm.tblPila.RecordCount>0) then
|
|
begin
|
|
i:= frontaPila.ItemIndex + 1;
|
|
dm.tblPila.RecNo:= i;
|
|
|
|
idMDPlanR:= dm.tblPila.FieldByName('colIDPlanR').AsInteger;
|
|
Helios.ExecSQL('UPDATE ' + tblMatDavkyR + ' SET NaPile=0 WHERE ID=' + idMDPlanR.ToString);
|
|
|
|
idMD:= dm.tblPila.FieldByName('colIDPlanH').AsInteger;
|
|
lSQL:= 'IF NOT EXISTS(SELECT 1 FROM ' + tblMatDavkyR + ' WHERE NaPile=1 AND IDHlava=' + idMD.ToString + ') '
|
|
+ 'UPDATE ' + tblMatDavkyH + ' SET NaPile=0 WHERE ID=' + idMD.ToString;
|
|
Helios.ExecSQL (lSQL);
|
|
|
|
|
|
idPol:= dm.tblPila.FieldByName('colIDPolozka').AsInteger;
|
|
dm.tblPila.Delete;
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE ID=' + idPol.ToString + ' AND Tisk=0');
|
|
if (dm.tblPila.RecordCount=0) then
|
|
begin
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE IDHlavicka=' + datModul.idHlavPila.ToString);
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + datModul.idHlavPila.ToString);
|
|
end;
|
|
|
|
dm.PrecislujPoziceFronty (dm.tblPila, true);
|
|
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
datModul.idHlavPila:= 0;
|
|
frontaPila.Invalidate;
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= (dm.tblPila.RecordCount>0);
|
|
|
|
if (dm.tblPila.RecordCount=0) then
|
|
begin
|
|
VymazUdajePilaNeboPlan (false);
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET CisloDavky=NULL WHERE LoginName=SUSER_SNAME() AND Aktivni=1');
|
|
end;
|
|
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
|
|
dm.NactiMaterialoveDavky(self);
|
|
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
if (dm.tblPlan.RecordCount>0) then
|
|
begin
|
|
i:= frontaPlan.ItemIndex + 1;
|
|
|
|
idMDPlanR:= dm.tblPila.FieldByName('colIDPlanR').AsInteger;
|
|
Helios.ExecSQL('UPDATE ' + tblMatDavkyR + ' SET NaPile=0 WHERE ID=' + idMDPlanR.ToString);
|
|
|
|
idMD:= dm.tblPila.FieldByName('colIDPlanH').AsInteger;
|
|
lSQL:= 'IF NOT EXISTS(SELECT 1 FROM ' + tblMatDavkyR + ' WHERE NaPile=1 AND IDHlava=' + idMD.ToString + ') '
|
|
+ 'UPDATE ' + tblMatDavkyH + ' SET NaPile=0 WHERE ID=' + idMD.ToString;
|
|
Helios.ExecSQL (lSQL);
|
|
|
|
|
|
idPol:= dm.tblPlan.FieldByName('colIDPolozka').AsInteger;
|
|
dm.tblPlan.Delete;
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE ID=' + idPol.ToString);
|
|
if (dm.tblPlan.RecordCount=0) then
|
|
begin
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE IDHlavicka=' + datModul.idHlavPila.ToString);
|
|
Helios.ExecSQL('DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + datModul.idHlavPila.ToString);
|
|
end;
|
|
|
|
dm.PrecislujPoziceFronty (dm.tblPlan, true);
|
|
|
|
frontaPila.ItemCount:= dm.tblPlan.RecordCount;
|
|
datModul.idHlavPila:= 0;
|
|
frontaPlan.Invalidate;
|
|
btnDelPila.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
|
|
if (dm.tblPlan.RecordCount=0) then
|
|
VymazUdajePilaNeboPlan (true);
|
|
|
|
btnPlanUp.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
btnPlanDown.Enabled:= btnPlanUp.Enabled;
|
|
|
|
end;
|
|
end;
|
|
|
|
dm.NactiFrontu (idPrac, self);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnDigitResetClick (Sender: TObject);
|
|
begin
|
|
timerPila:= 0;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnObrazekClick (Sender: TObject);
|
|
var f: TformObrazekKZ;
|
|
lSQL: string;
|
|
begin
|
|
if (dm.PocetOznacenychVeFronte=1) then
|
|
begin
|
|
f:= TformObrazekKZ.Create(nil);
|
|
try
|
|
lSQL:= 'SELECT v.ID FROM ' + tblPrVaz + ' vaz INNER JOIN ' + tblKZ + ' v ON (vaz.vyssi=v.ID) WHERE vaz.ID=' + dm.tblFronta.FieldByName('colIDPrKVazby').AsString;
|
|
f.idKZ:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
f.Helios:= Helios;
|
|
f.ShowModal;
|
|
finally
|
|
f.Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnPila2DelClick (Sender: TObject);
|
|
begin
|
|
dm.tblPlan.Clear; // .EmptyDataSet;
|
|
frontaPlan.Invalidate;
|
|
dm.NactiFrontu (idPrac, self);
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnPilaDownClick (Sender: TObject);
|
|
var oldPos: integer;
|
|
s: string;
|
|
i, i2, i3: Integer;
|
|
begin
|
|
// oldPos:= TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
// TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, oldPos);
|
|
// SendMessage(frontaPila.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
|
|
|
|
if (dm.tblPila.RecordCount>1) then
|
|
begin
|
|
i:= dm.tblPila.RecNo;
|
|
|
|
if (dm.tblPila.FieldByName('colPovoleno').AsBoolean) then
|
|
begin
|
|
dm.tblPila.RecNo:= frontaPila.ItemIndex + 1;
|
|
oldPos:= dm.tblPila.FieldByName('colPozice').AsInteger;
|
|
if (oldPos<10*dm.tblPila.RecordCount) then // mam za sebou neco
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPozice').AsInteger:= oldPos + 11;
|
|
dm.tblPila.FieldByName('colPoziceInt').AsInteger:= dm.tblPila.FieldByName('colPozice').AsInteger;
|
|
// prevPos:= dm.tblPila.FieldByName('colPozice').AsInteger;
|
|
dm.tblPila.Post;
|
|
// dm.tblPila.IndexName:= dm.tblPila.Indexes.Items[0].Name;
|
|
// dm.tblPila.Indexes.Items[0].Selected:= true;
|
|
dm.PrecislujPoziceFronty (dm.tblPila, true);
|
|
dm.tblPila.Refresh;
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
frontaPila.Update;
|
|
frontaPila.Invalidate;
|
|
end;
|
|
|
|
if (i<dm.tblPila.RecordCount) then
|
|
begin
|
|
dm.tblPila.RecNo:= i+1;
|
|
frontaPila.ItemIndex:= i;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnPilaPgDownClick (Sender: TObject);
|
|
begin
|
|
SendMessage(frontaPila.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnPilaPgUpClick (Sender: TObject);
|
|
begin
|
|
SendMessage(frontaPila.Handle, WM_VSCROLL, SB_PAGEUP, 0);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnPilaUpClick (Sender: TObject);
|
|
var oldPos: integer;
|
|
s: string;
|
|
i, i2, i3: Integer;
|
|
begin
|
|
// oldPos:= TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
//// TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, oldPos);
|
|
// SendMessage(frontaPila.Handle, WM_VSCROLL, SB_LINEUP, 0);
|
|
|
|
if (dm.tblPila.RecordCount>1) then
|
|
begin
|
|
i:= dm.tblPila.RecNo;
|
|
|
|
if (dm.tblPila.FieldByName('colPovoleno').AsBoolean) then
|
|
begin
|
|
dm.tblPila.RecNo:= frontaPila.ItemIndex + 1;
|
|
oldPos:= dm.tblPila.FieldByName('colPozice').AsInteger;
|
|
if (oldPos>10) then // mam pred sebou neco
|
|
begin
|
|
dm.tblPila.Prior;
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPozice').AsInteger:= oldPos + 1;
|
|
dm.tblPila.FieldByName('colPoziceInt').AsInteger:= dm.tblPila.FieldByName('colPozice').AsInteger;
|
|
// prevPos:= dm.tblPila.FieldByName('colPozice').AsInteger;
|
|
dm.tblPila.Post;
|
|
// dm.tblPila.IndexName:= dm.tblPila.Indexes.Items[0].Name;
|
|
// dm.tblPila.Indexes.Items[0].Selected:= true;
|
|
dm.PrecislujPoziceFronty (dm.tblPila);
|
|
dm.tblPila.Refresh;
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
frontaPila.Update;
|
|
frontaPila.Invalidate;
|
|
|
|
if (i>1) then
|
|
begin
|
|
dm.tblPila.RecNo:= i-1;
|
|
if (i-2>=0) then
|
|
frontaPila.ItemIndex:= i-2;
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnPlanDownClick (Sender: TObject);
|
|
var oldPos: integer;
|
|
i: integer;
|
|
begin
|
|
// oldPos:= TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
// TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, oldPos);
|
|
// SendMessage(frontaPlan.Handle, WM_VSCROLL, SB_LINEUP, 0);
|
|
if (dm.tblPlan.RecordCount>1) then
|
|
begin
|
|
i:= dm.tblPlan.RecNo;
|
|
|
|
dm.tblPlan.RecNo:= frontaPlan.ItemIndex + 1;
|
|
oldPos:= dm.tblPlan.FieldByName('colPozice').AsInteger;
|
|
if (oldPos<10*dm.tblPlan.RecordCount) then // mam za sebou neco
|
|
begin
|
|
dm.tblPlan.Edit;
|
|
dm.tblPlan.FieldByName('colPozice').AsInteger:= oldPos + 11;
|
|
// prevPos:= dm.tblPlan.FieldByName('colPozice').AsInteger;
|
|
dm.tblPlan.Post;
|
|
// dm.tblPlan.IndexName:= dm.tblPlan.Indexes.Items[0].Name;
|
|
// dm.tblPlan.Indexes.Items[0].Selected:= true;
|
|
dm.PrecislujPoziceFronty (dm.tblPlan, true);
|
|
dm.tblPlan.Refresh;
|
|
frontaPlan.ItemCount:= dm.tblPlan.RecordCount;
|
|
frontaPlan.Update;
|
|
frontaPlan.Invalidate;
|
|
end;
|
|
|
|
if (i<dm.tblPlan.RecordCount) then
|
|
begin
|
|
dm.tblPlan.RecNo:= i+1;
|
|
frontaPlan.ItemIndex:= i;
|
|
end;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnPlanPgDownClick (Sender: TObject);
|
|
begin
|
|
SendMessage(frontaPlan.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnPlanPgUpClick (Sender: TObject);
|
|
begin
|
|
SendMessage(frontaPlan.Handle, WM_VSCROLL, SB_PAGEUP, 0);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.btnPlanUpClick (Sender: TObject);
|
|
var oldPos: integer;
|
|
i: integer;
|
|
begin
|
|
// oldPos:= TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').GetValue(Sender).AsInteger;
|
|
// TRttiContext.Create.GetType(TControlList).GetField('FScrollPos').SetValue(Sender, oldPos);
|
|
// SendMessage(frontaPlan.Handle, WM_VSCROLL, SB_LINEUP, 0);
|
|
|
|
if (dm.tblPlan.RecordCount>1) then
|
|
begin
|
|
i:= dm.tblPlan.RecNo;
|
|
dm.tblPlan.RecNo:= frontaPlan.ItemIndex + 1;
|
|
oldPos:= dm.tblPlan.FieldByName('colPozice').AsInteger;
|
|
if (oldPos>10) then // mam pred sebou neco
|
|
begin
|
|
dm.tblPlan.Prior;
|
|
dm.tblPlan.Edit;
|
|
dm.tblPlan.FieldByName('colPozice').AsInteger:= oldPos + 1;
|
|
// prevPos:= dm.tblPlan.FieldByName('colPozice').AsInteger;
|
|
dm.tblPlan.Post;
|
|
// dm.tblPlan.IndexName:= dm.tblPlan.Indexes.Items[0].Name;
|
|
// dm.tblPlan.Indexes.Items[0].Selected:= true;
|
|
dm.PrecislujPoziceFronty (dm.tblPlan);
|
|
dm.tblPlan.Refresh;
|
|
frontaPlan.ItemCount:= dm.tblPlan.RecordCount;
|
|
frontaPlan.Update;
|
|
frontaPlan.Invalidate;
|
|
|
|
if (i>1) then
|
|
begin
|
|
dm.tblPlan.RecNo:= i-1;
|
|
if (i-2>=0) then
|
|
frontaPlan.ItemIndex:= i-2;
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnPosliNaPiluClick (Sender: TObject);
|
|
var lSQL, czbo, errMsg: string;
|
|
i: integer;
|
|
m1, m2: Extended;
|
|
begin
|
|
if (dm.tblPlan.RecordCount=0) then
|
|
Exit;
|
|
|
|
if (dm.tblPila.RecordCount>0) then
|
|
Helios.Error(#1'Na pile jsou ještě položky'#1)
|
|
else
|
|
begin
|
|
for i:=1 to dm.tblPlan.RecordCount do
|
|
begin
|
|
dm.tblPila.Append;
|
|
dm.CopyRecord(dm.tblPlan, dm.tblPila, i);
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= true;
|
|
dm.tblPila.Post;
|
|
end;
|
|
|
|
czbo:= '';
|
|
if (dm.tblPila.RecordCount>0) then
|
|
begin
|
|
dm.tblPila.First;
|
|
czbo:= dm.tblPila.FieldByName('colCisloZboziMat').AsString;
|
|
datModul.idKmenMaterialPila:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE CisloZbozi=N' + czbo.QuotedString);
|
|
datModul.idKmenMaterialPlan:= 0;
|
|
end;
|
|
|
|
|
|
datModul.idHlavPila:= datModul.idHlavPlan;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET IdPlan=NULL WHERE IdPlan=' + datModul.idHlavPlan.ToString);
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET JePlan=0 WHERE ID=' + datModul.idHlavPlan.ToString);
|
|
datModul.idHlavPlan:= 0;
|
|
dm.tblPlan.Clear; // .EmptyDataSet;
|
|
frontaPlan.ItemCount:= 0;
|
|
frontaPlan.Invalidate;
|
|
|
|
lblPila1Nazev1.Caption:= lblPlanNazev1.Caption;
|
|
lblPila1RegCis.Caption:= lblPlanRegCis.Caption;
|
|
lblPila1Skladem.Caption:= lblPlanSkladem.Caption;
|
|
lblPila1Sarze.Caption:= lblPlanSarze.Caption;
|
|
lblPila1SarzeSkladem.Caption:= lblPlanSarzeSkladem.Caption;
|
|
datModul.pilaSZ:= datModul.planSZ;
|
|
datModul.pilaRC:= datModul.planRC;
|
|
datModul.pilaSarze:= datModul.planSarze;
|
|
edtFiltrPlan.Text:= '';
|
|
VymazUdajePilaNeboPlan (true);
|
|
|
|
|
|
lSQL:= 'SELECT s.MnozBezVyd FROM ' + tblSS + ' s INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE k.CisloZbozi=N' + czbo.QuotedString + ' AND s.IDSklad=N' + skladMat.QuotedString;
|
|
m1:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
lblPila1Skladem.Caption:= m1.ToString;
|
|
kmenStavOK:= (m1>0);
|
|
if (kmenStavOK) then
|
|
lblPila1Skladem.Font.Color:= clWindowText
|
|
else
|
|
lblPila1Skladem.Font.Color:= clRed;
|
|
|
|
if (lblPila1Sarze.Caption<>'') then
|
|
begin
|
|
lSQL:= 'SELECT vcs.MnozBezVyd FROM ' + tblVyrCS + ' vcs INNER JOIN ' + tblSS + ' s ON (s.ID=vcs.IDStavSkladu) INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE k.CisloZbozi=N';
|
|
lSQL:= lSQL + czbo.QuotedString + ' AND s.IDSklad=N' + skladMat.QuotedString + ' AND vcs.Nazev1=N' + lblPila1Sarze.Caption.QuotedString;
|
|
m2:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
lblPila1SarzeSkladem.Caption:= m2.ToString;
|
|
sarzeStavOK:= (m2>0);
|
|
if (sarzeStavOK) then
|
|
lblPila1SarzeSkladem.Font.Color:= clWindowText
|
|
else
|
|
lblPila1SarzeSkladem.Font.Color:= clRed;
|
|
end;
|
|
{
|
|
materialOK:= true;
|
|
if (kmenStavOK=false) or (sarzeStavOK=false) then
|
|
begin
|
|
if not(kmenStavOK) then
|
|
errMsg:= 'POZOR, naskenovaná KARTA není na skladě';
|
|
if (lblPila1Sarze.Caption<>'') and not(sarzeStavOK) then
|
|
errMsg:= 'POZOR, naskenovaná ŠARŽE není na skladě !';
|
|
Helios.Error(#1 + errMsg + #1);
|
|
materialOK:= false;
|
|
|
|
edtFiltrPila.Text:= '';
|
|
VymazUdajePilaNeboPlan;
|
|
end;
|
|
}
|
|
|
|
pgCtrl.ActivePage:= shPila;
|
|
frontaPila.ItemCount:= dm.tblPila.RecordCount;
|
|
frontaPila.Invalidate;
|
|
|
|
timerPila:= 0;
|
|
digitTimer.Enabled:= true;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnSmazFiltryClick (Sender: TObject);
|
|
begin
|
|
dm.tblFronta.Filtered:= false;
|
|
edtFiltrNadoba.Text:= '';
|
|
edtFiltrMaterial.Text:= '';
|
|
edtFiltrNazev.Text:= '';
|
|
|
|
edtFiltrDN.Text:= '';
|
|
edtFiltrPrumer.Text:= '';
|
|
edtFiltrProfil.Text:= '';
|
|
edtFiltrTloustka.Text:= '';
|
|
edtFiltrJakost.Text:= '';
|
|
|
|
lblFiltrDN.Visible:= false;
|
|
lblFiltrPrumer.Visible:= false;
|
|
lblFiltrTloustka.Visible:= false;
|
|
lblFiltrJakostMat.Visible:= false;
|
|
lblFiltrProfil.Visible:= false;
|
|
|
|
|
|
dm.tblFronta.IndexFieldNames:= 'colIDPrKVazby';
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
ctrlFronta.Invalidate;
|
|
lblRecSelected.Caption:= 'Výběr: 0 / celkem 0 m';
|
|
|
|
dm.FrontaOdznacitVse;
|
|
btnFiltrMat.Enabled:= (dm.PocetOznacenychVeFronte=1);
|
|
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnSmazFiltryMDClick (Sender: TObject);
|
|
begin
|
|
edtFiltrMDCislo.Text:= '';
|
|
edtFiltrMDDM.Text:= '';
|
|
edtFiltrMDRegCisMat.Text:= '';
|
|
edtFiltrMDSila.Text:= '';
|
|
edtFiltrMDPrumer.Text:= '';
|
|
edtFiltrMDRozmer.Text:= '';
|
|
edtFiltrMDNormaMAT.Text:= '';
|
|
dtFiltrMDDatum.Date:= 0;
|
|
dtFiltrMDDatum.Format:= ' ';
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnSrotClick (Sender: TObject);
|
|
var lSQL: string;
|
|
mnozSrot: Extended;
|
|
fC: TformCalc;
|
|
begin
|
|
mnozSrot:= 0;
|
|
fC:= TformCalc.Create(nil);
|
|
try
|
|
fC.edtNum.Text:= '0';
|
|
fC.Hide;
|
|
fC.pnlAkce:= 2;
|
|
fC.ShowModal;
|
|
if (fc.mrVal<10) then
|
|
if not(TryStrToFloat(fC.retVal, mnozSrot)) then
|
|
mnozSrot:= 0;
|
|
finally
|
|
fC.Free;
|
|
end;
|
|
|
|
if (mnozSrot>0) then
|
|
begin
|
|
lSQL:= 'DROP TABLE IF EXISTS #TabEvidPracePilaZbytek' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabEvidPracePilaZbytek (IDKmen INT, Sarze NVARCHAR(100), Mnozstvi NUMERIC(19,6) DEFAULT 0.0 NOT NULL)' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabEvidPracePilaZbytek (IDKmen, Sarze, Mnozstvi) SELECT ' + datModul.pilaKZ.ToString + ', N' + datModul.pilaSarze.QuotedString + ', ' + mnozSkl.ToString.Replace(',','.') + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo.ep_HDC_EvidPracePilaSrot'', N''P'') IS NOT NULL EXEC dbo.ep_HDC_EvidPracePilaSrot' + CRLF;
|
|
try
|
|
Helios.ExecSQL(lSQL);
|
|
except on E:Exception do
|
|
Helios.Error(#1'Chyba při zápisu šrotu'#1 + CRLF + E.Message);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.NactiMnozstviSkladu (pila: Boolean = True; idKZ: Integer = 0; sarze: string = '');
|
|
var lSQL: string;
|
|
m1, m2: Extended;
|
|
begin
|
|
m1:= 0;
|
|
m2:= 0;
|
|
|
|
|
|
lSQL:= 'SELECT s.Mnozstvi FROM ' + tblSS + ' s INNER JOIN ' + tblKZ + ' k ON (k.ID=s.IDKmenZbozi) WHERE k.ID=' + idKZ.ToString + ' AND s.IDSklad=N' + skladMat.QuotedString;
|
|
m1:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
if (pila) then
|
|
begin
|
|
lblPila1Skladem.Caption:= m1.ToString;
|
|
kmenStavOK:= (m1>0);
|
|
end
|
|
else
|
|
lblPlanSkladem.Caption:= m1.ToString;
|
|
|
|
|
|
if (sarze<>'') then
|
|
begin
|
|
lSQL:= 'SELECT vcs.Mnozstvi FROM ' + tblVyrCS + ' vcs INNER JOIN ' + tblSS + ' s ON (s.ID=vcs.IDStavSkladu) WHERE s.IDKmenZbozi=' + idKZ.ToString + ' AND s.IDSklad=N';
|
|
lSQL:= lSQL + skladMat.QuotedString + ' AND vcs.Nazev1=N' + lblPila1Sarze.Caption.QuotedString;
|
|
m2:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
if (pila) then
|
|
begin
|
|
lblPila1SarzeSkladem.Caption:= m2.ToString;
|
|
sarzeStavOK:= (m2>0);
|
|
end
|
|
else
|
|
lblPlanSarzeSkladem.Caption:= m2.ToString;
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TformMain.EvidencePrace (idRezRozpisR: integer): integer; // vystup je TabPrikazMzdyAZmetky.ID nebo 0
|
|
var lSQL, errMsg: string;
|
|
begin
|
|
result:= 0;
|
|
errMsg:= '';
|
|
|
|
try
|
|
{
|
|
lSQL:= 'SET NOCOUNT ON' + CRLF + 'DECLARE @errMsg NVARCHAR(500), @tranPred INT' + CRLF + 'DECLARE @errTab TABLE (LogText NVARCHAR(500) )' + CRLF + 'DROP TABLE IF EXISTS #TabEvidPilaErrors';
|
|
lSQL:= lSQL + CRLF + 'CREATE TABLE #TabEvidPilaErrors (ID INT IDENTITY(1,1) NOT NULL, LogText NVARCHAR(500) )' + CRLF + 'DROP TABLE IF EXISTS #TabEvidPracePila' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabEvidPracePila (ID INT IDENTITY(1,1) NOT NULL, IDPolozka INT NOT NULL, Sarze NVARCHAR(100), CasS INT, PocetKs NUMERIC(19,6) DEFAULT 1.0 NOT NULL)' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabEvidPracePila (IDPolozka, Sarze, CasS) SELECT ' + i2.ToString + ', N' + lblPila1Sarze.Caption.QuotedString + ', ' + timerPila.ToString + CRLF;
|
|
lSQL:= lSQL + 'UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + i2.ToString + CRLF;
|
|
lSQL:= lSQL + 'SET @tranPred=@@TRANCOUNT' + CRLF + 'BEGIN TRY' + CRLF + ' IF (@tranPred=0) BEGIN TRAN' + CRLF;
|
|
lSQL:= lSQL + ' IF OBJECT_ID(N''dbo.ep_HDC_EvidPracePila'', N''P'') IS NOT NULL EXEC dbo.ep_HDC_EvidPracePila' + CRLF;
|
|
lSQL:= lSQL + ' IF (@tranPred=0) AND (@@TRANCOUNT>0) COMMIT TRAN' + CRLF + 'END TRY' + CRLF;
|
|
lSQL:= lSQL + 'BEGIN CATCH' + CRLF + ' SET @errMsg = ERROR_MESSAGE()' + CRLF + ' INSERT @errTab (LogText) SELECT LogText FROM #TabEvidPilaErrors' + CRLF;
|
|
lSQL:= lSQL + ' IF (@tranPred=0) AND (@@TRANCOUNT>0) ROLLBACK TRAN' + CRLF + ' INSERT dbo._HDC_Log (Typ, LogText, iTemp) SELECT 10, @errMsg, ' + i2.ToString + CRLF;
|
|
lSQL:= lSQL + ' INSERT dbo._HDC_Log (Typ, LogText, iTemp) SELECT 10, LogText, ' + i2.ToString + ' FROM @errTab' + CRLF + 'END CATCH';
|
|
}
|
|
lSQL:= 'SET NOCOUNT ON' + CRLF + 'DECLARE @idMzda INT=0, @errM NVARCHAR(255)=N''''' + CRLF + 'DROP TABLE IF EXISTS #TabEvidPracePila' + CRLF;
|
|
lSQL:= lSQL + 'CREATE TABLE #TabEvidPracePila (ID INT IDENTITY(1,1) NOT NULL, OsCislo INT, IDPolozka INT NOT NULL, Sarze NVARCHAR(100), CasS INT, PocetKs NUMERIC(19,6) DEFAULT 1.0 NOT NULL)' + CRLF;
|
|
lSQL:= lSQL + 'INSERT #TabEvidPracePila (OsCislo, IDPolozka, Sarze, CasS) SELECT ' + cisZam.ToString + ', ' + idRezRozpisR.ToString + ', N' + lblPila1Sarze.Caption.QuotedString;
|
|
lSQL:= lSQL + ', ' + timerPila.ToString + CRLF;
|
|
lSQL:= lSQL + 'IF OBJECT_ID(N''dbo.ep_HDC_EvidPracePila'', N''P'') IS NOT NULL EXEC @idMzda=dbo.ep_HDC_EvidPracePila @errMsg=@errM' + CRLF;
|
|
lSQL:= lSQL + 'SELECT @idMzda AS IDMzda, @errM AS ErrMsg';
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
result:= StrToInt(VarToStr(FieldByNameValues('IDMzda')));
|
|
errMsg:= VarToStr(FieldByNameValues('ErrMsg'));
|
|
end;
|
|
|
|
if (errMsg<>'') then
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET ErrMsg=N' + errMsg.QuotedString + ' WHERE ID=' + idRezRozpisR.ToString);
|
|
|
|
|
|
// Helios.ExecSQL(lSQL);
|
|
// result:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ISNULL(IDMzdy,0) FROM ' + tblRezPredpisR + ' WHERE ID=' + idRezRozpisR.ToString);
|
|
|
|
if (result>0) then
|
|
begin
|
|
if not(helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM dbo._HDC_Log WHERE DATEDIFF(s, DatPorizeni, GETDATE())<10 AND Typ=10 AND iTemp=' + idRezRozpisR.ToString)) or (1=1) then
|
|
begin
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colIDMzdy').AsInteger:= result;
|
|
dm.tblPila.Post;
|
|
btnTiskStitku.Enabled:= false;
|
|
|
|
if (dm.KolikZbyvaKTisku=0) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpis + ' SET DatSplneno=GETDATE(), JeNovaVetaEditor=0 WHERE ID=' + datModul.idHlavPila.ToString);
|
|
datModul.idHlavPila:= 0;
|
|
datModul.idMatDavka:= 0;
|
|
|
|
dm.tblPila.Clear; // .EmptyDataSet;
|
|
frontaPila.ItemCount:= 0;
|
|
frontaPila.Invalidate;
|
|
digitTimer.Enabled:= false;
|
|
|
|
VymazUdajePilaNeboPlan;
|
|
btnPilaUp.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnPilaDown.Enabled:= btnPilaUp.Enabled;
|
|
btnDelPila.Enabled:= btnPilaUp.Enabled;
|
|
btnDelPilaOne.Enabled:= btnPilaUp.Enabled;
|
|
|
|
edtFiltrPila.Text:= '';
|
|
end;
|
|
|
|
end;
|
|
end;
|
|
|
|
frontaPila.Invalidate;
|
|
|
|
except on E:Exception do
|
|
begin
|
|
errMsg:= E.Message;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnTiskStitkuClick (Sender: TObject);
|
|
var i, ii, i2, idPredpisH, idPrPost, idM, idKZx, idMD, idMDP, pocMezdPrev, doklOper, idEvP: integer;
|
|
lSQL, tmpString, oper, operPlan, altOper, tiskarnaPila: string;
|
|
i3, dokl, idKmenTisk, idVPr: integer;
|
|
ks, delka: Extended;
|
|
tiskOK: boolean;
|
|
|
|
defPrintName: string;
|
|
hPrinter: THandle;
|
|
vPO: TPrinterOptions;
|
|
JobInfo: array[0..255] of TJobInfo1;
|
|
JobsReturned, ix: DWORD;
|
|
DocInfo: TDocInfo1;
|
|
begin
|
|
tiskOK:= false;
|
|
|
|
if (datModul.idTiskForm>0) then
|
|
begin
|
|
if (datModul.tiskarnaNazev= '') then // ZDesigner ZD421 PILA
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) TiskFronta FROM ' + tblTiskDef + ' WHERE FormDefID=' + datModul.idTiskForm.ToString;
|
|
lSQL:= lSQL + ' AND (LoginName IS NULL OR LoginName=SUSER_SNAME()) ORDER BY ISNULL(LoginName, N'''') DESC';
|
|
datModul.tiskarnaNazev:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
end;
|
|
|
|
if not(helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 AS A FROM ' + tblTiskDef + ' WHERE TiskDoSouboru=1 AND FormDefID=' + datModul.idTiskForm.ToString)) then
|
|
if (helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 AS A FROM ' + tblTiskDef + ' WHERE FormDefID=' + datModul.idTiskForm.ToString + ' AND Implicitni=0'))
|
|
and (datModul.tiskarnaNazev<>'') then
|
|
begin
|
|
if not(dm.IsPrinterActiveFrmId(datModul.tiskarnaNazev, datModul.idTiskForm)) then
|
|
begin
|
|
Helios.Error('Tiskárna nenalezena nebo "' + datModul.tiskarnaNazev + '" není aktivní');
|
|
// Exit;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
// zkusi zrusit probihajici tiskove joby
|
|
defPrintName:= Printer.Printers[Printer.PrinterIndex];
|
|
if (datModul.tiskarnaNazev<>'') then
|
|
defPrintName:= datModul.tiskarnaNazev;
|
|
if (defPrintName<>'') then
|
|
begin
|
|
vPO.dwFlags:= PRINTER_OPTION_NO_CACHE;
|
|
vPO.cbSize:= SizeOf(vPO);
|
|
if OpenPrinter2(PChar(defPrintName), @hPrinter, nil, @vPO) then
|
|
try
|
|
// Získání seznamu úloh
|
|
EnumJobs(hPrinter, 0, 255, 1, @JobInfo, SizeOf(JobInfo), JobsReturned, ix);
|
|
if (JobsReturned>0) then
|
|
for ix:=0 to JobsReturned - 1 do
|
|
begin
|
|
// Zrušení jednotlivých úloh
|
|
SetJob(hPrinter, JobInfo[ix].JobId, 0, nil, JOB_CONTROL_CANCEL);
|
|
end;
|
|
finally
|
|
ClosePrinter(hPrinter);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
dm.tblPila.RecNo:= frontaPila.ItemIndex + 1; // index TControlListu je zero based
|
|
// dotaz na pocet stitku pri ks>1
|
|
|
|
idMDP:= dm.tblPila.FieldByName('colIDPlanR').AsInteger;
|
|
idMD:= dm.tblPila.FieldByName('colIDPlanH').AsInteger;
|
|
operPlan:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Operace FROM ' + tblMatDavkyR + ' WHERE ID=' + idMDP.ToString);
|
|
|
|
i:= dm.tblPila.FieldByName('colIDPrKVazby').AsInteger;
|
|
idVPr:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
dokl:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT Doklad FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
|
|
ii:= dm.tblPila.FieldByName('colIDPrKVazbyAlter').AsInteger;
|
|
if (ii>0) then
|
|
begin
|
|
idKZx:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT nizsi FROM ' + tblPrKVaz + ' WHERE ID=' + ii.ToString);
|
|
if (idKZx<>datModul.idKmenMaterialPila) then
|
|
ii:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblPrKVaz + ' WHERE nizsi=' + datModul.idKmenMaterialPila.ToString + ' AND IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
end;
|
|
|
|
idKZx:= 0;
|
|
if (i>0) and (ii=0) then
|
|
idKZx:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT nizsi FROM ' + tblPrKVaz + ' WHERE ID=' + i.ToString + ' AND IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
|
|
if (idKZx>0) then
|
|
if (idKZx<>datModul.idKmenMaterialPila) then
|
|
ii:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblPrKVaz + ' WHERE nizsi=' + datModul.idKmenMaterialPila.ToString + ' AND IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
|
|
if (ii>0) and (i<>ii) then
|
|
begin
|
|
Helios.ExecSQL ('UPDATE ' + tblPrKVaz + ' SET Operace=N' + operPlan.QuotedString + ' WHERE ID=' + ii.ToString + ' AND Operace IS NULL');
|
|
|
|
i:= ii;
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colIDPrKVazby').AsInteger:= i;
|
|
dm.tblPila.Post;
|
|
end;
|
|
|
|
oper:= helUtils.getHeliosStrVal(Helios, '', 'SELECT Operace FROM ' + tblPrKVaz + ' WHERE ID=' + i.ToString);
|
|
if (oper='') then
|
|
begin
|
|
lSQL:= 'SELECT COUNT(ID) FROM ' + tblPrPost + ' WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString + ' AND pracoviste=' + datModul.idPracovistePila.ToString;
|
|
if (helUtils.getHeliosIntVal(Helios, 0, lSQL)=1) then
|
|
oper:= helUtils.getHeliosStrVal(Helios, '', lSQL.Replace('COUNT(ID)', 'operace'));
|
|
if (oper<>'') then
|
|
Helios.ExecSQL('UPDATE ' + tblPrKVaz + ' SET Operace=N' + oper.QuotedString + ' WHERE ID=' + i.ToString + ' AND ISNULL(Operace,N'''')<>N' + oper.QuotedString);
|
|
end;
|
|
|
|
delka:= dm.tblPila.FieldByName('colDelka').AsExtended;
|
|
ks:= dm.tblPila.FieldByName('colKs').AsExtended;
|
|
|
|
idVPr:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
dokl:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT Doklad FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
|
|
idKmenTisk:= datModul.idMatDavkaKmen;
|
|
if (datModul.idMatDavkaKmen<>datModul.idKmenMaterialPila) then
|
|
begin
|
|
lSQL:= 'SELECT ID FROM ' + tblPrKVaz + ' WHERE IDOdchylkyDo IS NULL AND nizsi=' + datModul.idKmenMaterialPila.ToString + ' AND IDPrikaz=' + idVPr.ToString;
|
|
i3:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
|
|
if (i3=0) then
|
|
begin
|
|
lSQL:= 'DECLARE @i INT' + CRLF + 'EXEC @i=dbo.hp_NewPozadavek_TabPrKVazby @IDPrikaz=' + idVpr.ToString + ', @IDKmenZbozi=' + datModul.idKmenMaterialPila.ToString;
|
|
lSQL:= lSQL + ', @Mnozstvi=' + (helUtils.RoundToEX(delka, -4)/1000).ToString.Replace(',', '.');
|
|
lSQL:= lSQL + ', @Mnoz_zad=' + (helUtils.RoundToEX(delka * ks, -4)/1000).ToString.Replace(',', '.') + ', @Operace=N' + oper.QuotedString;
|
|
lSQL:= lSQL + ', @Alt_K_Dokladu=' + dokl.ToString + CRLF + 'SELECT @i';
|
|
i3:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
|
|
end;
|
|
if (i3>0) then
|
|
begin
|
|
i:= i3;
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colIDPrKVazby').AsInteger:= i;
|
|
dm.tblPila.Post;
|
|
idKmenTisk:= datModul.idKmenMaterialPila;
|
|
end;
|
|
end;
|
|
|
|
i2:= dm.tblPila.FieldByName('colIDPolozka').AsInteger;
|
|
idPredpisH:= dm.tblPila.FieldByName('colIDHlavicka').AsInteger;
|
|
|
|
lSQL:= 'SELECT o.Doklad FROM ' + tblPrKVaz + ' v LEFT JOIN ' + tblPrPost + ' o ON (v.IDPrikaz=o.IDPrikaz AND o.IDOdchylkyDo IS NULL AND v.Operace=o.Operace) WHERE v.ID=' + i.ToString;
|
|
doklOper:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
altOper:= helUtils.getHeliosStrVal(Helios, '', lSQL.Replace('o.Doklad ', 'o.Alt '));
|
|
|
|
|
|
lSQL:= 'INSERT ' + tblRezPredpisEvidPrace + ' (IDRezaciPredpisR, IDPlanMD, OsCislo, IDKmenZboziMat, Sarze, CasS) SELECT ' + i2.ToString + ', ' + idMD.ToString;
|
|
lSQL:= lSQL + ', ' + cisZam.ToString + ', ' + idKmenTisk.ToString + ', N' + lblPila1Sarze.Caption.QuotedString + ', ' + timerPila.ToString + CRLF + 'SELECT SCOPE_IDENTITY()';
|
|
idEvP:= helUtils.getHeliosIntVal(Helios, 0, lSQL);
|
|
|
|
|
|
if (dm.PocetPovolenychPredeMnou(dm.tblPila)=0) then
|
|
begin
|
|
|
|
lSQL:= 'UPDATE ' + tblRezPredpisR + ' SET Sarze=N' + lblPila1Sarze.Caption.QuotedString + ', IDKmenMaterial=' + idKmenTisk.ToString;
|
|
lSQL:= lSQL + ', IDPrKVazby=' + i.ToString + ', Operace=N' + oper.QuotedString + ', DokladOper=' + doklOper.ToString + ', AltOper=N' + altOper.QuotedString;
|
|
lSQL:= lSQL + ' WHERE ID=' + i2.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
Helios.ExecSQL ('UPDATE ' + tblPrKVaz + ' SET Prednastaveno=0 WHERE IDOdchylkyDo IS NULL AND IDPrikaz=' + idVPr.ToString);
|
|
Helios.ExecSQL ('UPDATE ' + tblPrKVaz + ' SET Prednastaveno=1 WHERE IDOdchylkyDo IS NULL AND ID=' + i.ToString);
|
|
|
|
// tisk
|
|
if (helUtils.sqlExistsTestGeneral(Helios, 'SELECT 1 FROM ' + tblPlgInfo + ' WHERE NazevSys=N''PluginRemotePrint''')) then
|
|
begin
|
|
try
|
|
tiskarnaPila:= datModul.tiskarnaNazev;
|
|
if (datModul.tiskarnaNazev='') then
|
|
begin
|
|
tiskarnaPila:= helUtils.getHeliosStrVal (Helios, '', 'SELECT TOP(1) Nazev FROM dbo.GTabRPSeznamTiskaren WHERE LOWER(Nazev) LIKE N''%pila%'' ORDER BY Nazev');
|
|
datModul.tiskarnaNazev:= tiskarnaPila;
|
|
end;
|
|
if (tiskarnaPila<>'') then
|
|
begin
|
|
lSQL:= 'DECLARE @u NVARCHAR(80)=SUSER_SNAME(); EXEC dbo.GEP_RP_NewPozadavekNaTisk @Uzivatel=@u, @Popis=N''Tisk štítku pila'', @BrowseID=11050, @TiskID=' + datModul.idTiskForm.ToString
|
|
+ ', @Filtr=N''TabPrKVazby.ID=' + i.ToString + ''', @Tiskarna=N' + tiskarnaPila.QuotedString + ', @PocetKopii=1';
|
|
{
|
|
lSQL:= 'INSERT dbo.GTabRPSeznamPozadavku (Typ, Uzivatel, Popis, BrowseID, Filtr, Tiskarna)'
|
|
+' SELECT 0, SUSER_SNAME(), N''Tisk štítku pila'', ' + datModul.idTiskForm.ToString + ', N''TabPrKVazby.ID=' + i.ToString + ''', N' + tiskarnaPila.QuotedString;
|
|
}
|
|
Helios.ExecSQL (lSQL);
|
|
end;
|
|
finally
|
|
end;
|
|
end;
|
|
|
|
if not(datModul.tiskJenPlgRP) then
|
|
begin
|
|
if (Helios.PrintForm3 (bidPrKVaz, datModul.idTiskForm, 'TabPrKVazby.ID=' + i.ToString)) then
|
|
begin
|
|
lSQL:= 'INSERT ' + tblRezPredpisTisky + ' (IDRezaciPredpisR, IDKmenMaterial, Sarze, CisloZboziMat, DeviceID, IDPila, IDPrikaz, IDPrKVazby, OperacePrP, IDPredpisdavkyPlan) SELECT ' + i2.ToString;
|
|
lSQL:= lSQL + ', ' + idKmenTisk.ToString + ', N' + IfThen(lblPila1Sarze.Caption='', 'ULL', lblPila1Sarze.Caption.QuotedString) + ', N' + (datModul.pilaSZ + datModul.pilaRC).QuotedString;
|
|
lSQL:= lSQL + ', N' + datModul.devID.QuotedString + ', ' + datModul.idPila.ToString + ', ' + idVPr.ToString + ', ' + i.ToString + ', N' + oper.QuotedString + ', ' + idMD.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
tiskOK:= true;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET PosledniTisk=GETDATE(), PocetTisku=PocetTisku+1 WHERE Aktivni=1 AND LoginName=SUSER_SNAME()');
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + i2.ToString);
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= true;
|
|
dm.tblPila.Post;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
tiskOK:= true;
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET PosledniTisk=GETDATE(), PocetTisku=PocetTisku+1 WHERE Aktivni=1 AND LoginName=SUSER_SNAME()');
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET Tisk=1, DatTisku=GETDATE() WHERE ID=' + i2.ToString);
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colTisk').AsBoolean:= true;
|
|
dm.tblPila.Post;
|
|
end;
|
|
|
|
|
|
// evidovat praci ? tj. IDMzdy je null/nulove
|
|
// je uz radek v evidenci operaci ?
|
|
idM:= 0;
|
|
if (i2>0) then
|
|
idM:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ISNULL(IdMzdy,0) FROM ' + tblRezPredpisR + ' WHERE ID=' + i2.ToString);
|
|
if (idM=0) and (dm.VsePredeMnouMaMzdu (dm.tblPila)) then
|
|
begin
|
|
try
|
|
helUtils.waitStart(nil, 'Generuju výdejku materiálu...');
|
|
idM:= EvidencePrace (i2);
|
|
helUtils.waitEnd;
|
|
finally
|
|
end;
|
|
if (idM>0) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisEvidPrace + ' SET IDMzdy=' + idM.ToString + ' WHERE ID=' + idEvP.ToString);
|
|
Helios.ExecSQL('UPDATE ' + tblMatDavkyR + ' SET Splneno=1, NaPile=0 WHERE ID=' + idMDP.ToString);
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisR + ' SET IdMzdy=' + idM.ToString + ', DatSplneno=GETDATE() WHERE ID=' + i2.ToString);
|
|
dm.tblPila.Edit;
|
|
dm.tblPila.FieldByName('colPovoleno').AsBoolean:= false;
|
|
dm.tblPila.FieldByName('colIDMzdy').AsInteger:= idM;
|
|
dm.tblPila.Post;
|
|
|
|
btnPilaDownClick (nil);
|
|
end;
|
|
timerPila:= 0;
|
|
end;
|
|
|
|
// pokud je vse splneno, uzavri Materialovou davku a Rezaci predpis
|
|
if (dm.PocetPovolenych (dm.tblPila)=0) then
|
|
begin
|
|
lSQL:= 'IF NOT EXISTS(SELECT 1 FROM ' + tblRezPredpisR + ' WHERE IDHlavicka=' + idPredpisH.ToString + ' AND (IDMzdy IS NULL OR DatTisku IS NULL))' + CRLF;
|
|
lSQL:= lSQL + ' UPDATE ' + tblRezPredpis + ' SET DatSplneno=GETDATE() WHERE ID=' + idPredpisH.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
lSQL:= 'IF NOT EXISTS(SELECT 1 FROM ' + tblMatDavkyR + ' WHERE IDHlava=' + idMD.ToString + ' AND Splneno=0)' + CRLF;
|
|
lSQL:= lSQL + ' UPDATE ' + tblMatDavkyH + ' SET Splneno=1, NaPile=0 WHERE ID=' + idMD.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET CisloDavky=NULL WHERE LoginName=SUSER_SNAME() AND Aktivni=1');
|
|
|
|
idMD:= 0;
|
|
datModul.idMatDavka:= 0;
|
|
datModul.idMatDavkaKmen:= 0;
|
|
|
|
dm.tblPila.Clear;
|
|
btnTiskStitku.Enabled:= false;
|
|
btnTiskBezEvidence.Enabled:= false;
|
|
|
|
VymazUdajePilaNeboPlan (false);
|
|
digitTimer.Enabled:= false;
|
|
lblTimerPila.Caption:= '00:00';
|
|
end;
|
|
|
|
end
|
|
else
|
|
Helios.Error (#1'Tisk lze provádět pouze z PRVNÍ povolené položky'#1);
|
|
|
|
AktualizujFrontuPila;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.btnZmenaSarzeClick (Sender: TObject);
|
|
begin
|
|
lblJsemAlter.Visible:= false;
|
|
edtFiltrPila.Text:= '';
|
|
btnZmenaSarze.Visible:= false;
|
|
if (edtFiltrPila.CanFocus) then
|
|
edtFiltrPila.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrDNEnter (Sender: TObject);
|
|
var f: TformCalc;
|
|
d: integer;
|
|
begin
|
|
edtFiltrDN.Text:= '';
|
|
{
|
|
f:= TformCalc.Create(nil);
|
|
try
|
|
f.mrVal:= 0;
|
|
f.retVal:= '';
|
|
f.edtNum.Text:= '';
|
|
f.pnlAkce:= 5;
|
|
f.Hide;
|
|
f.ShowModal;
|
|
|
|
if (f.mrVal<10) then
|
|
begin
|
|
if (f.retVal<>'') then
|
|
edtFiltrDN.Text:= f.retVal;
|
|
if (f.retVal='') or (f.retVal='0') then
|
|
edtFiltrDN.Text:= '';
|
|
end;
|
|
edtFiltrMaterialExit (Sender);
|
|
|
|
finally
|
|
f.Free;
|
|
end;
|
|
|
|
if (frontaPlan.CanFocus) then
|
|
frontaPlan.SetFocus;
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrDNExit (Sender: TObject);
|
|
var s: string;
|
|
begin
|
|
edtFiltrDN.Text:= edtFiltrDN.Text.Trim.ToUpper;
|
|
s:= edtFiltrDN.Text;
|
|
if (s<>'') and not(s.StartsWith('DN', true)) then
|
|
edtFiltrDN.Text:= 'DN' + edtFiltrDN.Text;
|
|
lblFiltrDN.Visible:= (edtFiltrDN.Text<>'');
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrDNKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) or (Key=VK_ESCAPE) then
|
|
edtFiltrDNExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrJakostEnter (Sender: TObject);
|
|
var f: TformKeyb;
|
|
begin
|
|
edtFiltrJakost.Text:= '';
|
|
|
|
if (helUtils.IsAdmin) and (1=0) then
|
|
ShowTabTip
|
|
else
|
|
begin
|
|
if not(helUtils.IsPhysicalKeyboardConnected) then
|
|
begin
|
|
f:= TformKeyb.Create(nil);
|
|
try
|
|
f.ShowModal;
|
|
edtFiltrJakost.Text:= f.text.ToUpper;
|
|
if (frontaPlan.CanFocus) then
|
|
frontaPlan.SetFocus;
|
|
finally
|
|
f.Free;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrJakostExit (Sender: TObject);
|
|
begin
|
|
edtFiltrJakost.Text:= edtFiltrJakost.Text.Trim.ToUpper;
|
|
lblFiltrJakostMat.Visible:= (edtFiltrJakost.Text<>'');
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
CloseTabTip;
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrJakostKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrJakostExit(Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMaterialEnter (Sender: TObject);
|
|
var f: TformCalc;
|
|
f2: TformKeyb;
|
|
d: integer;
|
|
begin
|
|
edtFiltrMaterial.Text:= '';
|
|
|
|
{
|
|
f:= TformCalc.Create(nil);
|
|
try
|
|
f.mrVal:= 0;
|
|
f.retVal:= '';
|
|
f.edtNum.Text:= '';
|
|
f.pnlAkce:= 4;
|
|
f.Hide;
|
|
f.ShowModal;
|
|
|
|
if (f.mrVal<10) then
|
|
begin
|
|
if (f.retVal<>'') then
|
|
edtFiltrMaterial.Text:= f.retVal;
|
|
if (f.retVal='') or (f.retVal='0') then
|
|
edtFiltrMaterial.Text:= '';
|
|
end;
|
|
finally
|
|
f.Free;
|
|
end;
|
|
}
|
|
|
|
if (helUtils.IsAdmin) and (1=0) then
|
|
ShowTabTip
|
|
else
|
|
begin
|
|
if not(helUtils.IsPhysicalKeyboardConnected) then
|
|
begin
|
|
f2:= TformKeyb.Create(nil);
|
|
try
|
|
f2.ShowModal;
|
|
edtFiltrMaterial.Text:= f2.text.ToUpper;
|
|
finally
|
|
f2.Free;
|
|
end;
|
|
end;
|
|
end;
|
|
{
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
}
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMaterialExit (Sender: TObject);
|
|
var filtrNew, fMaterial, fNadoba, fNazev, fPrumer, fDN, fJakost, fProfil, fTloustka, fRozmer, fNormaMat: string;
|
|
d: integer;
|
|
sz, rc, kodMat: string;
|
|
begin
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
CloseTabTip;
|
|
|
|
edtFiltrMaterial.Text:= edtFiltrMaterial.Text.Trim;
|
|
edtFiltrNadoba.Text:= edtFiltrNadoba.Text.Trim;
|
|
edtFiltrNazev.Text:= edtFiltrNazev.Text.Trim;
|
|
|
|
edtFiltrDN.Text:= edtFiltrDN.Text.Trim;
|
|
edtFiltrPrumer.Text:= edtFiltrPrumer.Text.Trim;
|
|
edtFiltrProfil.Text:= edtFiltrProfil.Text.Trim;
|
|
edtFiltrTloustka.Text:= edtFiltrTloustka.Text.Trim;
|
|
edtFiltrJakost.Text:= edtFiltrJakost.Text.Trim;
|
|
edtFiltrMDRozmer.Text:= edtFiltrMDRozmer.Text.Trim;
|
|
edtFiltrMDNormaMAT.Text:= edtFiltrMDNormaMAT.Text.Trim;
|
|
|
|
|
|
|
|
kodMat:= edtFiltrMaterial.Text;
|
|
d:= Length(kodMat);
|
|
sz:= '';
|
|
rc:= '';
|
|
|
|
if (d=13) then // 010030INT000031910275957
|
|
begin
|
|
sz:= LeftStr(kodMat, 3);
|
|
rc:= MidStr(kodMat, 4, 30);
|
|
end;
|
|
|
|
if (d=13) then
|
|
begin
|
|
sz:= LeftStr(kodMat, 3);
|
|
rc:= MidStr(kodMat, 4, 10);
|
|
end
|
|
else
|
|
if (d>13) and (LeftStr(kodMat,3)='010') then // 010030INT000037610313119
|
|
begin
|
|
kodMat:= MidStr(kodMat, 4, 100);
|
|
sz:= LeftStr(kodMat, 3); // 030
|
|
rc:= MidStr(kodMat, 4, 10); // INT0000232
|
|
// sarze:= MidStr(kodMat, 16, 50); // 1202106
|
|
edtFiltrMaterial.Text:= sz + rc;
|
|
end;
|
|
|
|
|
|
|
|
if (edtFiltrMaterial.Text<>'') or (edtFiltrNadoba.Text<>'') or (edtFiltrNazev.Text<>'') or (edtFiltrDN.Text<>'')
|
|
or (edtFiltrPrumer.Text<>'') or (edtFiltrJakost.Text<>'') or (edtFiltrProfil.Text<>'') or (edtFiltrTloustka.Text<>'')
|
|
or (edtFiltrMDRozmer.Text<>'') or (edtFiltrMDNormaMAT.Text<>'') then
|
|
begin
|
|
dm.FrontaOdznacitVse;
|
|
fMaterial:= edtFiltrMaterial.Text;
|
|
fNadoba:= edtFiltrNadoba.Text;
|
|
fNazev:= edtFiltrNazev.Text;
|
|
|
|
fPrumer:= edtFiltrPrumer.Text;
|
|
fDN:= edtFiltrDN.Text;
|
|
fJakost:= edtFiltrJakost.Text;
|
|
fProfil:= edtFiltrProfil.Text;
|
|
fTloustka:= edtFiltrTloustka.Text;
|
|
fRozmer:= edtFiltrMDRozmer.Text.Trim;
|
|
fNormaMat:= edtFiltrMDNormaMAT.Text.Trim;
|
|
|
|
filtrNew:= IfThen(fMaterial<>'', 'UPPER(colCisloZboziMat) LIKE ''%' + fMaterial.ToUpper + '%''', '');
|
|
if (fNadoba<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colNadoba) LIKE ''%' + fNadoba.ToUpper + '%''';
|
|
end;
|
|
if (fNazev<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colNazev1) LIKE ''%' + fNazev.ToUpper + '%''';
|
|
end;
|
|
if (fPrumer<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colPrumer) LIKE ''' + fPrumer.ToUpper + '''';
|
|
end;
|
|
|
|
if (fDN<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colDN) LIKE ''' + fDN.ToUpper + '''';
|
|
end;
|
|
|
|
if (fTloustka<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colSilaMat) LIKE ''' + fTloustka.ToUpper + '''';
|
|
end;
|
|
|
|
if (fProfil<>'') then
|
|
filtrNew:= filtrNew + IfThen(filtrNew<>'', ' AND ', '') + 'UPPER(colRozmer) LIKE ''' + fProfil.ToUpper + '''';
|
|
|
|
|
|
if (fJakost<>'') then
|
|
filtrNew:= filtrNew + IfThen(filtrNew<>'', ' AND ', '') + 'UPPER(colJakostMat) LIKE ''' + fJakost.ToUpper + '''';
|
|
|
|
if (fRozmer<>'') then
|
|
filtrNew:= filtrNew + IfThen(filtrNew<>'', ' AND ', '') + 'UPPER(colRozmer) LIKE ''' + fRozmer.ToUpper + '%''';
|
|
|
|
if (fNormaMat<>'') then
|
|
filtrNew:= filtrNew + IfThen(filtrNew<>'', ' AND ', '') + 'UPPER(colNormaMat) LIKE ''%' + fNormaMat.ToUpper + '%''';
|
|
|
|
|
|
|
|
dm.tblFronta.Filtered:= false;
|
|
dm.tblFronta.Filter:= filtrNew;
|
|
dm.tblFronta.Filtered:= true;
|
|
end
|
|
else
|
|
begin
|
|
dm.tblFronta.Filter:= '';
|
|
dm.tblFronta.Filtered:= true;
|
|
dm.tblFronta.Filtered:= false;
|
|
end;
|
|
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
ctrlFronta.Invalidate;
|
|
lblRecSelected.Caption:= 'Výběr: 0 / celkem 0 m';
|
|
dm.FrontaOdznacitVse;
|
|
|
|
if (frontaPlan.CanFocus) then
|
|
frontaPlan.SetFocus;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMaterialKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrJakostExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDCisloExit (Sender: TObject);
|
|
var filtrNew: string;
|
|
fCislo, fRCMat, fDM, fS1, fDatum, fRozmer, fNormaMat: string;
|
|
begin
|
|
if (frontaPanel.CanFocus) then
|
|
frontaPanel.SetFocus;
|
|
CloseTabTip;
|
|
|
|
edtFiltrMDCislo.Text:= edtFiltrMDCislo.Text.Trim;
|
|
fCislo:= edtFiltrMDCislo.Text;
|
|
|
|
fDatum:= DateToStr(dtFiltrMDDatum.Date);
|
|
if (fDatum='30.12.1899') then
|
|
fDatum:= '';
|
|
|
|
fDM:= edtFiltrMDDM.Text.Trim;
|
|
fS1:= edtFiltrMDSila.Text.Trim;
|
|
fRCMat:= edtFiltrMDRegCisMat.Text.Trim;
|
|
fRozmer:= edtFiltrMDRozmer.Text.Trim;
|
|
fNormaMat:= edtFiltrMDNormaMAT.Text.Trim;
|
|
|
|
|
|
if (fCislo<>'') or (fDatum<>'') or (fDM<>'') or (fS1<>'') or (fRCMat<>'') or (fRozmer<>'') or (fNormaMat<>'') then
|
|
begin
|
|
filtrNew:= IfThen(fCislo<>'', 'colCislo=' + fCislo, '');
|
|
|
|
if (fDatum<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'colPlanVyroby BETWEEN ''' + fDatum + ' 00:00:01'' AND ''' + fDatum + ' 23:59:59''';
|
|
end;
|
|
|
|
if (fDM<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colPrumerDM)=''' + fDM + '''';
|
|
end;
|
|
|
|
if (fRCMat<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colRCMat) LIKE ''%' + fRCMat + '%''';
|
|
end;
|
|
|
|
if (fS1<>'') then
|
|
begin
|
|
if (filtrNew<>'') then
|
|
filtrNew:= filtrNew + ' AND ';
|
|
filtrNew:= filtrNew + 'UPPER(colTloustkaS1)=''' + fS1 + '''';
|
|
end;
|
|
|
|
if (fRozmer<>'') then
|
|
filtrNew:= filtrNew + IfThen(filtrNew<>'', ' AND ', '') + 'UPPER(colRozmer) LIKE ''' + fRozmer.ToUpper + '%''';
|
|
|
|
if (fNormaMat<>'') then
|
|
filtrNew:= filtrNew + IfThen(filtrNew<>'', ' AND ', '') + 'UPPER(colNormaMat) LIKE ''%' + fNormaMat.ToUpper + '%''';
|
|
|
|
|
|
|
|
dm.tblMatDavky.Filtered:= false;
|
|
dm.tblMatDavky.Filter:= filtrNew;
|
|
dm.tblMatDavky.Filtered:= true;
|
|
end
|
|
else
|
|
begin
|
|
dm.tblMatDavky.Filter:= '';
|
|
dm.tblMatDavky.Filtered:= true;
|
|
dm.tblMatDavky.Filtered:= false;
|
|
end;
|
|
|
|
lblRecCount.Caption:= 'Počet dávek: ' + dm.tblMatDavky.RecordCount.ToString;
|
|
ctrlMD.ItemCount:= dm.tblMatDavky.RecordCount;
|
|
ctrlMD.Invalidate;
|
|
// lblRecSelected.Caption:= 'Výběr: 0 / celkem 0 m';
|
|
// dm.FrontaOdznacitVse;
|
|
|
|
if (frontaPlan.CanFocus) then
|
|
frontaPlan.SetFocus;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDCisloKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDDMExit (Sender: TObject);
|
|
begin
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDSilaExit(Sender: TObject);
|
|
begin
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDSilaKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDDMKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDNormaMatExit (Sender: TObject);
|
|
begin
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDNormaMatKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDRegCisMatExit (Sender: TObject);
|
|
begin
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDRegCisMatKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrMDRegCisMatExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDRozmerExit (Sender: TObject);
|
|
begin
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrMDRozmerKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) then
|
|
begin
|
|
Key:= 0;
|
|
edtFiltrMDCisloExit (Sender);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrNadobaEnter (Sender: TObject);
|
|
begin
|
|
edtFiltrNadoba.Text:= '';
|
|
calcTyp:= 1;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrNadobaExit (Sender: TObject);
|
|
begin
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrNazevEnter (Sender: TObject);
|
|
begin
|
|
edtFiltrNazev.Text:= '';
|
|
calcTyp:= 2;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrNazevExit (Sender: TObject);
|
|
begin
|
|
edtFiltrNazev.Text:= edtFiltrNazev.Text.Trim;
|
|
edtFiltrMaterialExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.edtFiltrNazevKeyDown (Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if (Key=VK_RETURN) or (Key=VK_ESCAPE) then
|
|
edtFiltrNazevExit (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.FormClose (Sender: TObject; var Action: TCloseAction);
|
|
var lSQL: string;
|
|
begin
|
|
if (1=0) AND (datModul.idHlavPila>0) then
|
|
begin
|
|
lSQL:= 'UPDATE ' + tblRezPredpis + ' SET IDKmenZboMaterial=' + IfThen(datModul.idKmenMaterialPila=0, 'NULL', datModul.idKmenMaterialPila.ToString);
|
|
lSQL:= lSQL + ', Sarze=N' + IfThen(datModul.pilaSarze='', 'ULL', datModul.pilaSarze.QuotedString);
|
|
lSQL:= lSQL + ' WHERE ID=' + datModul.idHlavPila.ToString;
|
|
Helios.ExecSQL(lSQL);
|
|
end;
|
|
|
|
|
|
|
|
// Helios.ExecSQL('DELETE FROM ' + tblRezPredpisR + ' WHERE LoginName=SUSER_SNAME() AND DatTisku IS NULL AND Tisk=0');
|
|
// Helios.ExecSQL('DELETE FROM ' + tblRezPredpis + ' WHERE ID NOT IN (SELECT IDHlavicka FROM ' + tblRezPredpisR + ' WHERE LoginName=SUSER_SNAME())');
|
|
|
|
|
|
if (dm.tblPila.RecordCount=0) then
|
|
begin
|
|
Helios.ExecSQL('UPDATE ' + tblRezPredpisPily + ' SET CisloDavky=NULL WHERE Aktivni=1 AND LoginName=SUSER_SNAME()');
|
|
if (datModul.idHlavPila>0) then
|
|
Helios.ExecSQL('DELETE ' + tblRezPredpisPily + ' WHERE ID=' + datModul.idHlavPila.ToString);
|
|
end;
|
|
|
|
|
|
if (dm.tblFronta.Active) then
|
|
dm.tblFronta.Close;
|
|
|
|
if (dm.tblPila.Active) then
|
|
dm.tblPila.Close;
|
|
// FPila.Free;
|
|
|
|
if (dm.tblPlan.Active) then
|
|
dm.tblPlan.Close;
|
|
// FPlan.Free;
|
|
|
|
Action:= TCloseAction.caFree;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.pgCtrlChange (Sender: TObject);
|
|
begin
|
|
btnTiskStitku.Enabled:= (pgCtrl.ActivePage=shPila) and (dm.tblPila.RecordCount>0);
|
|
|
|
if (pgCtrl.ActivePage=shPila) then
|
|
begin
|
|
btnAddPila.Enabled:= (edtFiltrPila.Text='');
|
|
btnDelPila.Enabled:= (dm.tblPila.RecordCount>0) and (edtFiltrPila.Text='');
|
|
btnDelPilaOne.Enabled:= (dm.tblPila.RecordCount>0) and (edtFiltrPila.Text='');
|
|
end;
|
|
|
|
if (pgCtrl.ActivePage=shPlan) then
|
|
begin
|
|
btnAddPila.Enabled:= true;
|
|
btnDelPila.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
btnDelPilaOne.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.pgCtrlMDChange (Sender: TObject);
|
|
begin
|
|
lblRecCount.Caption:= 'Počet: 0';
|
|
lblRecSelected.Caption:= 'Výběr: 0 / celkem 0 m';
|
|
|
|
if (pgCtrlMD.ActivePage=shMatDavky) then
|
|
lblRecCount.Caption:= 'Počet dávek: ' + dm.tblMatDavky.RecordCount.ToString
|
|
else
|
|
lblRecCount.Caption:= 'Počet: ' + dm.tblFronta.RecordCount.ToString;
|
|
|
|
btnAddPila.Enabled:= not(pgCtrlMD.ActivePage=shMatDavky);
|
|
btnAddPila.Enabled:= btnAddPila.Enabled and (dm.tblFronta.RecordCount>0);
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.FormShow (Sender: TObject);
|
|
var lSQL: string;
|
|
cnt, iId, iMD: integer;
|
|
begin
|
|
idPrac:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ID FROM ' + tblCPrac + ' WHERE TRIM(Pracoviste)=N''30'' AND IDTabStrom=N''101001''');
|
|
|
|
lblRecCount.Caption:= 'Počet: 0';
|
|
lblRecSelected.Caption:= 'Výběr: 0 / celkem 0 m';
|
|
|
|
if (idDP>0) then
|
|
begin
|
|
datModul.idHlavPila:= idDP;
|
|
if (helUtils.sqlExistsTestGeneral (Helios, 'SELECT 1 FROM ' + tblRezPredpis + ' WHERE ID=' + idDP.ToString + ' AND IDPlan IS NOT NULL')) then
|
|
datModul.idHlavPlan:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT IDPlan FROM ' + tblRezPredpis + ' WHERE ID=' + idDP.ToString + ' AND IDPlan IS NOT NULL');
|
|
end;
|
|
|
|
pgCtrl.ActivePage:= shPila;
|
|
pgCtrlMD.ActivePage:= shMatDavky;
|
|
|
|
// dm.NactiIkonuProButton (btnTiskStitku, 'XC_X_PRINT');
|
|
// dm.NactiIkonuProButton (btnObrazek, 'XC_X_PDFIN');
|
|
|
|
VymazUdajePilaNeboPlan;
|
|
VymazUdajePilaNeboPlan (true);
|
|
|
|
|
|
if (dm.tblPila<>nil) then
|
|
begin
|
|
if not(dm.tblPila.Active) then
|
|
dm.tblPila.Open;
|
|
dm.tblPila.Clear; // .EmptyDataSet;
|
|
pilaDelkaSum:= 0;
|
|
|
|
if not(dm.tblPlan.Active) then
|
|
dm.tblPlan.Open;
|
|
dm.tblPlan.Clear; // .EmptyDataSet;
|
|
planDelkaSum:= 0;
|
|
|
|
// FPila:= TList<TZaznamPily>.Create;
|
|
// FPlan:= TList<TZaznamPily>.Create;
|
|
|
|
NactiPracovnikyPily;
|
|
|
|
{
|
|
helUtils.waitStart(nil, 'Načítám rozpracovaná data...');
|
|
NactiRozpracovanePolozky;
|
|
helUtils.waitEnd;
|
|
}
|
|
|
|
lSQL:= 'SELECT ID, IDPlanMD FROM ' + tblRezPredpis + ' WHERE Splneno=0 AND IDPlanMD IS NOT NULL AND JePlan=0 AND LoginName=SUSER_SNAME()'; // DeviceID=N' + datModul.devID.QuotedString;
|
|
with Helios.OpenSQL(lSQL) do
|
|
begin
|
|
First;
|
|
while not(EOF) do
|
|
begin
|
|
iID:= VarToStr(FieldByNameValues('ID')).ToInteger;
|
|
iMD:= VarToStr(FieldByNameValues('IDPlanMD')).ToInteger;
|
|
Helios.ExecSQL ('DELETE FROM ' + tblRezPredpisR + ' WHERE IDHlavicka=' + iID.ToString + ' AND IDPlanMD=' + iMD.ToString);
|
|
Helios.ExecSQL ('DELETE FROM ' + tblRezPredpis + ' WHERE ID=' + iID.ToString + ' AND IDPlanMD=' + iMD.ToString);
|
|
Helios.ExecSQL ('UPDATE ' + tblMatDavkyR + ' SET NaPile=0 WHERE IDHlava=' + iMD.ToString);
|
|
Helios.ExecSQL ('UPDATE ' + tblMatDavkyH + ' SET NaPile=0 WHERE ID=' + iMD.ToString);
|
|
Next;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
Helios.ExecSQL('SELECT 14 AS DebugStep');
|
|
btnKonecDavky.Enabled:= false; // musim nejdriv naskenovat material
|
|
|
|
dm.NactiMaterialoveDavky (self);
|
|
Helios.ExecSQL('SELECT 15 AS DebugStep');
|
|
ctrlMD.ItemCount:= dm.tblMatDavky.RecordCount;
|
|
dm.NactiFrontu (idPrac, self);
|
|
Helios.ExecSQL('SELECT 16 AS DebugStep');
|
|
ctrlFronta.ItemCount:= dm.tblFronta.RecordCount;
|
|
|
|
digitTimer.Enabled:= true;
|
|
timerPila:= 0;
|
|
|
|
dtFiltrMDDatum.Date:= 0;
|
|
dtFiltrMDDatum.Format:= ' ';
|
|
end;
|
|
|
|
if (cbZamest.CanFocus) then
|
|
cbZamest.SetFocus;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.frontaPilaAfterDrawItems (ACanvas: TCanvas; ARect: TRect);
|
|
begin
|
|
// FPila.Count:= frontaPila.ItemCount;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.frontaPilaBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
var ks, delka: Extended;
|
|
idVPr: integer;
|
|
lSQL, sz, rc: string;
|
|
uhel: Extended;
|
|
|
|
function NapoctiDelkuPila (AIndex: integer): Extended;
|
|
var ii, idx: integer;
|
|
begin
|
|
result:= 0;
|
|
dm.tblPila.DisableControls;
|
|
ii:= dm.tblPila.RecNo;
|
|
for idx:=1 to AIndex+1 do
|
|
begin
|
|
dm.tblPila.RecNo:= idx;
|
|
result:= Result + dm.tblPila.FieldByName('colKs').AsInteger * dm.tblPila.FieldByName('colDelka').AsExtended;
|
|
end;
|
|
dm.tblPila.RecNo:= ii;
|
|
dm.tblPila.EnableControls;
|
|
end;
|
|
|
|
begin
|
|
{ // pokud je povoleno, neni videt vyber polozky v seznamu
|
|
// Nastavení barvy pera pro rámeček
|
|
ACanvas.Pen.Color:= clBlack;
|
|
ACanvas.Pen.Width:= 1; // Šířka rámečku
|
|
// Nakreslení rámečku kolem položky
|
|
ACanvas.Rectangle(ARect);
|
|
}
|
|
|
|
|
|
dm.tblPila.RecNo:= AIndex + 1; // AIndex zero-based
|
|
|
|
ks:= dm.tblPila.FieldByName('colKs').AsExtended;
|
|
delka:= dm.tblPila.FieldByName('colDelka').AsExtended;
|
|
pilaDelkaSum:= NapoctiDelkuPila (AIndex);
|
|
|
|
lblPila1ItemDeleni.Caption:= IfThen(ks>0, ks.ToString + ' x ' + delka.ToString + ' mm ', '');
|
|
lblPila1ItemNadoba.Caption:= VarToStr(dm.tblPila.FieldByName('colNadoba').Value).Trim;
|
|
lblPila1ItemRadaPrikaz.Caption:= VarToStr(dm.tblPila.FieldByName('colRadaPrikaz').Value).Trim;
|
|
lblPilaDelkaSum.Caption:= pilaDelkaSum.ToString + ' mm';
|
|
|
|
if (dm.tblPila.FieldByName('colPovoleno').AsBoolean) then
|
|
lblPila1ItemDeleni.Font.Style:= lblPila1ItemDeleni.Font.Style - [fsStrikeOut]
|
|
else
|
|
lblPila1ItemDeleni.Font.Style:= lblPila1ItemDeleni.Font.Style + [fsStrikeOut];
|
|
|
|
lblPozicePilaFronta.Caption:= dm.tblPila.FieldByName('colPozice').AsString;
|
|
|
|
lblRezatUhelPila.Caption:= '';
|
|
sz:= VarToStr(dm.tblPila.FieldByName('colSZPrikaz').Value).Trim;
|
|
rc:= VarToStr(dm.tblPila.FieldByName('colRegCisPrikaz').Value).Trim;
|
|
if (sz<>'') and (rc<>'') then
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) Uhel FROM dbo.hvw_ADE_INSERT_VYROBA WHERE SkupZbo=N' + sz.QuotedString + ' AND RegCis=N' + rc.QuotedString + ' AND LastRec=1 AND StavPolozky=N''50''';
|
|
uhel:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
if (uhel>1) then
|
|
lblRezatUhelPila.Caption:= 'úhel ' + uhel.ToString;
|
|
end;
|
|
|
|
lblRegCisPrikaz2.Caption:= dm.tblPila.FieldByName('colRegCisPrikaz').AsString;
|
|
lblPila1ItemNadoba.Font.Style:= lblPila1ItemDeleni.Font.Style;
|
|
lblPila1ItemRadaPrikaz.Font.Style:= lblPila1ItemDeleni.Font.Style;
|
|
lblPilaDelkaSum.Font.Style:= lblPila1ItemDeleni.Font.Style;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.frontaPilaItemClick (Sender: TObject);
|
|
var i, idKZ: integer;
|
|
lSQL, czbo: string;
|
|
jeTiskAkt: boolean;
|
|
begin
|
|
|
|
btnTiskStitku.Enabled:= false;
|
|
btnTiskBezEvidence.Enabled:= false;
|
|
|
|
if (edtFiltrPila.Text='') then
|
|
begin
|
|
Helios.Error(#1'Nejdřív naskenujte MATERIÁL !');
|
|
Exit;
|
|
end;
|
|
|
|
if (pilaReqSN) and (lblPila1Sarze.Caption='') then
|
|
begin
|
|
Helios.Error(#1'Nelze pokračovat, naskenovaný materiál požaduje ŠARŽI !'#1);
|
|
end
|
|
else
|
|
begin
|
|
i:= frontaPila.ItemIndex + 1; // zero based
|
|
dm.tblPila.RecNo:= i;
|
|
czbo:= dm.tblPila.FieldByName('colCisloZboziMat').AsString;
|
|
idKZ:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblKZ + ' WHERE CisloZbozi=N' + czbo.QuotedString);
|
|
|
|
if (lblPila1RegCis.Caption='') and (dm.tblPila.RecordCount>0) then
|
|
begin
|
|
with Helios.OpenSQL('SELECT RegCis, Nazev1 FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString) do
|
|
if (RecordCount=1) then
|
|
begin
|
|
lblPila1RegCis.Caption:= VarToStr(FieldByNameValues('RegCis'));
|
|
lSQL:= 'SELECT k.Nazev1 + N'' '' + ISNULL(ke._Rozmer, N'''') + N'' / '' + ISNULL(ke._S1_X, N'''') + N'' '' + ISNULL(ke._JakostMaterialu, N'''') FROM ' + tblKZ;
|
|
lSQL:= lSQL + ' k LEFT JOIN ' + tblKZe + ' ke ON (ke.ID=k.ID) WHERE k.ID=' + idKZ.ToString;
|
|
lblPila1Nazev1.Caption:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
|
end;
|
|
end;
|
|
|
|
btnDelPilaOne.Enabled:= (dm.tblPila.RecordCount>0);
|
|
btnDelPila.Enabled:= btnDelPilaOne.Enabled;
|
|
|
|
if (edtFiltrPila.Text<>'') then
|
|
begin
|
|
materialOK:= (czbo=datModul.pilaSZ+datModul.pilaRC);
|
|
materialOK:= materialOK or dm.NaskenovanyMaterialJeOK (datModul.idKmenMaterialPila);
|
|
if not(materialOK) then
|
|
Helios.Error(#1'Vybraný/naskenovaný materiál neodpovídá požadavku.'#1)
|
|
else
|
|
begin
|
|
btnTiskBezEvidence.Enabled:= true;
|
|
dm.tblPila.RecNo:= frontaPila.ItemIndex + 1;
|
|
if (dm.tblPila.FieldByName('colPovoleno').AsBoolean) then
|
|
begin
|
|
i:= dm.PocetPovolenychPredeMnou (dm.tblPila);
|
|
btnTiskStitku.Enabled:= (i=0);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformMain.frontaPlanAfterDrawItems (ACanvas: TCanvas; ARect: TRect);
|
|
begin
|
|
// FPlan.Count:= frontaPlan.ItemCount;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.frontaPlanBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
|
var ks, delka: Extended;
|
|
lSQL, sz, rc: string;
|
|
uhel: Extended;
|
|
|
|
function NapoctiDelkuPlan (AIndex: integer): Extended;
|
|
var ii, idx: integer;
|
|
begin
|
|
result:= 0;
|
|
dm.tblPlan.DisableControls;
|
|
ii:= dm.tblPlan.RecNo;
|
|
for idx:=1 to AIndex+1 do
|
|
begin
|
|
dm.tblPlan.RecNo:= idx;
|
|
result:= Result + dm.tblPlan.FieldByName('colKs').AsInteger * dm.tblPlan.FieldByName('colDelka').AsExtended;
|
|
end;
|
|
dm.tblPlan.RecNo:= ii;
|
|
dm.tblPlan.EnableControls;
|
|
end;
|
|
|
|
begin
|
|
dm.tblPlan.RecNo:= AIndex + 1; // AIndex zero-based
|
|
|
|
ks:= dm.tblPlan.FieldByName('colKs').AsExtended;
|
|
delka:= dm.tblPlan.FieldByName('colDelka').AsExtended;
|
|
planDelkaSum:= NapoctiDelkuPlan (AIndex);
|
|
|
|
lblRezatUhelPlan.Caption:= '';
|
|
sz:= VarToStr(dm.tblPlan.FieldByName('colSZPrikaz').Value).Trim;
|
|
rc:= VarToStr(dm.tblPlan.FieldByName('colRegCisPrikaz').Value).Trim;
|
|
if (sz<>'') and (rc<>'') then
|
|
begin
|
|
lSQL:= 'SELECT TOP(1) Uhel FROM dbo.hvw_ADE_INSERT_VYROBA WHERE SkupZbo=N' + sz.QuotedString + ' AND RegCis=N' + rc.QuotedString + ' AND LastRec=1 AND StavPolozky=N''50''';
|
|
uhel:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
|
if (uhel>1) then
|
|
lblRezatUhelPlan.Caption:= 'úhel ' + uhel.ToString;
|
|
end;
|
|
|
|
lblPlanItemDeleni.Caption:= IfThen(ks>0, ks.ToString + ' x ' + delka.ToString + ' mm ', '');
|
|
lblPlanItemNadoba.Caption:= VarToStr(dm.tblPlan.FieldByName('colNadoba').Value).Trim;
|
|
lblPlanItemRadaPrikaz.Caption:= VarToStr(dm.tblPlan.FieldByName('colRadaPrikaz').Value).Trim;
|
|
lblPlanDelkaSum.Caption:= planDelkaSum.ToString + ' mm';
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.Label4MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
if (ssShift in Shift) then
|
|
begin
|
|
ShowMessage('DeviceID: ' + datModul.devID);
|
|
if (ssCtrl in Shift) then
|
|
Clipboard.AsText:= datModul.devID;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.lblMaterialSortClick (Sender: TObject);
|
|
begin
|
|
dm.tblFronta.IndexFieldNames:= 'colRegCis,colNadoba';
|
|
dm.tblFronta.First;
|
|
ctrlFronta.Invalidate;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformMain.lblMDCisloZboClick(Sender: TObject);
|
|
begin
|
|
if (ctrlMD.ItemCount=1) then
|
|
ctrlMDItemClick (Sender);
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.lblNadobaSortClick (Sender: TObject);
|
|
begin
|
|
dm.tblFronta.IndexFieldNames:= 'colNadoba,colRegCis';
|
|
dm.tblFronta.First;
|
|
ctrlFronta.Invalidate;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformMain.lblPlanItemDeleniClick (Sender: TObject);
|
|
begin
|
|
btnDelPilaOne.Enabled:= (dm.tblPlan.RecordCount>0);
|
|
end;
|
|
|
|
end.
|