Jump to content

Mobile TUnimDBListGrid Expand / Collapse extra data columns suggestions


andyhill

Recommended Posts

I am exploring the Mobile TUnimDBListGrid and looking for suggestions on how to show the extra data.

 

I modify the SQL fetched rowset columns at runtime and will want to add Summary's shortly (I have no problem with Desktop and TUniDBGrid).

 

My code:-

 

    for i:= 0 to TAccessListGrid(UnimDBListGrid1).Columns.Count-1 do begin
      // DepartmentName
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('DepartmentName') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 200; 
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'Department Name';
        us.Alignment:= TAlignment(taLeftJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        // TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taLeftJustify;
      end;
      // ServicedCalls
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('ServicedCalls') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'S.Calls';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        // TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
        // TAccessListGrid(UnimDBListGrid1).Columns.ShowSummary:= True;
      end;
      // ServicedCallBacks
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('ServicedCallBacks') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'S.CallBacks';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
        // TAccessListGrid(UnimDBListGrid1).Columns.ShowSummary:= True;
      end;
      // ServicedAverageWait
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('ServicedAverageWait') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'S.AvgWait';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
      end;
      // ServicedLongestWait
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('ServicedLongestWait') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'S.LngWait';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
      end;
      // ServicedAverageTalk
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('ServicedAverageTalk') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'S.AvgTalk';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
      end;
      // ServicedLongestTalk
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('ServicedLongestTalk') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'S.LngTalk';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
      end;
      //////////////////////////////////////////////////////////////////////
      // AbandonedCalls
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('AbandonedCalls') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'A.Calls';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        //TAccessListGrid(UnimDBListGrid1).Columns.ShowSummary:= True;
      end;
      // AbandonedLongestWait
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('AbandonedLongestWait') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'A.LngWait';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
      end;
      // AbandonedAverageWait
      if UpperCase(TAccessListGrid(UnimDBListGrid1).Columns.FieldName) = UpperCase('AbandonedAverageWait') then begin
        TAccessListGrid(UnimDBListGrid1).Columns.Visible:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Width:= 80;
        us:= TAccessListGrid(UnimDBListGrid1).Columns.Title;
        us.Caption:= 'A.AvgWait';
        us.Alignment:= TAlignment(taRightJustify);
        TAccessListGrid(UnimDBListGrid1).Columns.Title:= us;
        //TAccessListGrid(UnimDBListGrid1).Columns.Sortable:= True;
        TAccessListGrid(UnimDBListGrid1).Columns.Alignment:= taRightJustify; 
      end;
      //
    end; // for
 

In the future I would want to test for Tablet and Landscape mode so as to build appropriate layouts.

 

post-5752-0-62782500-1507961425_thumb.jpg

Link to comment
Share on other sites

You refer to demos, 'touch' folder, beside that the front-end is Sencha Extjs which is the most proffessional frame work for developing web applications and it is cross browser and cross platform, so it will work as expected in any device or platform, we already have many projects in production for several years and all works great.

Link to comment
Share on other sites

I never questioned Sencha, only trying to use it via UniGUI. 

 

Some demos use the Midas.dll (datasnap, bde, interbase etc.) which I do not use or install for many reasons. I feel it would have been a better idea to use a MemData type data store instead.

 

Also, most demos are of minimal code and mostly IDE assembled, this makes it hard to learn especially when documentation is minimal, scarce or even non existent including a lack of entry's to consult in the forum.

 

I was hoping someone would show me in code the principle of how to achieve what I originally asked for (shown in attachment), I understand nobody has to do anything but I am only trying to move forward.

 

Don't get me wrong, I am excited in what UniGUI is promising but coming from a purely Delphi past it takes a while to work out what is going on.

 

An example of this was my request for SessionID where originally I was questioned why I would want such a thing, then finally told it is part of UniSession but never shown how to implement UniSession - through brute force and trial and error I worked it out the hard way only to be advised - yes it is a string when I already had worked that out.

 

I probably have many more things to ask in the future where at least others who follow will at least have example code on the forum to answer similar questions.

Link to comment
Share on other sites

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...