444 lines
12 KiB
ObjectPascal
444 lines
12 KiB
ObjectPascal
unit frmUnit3;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ddPlugin_TLB,
|
||
Dialogs, ImgList, ComCtrls, ToolWin, ShellAPI, StdCtrls, TBPackageU,
|
||
System.ImageList;
|
||
|
||
const tblAkt = '[dbo].[TabKontaktJednani]';
|
||
tblCZam = '[dbo].[TabCisZam]';
|
||
tblOrg = '[dbo].[TabCisOrg]';
|
||
bidTyp = 195;
|
||
bidDruhVystupu = 196;
|
||
bidStav = 197;
|
||
CRLF = #13#10;
|
||
|
||
type
|
||
TformCRM_Aktivity = class(TForm)
|
||
ToolBar1: TToolBar;
|
||
btnPrev: TToolButton;
|
||
imgList: TImageList;
|
||
btnNext: TToolButton;
|
||
pgCtrl: TPageControl;
|
||
btnOK: TButton;
|
||
btnCancel: TButton;
|
||
pgAktivity: TTabSheet;
|
||
GroupBox1: TGroupBox;
|
||
Label1: TLabel;
|
||
Label2: TLabel;
|
||
GroupBox2: TGroupBox;
|
||
Label3: TLabel;
|
||
memoPopis: TTB_Memo;
|
||
Label4: TLabel;
|
||
Label5: TLabel;
|
||
Label6: TLabel;
|
||
Label7: TLabel;
|
||
edtKat: TTB_Edit;
|
||
edtMisto: TTB_Edit;
|
||
pgUcast: TTabSheet;
|
||
edtTyp: TTB_Edit;
|
||
edtStav: TTB_Edit;
|
||
selTyp: TTB_3Button;
|
||
selStav: TTB_3Button;
|
||
edtPredmet: TTB_Edit;
|
||
edtCislo: TTB_Edit;
|
||
GroupBox3: TGroupBox;
|
||
Label8: TLabel;
|
||
Label9: TLabel;
|
||
edtVedl: TTB_Edit;
|
||
selVedlCislo: TTB_3Button;
|
||
edtVedlPrijm: TTB_Edit;
|
||
edtVedlJm: TTB_Edit;
|
||
selVedlPrijm: TTB_3Button;
|
||
selVedlJm: TTB_3Button;
|
||
edtOrg: TTB_Edit;
|
||
edtOrgNazev: TEdit;
|
||
selOrg: TTB_3Button;
|
||
Label10: TLabel;
|
||
Label11: TLabel;
|
||
dtpZac: TDateTimePicker;
|
||
dtpKon: TDateTimePicker;
|
||
dtpZacCas: TDateTimePicker;
|
||
dtpKonCas: TDateTimePicker;
|
||
procedure FormShow(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure edtCisloEnter(Sender: TObject);
|
||
procedure edtCisloExit(Sender: TObject);
|
||
procedure btnCancelClick(Sender: TObject);
|
||
procedure edtPredmetExit(Sender: TObject);
|
||
procedure edtPredmetEnter(Sender: TObject);
|
||
procedure memoPopisEnter(Sender: TObject);
|
||
procedure memoPopisExit(Sender: TObject);
|
||
procedure edtMistoEnter(Sender: TObject);
|
||
procedure edtMistoExit(Sender: TObject);
|
||
procedure btnOKClick(Sender: TObject);
|
||
procedure selTypClick(Sender: TObject);
|
||
procedure selStavClick(Sender: TObject);
|
||
procedure selVedlCisloClick(Sender: TObject);
|
||
procedure selVedlPrijmClick(Sender: TObject);
|
||
procedure selVedlJmClick(Sender: TObject);
|
||
procedure selOrgClick(Sender: TObject);
|
||
private
|
||
procedure NactiAktivitu;
|
||
public
|
||
Helios: IHelios;
|
||
idAkt: integer;
|
||
end;
|
||
|
||
var
|
||
formCRM_Aktivity: TformCRM_Aktivity;
|
||
sCis: string;
|
||
iCis: integer;
|
||
sql: string;
|
||
iPrev,iNext: TIcon;
|
||
bgCol: TColor;
|
||
oVar1, oVar2: OleVariant;
|
||
tStr: string;
|
||
|
||
implementation
|
||
uses StrUtils, myUtils, helUtils;
|
||
|
||
{$R *.dfm}
|
||
|
||
|
||
procedure TformCRM_Aktivity.btnCancelClick(Sender: TObject);
|
||
begin
|
||
Close;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.btnOKClick(Sender: TObject);
|
||
var sql: string;
|
||
begin
|
||
sql:= '';
|
||
if (idAkt>0) then
|
||
begin
|
||
sql:= 'UPDATE ' + tblAkt + ' SET Predmet=N' + QuotedStr(edtPredmet.Text);
|
||
sql:= sql + ',Typ=N' + QuotedStr(edtTyp.Text) + ',Stav=N' + QuotedStr(edtStav.Text);
|
||
sql:= sql + ',MistoKonani=N' + QuotedStr(edtMisto.Text);
|
||
sql:= sql + ',CisloOrg=';
|
||
if edtOrg.Text<>'' then
|
||
sql:= sql + edtOrg.Text
|
||
else
|
||
sql:= sql + 'null';
|
||
sql:= sql + ',CisloZam=';
|
||
if edtOrg.Text<>'' then
|
||
sql:= sql + edtVedl.Text
|
||
else
|
||
sql:= sql + 'null';
|
||
sql:= sql + ',Popis=CONVERT(ntext,' + QuotedStr(memoPopis.Text) + ')';
|
||
tStr:= DateToStr(dtpZac.Date) + ' ' + TimeToStr(dtpZacCas.Time);
|
||
sql:= sql + ',DatumJednaniOd=CONVERT(datetime,' + QuotedStr(tStr) + ',104)';
|
||
tStr:= DateToStr(dtpKon.Date) + ' ' + TimeToStr(dtpKonCas.Time);
|
||
sql:= sql + ',DatumJednaniDo=CONVERT(datetime,' + QuotedStr(tStr) + ',104)';
|
||
sql:= sql + ' WHERE id=' + IntToStr(idAkt);
|
||
end
|
||
else
|
||
begin
|
||
sql:= 'INSERT ' + tblAkt + ' (PoradoveCislo,Kategorie,Predmet,Typ,Stav,DruhVystupu,MistoKonani,';
|
||
sql:= sql + 'DatumJednaniOd,DatumJednaniDo,CisloOrg,CisloZam,Popis) VALUES (' + edtCislo.Text;
|
||
sql:= sql + ',N' + QuotedStr(edtKat.Text) + ',N' + QuotedStr(edtPredmet.Text);
|
||
sql:= sql + ',N' + QuotedStr(edtTyp.Text) + ',N' + QuotedStr(edtStav.Text) + ',N' + QuotedStr('');
|
||
sql:= sql + ',N' + QuotedStr(edtMisto.Text) + ',';
|
||
tStr:= DateToStr(dtpZac.Date) + ' ' + TimeToStr(dtpZacCas.Time);
|
||
sql:= sql + 'CONVERT(datetime,' + QuotedStr(tStr) + ',104),';
|
||
tStr:= DateToStr(dtpKon.Date) + ' ' + TimeToStr(dtpKonCas.Time);
|
||
sql:= sql + 'CONVERT(datetime,' + QuotedStr(tStr) + ',104),';
|
||
if edtOrg.Text<>'' then
|
||
sql:= sql + edtOrg.Text
|
||
else
|
||
sql:= sql + 'null';
|
||
sql:= sql + ',';
|
||
if edtVedl.Text<>'' then
|
||
sql:= sql + edtVedl.Text
|
||
else
|
||
sql:= sql + 'null';
|
||
sql:= sql + ',CONVERT(ntext,' + QuotedStr(memoPopis.Text) + ')';
|
||
|
||
sql:= sql + ')';
|
||
end;
|
||
if sql<>'' then
|
||
try
|
||
Helios.ExecSQL(sql);
|
||
except on E:Exception do
|
||
Helios.Error('Nelze ulo<6C>it <20>daje pro Aktivitu. ' + CRLF + sql + CRLF + E.Message);
|
||
end;
|
||
Close;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.edtCisloEnter(Sender: TObject);
|
||
begin
|
||
edtCislo.Color:= bgCol;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.edtCisloExit(Sender: TObject);
|
||
begin
|
||
edtCislo.Color:= clWindow;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.edtMistoEnter(Sender: TObject);
|
||
begin
|
||
edtMisto.Color:= bgCol;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.edtMistoExit(Sender: TObject);
|
||
begin
|
||
edtMisto.Color:= clWindow;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.edtPredmetEnter(Sender: TObject);
|
||
begin
|
||
edtPredmet.Color:= bgCol;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.edtPredmetExit(Sender: TObject);
|
||
begin
|
||
edtPredmet.Color:= clWindow;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
begin
|
||
Action:= caFree;
|
||
DestroyIcon(iPrev.Handle);
|
||
iPrev.Free;
|
||
DestroyIcon(iNext.Handle);
|
||
iNext.Free;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.NactiAktivitu;
|
||
var sql: string;
|
||
tStr,tStr2: string;
|
||
tInt: Integer;
|
||
begin
|
||
sql:= 'SELECT * FROM ' + tblAkt + ' WHERE id=' + IntToStr(idAkt);
|
||
with Helios.OpenSQL(sql) do
|
||
if RecordCount>0 then
|
||
begin
|
||
edtMisto.Text:= VarToStr(FieldByNameValues('MistoKonani'));
|
||
edtPredmet.Text:= VarToStr(FieldByNameValues('Predmet'));
|
||
edtTyp.Text:= VarToStr(FieldByNameValues('Typ'));
|
||
edtStav.Text:= VarToStr(FieldByNameValues('Stav'));
|
||
memoPopis.Text:= VarToStr(FieldByNameValues('Popis'));
|
||
|
||
tStr:= VarToStr(FieldByNameValues('DatumJednaniOd'));
|
||
tStr2:= tStr;
|
||
tStr:= Trim(LeftStr(tStr, Pos(' ',tStr)-1));
|
||
if tStr<>'' then
|
||
dtpZac.Date:= StrToDate(tStr);
|
||
|
||
tStr:= MidStr(tStr2,Pos(' ',tStr2),255);
|
||
if (tStr<>'') and (Pos(':',tStr)>0) then
|
||
dtpZacCas.Time:= StrToTime(tStr);
|
||
|
||
tStr:= VarToStr(FieldByNameValues('DatumJednaniDo'));
|
||
tStr2:= tStr;
|
||
tStr:= Trim(LeftStr(tStr, Pos(' ',tStr)-1));
|
||
if tStr<>'' then
|
||
dtpKon.Date:= StrToDate(tStr);
|
||
tStr:= Trim(MidStr(tStr2,Pos(' ',tStr2),255));
|
||
if (tStr<>'') and (Pos(':',tStr)>0) then
|
||
dtpKonCas.Time:= StrToTime(tStr);
|
||
|
||
tStr:= VarToStr(FieldByNameValues('CisloOrg'));
|
||
if tStr<>'' then
|
||
with Helios.OpenSQL('SELECT Firma FROM ' + tblOrg + ' WHERE CisloOrg=' + tStr) do
|
||
if RecordCount>0 then
|
||
begin
|
||
edtOrg.Text:= tStr;
|
||
edtOrgNazev.Text:= VarToStr(FieldValues(0));
|
||
end;
|
||
tStr:= VarToStr(FieldByNameValues('CisloZam'));
|
||
if tStr<>'' then
|
||
with Helios.OpenSQL('SELECT Prijmeni,Jmeno FROM ' + tblCZam + ' WHERE Cislo=' + tStr) do
|
||
if RecordCount>0 then
|
||
begin
|
||
tInt:= StrToInt(tStr);
|
||
edtVedl.Text:= Format('%.6d',[tInt]);
|
||
edtVedlPrijm.Text:= VarToStr(FieldValues(0));
|
||
edtVedlJm.Text:= VarToStr(FieldValues(1));
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.selOrgClick(Sender: TObject);
|
||
var cOrg: string;
|
||
begin
|
||
if Helios.Prenos(1,'CisloOrg',oVar1,'','Organizace',true) then
|
||
cOrg:= VarToStr(oVar1);
|
||
if cOrg<>'' then
|
||
begin
|
||
edtOrg.Text:= cOrg;
|
||
with Helios.OpenSQL('SELECT Firma FROM ' + tblOrg + ' WHERE CisloOrg=' + cOrg) do
|
||
edtOrgNazev.Text:= VarToStr(FieldValues(0));
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.selStavClick(Sender: TObject);
|
||
begin
|
||
if Helios.Prenos2(bidStav,'Cislo','Popis',oVar1,oVar2,'','Typy aktvit',true,true,false,1) then
|
||
begin
|
||
edtTyp.Text:= VarToStr(oVar1);
|
||
edtTyp.Hint:= VarToStr(oVar2);
|
||
edtTyp.ShowHint:= true;
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.selTypClick(Sender: TObject);
|
||
begin
|
||
if Helios.Prenos2(bidTyp,'Cislo','Popis',oVar1,oVar2,'','Typy aktvit',true,false,false,1) then
|
||
begin
|
||
edtTyp.Text:= VarToStr(oVar1);
|
||
// edtTyp.Text:= StringReplace(edtTyp.Text,'N''','',[rfReplaceAll]);
|
||
// edtTyp.Text:= StringReplace(edtTyp.Text,'''','',[rfReplaceAll]);
|
||
edtTyp.Hint:= VarToStr(oVar2);
|
||
edtTyp.ShowHint:= true;
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.selVedlCisloClick(Sender: TObject);
|
||
var cZam: string;
|
||
iZam: integer;
|
||
begin
|
||
cZam:= '';
|
||
if Helios.Prenos(86,'Cislo',oVar1,'','Zam<61>stnanec',true) then
|
||
cZam:= VarToStr(oVar1);
|
||
if cZam<>'' then
|
||
with Helios.OpenSQL('SELECT Prijmeni,Jmeno FROM ' + tblCZam + ' WHERE Cislo=' + cZam) do
|
||
begin
|
||
iZam:= StrToInt(cZam);
|
||
edtVedl.Text:= Format('%.6d',[iZam]);
|
||
edtVedlPrijm.Text:= VarToStr(FieldValues(0));
|
||
edtVedlJm.Text:= VarToStr(FieldValues(1));
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.selVedlJmClick(Sender: TObject);
|
||
begin
|
||
selVedlCisloClick(Sender);
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.selVedlPrijmClick(Sender: TObject);
|
||
begin
|
||
selVedlCisloClick(Sender);
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.FormShow(Sender: TObject);
|
||
var sTmp: string;
|
||
hFnd: THandle;
|
||
idx: Integer;
|
||
begin
|
||
SendMessage(Self.Handle, WM_SETICON, 0, Helios.MainApplicationIconHandle);
|
||
dtpZac.DateTime:= Now;
|
||
dtpZacCas.DateTime:= Now;
|
||
dtpKon.DateTime:= Now;
|
||
dtpKonCas.DateTime:= Now;
|
||
|
||
Self.Font.Name:= Helios.Font;
|
||
Self.Font.Height:= Helios.FontHeight;
|
||
|
||
bgCol:= clWindow;
|
||
with Helios.OpenSQL('SELECT BarvaPodbarveni FROM TabUziv WHERE BarevnePodbarveni=1 AND LoginName=N' + QuotedStr(Helios.LoginName)) do
|
||
if RecordCount>0 then
|
||
bgCol:= StrToInt(VarToStr(FieldValues(0)));
|
||
idx:= 0;
|
||
while idx<Self.ComponentCount-1 do
|
||
begin
|
||
if (Self.Components[idx] is TTB_Edit) then
|
||
(Self.Components[idx] as TTB_Edit).ColorOnEnter:= bgCol;
|
||
if (Self.Components[idx] is TTB_Memo) then
|
||
(Self.Components[idx] as TTB_Memo).ColorOnEnter:= bgCol;
|
||
Inc(idx);
|
||
end;
|
||
|
||
iCis:= 1;
|
||
sql:= 'SELECT PoradoveCislo FROM ' + tblAkt + ' WHERE ';
|
||
if idAkt<1 then
|
||
sql:= sql + 'Kategorie=N' + QuotedStr(Helios.KategorieKJ)
|
||
else
|
||
sql:= sql + 'id=' + IntToStr(idAkt);
|
||
with Helios.OpenSQL(sql) do
|
||
if RecordCount>0 then
|
||
begin
|
||
sCis:= VarToStr(FieldValues(0));
|
||
iCis:= StrToInt(sCis);
|
||
if idAkt<1 then
|
||
begin
|
||
Inc(iCis);
|
||
sCis:= IntToStr(iCis);
|
||
end;
|
||
end;
|
||
|
||
sCis:= Format('%.6d',[iCis]);
|
||
Self.Caption:= ' ' + Helios.KategorieKJ + ' ' + sCis;
|
||
edtCislo.Text:= sCis;
|
||
edtKat.Text:= Helios.KategorieKJ;
|
||
|
||
hFnd:= GetModuleHandle('helios.exe');
|
||
SetLength(sTmp, MAX_PATH+1);
|
||
SetLength(sTmp, GetModuleFileName(hFnd, PChar(sTmp), MAX_PATH+1));
|
||
imgList.Clear;
|
||
iPrev:= TIcon.Create;
|
||
iPrev.SetSize(32,32);
|
||
iPrev.Handle:= ExtractIcon(hFnd,PChar(sTmp),20); // X_DBPRIOR
|
||
imgList.AddIcon(iPrev);
|
||
iNext:= TIcon.Create;
|
||
iNext.SetSize(32,32);
|
||
iNext.Handle:= ExtractIcon(hFnd,PChar(sTmp),19); // X_DBNEXT
|
||
imgList.AddIcon(iNext);
|
||
|
||
pgCtrl.ActivePageIndex:= 0;
|
||
if idAkt>0 then
|
||
NactiAktivitu;
|
||
edtCislo.SetFocus;
|
||
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.memoPopisEnter(Sender: TObject);
|
||
begin
|
||
memoPopis.Color:= bgCol;
|
||
end;
|
||
|
||
|
||
|
||
procedure TformCRM_Aktivity.memoPopisExit(Sender: TObject);
|
||
begin
|
||
memoPopis.Color:= clWindow;
|
||
end;
|
||
|
||
end.
|