Prvni verze na Git
This commit is contained in:
443
frmUnit3.pas
Normal file
443
frmUnit3.pas
Normal file
@ -0,0 +1,443 @@
|
||||
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.
|
||||
Reference in New Issue
Block a user