Files
Rootvin-pluginHDCRTN/frmTiskyNahledy.pas
2025-06-10 19:43:13 +02:00

300 lines
8.1 KiB
ObjectPascal

unit frmTiskyNahledy;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.Types,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons, Winapi.ShellAPI, ddPlugin_TLB;
const
LOAD_LIBRARY_AS_IMAGE_RESOURCE = $20;
RT_CURSOR = MakeIntResource(1);
RT_BITMAP = MakeIntResource(2);
RT_ICON = MakeIntResource(3);
RT_MENU = MakeIntResource(4);
RT_DIALOG = MakeIntResource(5);
RT_STRING = MakeIntResource(6);
RT_FONTDIR = MakeIntResource(7);
RT_FONT = MakeIntResource(8);
RT_ACCELERATOR = MakeIntResource(9);
RT_RCDATA = System.Types.RT_RCDATA; //MakeIntResource(10);
DIFFERENCE = 11;
RT_GROUP_CURSOR = MakeIntResource(DWORD(RT_CURSOR) + DIFFERENCE);
RT_GROUP_ICON = MakeIntResource(DWORD(RT_ICON) + DIFFERENCE);
RT_VERSION = MakeIntResource(16);
RT_DLGINCLUDE = MakeIntResource(17);
RT_PLUGPLAY = MakeIntResource(19);
RT_VXD = MakeIntResource(20);
RT_ANICURSOR = MakeIntResource(21);
RT_ANIICON = MakeIntResource(22);
RT_HTML = MakeIntResource(23);
RT_MANIFEST = MakeIntResource(24);
type
TformTiskyNahledy = class(TForm)
Panel1: TPanel;
Label1: TLabel;
btnAVTisk1: TSpeedButton;
btnAVTisk2: TSpeedButton;
btnAVTisk3: TSpeedButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Panel2: TPanel;
Label6: TLabel;
btnPD1: TSpeedButton;
btnPD2: TSpeedButton;
btnPD3: TSpeedButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Panel3: TPanel;
Label10: TLabel;
btnPZ1: TSpeedButton;
btnPZ2: TSpeedButton;
btnPZ3: TSpeedButton;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Panel4: TPanel;
Label14: TLabel;
btnKV: TSpeedButton;
Label15: TLabel;
procedure FormShow(Sender: TObject);
procedure btnAVTisk1Click(Sender: TObject);
procedure btnPD1Click(Sender: TObject);
procedure btnPZ1Click(Sender: TObject);
procedure btnAVTisk3Click(Sender: TObject);
procedure btnAVTisk2Click(Sender: TObject);
private
public
Helios: IHelios;
HeliosHandle: integer;
idKmen: integer;
idPrikaz: integer;
idPaleta: integer;
idStroj: Integer;
sarze: string;
paletList: string;
end;
var
formTiskyNahledy: TformTiskyNahledy;
bidPalety: integer;
idFormKA, idFormPS, idFormPL: integer;
implementation
uses System.StrUtils,
datMod,
frmZahajeniPalety, helUtils;
{$R *.dfm}
function ResourceNameToString (lpszName: PChar): string;
begin
if Is_IntResource(lpszName) then
Result:= '#' + IntToStr(NativeUInt(lpszName))
else
Result:= lpszName;
end;
function ResourceTypeToString (lpszType: PChar): string;
begin
case NativeUInt(lpszType) of
NativeUInt(RT_CURSOR):
Result := 'RT_CURSOR';
NativeUInt(RT_BITMAP):
Result := 'RT_BITMAP';
NativeUInt(RT_RCDATA):
Result := 'RT_RCDATA';
NativeUInt(RT_GROUP_ICON):
Result:= 'RT_GROUP_ICON';
else
Result := ResourceNameToString (lpszType);
end;
end;
function EnumResNameProc (hModule: HMODULE; lpszType, lpszName: PChar; lParam: NativeInt): BOOL; stdcall;
begin
TStrings(lParam).Add(ResourceNameToString(lpszName));
result:= true;
end;
procedure TformTiskyNahledy.btnAVTisk1Click (Sender: TObject);
var idF: integer;
begin
if (idKmen>0) then
begin
idF:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT TOP(1) ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-6''');
if (idF>0) then
Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + idKmen.ToString);
end;
end;
procedure TformTiskyNahledy.btnAVTisk2Click (Sender: TObject);
var lSQL, podm: string;
idFormNastav: integer;
begin
if (bidPalety>0) and (idFormKA>0) then
begin
lSQL:= 'SELECT TOP(1) ID FROM ' + tblTiskDef + ' WHERE FormDefID=' + idFormKA.ToString + ' AND LoginName IS NULL ORDER BY Prednastaveno DESC';
idFormNastav:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
if (idFormNastav=0) then
begin
lSQL:= 'INSERT ' + tblTiskDef + ' (FormDefID, Nazev, Prednastaveno, Implicitni, LevyOkraj, HorniOkraj, TiskFronta) SELECT ' + idFormKA.ToString
+ ', N''Tisk Zebra'', 1, 0, 0, 0, N''Zebra''' + CRLF + 'SELECT SCOPE_IDENTITY()';
idFormNastav:= helUtils.getHeliosIntVal (Helios, 0, lSQL);
end;
Helios.ExecSQL('UPDATE ' + tblTiskDef + ' SET PocetKopii=1 WHERE ID=' + idFormNastav.ToString);
podm:= 'hvw_Vyroba_Palety.CisloPalety=(SELECT TOP(1) CisloPalety FROM ' + datMod.constHvwVyrobaPalety + ' WHERE';
if (idPaleta>0) then
podm:= podm + ' ID=' + idPaleta.ToString
else
podm:= podm + ' IDPrikaz=' + idPrikaz.ToString + ' AND IDStroj=' + idStroj.ToString + IfThen(paletList<>'', ' AND CisloPalety=N' + paletList.QuotedString, '');
podm:= podm + ')';
Helios.PrintForm3 (bidPalety, idFormKA, podm);
end;
end;
procedure TformTiskyNahledy.btnAVTisk3Click (Sender: TObject); // paletovy listek
var f: integer;
f2: TformZahajeniPalety;
begin
if (idPrikaz>0) then
begin
f2:= TformZahajeniPalety.Create (nil);
try
f2.Helios:= Helios;
f2.opakTisky:= true;
f2.idPaleta:= idPaleta;
f2.f2:= self;
f2.idPrikaz:= idPrikaz;
f2.idStroj:= datMod.bmIdStroj;
f2.ShowModal;
finally
f2.Free;
end;
end;
{
if (paletList<>'') and (idKmen>0) and (bidPalety>0) then
begin
f:= helUtils.getHeliosIntVal (Helios, 0, 'SELECT ISNULL(_PLKK,0) FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString);
if (f>0) then
Helios.PrintForm3 (bidPalety, f, 'hvw_Vyroba_Palety.CisloPalety=N' + paletList.QuotedString);
end;
}
end;
procedure TformTiskyNahledy.btnPD1Click (Sender: TObject);
var idF: integer;
begin
if (datMod.aktIdKmen>0) then
begin
idF:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-6''');
if (idF>0) then
Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + datMod.aktIdKmenPlan.ToString);
end;
end;
procedure TformTiskyNahledy.btnPZ1Click (Sender: TObject);
var idF: integer;
begin
if (datMod.aktIdKmen>0) then
begin
idF:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-6''');
if (idF>0) then
Helios.PrintForm3 (bidDilce, idF, 'TabKmenZbozi.ID=' + datMod.aktIdKmenRozprac.ToString);
end;
end;
procedure TformTiskyNahledy.FormShow (Sender: TObject);
var lSQL: string;
sl: TStringList;
hndl: NativeUInt;
i: integer;
icn: TIcon;
begin
i:= -1;
sl:= TStringList.Create;
try
hndl:= GetModuleHandle(PChar(Application.ExeName));
EnumResourceNames(hndl, RT_GROUP_ICON, @EnumResNameProc, NativeInt(sl));
i:= sl.IndexOf('XC_X_PRINT');
finally
sl.Free;
end;
if (i>-1) then
begin
try
icn:= TIcon.Create;
icn.Handle:= ExtractIcon(hndl, PChar(Application.ExeName), i);
btnAVTisk1.Glyph.Assign(icn);
btnAVTisk2.Glyph.Assign(icn);
btnAVTisk3.Glyph.Assign(icn);
btnPD1.Glyph.Assign(icn);
btnPD2.Glyph.Assign(icn);
btnPD3.Glyph.Assign(icn);
btnPZ1.Glyph.Assign(icn);
btnPZ2.Glyph.Assign(icn);
btnPZ3.Glyph.Assign(icn);
btnKV.Glyph.Assign(icn);
finally
icn.Free;
end;
end;
bidPalety:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_Palety''');
idFormKA:= 0; // Kartonový štítek (Zebra)
idFormPS:= 0;
idFormPL:= 0;
lSQL:= 'SELECT * FROM ' + tblKZe + ' WHERE ID=' + idKmen.ToString;
with Helios.OpenSQL(lSQL) do
if (RecordCount=1) then
begin
First;
if not(TryStrToInt(VarToStr(FieldByNameValues('_KL')), idFormKA)) then
idFormKA:= 0;
if not(TryStrToInt(VarToStr(FieldByNameValues('_PalStitek')), idFormPS)) then
idFormPS:= 0;
if not(TryStrToInt(VarToStr(FieldByNameValues('_PLKK')), idFormPL)) then
idFormPL:= 0;
end;
end;
end.