Jump to content
uniGUI Discussion Forums
Sign in to follow this  
pro_imaj

UniCalendarPanel am-pm sorunu

Recommended Posts

Merhaba;

 

Ekteki dosyadaki gibi UniCalendarPanel ile Gün yada hafta sekmesine geldiğimde  saatleri am/pm şeklinde gösteriyor oysa ben 10:00 ve 22:00 gibi göstermesini istiyorum bununla birlikte resimdeki Today yazısını da Türkçeleştiremedim bunların yolu var mıdır böyle mi kullanmalıyım.

 

Teşekkürler.

post-2787-0-68893500-1462961511_thumb.jpg

Share this post


Link to post
Share on other sites

Merhabalar;

 

Maalesef şimdilik birşey yapamıyoruz. Sorunu not aldık ileriki sürümlerde çözmeye çalışacağız.

Share this post


Link to post
Share on other sites

Çok teşekkür ederim, umarım kısa sürede yapılabilir bir taleptir.

 

İyi çalışmalar.

Share this post


Link to post
Share on other sites

Merhaba Buğra Bey;

 

Aşağıdaki komut ile kaydedilen bilgileri ben database alan alan yazmak istiyorum bunu nasıl yaparım acaba
 
UniCalendarPanel1.Events.SaveToFile(FName);
 
 
*Ekteki dosyadaki her bir alanı tabloya ayrı ayrı yazmak.

Share this post


Link to post
Share on other sites

Merhabalar

 

O dosyayı oluşturup bilgileri geri oradan okumak yerine aşağıdaki koda benzer bir biçimde yapabilirsiniz.

  for I := 0 to  UniCalendarPanel1.Events.Count-1 do
  begin
    Database.Append;
    Database.FieldByName('CalendarId').AsString := UniCalendarPanel1.Events.Item[I].CalendarId;
    Database.FieldByName('Title').AsString := UniCalendarPanel1.Events.Item[I].Title;
    Database.FieldByName('Title').AsDateTime := UniCalendarPanel1.Events.Item[I].StartDate;
    Database.FieldByName('Title').AsDateTime := UniCalendarPanel1.Events.Item[I].EndDate;
    Database.FieldByName('Title').AsString := UniCalendarPanel1.Events.Item[I].Reminder;
    Database.FieldByName('Title').AsBool := UniCalendarPanel1.Events.Item[I].IsAllDay;
    Database.Post;
  end;

ya da daha mantıklı bir yöntem olarak her eventi oluşturduğunuz anda database'e yazabilirsiniz.

Share this post


Link to post
Share on other sites

Merhaba Buğra Bey;

Cevabınız için çok teşekkür ederim.

Tittle aynı olan işler olduğunda kullanıcı title değiştirdiğinde bunu algılayıp tabloyu güncellemek çok zor.

Her işlem için bir ID verse çok daha mantıklı olur, böylelikte tabloda güncelleme yaparken ID alanına göre güncellemiş oluruz.

 

Şu durumda kullanıcı bütün alanlarını aynı girdiği iki iş olsa bu ayır edilemiyor.

Veya kullanıcı işlerin başlıkları değiştiğinde de ayırt edilemiyor.

Share this post


Link to post
Share on other sites

Örnek;

1-Kullanıcı ilk kaydı ekledi ve kaydet deyince bizde tabloya verileri ekledik.

2-Kullanıcı kaydettiği veriye tıklayarak tarih saat ve başlık bilgilerini değiştirdiğinde tabloda güncellenmesi gereken kayıt key bilgileri kalktığı için tabloda güncellenemeyecek.

Share this post


Link to post
Share on other sites



TUniCalendarEvent = class(TPersistent)
protected
function GetEventId: Integer; virtual; abstract;
procedure SetCalendarId(Value: Integer); virtual; abstract;
function GetCalendarId: Integer; virtual; abstract;
procedure SetTitle(Value: string); virtual; abstract;
function GetTitle: string; virtual; abstract;
procedure SetStart(Value: TDateTime); virtual; abstract;
function GetStart: TDateTime; virtual; abstract;
procedure SetEnd(Value: TDateTime); virtual; abstract;
function GetEnd: TDateTime; virtual; abstract;
procedure SetLocation(Value: string); virtual; abstract;
function GetLocation: string; virtual; abstract;
procedure SetNotes(Value: string); virtual; abstract;
function GetNotes: string; virtual; abstract;
procedure SetUrl(Value: string); virtual; abstract;
function GetUrl: string; virtual; abstract;
procedure SetIsAllDay(Value: Boolean); virtual; abstract;
function GetIsAllDay: Boolean; virtual; abstract;
procedure SetReminder(Value: string); virtual; abstract;
function GetReminder: string; virtual; abstract;
procedure SetIsNew(Value: Boolean); virtual; abstract;
function GetIsNew: Boolean; virtual; abstract;
public
procedure Assign(Source: TPersistent); override;

procedure ReadFromStream(Stream: TStream); virtual; abstract;
procedure WriteToStream(Stream: TStream); virtual; abstract;

property EventId : Integer read GetEventId; // property CalendarId : Integer read GetCalendarId write SetCalendarId;
property Title : string read GetTitle write SetTitle;
property StartDate : TDateTime read GetStart write SetStart;
property EndDate : TDateTime read GetEnd write SetEnd;
property Location : string read GetLocation write SetLocation;
property Notes : string read GetNotes write SetNotes;
property Url: string read GetUrl write SetUrl;
property IsAllDay : Boolean read GetIsAllDay write SetIsAllDay;
property Reminder : string read GetReminder write SetReminder;
property IsNew : Boolean read GetIsNew write SetIsNew;
end;

 

Share this post


Link to post
Share on other sites

Cevaplar için çok teşekkür ederim.

Fazlasıyla işimi gördü.

 

İyi çalışmalar dilerim.

Share this post


Link to post
Share on other sites

Günlük ve haftalıkta 12 saat (am-pm) sorunu @Delphi Developer bahsetttiği şekilde çözdüm, aylık bazında görüntüde sorun devam ediyor.

 

 

MainForm -> ClientEvents -> UniEvents add function window.beforeInit

function window.beforeInit(sender)
{
 Ext.calendar.template.DayBody.override({
    
            constructor: function(config){
        
                Ext.apply(this, config);

                Ext.calendar.template.DayBody.superclass.constructor([
                    '<table class="ext-cal-bg-tbl" cellspacing="0" cellpadding="0">',
                '<tbody>',
                    '<tr height="1">',
                        '<td class="ext-cal-gutter"></td>',
                        '<td colspan="{dayCount}">',
                            '<div class="ext-cal-bg-rows">',
                                '<div class="ext-cal-bg-rows-inner">',
                                    '<tpl for="times">',
                                        '<div class="ext-cal-bg-row">',
                                            '<div class="ext-cal-bg-row-div ext-row-{[xindex]}"></div>',
                                        '</div>',
                                    '</tpl>',
                                '</div>',
                            '</div>',
                        '</td>',
                    '</tr>',
                    '<tr>',
                        '<td class="ext-cal-day-times">',
                            '<tpl for="times">',
                                '<div class="ext-cal-bg-row">',
                                    '<div class="ext-cal-day-time-inner">{.}</div>',
                                '</div>',
                            '</tpl>',
                        '</td>',
                        '<tpl for="days">',
                            '<td class="ext-cal-day-col">',
                                '<div class="ext-cal-day-col-inner">',
                                    '<div id="{[this.id]}-day-col-{.:date("Ymd")}" class="ext-cal-day-col-gutter"></div>',
                                '</div>',
                            '</td>',
                        '</tpl>',
                    '</tr>',
                '</tbody>',
            '</table>'
                ]);
            },

            // private
            applyTemplate : function(o){
                this.today = Ext.calendar.util.Date.today();
                this.dayCount = this.dayCount || 1;
        
                var i =0,
                    days = [],
                    dt = Ext.Date.clone(o.viewStart),
                    times = [];
            
                for(; i<this.dayCount; i++){
                    days[i] = Ext.calendar.util.Date.add(dt, {days: i});
                }

                // use a fixed DST-safe date so times don't get skipped on DST boundaries
                dt = Ext.Date.clearTime(new Date('5/26/1972'));
        
                for(i=0; i<24; i++){
                    times.push(Ext.Date.format(dt, 'G:i'));
                    dt = Ext.calendar.util.Date.add(dt, {hours: 1});
                }
        
                return this.applyOut({
                    days: days,
                    dayCount: days.length,
                    times: times
                }, []).join('');
            }
        });
}

Share this post


Link to post
Share on other sites

Artık  Ext JS 6.5'a geçiyoruz ve oradaki Calendar komponenti tamamen farklı ve Sencha tarafından yeniden yazılmış. Bu tür sorunların çözümü daha kolay olacak diye umuyorum.

Share this post


Link to post
Share on other sites

Teşekkürler, diğer bütün componentlerde de yenilikler için 6.5 sabırsızlıkla bekliyoruz.

 

İyi çalışmalar.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×