Jump to content

Recommended Posts

Posted
2 hours ago, Артем said:

I want that when user press button "Cancel", in RowEditor, will be working my code. 

Hello,

One possible solution by using ClientEvents...

UniDBGrid1.ClientEvents.ExtEvents -> 

function canceledit(editor, context, eOpts)
{
    ajaxRequest(this, '_cancel', []);
}
procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin

end;

 

Posted
51 minutes ago, Sherzod said:

Hello,

One possible solution by using ClientEvents...

UniDBGrid1.ClientEvents.ExtEvents -> 


function canceledit(editor, context, eOpts)
{
    ajaxRequest(this, '_cancel', []);
}

procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin

end;

 

Hm...Not working...

I was write this:

procedure TUniFrameM1.UniDBGridReportsOfGroupAjaxEvent(Sender: TComponent;
  EventName: string; Params: TUniStrings);
begin
  ShowMessageN('1111');
end;

And message not showing when I press "Cancel" in RowEditor...

Posted
6 minutes ago, Sherzod said:

Can you make a simple testcase for check!?

Sorry, can't. Commercical project.

If you are solution is principal working, but no... My ShowMessageN is ignoring by the RowEditor… :(

Posted
2 minutes ago, Артем said:

I understand why code in procedure not working...

?

2 minutes ago, Артем said:

Anybody have idea how do it?

Please try to make a simple testcase for reproduce.

Posted
1 minute ago, Sherzod said:

?

Please try to make a simple testcase for reproduce.

I already told you yesterday that:

Quote

Sorry, can't. Commercical project

You answer me that you try ro analizy.

I have advanced question: How disable (or hide) RowEditor in RunTime? 

Posted
6 minutes ago, Артем said:

You answer me that you try ro analizy.

Sorry, 

Возможно я не правильно выразился. Это также означает, "Попробуйте проанализировать это на новом проекте".

 

Posted
1 minute ago, Sherzod said:

Sorry, 

Возможно я не правильно выразился. Это также означает, "Попробуйте проанализировать это на новом проекте".

 

Да там, по-сути, одна строчка кода. Я не думаю, что на новом проекте заработает. У вас есть какой-нибудь проект, в который бы вы могли поместить ваше же решение?

Posted
1 minute ago, Артем said:

У вас есть какой-нибудь проект, в который бы вы могли поместить ваше же решение?

Да конечно, к примеру на демо примере, работает без проблем:

\FMSoft\Framework\uniGUI\Demos\Desktop\GridEditors - Row Editor

 

Posted
36 minutes ago, Sherzod said:

Да конечно, к примеру на демо примере, работает без проблем:


\FMSoft\Framework\uniGUI\Demos\Desktop\GridEditors - Row Editor

 

Посмотрел пример.

Я там вообще не вижу того, что нужно. Ни вашего кода, ни возможности отключать RowEditor во время работы программы в RunTime...

Posted
23 hours ago, Sherzod said:

Hello,

One possible solution by using ClientEvents...

UniDBGrid1.ClientEvents.ExtEvents -> 


function canceledit(editor, context, eOpts)
{
    ajaxRequest(this, '_cancel', []);
}

procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin

end;

 

Я сделал как вы сказали и вот что получилось.

Когда у меня открывается форма, то срабатывает отображение сообщения, т.е. этот код:

procedure TUniFrameM1.UniDBGridReportsOfGroupAjaxEvent(Sender: TComponent;
  EventName: string; Params: TUniStrings);
begin
  ShowMessageN('1111');
end;

А вот после этого сообщения загрузка данных в UniDBGrid  не происходит.

Может что-то неправильно в этом коде?

function canceledit(editor, context, eOpts)
{
    ajaxRequest(this, '_cancel', []);
}

 

Posted
23 hours ago, Sherzod said:

procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); begin end;

Артем, Вы должны добавить условие!!

procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin
  if EventName = '_cancel' then
  begin
    // Ваш код
  end
end;

 

  • Like 1
Posted
4 minutes ago, Sherzod said:

Артем, Вы должны добавить условие!!


procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin
  if EventName = '_cancel' then
  begin
    // Ваш код
  end
end;

 

Не, я же не знал, что надо это условие добавить, ведь я использовал ваш код, а он был без этого условия дан вами.

Сейчас работает, спасибо большое! :)

А как называется условие, которое срабатывает для второй кнопки? И вообще, где вы берете информацию об этом, обо всех этих названиях, JS для компонентов?

 

  • Like 1
Posted
Just now, Артем said:

Не, я же не знал, что надо это условие добавить, ведь я использовал ваш код, а он был без этого условия дан вами.

Простите... :)   Вообще-то я хотел дать Вам и это событие пустым :) 

function canceledit(editor, context, eOpts) { 
    //
}

 

  • Like 1
Posted
1 minute ago, Sherzod said:

Простите... :)   Вообще-то я хотел дать Вам и это событие пустым :) 


function canceledit(editor, context, eOpts) { 
    //
}

 

Спасибо, что не дали его пустым :)

  • Like 1
Posted
11 minutes ago, Артем said:

А как называется условие, которое срабатывает для второй кнопки?

Должно быть edit:

function edit(editor, context, eOpts)
{
    ajaxRequest(this, '_edit', []);
}
procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin
  if EventName = '_cancel' then
  begin
    // Ваш код
  end
  else if EventName = '_edit' then
  begin
    //
  end
end;

 

  • Like 1
Posted
On 2/29/2020 at 11:18 PM, Sherzod said:

Должно быть edit:


function edit(editor, context, eOpts)
{
    ajaxRequest(this, '_edit', []);
}

procedure TMainForm.UniDBGrid1AjaxEvent(Sender: TComponent; EventName: string;
  Params: TUniStrings);
begin
  if EventName = '_cancel' then
  begin
    // Ваш код
  end
  else if EventName = '_edit' then
  begin
    //
  end
end;

 

Сделал как вы написали. Но, после перезагрузки данных в UniDBGrid выдается ошибка:

_cgds_(O385,true);delete O385_Cols;O385.refreshColumnCache=true;O385.discardColumns(); O59A=new Ext.grid.column.RowNumberer({width:40,align:"center",hideable:false,resizable:false,draggable:false,menuDisabled:true,text:" ",dataIndex:-2});O59A.nm="O59A"; O5A2=new Ext.grid.column.Column({ogrid:O385,dataIndex:"0",renderer:_rndcll_,rdonly:false,showQTip:true,showQTipAlways:true,text:"Создан",menuDisabled:true,align:"center",width:242,attr:"{fc:'#808080',fts:'font-size:12px'}",editor:{xtype:"textfield",fieldStyle:"color:#808080"}});O5A2.nm="O5A2";O5A2.editor.uform=O385.uform;O5A2.editor.focusDisabled=true;O5A2.editor.isCellEditor=true; O5AA=new Ext.grid.column.Column({ogrid:O385,minWidth:65,dataIndex:"1",renderer:_rndcll_,rdonly:true,text:"Пол",menuDisabled:true,align:"center",ct:"number",width:65,attr:"{fts:'font-size:12px'}",unEditable:true});O5AA.nm="O5AA"; O5B2=new Ext.grid.column.Column({ogrid:O385,minWidth:130,dataIndex:"2",renderer:_rndcll_,rdonly:false,showQTip:true,showQTipAlways:true,text:"Дата рождения",hideable:false,align:"center",cf:"d.m.Y",ct:"date",width:130,attr:"{fts:'font-size:12px'}",editor:O44D,uEditor:O44D});O5B2.nm="O5B2";var e=O44D;if(e.picker){e.picker.destroy();delete e.picker;};O44D.name="2";O5B2.editor.focusDisabled=true;O5B2.editor.isCellEditor=true; O5BA=new Ext.grid.column.Column({ogrid:O385,minWidth:110,dataIndex:"3",renderer:_rndcll_,rdonly:false,showQTip:true,showQTipAlways:true,text:"Фамилия",hideable:false,width:110,attr:"{fts:'font-size:12px'}",editor:{xtype:"textfield",fieldStyle:"color:#000000"}});O5BA.nm="O5BA";O5BA.editor.uform=O385.uform;O5BA.editor.focusDisabled=true;O5BA.editor.isCellEditor=true; O5C2=new Ext.grid.column.Column({ogrid:O385,minWidth:110,dataIndex:"4",renderer:_rndcll_,rdonly:false,showQTip:true,showQTipAlways:true,text:"Имя",hideable:false,width:110,attr:"{fts:'font-size:12px'}",editor:{xtype:"textfield",fieldStyle:"color:#000000"}});O5C2.nm="O5C2";O5C2.editor.uform=O385.uform;O5C2.editor.focusDisabled=true;O5C2.editor.isCellEditor=true; O5CA=new Ext.grid.column.Column({ogrid:O385,minWidth:110,dataIndex:"5",renderer:_rndcll_,rdonly:false,showQTip:true,showQTipAlways:true,text:"Отчество",hideable:false,width:110,attr:"{fts:'font-size:12px'}",editor:{xtype:"textfield",fieldStyle:"color:#000000"}});O5CA.nm="O5CA";O5CA.editor.uform=O385.uform;O5CA.editor.focusDisabled=true;O5CA.editor.isCellEditor=true;var O385_Cols=[O59A,O5A2,O5AA,O5B2,O5BA,O5C2,O5CA];O385.reconfigure(null,O385_Cols);O385.uniConfigColumns();O5A2.setElProp({"text-align":"center"},null,0,null,null,"titleEl");O5AA.setElProp({"text-align":"center"},null,0,null,null,"titleEl");O5B2.setElProp({"background-color":"#FFFFF2","text-align":"center"},null,0,null,null,"titleEl");O5BA.setElProp({"background-color":"#FFFFF2","text-align":"center"},null,0,null,null,"titleEl");O5C2.setElProp({"background-color":"#FFFFF2","text-align":"center"},null,0,null,null,"titleEl");O5CA.setElProp({"background-color":"#FFFFF2","text-align":"center"},null,0,null,null,"titleEl");_gsc_(O390,0,3);

Сам код простой:

procedure TUniFrameM1.UniDBGridUsersOfProjectAjaxEvent(Sender: TComponent;
  EventName: string; Params: TUniStrings);
var
  proc: procedure(ACliHandle: Pointer;
                 msccOrgRequisiteINN: WideString;
                 msccIdEditiingRecordInDictionary: Integer;
                 msccNewValue: WideString; msccActionOnRecord: Integer);
begin
  if UniDBGridUsersOfProject.DataSource.DataSet.RecordCount > 0 then
  begin
    if EventName = '_cancel' then
    begin
      UniMainModule.procHandle:=LoadLibraryW(PWideChar(UniMainModule.UserDLLName));
      try
        @proc:=GetProcAddress(UniMainModule.procHandle,PChar('ForEdit'));
        UniMainModule.FDConnection.StartTransaction;
        try
          proc(UniMainModule.FDConnection.CliHandle,
               PWideChar(UniMainModule.OrgRequisiteINN),
               UniMainModule.msccIdLockedRecord,
               (Sender as TUniDBGrid).Columns[(Sender as TUniDBGrid).CurrCol].Field.Text,1);
            UniMainModule.FDConnection.Commit;
            Application.ProcessMessages;
        except
          UniMainModule.FDConnection.Rollback;
          raise;
        end;
      finally
        Application.ProcessMessages;
        FreeLibrary(UniMainModule.procHandle);
        ReloadUsersOfProject;
        iGrowl.Info(iGrowl.Title,'Новое значение не было сохранено.');
      end;
    end;
  end;
end;

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...