229 lines
6.6 KiB
ObjectPascal
229 lines
6.6 KiB
ObjectPascal
unit frmKanbanBox;
|
||
|
||
interface
|
||
|
||
uses
|
||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.StrUtils,
|
||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, RzEdit, RzBtnEdt, ddPlugin_TLB,
|
||
Vcl.ExtCtrls;
|
||
|
||
const
|
||
tblKanBox = '[dbo].[_TabKanbanBox]';
|
||
tblKmen = '[dbo].[TabKmenZbozi]';
|
||
|
||
type
|
||
TformKanbanBox = class(TForm)
|
||
selCisloZbozi: TRzButtonEdit;
|
||
Label1: TLabel;
|
||
Label2: TLabel;
|
||
lblID: TEdit;
|
||
lblPopis: TLabel;
|
||
edtKs: TEdit;
|
||
Label3: TLabel;
|
||
btnOK: TButton;
|
||
btnZrus: TButton;
|
||
Label4: TLabel;
|
||
edtPozn: TEdit;
|
||
colBarva1: TPanel;
|
||
colBarva2: TPanel;
|
||
procedure FormShow(Sender: TObject);
|
||
procedure btnZrusClick(Sender: TObject);
|
||
procedure btnOKClick(Sender: TObject);
|
||
procedure selCisloZboziButtonClick(Sender: TObject);
|
||
procedure edtPoznExit(Sender: TObject);
|
||
procedure edtKsExit(Sender: TObject);
|
||
procedure selCisloZboziExit(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
private
|
||
procedure NactiKmen(idKZx: Integer); safecall;
|
||
public
|
||
Helios: IHelios;
|
||
idBox: integer;
|
||
end;
|
||
|
||
var
|
||
formKanbanBox: TformKanbanBox;
|
||
idKZ: integer;
|
||
edit: boolean;
|
||
mnoz: integer;
|
||
|
||
implementation
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TformKanbanBox.btnOKClick(Sender: TObject);
|
||
var lSQL: string;
|
||
jeOK: boolean;
|
||
begin
|
||
jeOK:= true;
|
||
if (edit) then
|
||
begin
|
||
lSQL:= 'Zmenil=SUSER_SNAME(), DatZmeny=GETDATE(), Poznamka=' + Ifthen(edtPozn.Text='','null','N' + QuotedStr(edtPozn.Text));
|
||
jeOK:= true;
|
||
end
|
||
else
|
||
begin
|
||
if (idKZ=0) then
|
||
begin
|
||
jeOK:= false;
|
||
selCisloZbozi.SetFocus;
|
||
end;
|
||
lSQL:= 'idKmenZbozi=' + IntToStr(idKZ) + ',Mnozstvi=' + edtKs.Text + ',Poznamka=' + Ifthen(edtPozn.Text='','null','N' + QuotedStr(edtPozn.Text));
|
||
end;
|
||
|
||
if (jeOK) then
|
||
begin
|
||
lSQL:= 'UPDATE ' + tblKanBox + ' SET ' + lSQL + ' WHERE id=' + IntToStr(idBox);
|
||
try
|
||
Helios.ExecSQL(lSQL);
|
||
Helios.Refresh(true);
|
||
Close;
|
||
except on E:Exception do
|
||
Helios.Error(#1'Chyba box ' + IntToStR(idBox) + ': '#1 + E.Message);
|
||
end;
|
||
end
|
||
else
|
||
Helios.Error(#1'Vypl<70>te v<>echny pot<6F>ebn<62> <20>daje...'#1);
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.btnZrusClick(Sender: TObject);
|
||
begin
|
||
with Helios.OpenSQL('SELECT id FROM ' + tblKanBox + ' WHERE Id=' + IntToStr(idBox) + ' AND IdKmenZbozi=0') do
|
||
if (RecordCount=1) then
|
||
Helios.ExecSQL('DELETE FROM ' + tblKanBox + ' WHERE Id=' + IntToStr(idBox));
|
||
with Helios.OpenSQL('SELECT ISNULL(MAX(id),1) FROM ' + tblKanBox) do
|
||
Helios.ExecSQL('DBCC CHECKIDENT(_TabKanbanBox, reseed, ' + VarToStr(FieldValues(0)) + ')');
|
||
Close;
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.edtKsExit(Sender: TObject);
|
||
begin
|
||
edtKs.Text:= Trim(edtKs.Text);
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.edtPoznExit(Sender: TObject);
|
||
begin
|
||
edtPozn.Text:= Trim(edtPozn.Text);
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
begin
|
||
Action:= caFree;
|
||
end;
|
||
|
||
|
||
|
||
function RGBtoTColor(strRGB: string): TColor;
|
||
var sR,sG,sB: string;
|
||
r,g,b: byte;
|
||
begin
|
||
result:= 0;
|
||
strRGB:= StringOfChar('0', 6-Length(strRGB)) + strRGB;
|
||
sR:= LeftStr(strRGB,2);
|
||
r:= StrToInt('$'+sR);
|
||
sG:= MidStr(strRGB,3,2);
|
||
g:= StrToInt('$'+sG);
|
||
sB:= RightStr(strRGB,2);
|
||
b:= StrToInt('$'+sB);
|
||
result:= RGB(r,g,b);
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.FormShow(Sender: TObject);
|
||
var lSQL: string;
|
||
begin
|
||
edit:= false;
|
||
selCisloZbozi.Enabled:= false;
|
||
edtKs.Enabled:= false;
|
||
mnoz:= 0;
|
||
if (idBox>0) then
|
||
begin
|
||
edit:= true;
|
||
lSQL:= 'SELECT kz.CisloZbozi, kz.Nazev1, kz.Id, kze._KanbanMnozstvi, b.Poznamka, kze._KanbanBarva,';
|
||
lSQL:= lSQL + ' kze._KanbanBarva2 FROM ' + tblKanBox + ' b INNER JOIN ' + tblKmen + ' kz ON (kz.Id=b.IdKmenZbozi) INNER JOIN';
|
||
lSQL:= lSQL + ' dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE b.Id=' + IntToStr(idBox);
|
||
with Helios.OpenSQL(lSQL) do
|
||
if (RecordCount>0) then
|
||
begin
|
||
lblID.Text:= IntToStr(idBox);
|
||
selCisloZbozi.Text:= VarToStr(FieldValues(0));
|
||
lblPopis.Caption:= VarToStr(FieldValues(1));
|
||
idKZ:= StrToInt(VarToStr(FieldValues(2)));
|
||
edtKs.Text:= VarToStr(FieldValues(3));
|
||
if not(VarIsNull(FieldValues(4))) then
|
||
edtPozn.Text:= Trim(VarToStr(FieldValues(4)));
|
||
if not(VarIsNull(FieldValues(5))) then
|
||
// colBarva1.Color:= RGBtoTColor(IntToHex(StrToInt(VarToStr(FieldValues(5))),2));
|
||
colBarva1.Color:= StrToInt(VarToStr(FieldValues(5)));
|
||
if not(VarIsNull(FieldValues(6))) then
|
||
// colBarva2.Color:= RGBtoTColor(IntToHex(StrToInt(VarToStr(FieldValues(6))),2));
|
||
colBarva2.Color:= StrToInt(VarToStr(FieldValues(6)));
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
idBox:= 0;
|
||
with Helios.OpenSQL('INSERT ' + tblKanBox + ' (Mnozstvi) VALUES (0); SELECT SCOPE_IDENTITY();') do
|
||
begin
|
||
lblID.Text:= VarToStr(FieldValues(0));
|
||
idBox:= StrToInt(lblID.Text);
|
||
end;
|
||
idKZ:= 0;
|
||
lblPopis.Caption:= '';
|
||
selCisloZbozi.Enabled:= true;
|
||
selCisloZbozi.Text:= '';
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.NactiKmen(idKZx: Integer);
|
||
var lSQL: string;
|
||
begin
|
||
lSQL:= 'SELECT kz.RegCis, kz.Nazev1, kze._KanbanBarva, kze._KanbanBarva2, kze._KanbanMnozstvi FROM ' + tblKmen + ' kz';
|
||
lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE kz.Id=' + IntToStr(idKZx);
|
||
with Helios.OpenSQL(lSQL) do
|
||
begin
|
||
selCisloZbozi.Text:= VarToStr(FieldValues(0));
|
||
lblPopis.Caption:= VarToStr(FieldValues(1));
|
||
if not VarIsNull(FieldValues(2)) then
|
||
colBarva1.Color:= StrToInt(VarToStr(FieldValues(2)));
|
||
if not VarIsNull(FieldValues(3)) then
|
||
colBarva1.Color:= StrToInt(VarToStr(FieldValues(3)));
|
||
if not VarIsNull(FieldValues(4)) then
|
||
edtKs.Text:= VarToStr(FieldValues(4));
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.selCisloZboziButtonClick(Sender: TObject);
|
||
var oVar: OleVariant;
|
||
begin
|
||
if Helios.Prenos(2,'TabKmenZbozi.id',oVar,'TabKmenZbozi.Blokovano=0','Vyberte polo<6C>ku',true) then
|
||
begin
|
||
idKZ:= StrToInt(VarToStr(oVar));
|
||
NactiKmen(idKZ);
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TformKanbanBox.selCisloZboziExit(Sender: TObject);
|
||
begin
|
||
selCisloZbozi.Text:= Trim(selCisloZbozi.Text);
|
||
if (selCisloZbozi.Text<>'') and (idKZ=0) then
|
||
begin
|
||
with Helios.OpenSQL('SELECT id FROM ' + tblKmen + ' WHERE RegCis=N' + QuotedStr(selCisloZbozi.Text)) do
|
||
if (RecordCount=1) then
|
||
begin
|
||
idKZ:= StrToInt(VarToStr(FieldValues(0)));
|
||
NactiKmen(idKZ);
|
||
end;
|
||
end;
|
||
|
||
end;
|
||
|
||
end.
|