Jump to content

andyhill

uniGUI Subscriber
  • Posts

    1268
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by andyhill

  1. I have 7 IP's bound to 1 NIC. Each IP is assigned to a Domain with its own Digital Certificate (SSL). I use 7 StandAlone Servers, one for each IP - all works fine. On one particular Domain (IP) hosts my Accounting WebApp, the user has to fill in a Database Name (which I use localstorage to remember) along with his/her own User Credentials and this identifies the DataBase (Book Of Accounts) to use. Thus unlimited Company Books on one IP/Domain with multiple users are catered for.
  2. Yes, back then off memory it was 4bit processors, 4K RAM and tape recorder Read/Write (known as Hexadecimal Monitors - not computers). While CashBook was not an identity back then the ASM Library Logic I developed is in this project today.
  3. A long time ago Mobile PDF Viewer would crash iOS to the metal after zooming in/out panning. It had something to do with UniGUI/JS canvas spilling out of it's Parent Form into the hidden master form with all viewport scaling broken.
  4. I have been working with UniGUI for many years now and have built many projects - Desktop / Mobile / HyBrid. Below is a few screen grabs from my Desktop CashBook (a UniGUI port from a legacy Delphi 7 project) - yes I know it lacks pretty pictures BUT there is a lot going on under the hood - one day I may make it pretty. Un-Limited CashBooks, Multi-Currency, Individual User Privileges, Customer Specific Discounts, Un-Limited: Suppliers, ItemsForSale, Customers, PurchaseOrders, SalesInvoices plus AustralianBAS, PDF Generation, eMailing, BankStatementImport and many many Reports etc. etc. Designed to run on a specific IP (with or without digital certificate) on multiple-Bound IP's on a single NIC. Splash screen from public domain, unknown artist.
  5. Can we have the corresponding CSS too ? Thanks
  6. Sherzod, this creates a new grid in a panel, I want to use an already built grid and feed it json data - please advise.
  7. I have created the following store at runtime, how do I assign this store to my grid ? UniSession.AddJS(grdUsers00.JSName + '.store = "Grid1Store"; '); does nothing ? MyScript:= 'var Grid1Store = new Ext.data.JsonStore( ' + '{ ' + ' root: "users", ' + ' fields: ["id", "name", "email"], ' + ' autoLoad: true, ' + ' data: ' + ' { ' + ' users: [ ' + ' { "id": 1, "name":"John Smith", "email":"jsmith@example.com"}, ' + ' { "id": 2, "name":"Anna Smith", "email":"asmith@example.com"}, ' + ' { "id": 3, "name":"Peter Smith", "email":"psmith@example.com"}, ' + ' { "id": 4, "name":"Tom Smith", "email":"tsmith@example.com"}, ' + ' { "id": 5, "name":"Andy Smith", "email":"asmith@example.com"}, ' + ' { "id": 6, "name":"Nick Smith", "email":"nsmith@example.com"} ' + ' ] ' + ' } ' + '}); '+ 'Grid1Store.load(); '; UniSession.AddJS(MyScript);
  8. I am using Native Sencha objects - not Delphi UniGUI AuxControl objects.
  9. Here is an extract from one of my forms - the only problem is I have not worked out yet how to change the dates outside of the Date Grid Ajax Events, that is I can get Date Changes via their respective events but I want to access these date objects when the Sync Button is pressed, in other words get date from FromDateID and Set ToDateID with the same date. Happy for some help. ////////////////////////////////////////////////////////////////////////////// // Grid Uni Events (Buttons/Ajax) with grdSupplierB01 do begin ClientEvents.UniEvents.Clear; MyScript:= 'pagingBar.afterCreate=function pagingBar.afterCreate(sender) ' + '{ ' + ' ' + ' sender.add( ' + ' [ ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "button", ' + ' iconCls: "pictos pictos-refresh", ' + ' width: 24, ' + ' height: 24, ' + ' tooltip: "UnDo Changes", ' + ' handler: function() ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_UnDoChanges_", []); ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "button", ' + ' iconCls: "pictos pictos-pencil", ' + ' width: 24, ' + ' height: 24, ' + ' tooltip: "Edit Record", ' + ' handler: function() ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_EditRecord_", []); ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "button", ' + ' iconCls: "pictos pictos-check2", ' + ' width: 24, ' + ' height: 24, ' + ' tooltip: "Post", ' + ' handler: function() ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_PostRecord_", []); ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "button", ' + ' iconCls: "pictos pictos-add", ' + ' width: 24, ' + ' height: 24, ' + ' tooltip: "Add", ' + ' handler: function() ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_AddRecord_", []); ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "button", ' + ' iconCls: "pictos pictos-delete", ' + ' width: 24, ' + ' height: 24, ' + ' tooltip: "Delete", ' + ' handler: function() ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_DeleteRecord_", []); ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "datefield", ' + ' fieldLabel: "", ' + ' formatText: "From Date", ' + ' labelWidth: "0px", ' + ' format: "d/m/Y", ' + ' value: new Date(), ' + ' id: "FromDateID", ' + ' width: 120, ' + ' startDay: 1, ' + ' listeners: ' + ' { ' + ' change: function(el, v) ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_FromDateIDChange_", ["dtIndx=0", "val=" + Ext.Date.format(v, "d/m/Y")]) ' + ' } ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "button", ' + ' iconCls: "pictos pictos-calendar", ' + ' width: 24, ' + ' height: 24, ' + ' tooltip: "Sync Dates", ' + ' handler: function() ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_SyncDateID_", []); ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' { ' + ' xtype: "datefield", ' + ' fieldLabel: "", ' + ' formatText: "To Date", ' + ' labelWidth: "0px", ' + ' format: "d/m/Y", ' + ' value: new Date(), ' + ' id: "ToDateID", ' + ' width: 120, ' + ' startDay: 1, ' + ' listeners: ' + ' { ' + ' change: function(el, v) ' + ' { ' + ' ajaxRequest(fSupplierB.grdSupplierB01, "_ToDateIDChange_", ["dtIndx=0", "val=" + Ext.Date.format(v, "d/m/Y")]) ' + ' } ' + ' } ' + ' }, ' + ' { ' + ' xtype: "tbseparator" ' + ' }, ' + ' ]); ' + '} '; ClientEvents.UniEvents.Add(MyScript); end;
  10. Has anyone used Sencha's FROALA HtmlEditor ? How can we use with UniGUI ? https://fiddle.sencha.com/#view/editor&fiddle/2l30
  11. JarakZ, do you have the project example of how you built the testpivot.html ?
  12. Hayri, I appreciate your comments however you are only telling me what I already found out via testing. What I would like is the ability to print grids without third party intervention - not a big ask when one considers most of the functionality is already there. I ask that the UniGUI developers consider this.
  13. Exporter adds Default Title if left blank. Exporter auto-downloads to client, I do not want it to download to client, I want it to export to Server where I will post process. Changing dbGrid.WebOptions.Paged:= False; at runtime fails. Assigning dbGrid.Exporter.Exporter:= UniGridHTMLExporter1; at runtime fails.
  14. Goal: Make a quick and nasty Grid Print. Testing Grid Exporter I found I need more control over the results. I want to export a Grid to HTML and optionally save the results on Server silently, then process the HTML result dynamically, finally load it into a HTMLFrame and Print. Problems found with current implementation:- Cannot dynamically link and enable Exporter at runtime ? Cannot dynamically Turn On/Off Grid Paging at runtime ? Cannot control exported File Location (Client/Server) ? // dbGridItems.WebOptions.Paged:= False; // NEVER CHAGES // dbGridItems.JSInterface.JSCall('pagingBar.getComponent("refresh").click', []); //dbGridItems.Exporter.Exporter:= UniGridHTMLExporter1; // CRASHES //dbGridItems.Exporter.Enabled:= True; dbGridItems.Exporter.ExportGrid; //dbGridItems.Exporter.Enabled:= False; // dbGridItems.WebOptions.Paged:= True; Please advise - Thanks
  15. Please show me how to Update a HTMLMemo Font List when formatted text is pasted into the memo containing a non listed Font Name ? Thanks
  16. I would also like to forbid the Password Manager (not via the browser settings) via javascript to ignore my UniGui password objects, can someone please advise - thanks.
  17. Steve, when you get ZOOM working under UniGUI I would be keen to see the source code if you were willing
  18. I personally would use a HTMLFrame and manually build the script at runtime accessing the data, in this way the sky is the limit - maybe I am old fashioned.
  19. alfr, I think I have gone brain dead in vertically lining up my check boxes, if you would be so kind, check out my rough and simple generator (my Checkbox Top calcs do not work the same as the Text/Combo Top calcs) - I have tried so many ways I have to stop for a break ? It hard code writes to "C:\Temp". FormGenerator.exe
  20. Thank you alfr - your amazing, I was aware about the ToolBar placement but was working on the bigger picture. You have achieved my goal and although it is an exercise in layouts I will develop from this concept via Auto-Form generation with different variations. I love UniGUI but the fact that many of the IDE parameter editors are invalid on UniGUI Objects makes it harder to quickly get that perfect display result. It would be amazing if the UniGUI Team could hide or disable useless property editors in the IDE environment for UniGUI Objects. I also look forward to UniGUI objects having full unified ajax implementations rather than the current variations in their implementations. I hope I can return the favor in the future.
  21. alfr, thank you for your input. Your right it is not exactly how I wanted the end result. As you know when writing UniGUI apps it is imperative that the results render correctly on the end users hardware which is an absolute must when working with Mobile, however Desktop devices that run at Hi-Resolution (Microsoft Surface etc.) different to the Server/DesignPC hardware are also in need of this precise rendering (one can no longer think like VCL [AlignmentControl:= uniAlignmentServer]). My goal was to build a UniGUI Form Generator for editing many table fields at once simplifying the coding process of Form Design and Rendering, that is, to use my generator to create the basic form and its associated objects, then at the project level, add the generated pas/dfm files to the project and tweak to match the project's specific needs). The "Users" Form(pas/dfm) was one such example. My goal:- PanelOne (to claim 75% of the screen) which holds three FieldContainers (each field container holds up to 20 Label/Edit combinations) therefore it may take up more than 75% of the screen, as the panel object has no scroll capabilities (config.scrollable = true) it must be rendered inside a ScrollBox that only claims 75% of the screen realestate - scrolling edits in and out of view as necessary. PanelTwo set at 25% of the screen holds a HtmlEditor which always displays at the same size and position. Ideally:- [ToolBar] always in view at top of form, never moves out of view [ScrollBox] holds PanelOne and its contents - never claims more than 75% of the screen (PanelOne may require scrolling to access all of the edits) [PanelTwo] 25% of screen holds HtmlMemo always in view at the bottom of the form and never changes You could say this is an exercise in getting out of UniGUI ones exact needs rather than bowing down to a not quite ideal result with lots of future enhancements to come. I would love it if Farshad or Sherzod showed us all how to achieve this requirement above.
×
×
  • Create New...