Prvotni verze pro Giteu
This commit is contained in:
328
frmPolozkyMD.pas
Normal file
328
frmPolozkyMD.pas
Normal file
@ -0,0 +1,328 @@
|
||||
unit frmPolozkyMD;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, ddPlugin_TLB,
|
||||
Vcl.ControlList, ES.ControlListControls,
|
||||
datModul, Vcl.TitleBarCtrls, Vcl.Grids;
|
||||
|
||||
type
|
||||
TformPolozkyMD = class(TForm)
|
||||
Panel1: TPanel;
|
||||
btnNaPilu: TButton;
|
||||
btnStorno: TButton;
|
||||
ctrlPolozkyMD: TControlList;
|
||||
lblDeleni: TLabel;
|
||||
lblNadoba: TLabel;
|
||||
lblRegCisPrikaz: TLabel;
|
||||
lblRadaPrikaz: TLabel;
|
||||
lblRezatUhel: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
lblNadobaSort: TLabel;
|
||||
custTitleBar: TTitleBarPanel;
|
||||
Label1: TLabel;
|
||||
lblMaterial: TLabel;
|
||||
lblRegCis: TLabel;
|
||||
Label4: TLabel;
|
||||
grdAltMaterial: TStringGrid;
|
||||
lblAltMatCapt: TLabel;
|
||||
lblSkladem: TLabel;
|
||||
lblDelkaCelkem: TLabel;
|
||||
Label5: TLabel;
|
||||
lblRadaPrikazFin: TLabel;
|
||||
lblRegCisPrikazFin: TLabel;
|
||||
procedure btnStornoClick (Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btnNaPiluClick(Sender: TObject);
|
||||
procedure ctrlPolozkyMDBeforeDrawItem(AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure grdAltMaterialDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
|
||||
procedure grdAltMaterialMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
private
|
||||
procedure NactiAlternativy;
|
||||
public
|
||||
Helios: IHelios;
|
||||
idMatDavky: integer;
|
||||
mrVal: integer;
|
||||
dm: Tdm;
|
||||
mForm: TForm;
|
||||
selRC: string;
|
||||
end;
|
||||
|
||||
var
|
||||
formPolozkyMD: TformPolozkyMD;
|
||||
idKZMatDavky: integer;
|
||||
idKZ, idKZAlt, idPrKVazby: integer;
|
||||
aktR, aktC: integer;
|
||||
|
||||
implementation
|
||||
uses Vcl.Clipbrd, helUtils;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
|
||||
procedure TformPolozkyMD.NactiAlternativy;
|
||||
var lSQL, popisMat: string;
|
||||
i, idAlt: integer;
|
||||
mnozSkl: Extended;
|
||||
begin
|
||||
lblAltMatCapt.Font.Color:= clWindowText;
|
||||
|
||||
idKZAlt:= 0;
|
||||
idKZ:= idKZMatDavky;
|
||||
|
||||
|
||||
lSQL:= 'SELECT IDKZNahrada FROM ' + tblAlterKZ + ' WHERE IDKmeneZbozi=' + idKZMatDavky.ToString;
|
||||
lSQL:= lSQL + ' ORDER BY Priorita';
|
||||
with Helios.OpenSQL(lSQL) do
|
||||
begin
|
||||
lblAltMatCapt.Visible:= (RecordCount>0);
|
||||
grdAltMaterial.Visible:= lblAltMatCapt.Visible;
|
||||
Panel1.Top:= lblRegCis.Top + lblRegCis.Height + 5;
|
||||
lblDelkaCelkem.Top:= Panel1.Top + Panel1.Height + 5;
|
||||
btnNaPilu.Top:= lblDelkaCelkem.Top + lblDelkaCelkem.Height + 10;
|
||||
btnStorno.Top:= btnNaPilu.Top;
|
||||
|
||||
if (RecordCount>0) then
|
||||
begin
|
||||
lblAltMatCapt.Font.Color:= clRed;
|
||||
grdAltMaterial.RowCount:= RecordCount;
|
||||
|
||||
First;
|
||||
i:= 0;
|
||||
while not(EOF) do
|
||||
begin
|
||||
idAlt:= VarToStr(FieldByNameValues('IDKZNahrada')).ToInteger;
|
||||
idKZAlt:= idAlt;
|
||||
|
||||
grdAltMaterial.Cells[0, i]:= helUtils.getHeliosStrVal(Helios, '', 'SELECT RegCis FROM ' + tblKZ + ' WHERE ID=' + idAlt.ToString);
|
||||
|
||||
lSQL:= 'SELECT ISNULL(_Rozmer, N'''') + N'' '' + ISNULL(_S1_X, N'''') + N'' / '' + ISNULL(_JakostMaterialu, N'''') FROM ' + tblKZe + ' WHERE ID=' + idAlt.ToString;
|
||||
lSQL:= 'SELECT ISNULL(_JakostMaterialu, N'''') FROM ' + tblKZe + ' WHERE ID=' + idAlt.ToString;
|
||||
popisMat:= helUtils.getHeliosStrVal(Helios, '', lSQL);
|
||||
if (popisMat<>'') then
|
||||
grdAltMaterial.Cells[1, i]:= ' ' + popisMat
|
||||
else
|
||||
grdAltMaterial.Cells[1, i]:= ' ' + helUtils.getHeliosStrVal(Helios, '', 'SELECT Nazev1 FROM ' + tblKZ + ' WHERE ID=' + idAlt.ToString);
|
||||
|
||||
lSQL:= 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE IDSklad=N' + datModul.sklMat.QuotedString + ' AND Mnozstvi>0 AND IDKmenZbozi=' + idAlt.ToString;
|
||||
mnozSkl:= helUtils.getHeliosFloatVal(Helios, 0, lSQL);
|
||||
grdAltMaterial.Cells[2, i]:= ' ' + mnozSkl.ToString + ' ' + helUtils.getHeliosStrVal(Helios, '', 'SELECT MJEvidence FROM ' + tblKZ + ' WHERE ID=' + idAlt.ToString);
|
||||
|
||||
Inc(i);
|
||||
Next;
|
||||
end;
|
||||
|
||||
grdAltMaterial.Height:= (grdAltMaterial.DefaultRowHeight * grdAltMaterial.RowCount) + 10;
|
||||
Panel1.Top:= grdAltMaterial.Top + grdAltMaterial.Height + 5;
|
||||
lblDelkaCelkem.Top:= Panel1.Top + Panel1.Height + 5;
|
||||
btnNaPilu.Top:= lblDelkaCelkem.Top + lblDelkaCelkem.Height + 10;
|
||||
btnStorno.Top:= btnNaPilu.Top;
|
||||
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.btnNaPiluClick (Sender: TObject);
|
||||
var lSQL, d: string;
|
||||
begin
|
||||
if not(dm.tblPila.Active) then
|
||||
dm.tblPila.Open;
|
||||
|
||||
d:= helUtils.getHeliosStrVal(Helios, '', 'SELECT CisloDavky FROM ' + tblRezPredpisPily + ' WHERE CisloDavky IS NOT NULL AND LoginName=SUSER_SNAME() AND Aktivni=1');
|
||||
|
||||
lSQL:= 'SELECT 1 AS A FROM ' + tblMatDavkyH + ' WHERE LoginName=SUSER_SNAME() AND NaPile=1';
|
||||
if (helUtils.sqlExistsTestGeneral(Helios, lSQL)) then
|
||||
Helios.Error ('Uživatel ' + #1 + datModul.sqlUserName + #1 + ' už má zahájenou dávku č.' + d + ', nelze zpracovat další dávku !')
|
||||
else
|
||||
begin
|
||||
|
||||
// dopln vazby na alternativu
|
||||
|
||||
|
||||
mrVal:= 1;
|
||||
Close;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.btnStornoClick (Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.ctrlPolozkyMDBeforeDrawItem (AIndex: Integer; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState);
|
||||
var lSQL, sz, rc, oper, szFin, rcFin: string;
|
||||
uhel, mnoz: Extended;
|
||||
idPrKV, idVPr, idKZFin, dokl, idDilec: integer;
|
||||
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);
|
||||
}
|
||||
|
||||
try
|
||||
dm.tblPolozkyMD.RecNo:= AIndex + 1; // AIndex zero-based
|
||||
// lblMaterial.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colNazev1').Value).Trim;
|
||||
// lblPozice.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colPozice').Value).Trim;
|
||||
// lblRegCis.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colRegCis').Value) + ' ' + VarToStr(dm.tblPolozkyMD.FieldByName('colRozmer').Value).Trim
|
||||
// + '/' + VarToStr(dm.tblPolozkyMD.FieldByName('colSilaMat').Value) + ' ' + VarToStr(dm.tblPolozkyMD.FieldByName('colJakostMat').Value);
|
||||
lblDeleni.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colKs').Value) + ' x ' + VarToStr(dm.tblPolozkyMD.FieldByName('colDelka').Value) + ' mm ';
|
||||
lblNadoba.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colNadoba').Value);
|
||||
lblRegCisPrikaz.Caption:= '' + VarToStr(dm.tblPolozkyMD.FieldByName('colRegCisPrikaz').Value).Trim;
|
||||
lblRadaPrikaz.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colRadaPrikaz').Value).Trim;
|
||||
// lblPrumer.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colPrumer').Value).Trim;
|
||||
// lblTloustka.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colSilaMat').Value).Trim;
|
||||
|
||||
idPrKV:= dm.tblPolozkyMD.FieldByName('colIDPrKVazby').AsInteger;
|
||||
idVPr:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrikaz FROM ' + tblPrKVaz + ' WHERE ID=' + idPrKV.ToString);
|
||||
|
||||
with Helios.OpenSQL('SELECT RadaPrikaz, IDTabKmen FROM ' + tblVPr + ' WHERE ID=(SELECT IDPrikazRidici FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString + ')') do
|
||||
if (RecordCount=1) then
|
||||
begin
|
||||
lblRadaPrikazFin.Caption:= VarToStr(FieldByNameValues('RadaPrikaz'));
|
||||
idKZFin:= VarToStr(FieldByNameValues('IDTabKmen')).ToInteger;
|
||||
lblRegCisPrikazFin.Caption:= helUtils.getHeliosStrVal(Helios, '', 'SELECT SkupZbo + N'' '' + RegCis FROM ' + tblKZ + ' WHERE ID=' + idKZfin.ToString);
|
||||
end;
|
||||
|
||||
|
||||
if (idKZ<>idKZAlt) and (idKZAlt>0) then
|
||||
begin
|
||||
lSQL:= '';
|
||||
|
||||
oper:= helUtils.getHeliosStrVal(Helios, '', 'SELECT operace FROM ' + tblPrKVaz + ' WHERE ID=' + idPrKV.ToString);
|
||||
dokl:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT Doklad FROM ' + tblPrKVaz + ' WHERE ID=' + idPrKV.ToString);
|
||||
idDilec:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT vyssi FROM ' + tblPrKVaz + ' WHERE ID=' + idPrKV.ToString);
|
||||
mnoz:= helUtils.getHeliosFloatVal(Helios, 0, 'SELECT mnoz_zad FROM ' + tblPrKVaz + ' WHERE ID=' + idPrKV.ToString);
|
||||
|
||||
lSQL:= 'SELECT 1 FROM ' + tblPrKVaz + ' WHERE IDPrikaz=' + idVPr.ToString + ' AND IDOdchylkyDo IS NULL AND Doklad=' + dokl.ToString + ' AND nizsi=' + idKZAlt.ToString;
|
||||
lSQL:= lSQL + ' AND vyssi=' + idDilec.ToString;
|
||||
if not(helUtils.sqlExistsTestGeneral(Helios, lSQL)) and (oper<>'') then
|
||||
begin
|
||||
lSQL:= 'EXEC dbo.hp_NewPozadavek_TabPrKVazby @IDPrikaz=' + idVPr.ToString + ', @IDKmenZbozi=' + idKZAlt.ToString + ', @Operace=N' + oper.QuotedString + ', @Mnozstvi=';
|
||||
lSQL:= lSQL + mnoz.ToString.Replace(',', '.') + ', @Mnoz_zad=' + mnoz.ToString.Replace(',', '.') + ', @Alt_K_Dokladu=' + dokl.ToString;
|
||||
try
|
||||
Helios.ExecSQL (lSQL);
|
||||
finally
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
lblRezatUhel.Caption:= '';
|
||||
sz:= VarToStr(dm.tblPolozkyMD.FieldByName('colSZPrikaz').Value).Trim;
|
||||
rc:= VarToStr(dm.tblPolozkyMD.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;
|
||||
except
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.FormCreate (Sender: TObject);
|
||||
begin
|
||||
mrVal:= 0;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.FormShow (Sender: TObject);
|
||||
var lSQL, c, mj, pr: string;
|
||||
begin
|
||||
grdAltMaterial.ColWidths[0]:= 150;
|
||||
grdAltMaterial.ColWidths[1]:= 130;
|
||||
grdAltMaterial.ColWidths[2]:= 110;
|
||||
|
||||
|
||||
idKZMatDavky:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDKmenZboziMat FROM ' + tblMatDavkyH + ' WHERE ID=' + idMatDavky.ToString);
|
||||
lSQL:= 'SELECT Mnozstvi FROM ' + tblSS + ' WHERE IDKmenZbozi=' + idKZMatDavky.ToString + ' AND IDSklad=N' + QuotedStr('1030');
|
||||
|
||||
c:= helUtils.getHeliosStrVal(Helios, '0', lSQL);
|
||||
mj:= helUtils.getHeliosStrVal(Helios, '', 'SELECT MJEvidence FROM ' + tblKZ + ' WHERE ID=' + idKZMatDavky.ToString);
|
||||
lblSkladem.Caption:= c + ' ' + mj;
|
||||
if (c='0') then
|
||||
lblSkladem.Font.Color:= clRed
|
||||
else
|
||||
lblSkladem.Font.Color:= clWindowText;
|
||||
|
||||
dm.NactiPolozkyMatDavky (idMatDavky, self);
|
||||
ctrlPolozkyMD.ItemCount:= dm.tblPolozkyMD.RecordCount;
|
||||
|
||||
c:= ' Materiálová dávka č. ' + helUtils.getHeliosStrVal(Helios, '', 'SELECT Cislo FROM ' + tblMatDavkyH + ' WHERE ID=' + idMatDavky.ToString);
|
||||
{
|
||||
if (dm.tblPolozkyMD.RecordCount>0) then
|
||||
c:= c + ' / materiál ' + dm.tblPolozkyMD.FieldByName('colSZ').AsString + ' ' + dm.tblPolozkyMD.FieldByName('colRegCis').AsString
|
||||
+ ' - ' + dm.tblPolozkyMD.FieldByName('colNazev1').AsString + ' / jakost ' + dm.tblPolozkyMD.FieldByName('colJakostMat').AsString
|
||||
+ ' / prumer ' + dm.tblPolozkyMD.FieldByName('colPrumer').AsString;
|
||||
}
|
||||
self.Caption:= c;
|
||||
|
||||
dm.tblPolozkyMD.First;
|
||||
lblMaterial.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colNazev1').Value).Trim;
|
||||
// lblPozice.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colPozice').Value).Trim;
|
||||
lblRegCis.Caption:= VarToStr(dm.tblPolozkyMD.FieldByName('colRegCis').Value) + ' ' + VarToStr(dm.tblPolozkyMD.FieldByName('colRozmer').Value).Trim
|
||||
+ '/' + VarToStr(dm.tblPolozkyMD.FieldByName('colSilaMat').Value) + ' ' + VarToStr(dm.tblPolozkyMD.FieldByName('colJakostMat').Value);
|
||||
|
||||
pr:= dm.tblPolozkyMD.FieldByName('colPrumer').AsString;
|
||||
if (pr<>'') then
|
||||
lblRegCis.Caption:= lblRegCis.Caption + ' / průměr ' + pr;
|
||||
|
||||
NactiAlternativy;
|
||||
|
||||
lblDelkaCelkem.Caption:= 'celkem ' + (dm.SumaDelkyMatDavky (idMatDavky)/1000).ToString + ' ' + mj;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.grdAltMaterialDrawCell (Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
|
||||
var o: string;
|
||||
begin
|
||||
grdAltMaterial.Canvas.Font.Color:= clWindowText;
|
||||
if (ACol=2) then
|
||||
begin
|
||||
o:= grdAltMaterial.Cells[ACol, ARow];
|
||||
if (o.Trim='0 m') then
|
||||
grdAltMaterial.Canvas.Font.Color:= clRed;
|
||||
|
||||
grdAltMaterial.Canvas.FillRect (Rect);
|
||||
grdAltMaterial.Canvas.TextRect(Rect, Rect.Left, Rect.Top-4, o);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
procedure TformPolozkyMD.grdAltMaterialMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
if (ssShift in Shift) then
|
||||
begin
|
||||
grdAltMaterial.MouseToCell (X, Y, aktC, aktR);
|
||||
selRC:= grdAltMaterial.Cells[aktC, aktR].Trim;
|
||||
Clipboard.AsText:= selRC;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user