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žit ú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ě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 idx0 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.