• Overview

      Product Positioning

      The positioning of this product is to solve several major pain points in the traditional software development process:

      Product Features

       

      Support Complex Applications

      There are many so-called Low-Code or No-Code platforms that are popular on the market now, which can quickly build forms and processes. However, the complexity of actual business systems is masked by the appearance of fast implementation. They can only be used for some simple applications (such as single tables or simple associated applications), and can only target customers with very simple requirements, but cannot meet enterprise level complex applications.

      To achieve enterprise level complex applications, the development platform must meet the following requirements:

      Important

      This product not only meets the requirements of efficient, low-cost, and fast construction of business systems, but also supports the implementation of enterprise level complex applications very well.

       

      Quick Start

      The official version of the product supports databases such as MySql, SqlServer, Sqlite, etc.

      Note

      In order to demonstrate the functionality more quickly, the demo version of the product only supports the Sqlite database

      The product includes three catalogs:

      Important

      The client currently only supports Windows systems, while the server is written by NetCore and supports cross platform.

       

      Runtime Environment

      Server: Windows OS, Linux, Unix, dotnet sdk 6.0 or above.

      Client: Windows OS, dotnet framework 4.8 or above.

      Start Web System

      Run FTFrame.Web.exe program,The default port is 81,If you want to change the port, you can run it on the command line, for example, to replace it with port 88 :

      dotnet FTFrame.Web.dll --urls http://0.0.0.0:88

      The screen after startup is as follows:

      image-20240305142851548

      Access in browser after startup http://localhost:81/ ,the following interface appears:

      image-20240305143619770

      Enter your account and password (default account is user, password is 123), click the login button to enter the online document management page:

      image-20240305143330903

      Run Client

      Open the FTDP. exe program in the client tool directory, and the demo1 site has been opened by default.

      image-20240305144216236

      Generate Single Table Application

      Click on the right-click menu in the workspace New Page:

      image-20240305145755692

      image-20240305145915630

      Click Build Single Table Components ,Pop up the form for selecting a data table:

      image-20240305150047298

      Select a data table, for example tb_client :

      image-20240305150158288

      Click OK,it will generate a file containing Data List,Data Add,Data Modify,Data Query series components and default configuration.

      image-20240305150837058

      By using the shortcut key Ctrl+Q, the page can be published to the server. The publishing process takes about 1 second to complete. Once we access the server address, we will see the four newly generated interfaces.

      image-20240305151108006

      Note

      According to the default configuration of the server, two source files, NetCore and Java, will be generated. The source files of NetCore can be directly accessed and tested, while the Java source files need to be configured in the Java environment before they can be accessed and tested.

       

      Front-end Component Generation

      The generated Api interface can be directly called by the front-end, and this product also provides the function of directly generating Vue front-end components and front-end pages based on the interface.

      Right click in the component area of the page editing and select from the menu Go To Front-end ,can quickly generate front-end components.

      image-20240305151757024

      What is selected here is Data List component,now click Import From Api, can automatically complete the docking of the front and back ends:

      image-20240305151957530

      Select Live Preview ,We can call the embedded browser to view the configuration effect of the front-end components in real-time:

      image-20240305152148609

      For more functions on generating front-end components and front-end pages, please refer to the relevant documentation on front-end development.

      Document & Testing

      By accessing the server address through a browser, you can view and test the API documentation. Click on Column Custom to select more columns (such as input and output message formats). Click on the Net or Java link to import the API into PostMan for running and testing.

      image-20240305152832458

      The generated front-end components can be viewed and downloaded online from the front-end component list for their effects:

      image-20240305153231047

      Site Management

      The prerequisite for development is to have a site and have completed the main configuration, which includes server configuration and database configuration.

      The demo version has already added demo1 site by default, and its configuration matches the demo server.

      Add & Register

      You can add sites through Add Site and Register Site. The difference between the two is that Add Site can be added without matching the server first. When Register Site, it is necessary to verify whether the server matches before adding it.

      You can add and register sites through the main menu or site management.

      image-20240305154001738

      When collaborating with multiple developers, registered sites can be quickly registered by exporting configurations and then importing configurations.

      image-20240305154158567

      FieldDescription
      IDSite ID, mandatory
      URLThe address of the server
      UserThe sysuser field of ft_sites in the platform database
      PasswordThe syspasswd field of ft_sites in the platform database
      KeyCDKey,corresponding to the SiteCDKey in the server configuration file
      DominDisplayed domain name
      CaptionDisplay name
      GroupGroup

       

      Open Site

      Two ways to open a site:

      1: Menu File ->Open Site, double-click the site you want to open.

      image-20240305155750492

      2: Set default site in menu tools ->options, so that when opening the client tool, the site will be opened by default.

      image-20240305155906668

      Site Export & Import

      Menu Site ->Export Site, export all files and configurations of the current site to a local file.

      Menu Site ->Import Site, import local site files into the current site.

      Warning

      When importing a site, incremental import is used. If there are pages with the same file name, you can choose whether to replace them.

      If there are pages with the same file name and the current site has not been backed up, full replacement may result in data loss for the current site.

       

      Site Synchronization

      When collaborating with multiple developers, the latest files and configurations on the server can be synchronized locally.

      Note

      When publishing, the server will automatically complete each backup function and synchronize the latest version during synchronization.

      To roll back to a historical version, you can use Site Version Management to perform a full site rollback, or use Page Version Management to perform a historical rollback of individual pages and components.

      image-20240305160937031

      TypeDescription
      Blue backgroundIndicates that the file server version is newer and requires synchronization by default
      White backgroundIndicates that the file server version is the same as the local version and does not require synchronization by default
      Yellow backgroundIndicates that the file server version is older than the local version and does not require synchronization by default
      Local is emptyIndicates that the file server exists but not locally, and synchronization is required by default

       

      Version Management

      Site version management is the version management of the entire site, where version generation can be done according to:

      image-20240305162310155

      The operation of the version includes: viewing details, rolling back to the current site, downloading or exporting the version site.

      Site Publish

      Site publishing refers to publishing the specified files of the current site to the server, including several types: full publishing, specified publishing, and quick publishing.

      Suggest using a quick publishing method to publish the current individual page. There are three ways to quickly publish:

      Site Property Configuration

      Select the root node in the workspace and configure the site properties in the attribute area.

      image-20240305163156028

      The main configuration instructions for attributes are as follows:

      FieldDescription
      NetCore Local Output PathOptional. Output the published source file locally for building a local NetCore web project
      Java Local Output PathOptional. Output the published source file locally for building a local Java Web project
      IDSite ID, mandatory
      URLThe address of the server
      UserThe sysuser field of ft_sites in the platform database
      PasswordThe syspasswd field of ft_sites in the platform database
      KeyCDKey,corresponding to the SiteCDKey in the server configuration file
      DominDisplayed domain name
      CaptionDisplay name
      GroupGroup

       

      Site Structure

      Perform basic operations on site directory structure and pages in the workspace.

      Directory Management

      In the workspace, right-click menu ->New Directory

      image-20240305163731351

      When creating a new directory, you can perform directory copying operations. The directory copying function is to regenerate instances of all subdirectories, pages, and components under the specified directory and then copy them to the new directory.

      Click on the directory to be copied:

      image-20240305163911643

      To change the directory display name, you can make modifications in the properties section:

      image-20240305164044649

      Page Definition

      A page is an editing unit that has two output modes::

      New Page

      In the workspace, right-click menu ->New Page:

      image-20240305165458530

      In the actual development process, if the functionality of this page is very similar to that of another, it is often copied. If you want to copy another page, you can choose it by browsing:

      image-20240305165302747

      Warning

      If another page containing components is copied, then these component instances have not been regenerated and need to be regenerated using the method of Clone and Replace on the page to generate new component instances.

      When creating a new page, you can quickly build a single table series of components and pop up a data table selection interface:

      image-20240305150047298

      Select a data table, for example tb_client :

      image-20240305150158288

      Click OK,it will generate a file containing Data List,Data Add,Data Modify,Data Query series components and default configuration.

      image-20240305150837058

      After generating the basic components, adjustments and modifications can be made according to business needs.

      Page Export & Import

      In collaborative development or multiple project development, there is often a situation where the feature I want to do is similar to another project, or if this feature needs to be referenced and copied by other developers, the export and import functions of the specified page can be used.

      In the workspace, select the page, right-click on the menu ->Export the page for export, use the menu tools ->Import a single page and then import it again.

      Open Page

      In the workspace, double-click the page with the mouse to open it, or right-click the menu to open the page.

      Backup Management

      Every release of the page will be automatically backed up on the server.

      In the workspace, select the page, right-click on the menu ->Historical Backup for backup management. You can view all historical backups, select them, and roll them back, or download and export them.

      image-20240305170946616

      Page Publish

      Page publishing is the process of publishing the content and configuration of a page to the server for operations such as API generation, document generation, version generation, and source file generation for NetCore and Java.

      Page publishing adopts a fast publishing method, publishing the current single page. There are three ways to quickly publish:

      Page Editing

      After opening the page, enter the page visualization editing environment, which supports regular HTML visualization WYSIWYG editing. The editing window is divided into three parts: design area, code area, and preview area, which include regular HTML editing functions. Select HTML elements and make attribute modifications in the attribute area.

      image-20240305171834582

      Note

      The HTML of a component is a non editable region and can only be set through the properties of the component.

      Note

      The page will be automatically saved in the following situations: when publishing, when switching editing status, when closing the page, when clicking the save menu or button.

      The component properties will be automatically saved after any property modification.

      Page Right-Click Menu

      The right-click menu on the page is divided into component functions, page editing functions, and auxiliary functions. This chapter will first only introduce auxiliary functions.

      image-20240305180227043

      MenuFunction
      Copy Page PathCopy the relative path of this page to the clipboard
      Copy API InformationIf the component defines an interface, copy the basic information of the component's related interface
      Postman TestIf the component has defined an interface and has been published to the server, copy the interface test address and import it in Postman
      Go To Front-EndIf the component defines an interface, then move on to the front-end component development associated with the interface, facilitating quick collaboration and adjustment between the front-end and back-end

       

      Option Setting

      Menu Tools ->Options, set global client settings.

      image-20240307130506393

      System Setting

      The settings related to display classes are not listed one by one, mainly the following items:

      ItemDescription
      VSCode PathSet VSCode path, right-click on the page to open VSCode, for mixed development
      Default OutputThe default output method when creating a new page, usually JSON
      Developer NameMy display name will indicate the developer in documents and shared information during collaborative development
      Default SiteWhen opening the client, the site will be opened by default

       

      Server Database Config

      image-20240307130623835

      Important

      It is strongly recommended to configure the server-side database link, or to configure a database link with the same structure as the server-side database.

      After configuring this option, a large number of automated configurations, data table or field prompts, bug detection, and other functions can be achieved.

      ItemDescription
      SiteA site can be configured with either a business database or a platform database. If a platform database is not configured, it is equivalent to a business database
      TypeDatabase type,currently, automation configuration supports MySql, SqlServer, and Sqlite
      Connection StringDatabase Connection String

       

      Component Usage

      The use of components is the core of this product, and based on refinement, we have found that conventional business functions can be decomposed into the following three or a combination or nesting of these three:

      In actual business scenarios, we need to combine and nest these three types, and there will be certain logical judgments. However, more than 80% of business scenarios cannot do without these three types.

      So by mastering these three types of component configurations, almost 80% of the development content of regular business systems has been completed.

      Add New Component to Page

      There are three ways to add new components:

      1: Right click in the editing area to insert a component:

      image-20240305174618027

      2: Left toolbar ->Standard components, drag and drop components to the editing area:

      image-20240305174802807

      3: Workplace components, drag component instances to the editing area:

      image-20240305174939858

      Generate from Existing Component

      In actual development scenarios, the features we want to add are partially similar to those that have already been developed, and we can use replication or cloning methods.

      1: Select the component on the page you want to copy, use Ctrl+C or right-click to copy, and use Ctrl+V or right-click to paste it into the editable area of the new page;

      Warning

      If another component is only copied in this way, then these component instances have not been regenerated and need to be regenerated using the method of Clone and Replace on the page to generate new component instances.

      2: Clone and Replace: Copy all configurations of the component, regenerate the component instance, and replace the original in the editing area;

      3: Clone and Append: Copy all configurations of the component, regenerate the component instance, and append a new component below the original component;

      4: Clone: Copy all configurations of the component, regenerate the component instance, and the new component will only appear in the component area of the workspace.

      image-20240305175623570

      Property Setting

      Select a component in any way to edit its configuration in the attribute area.

      To meet different application scenarios, components can be selected in all three regions:

      Define Quick Properties

      In order to meet the needs of different scenarios, the number of component attributes will be greater than the configuration requirements required for our specific project, and the attention and importance of these configuration items in our actual business scenarios will also vary.

      We can now customize the display and sorting of component properties. After selecting a component, the property area displays all the configurable properties of the component. In the right-click menu ->Component Shortcut Property in the editing area, only the few property configurations that we are interested in will be displayed.

      image-20240305182227601

      Click Setting to customize the shortcut properties and sorting of all components:

      image-20240305182425143

      Data List

      Only introduce the attribute configuration instructions closely related to Api interface generation.

      Main Properties

      Note

      Property settings may support built-in syntax, please refer to the built-in syntax rules

       

      PropertyDescriptionExample
      Main TableOptional. Select through the table selection tool. When the fully customized query is empty, define the data source according to the main table identifier. This property must be set during batch operations. Note: Views can be configured@tb_client
      Fully Custom SQLDefining a basic data source using SQL must end with a where condition and cannot end with sortingselect * from tb_client where 1=1
      Default Order ByWhen the Api input parameter does not include sorting, use the default sorting ruleorder by id desc
      Define ColumnsSee Data Rule Configuration for details 
      API SettingSee Api Configuration for details 

       

      Data Rule Configuration

      Double click on the selected component at any location, or click on property configuration or shortcut property configuration to configure data rules.

      image-20240305192546696

      Defined column display names, comments (to be displayed in the generated Api document), data definitions, etc.

      If the basic data source has already been defined (with main table identification or fully customized queries configured), columns can be quickly defined from the data structure through Quick Define , such as:

      image-20240305193145978

      Rules for defining data:

      RuleExample
      To display a combination of multiple data in a column, use a semicolon ';' Separatename;date
      [] syntax: Used within other syntax, use square brackets [colname] to represent the value of column name colname in the base data source 
      @str() syntax: Represents an output constant, where the '[]' syntax can be used, such as @str(My name is [name])@str(100)
      @SQL {} syntax: Output the SQL query result, and automatically match the result set format (single value, multi value, multi row) when outputting JSON. Supports @p[n]@ and [] syntax@SQL{select name from tb_client where id='@p1@'}
      @api_:Docking with other lists or obtaining Api interfaces@api_/dir/page?list/[id]
      ! Start representing switch syntax!colname(null|v1)(|v2)(2|v3)(other|v4)
      @KeyValue {col, 1, SQL} syntax: Based on the SQL statement of keyValue, escape the column. The second parameter 0 is all escaped, 1 is only exported with escape, and 2 is only the list escaped 
      Other syntax support:@code,@para 

      Api Configuration

      Api Define Quickly Configure Api Interface through Data Rule Configuration.

      image-20240306101059623

      Note

      A data rule configuration can generate multiple Api interfaces as needed, such as different open input parameters, support for batch modification, and different default parameters.

      Important

      The key of the message that was not hit during parameter input will be automatically ignored.

      Api Document

      After quick publish, browse the Api document online. The example of the Data List document is as follows:

      image-20240306120144927

      Data Operation

      Only introduce the attribute configuration instructions closely related to Api interface generation.

      Main Properties

       

      Note

      Property settings may support built-in syntax, please refer to the built-in syntax rules

       

      属性DescriptionExample
      Primary Key ColumnOptional. This item can override the primary key rules defined in the Project project 
      Default Primary Key ValueOptional. This item can override the primary key value rules defined in the Project project 
      Update Reserved ColumnsDo you want to automatically update the retention column update rules defined in the Project projectYes
      Operation Premise: SqlDefine whether Data Operation can be performed using Sql 
      Operation Premise: Code or ParamDefine whether Data Operation can be performed using @code or @para 
      SQL Execution: Before OperationSQL executed before operation 
      SQL Execution: After OperationSQL executed after operation 
      Code or Param: Before Operation@code or @para executed before the operation 
      Code or Param: After Operation@code or @para executed after the operation 
      Rule DefineSee Data Rule Configuration for details 
      API SettingSee Api Configuration for details 

       

      Data Rule Configuration

      Double click on the selected component at any location, or click on property configuration or shortcut property configuration to configure data rules.

      image-20240306102109430

      Name

      Name or annotation, application scenario is:

      ID/Key

      The field for Api input must be unique.

      Note

      If starting with an underline '_', this field will only be processed by the server and will not be opened to the front-end.

      For example, when adding data, if a certain field needs to store the current server's time, there is no need for front-end input parameters, while processing by the server does not require front-end opening.

       

      Binding

      Bind database tables and fields. When the row is configured with subtable operations, only bind the data subtable. Double click for quick configuration.

      Important

      Multiple different data tables can be bound simultaneously!

      Type

      Main types of explanations:

      TypeDescription
      AddThis field is a new operation
      ModThis field is a modification operation
      AutoThis field will be determined based on the filtering rules whether to add or modify it. The filtering rules can be the "where" condition, and if it exists, it will be modified. If it does not exist, it will be added
      Sub Table Add for JsonConfigure to add sub tables, and add all sub table objects in the message to the sub table
      Sub Table Reset for JsonConfigure to reset the sub table, delete the relevant data of the sub table according to the where condition of the advanced column configuration, and then perform the operation of adding the sub table
      Sub Table Update for JsonConfigure as subtable update, based on the subtable objects in the message, perform only update operations according to the subtable primary key

      Validation

      Quick settings for validation rules, more complex validation rules are set in the premise of operating the main attributes.

      Filter Rule

      Generally used for querying or updating. A、 Filter data using column name=value (default to primary key column as filter column)

      1. Definition of primary key column (1) , default to the primary key column name rule configured in the Project project; (2) The component parameter "primary key column name" can overwrite or redefine all configured filtering column names of the component; (3) Each item in the data rule configuration can override the above definition again. When overriding the filter column definition, the filter value must also be defined, such as @p1@, idCustom, which means the filter rule is idCustom='@p1@'.

      2. Definition of value (1) , default to using the first sequence parameter as the filtering value, i.e. @p1@; (2) The default primary key value of the component parameter can override or redefine the filtering values for all configurations of the component; (3) Each item defined by the rule can once again override the above definition, such as @p2@, or for example @key(idCustom);

      Note

      Each item defined by the rule can have only filter values defined, or both filter values and filter columns can be defined simultaneously (separated by,), and filter columns cannot be defined separately.

      B、 Custom filtering criteria

      1. "where" starting string, for example, where name='@key(user)' and area='@p1@'.

      C、 Built in syntax supported by configuration items:

      1. Sequence parameters @p[n]@, such as @p1@, @p2@;

      2. @key ([name]), obtained from input parameters, such as @key(username);

      3. @code ([define]), obtained from the defined backend method;

      4. @enum([define]), obtained from the enumeration defined by the site parameters;

      5. @dic([define]), obtained from the dictionary table defined by the server;

      6. @para{[define]}, obtained from the site parameter definition;

      7. @from([@table. col]), obtain the final value from other fields.

      Advanced

      A、 Configuration rules

      1. If it is not empty, the default return is the filled string, ignoring the input parameters;

      2. When configured as @sql: starting string, return the SQL query value (first row, first column);

      B、 Built in syntax supported by configuration items:

      1. Sequence parameters @p[n]@, such as @p1@, @p2@;

      2. @key([name]), obtained from input parameters, such as @key(username);

      3. @code([define]), obtained from the defined backend method;

      4. @enum([define]), obtained from the enumeration defined by the site parameters;

      5. @dic([define]), obtained from the dictionary table defined by the server;

      6. @para{[define]}, obtained from the site parameter definition;

      7. @from([@ table. col]), obtained from the final values of other fields;

      8. Other: @empty@ "empty string" value, @newfid@ primary key value when adding.

      When configuring sub table operations to reset or update, advanced columns need to be configured with filtering conditions.

      Quick Define

      Configuration can be quickly completed from data structures through Quick Define , such as:

      image-20240306111319398

      Quickly select and configure the data table after selecting it:

      image-20240306111431919

       

      Sub Table Configuration

      Data Operation, operations can be performed on its child tables simultaneously. The example configuration is as follows:

      image-20240306112251807

      Double click on the name or key column to configure sub table details:

      image-20240306112518174

      Sub table details can also be configured through Quick Define:

      image-20240306112635638

      The results after configuration are as follows:

      image-20240306113455759

      The types in the subtable details are generally default. If you need to configure the subtable in the next layer, you can continue to select subtable configuration in the subtable details. The rules are the same as above.

      image-20240306114042459

      Important

      The operation of the main table can mix multiple types and multiple data tables, and the number of layers of sub tables can be unlimited. Therefore, the application of the Data Operation component can cover the vast majority of operations related to data in conventional business.

      According to the previous relationship between the parent-child table, the child table can be configured with special values, including the following types:

      Api Configuration

      By configuring data rules through Api Define, Api interfaces can be quickly configured, and input parameter fields can be adjusted and mapped again.

      image-20240306115249417

      Note

      A data rule configuration can generate multiple Api interfaces as needed, such as opening different input parameters.

      Important

      1,The keys that was not hit during parameter input will be automatically ignored.

      2,If starting with an underline '_', this field will only be processed by the server and will not be opened to the front-end.

      Api Document

      After quick publish, browse the Api documentation online. An example of the Data Operation documentation is as follows:

      image-20240306120232196

      Data Getting

      Only introduce the attribute configuration instructions closely related to Api interface generation.

      Main Properties

       

      Note

      Property settings may support built-in syntax, please refer to the built-in syntax rules

       

      PropertyDescriptionExample
      Primary Key ColumnOptional. This item can override the primary key rules defined in the Project project 
      Default Primary Key ValueOptional. This item can override the primary key value rules defined in the Project project 
      Exist Reserved ColumnsIs there a reserved column defined in the Project projectYes
      Execute Before GettingObtain previous execution, support @code,@para,@sql:,@api_ , etc 
      Execute After GettingExecute after obtaining, supporting @code,@para,@sql:,@api_ , etc 
      Rule DefineSee Data Rule Configuration for details 
      API SettingSee Api Configuration for details 

       

      Data Rule Configuration

      Double click on the selected component at any location, or click on property configuration or shortcut property configuration to configure data rules.

      image-20240306121056496

      Name

      Name or annotation, application scenario: annotation for this field in Api document.

      ID/Key

      The field for Api output must be unique.

      Binding

      Bind database tables and fields.

      Note

      This setting is not mandatory, for example, the output can be defined through the return value in the advanced settings.

      Important

      Can bind multiple different data tables simultaneously!

      Filter Rule

      Generally used for querying or updating. A、 Filter data using column name=value (default to primary key column as filter column)

      1. Definition of primary key column (1) , default to the primary key column name rule configured in the Project project; (2) The component parameter "primary key column name" can overwrite or redefine all configured filtering column names of the component; (3) Each item in the data rule configuration can override the above definition again. When overriding the filter column definition, the filter value must also be defined, such as @p1@, idCustom, which means the filter rule is idCustom='@p1@'.

      2. Definition of value (1) , default to using the first sequence parameter as the filtering value, i.e. @p1@; (2) The default primary key value of the component parameter can override or redefine the filtering values for all configurations of the component; (3) Each item defined by the rule can once again override the above definition, such as @p2@, or for example @key(idCustom);

      Note

      Each item defined by the rule can have only filter values defined, or both filter values and filter columns can be defined simultaneously (separated by,), and filter columns cannot be defined separately.

      B、 Custom filtering criteria

      1. "where" starting string, for example, where name='@key(user)' and area='@p1@'.

      C、 Built in syntax supported by configuration items:

      1. Sequence parameters @p[n]@, such as @p1@, @p2@;

      2. @key ([name]), obtained from input parameters, such as @key(username);

      3. @code ([define]), obtained from the defined backend method;

      4. @enum([define]), obtained from the enumeration defined by the site parameters;

      5. @dic([define]), obtained from the dictionary table defined by the server;

      6. @para{[define]}, obtained from the site parameter definition;

      7. @from([@table. col]), obtain the final value from other fields.

      .

      Getting Type

      Advanced

      A、 Configuration rules

      1. If it is not empty, it is recognized as SQL by default. The query result is output based on SQL. If Multiple Rows are configured, it is output as an array object. Otherwise, the first row and first column values of the SQL query result are returned;

      2. When configured as @code, return the value of the back-end method;

      3. When configured as sql@code Then return the value of the back-end method as SQL and query it again;

      4. When configured as str@code Then return the value of the original field and call the back-end method with @val@ as the parameter;

      5. When configured as @api_, return the JSON that calls the interface;

      6. When configured as @sql:, it is the same as 1.

      B、Built in syntax supported by configuration items:

      1. Sequence parameters @p[n]@, such as @p1@, @p2@;

      2. @key([name]), obtained from the parameter to be output, such as @key(username);

      3. @code([define]), obtained from the defined back-end method;

      4. @enum([define]), obtained from the enumeration defined by the site parameters;

      5. @ dic([define]), obtained from the dictionary table defined by the server;

      6. @para{[define]}, obtained from the site parameter definition;;

      Quick Define

      Configuration can be quickly completed from data structures through Quick Define, such as:

      image-20240306111319398

      Quickly select and configure the data table after selecting it:

      image-20240306122824115

      Api Configuration

      By configuring data rules through Api Define, Api interfaces can be quickly configured, and parameter fields can be adjusted and mapped again.

      image-20240306123133654

      Note

      A data rule configuration can generate multiple Api interfaces as needed, such as opening different output parameters.

      'Api Call' can conveniently nest calls to other Api interfaces of Data List or Data Getting.

       

      Api Document

      After quick publish, browse the Api documentation online. An example of the Data Getting documentation is as follows:

      image-20240306123742930

      Built-in Syntax

      Not all syntax supports all configurations, please refer to the property setting instructions for details.

      Important

      @p[n]@ has the highest priority and can be used as a parameter in other syntax.

       

      @code

      Function: Calling server-side program methods (requires compilation)

      Defined in the Project project or by reflecting remote methods.

      The syntax is @code(define,para1|para2|...),define is the identifier, and multiple parameters are separated by |.

      @para

      Function: Calling basic methods with logical processing and returning a string (No compilation required)

      Defined by the site parameter tool. Please refer to the section on practical Tool ->Site Parameters for details.

      The syntax is @para{define,para1|para2|...},define is the identifier, and multiple parameters are separated by |.

      Important

      When defining a @para, nested calls can be made to @para,@code,@p[n]@

      @key

      Function: Obtaining the values of input and output parameters during Data Operation and Data Getting

      The syntax is @key(keyName).

      @sql:

      Function: Define a SQL statement

      @api_

      Function: Define an existing Api interface for nested calls or execution

      The syntax is @api_/somePage?list/[colname]/@p[n]@.

      @p[n]@

      Function: Sequence parameters used to obtain the specified position when calling the Api interface

      For example, when calling an Api interface, the URL is somePage?list/a/b/c,then @p1@ is a,@p2@ is b,@p3@ is c, Supports up to 12 sequence parameters.

      @from

      Function: Obtain the final value based on the bound field during Data Operation, and obtain the output value of parameter during Data Getting

      The syntax is @from(tableName.column),@from(keyName).

      @enum

      Function: The corresponding conversion between values and display text, similar to enumeration

      Defined by the Site Parameter tool (starting with Enum_).

      The syntax is @enum(key.item),Key is the identifier, item is the item.

      Practical Tools

      This product integrates a large number of innovative and practical tools.

      Site Parameter

      In configuration oriented project development, we will face such problems:

      Therefore, we have designed and developed a Site Parameter tool to unify the management of complex, commonly used, and logical configurations. Our built-in syntax can still be used in these configurations, and these configurations can be used in all supported attribute configurations of the entire site.

      Menu click on Tool->Site Parameter:

      image-20240306131422318

      Note

      We have made a simple agreement, where 'Enum' starts with enumeration configuration, 'Front' starts with front-end template configuration, '@Front' starts with front-end integration template configuration, and others start with regular configuration.

       

      In the configuration, @para[n]@ is used to represent the input parameters when calling the site parameters. For example, if the calling method is @para{define, @key(name)|9}, then @para1@ is the value of @key(name), and @para2@ is 9.

      In the following typical examples, we return different SQL query statements based on the different parameters of the input parameters:

      image-20240306133245486

      Or a simple SQL concatenation condition:

      image-20240306133436416

      You can also have the site parameters execute Sql or execute a Data Operations API, with multiple executions separated by ##, for example, performing different operations based on different conditions:

      image-20240306133857203

      Bug Detection

      After establishing standardized configuration rules, we can easily detect some errors and defects in the configuration by setting detection rules.

      Menu click on Tool->Bug Detection:

      image-20240306134411324

      Optional detection range: current page, custom detection page, full site detection.

      The detection types include: Api configuration detection, front-end configuration detection, and rule design detection.

      After clicking the start button, the detection results will be quickly displayed as follows:

      image-20240306134830440

      Defined the type, location, description, and level of defects.

      Search in Configuration

      When there are a large number of configurations, the problem that needs to be solved when adjusting one or a large number of similar configuration items is:

      image-20240306140731157

       

      Export Database Structure

      Menu Tool ->Export Database Structure, can export the server-side database structure as an Excel document.

      Note

      The export format may vary slightly depending on the type of database.

       

      Rule Design

      This feature is an exploratory feature that mainly allows business rules to constrain configuration. In bug detection, this rule design will be called to detect some business-related defects.

      image-20240306142125604

      Separate Publish

      During page development, HTML editing is done by third-party tools, and this product only does component configuration.

      In the Api development scenario, this feature has been deprecated.

      Front-end Development

      Quickly configure front-end components through standardized Api interfaces, and then export front-end pages through front-end page templates.

      The front-end development of this product is currently based on the Vue framework, with the UI framework being ElementUI.

      Front-end Component

      Click on the menu Tool ->Front-end Component Generate to open the Front-end Component Generate Tool.

      image-20240306145644827

      General Introduction

      There are several types of front-end components:

      The left column displays the tree structure of all front-end components. When exporting front-end components, they will be exported according to the hierarchical relationship of the tree structure.

      Important

      The configuration information of the front-end components is stored locally. To synchronize to the server, it is necessary to publish the front-end components. The shortcut key is Ctrl+Q. After publishing, you can view the list of components on the server through the browse button (providing preview, download, and other functions)

      The server-side browsing front-end components are as follows:

      image-20240306173256198

      The right-click menu in the left column is as follows:

      image-20240306150222493

      When the front-end components are released, the server will automatically back up. When collaborating with multiple developers, view and download the backup list of the specified components:

      image-20240306150400409

      Or click Update All to obtain the latest all front-end components on the server.

      Generate Page Function: Select a directory that may contain multiple front-end components. Clicking on the page generation function will automatically match the front-end page template and generate front-end pages according to the rules of the page template for the series of front-end components.

      Preview Function: Call the browser to preview the effect of local front-end components.

      Export Function: Export selected front-end components to local.

      Configuration Features: Configure Api call address and related settings:

      image-20240306151215137

      image-20240306151422710

      Important

      Save and Export Configuration: After saving the front-end components, they are automatically exported to the local directory structure for collaborative development by third-party development tools.

      Eslint program path: Before exporting front-end components, format the front-end code.

      List Component

      Basic Information

      image-20240306151839521

      Columns Configuration

      image-20240306152617672

      After defining the list interface, it is easy to automatically dock fields by clicking Import From Api, and fields that do not match the Api interface fields will also be marked in red font.

      After selecting Live Preview, call the embedded browser to preview the configuration effect in real time:

      image-20240306155430217

      Description of each configuration item:

      ItemDescription
      DisplayDisplay text for column
      BindBind Api interface key
      WidthColumn width
      FreezeWhether to freeze this column and the freezing method
      SortSort or not
      SelectIs the selection box displayed
      TemplateDefine content through template templates, supporting @para syntax

      Search Configuration

      image-20240306153717456

      Define search criteria for the search bar, input methods include text boxes, dropdown selections, dates, date ranges, and custom templates.

      The bound field refers to the interface field bound to the search condition, which can be selected by double clicking:

      image-20240306153921571

      Placeholders are the default displayed prompt text.

      Support custom settings for styles.

      Initialize template:

      image-20240306154117370

      The initialization content is a combination of statically defined content and content obtained from the interface. For example, we have defined male and female dropdown options as initialization data:

      image-20240306154426897

      Buttons Configuration

      image-20240306155028635

      Configure button types, text, icons, appearance, grouping, and other settings.

      Event Setting: Define the click event for this button, select and configure it after clicking.

      image-20240306155209849

      Built in events include: query, reset, batch operation, export, and customization.

      Script Definition

      image-20240306155608681

      Script definitions include initialization, before loading, before setting, after setting, customization, and styling.

      Other Definition

      image-20240306155740327

      Form Component

      Basic Information

      image-20240306160238866

      Rows Configuration

      image-20240306160927254

      After defining the interface, it is easy to automatically dock fields by clicking Import From Api. You can choose to import from Data Getting or Data Operation, and fields that do not match the Api interface fields will also be marked in red font.

      After selecting Live Preview, call the embedded browser to preview the configuration effect in real time:

      image-20240306161210058

      Description of each configuration item:

      ItemDescription
      DisplayDisplay text for form items
      BindBind Api interface key
      Typeimage-20240306161317933
      It contains more than ten types, and the most special one is the built-in Integration Template type, which is configured by site parameters
      PlaceholderDisplayed prompt text
      StyleDefine styles
      Initializateimage-20240306161708069
      The initialization content is a combination of statically defined content and content obtained from the interface. For example, we have defined male and female dropdown options as initialization data:
      image-20240306161938747
      Template/PropertyDefine attributes or define content through template templates, supporting @para syntax
      Validationimage-20240306162220567
      Choose built-in validation rules or custom validation rules
      LayoutCustomize the layout and set the number of form items displayed in each row

       

      Integration Template

      The last type of form item is the integration template, which is defined by site parameters. In actual business scenarios, form items are composed of a large number of front-end code combinations, and even have coupling relationships with the data of other form items, such as cascading selection, file processing, image upload and display, rich text editing, and the combination of multiple form items.

      Commonly used integration templates have been configured through site parameters, such as:

      image-20240306162842031

      When using, simply select the integration template type, then select the corresponding integration template and configure the input parameters to achieve complex front-end scenarios:

      image-20240306163023308

      Buttons Configuration

      image-20240306163245880

      Configure button types, text, icons, appearance, grouping, and other settings.

      Event Setting: Define the click event for this button, select and configure it after clicking.

      image-20240306163407936

      Built in events include: submit, reset, and customize.

      Script for Getting

      image-20240306163634315

      It is recommended to use the default configuration, which is automatically generated when exporting components and matches automatically based on the interface type.

      Script for Operation

      image-20240306163801043

      It is recommended to use the default configuration, which is automatically generated when exporting components and matches automatically based on the interface type.

      Script Definition

      image-20240306163904681

      The script definition includes initialization, before getting, before setting, after setting, before submitting, after submitting, customization, attaching data objects and styles.

      Other Definition

      image-20240306164113364

       

      Front-end Page

      Template Configuration

      Click on the menu Tool ->Front-end Page Generate to open the Front-end Page Template Configuration Tool.

      image-20240306165415982

      Configure the template code and the component types related to the template. After saving, the page can be generated in the front-end component development tool.

      Warning

      The generation page function of template management has been discontinued, and the generation page function has been integrated into the front-end component tool.

       

      Template Usage

      Select the directory of the component tree structure of the front-end component generation tool, right-click to select the generation page, select the template to be applied, and then generate the front-end page for the series of front-end components according to the rules of the page template.

      Client Other

      Text Editor

      Most text configurations will be completed within the text editor.

      image-20240306170233065

      The text editor supports automatic completion and click prompts, with completion types including SQL syntax, data tables, data table fields, and various built-in syntax.

      Quick definitions include:

      Site Parameter

      Common Configurations:

      image-20240306170711571

      Assembly Calls

      image-20240306170834776

      Can directly select public methods for server-side programs:

      image-20240306171028317

      When collaborating with multiple people, server methods defined by other developers can be synchronized.

      The configuration returned by assembly method calls is @code syntax, and the methods defined in the Project project are regular calls.

      If other custom methods are configured with dynamic compilation on the server, they are called normally. Otherwise, the method is called through reflection.

      Script Calls

      Api Calls

      image-20240306171535971

      Select published Api interfaces for calling.

      SQL Editor

      Most SQL configurations will be completed within the SQL editor.

      image-20240306171811032

      The SQL editor supports automatic completion and click prompts, with completion types including SQL syntax, data tables, data table fields, and various built-in syntax.

      Sql templates can be defined in the abstract fragment in advance, and can be quickly selected in the SQL editor.

      The edited SQL query statement can be tested and data previewed by clicking the test button.

      image-20240306172252724

      Snippets

      The summary column on the left toolbar defines snippets for quick input.

      image-20240306172638405

      The commonly used [SQL] starts with SQL statement templates, and [Front] starts with front-end templates.

      Site Template

      Classify and manage sites for specific business scenarios.

      Check and Update Product

      Check if the client tool is updatable, download and restart the client tool to complete the update operation.

      Multilingual Switch

      International applications.

      Currently supports both English and Chinese, with an increasing number of languages as needed.

      Server Project

      The server project is .Net Core Web Project

      Server Startup

      Run FTFrame.Web.exe program,The default port is 81,If you want to change the port, you can run it on the command line, for example, to replace it with port 88:

      dotnet FTFrame.Web.dll --urls http://0.0.0.0:88

      The screen after startup is as follows:

      image-20240305142851548

      Access in browser after startup http://localhost:81/ The following interface appears:

      image-20240305143619770

      Note

      The official version provides the source code of the web project and supports database types of MySql, SqlServer, and Sqlite.

       

      Configuration File

      The configuration files are located in the appsettings.json and job.json directory at the root of the web project. After making changes, the web service needs to be restarted.

      Main Configuration

      appsettings.json :

       

      Job Configuration

      job.json : Configure scheduled tasks, task execution types include WebApi (calling Api interface) and Function (calling assembly methods)

       

      Project Project

      This project is the core of server configuration, and the main configuration items are introduced here.

      Usage

      After compiling the project, replace FTFrame.Project.Core.dll file, then restart the server service.

      DBSuit

      Api

      User

      image-20240306183140106

       

      LoginInfo

      image-20240306183512809

      Code

      image-20240306183938731

      Others

      Tools, workflows, scheduled tasks, etc.

      Api Instructions for Use

      Api Document

      Access and log in to the server system, enter the account and password (the account and password are defined in the ft_sites table of the server database, default account is user, password 123), click the login button to enter the online document page.

      image-20240306185218537

      Click on the button column definition to view more columns by dragging and dropping.

      image-20240306185120873

      Sequence Parameters

      The sequence parameters are concatenated after the interface path, separated by /, and currently support a maximum of 12 sequence parameters, corresponding to the @p[n]@ parameter in the client configuration.

      For example, the interface path is: http://[url]/api/a?b. If the @p1@ and @p2@ parameter values to be passed are 1 and 2, respectively, the call path should be:

      http://[url]/api/a?b/1/2

      If some sequence parameters are required, it should be described in the interface description.

      Api Test

      Click on the Net or Java link, copy the test address, and then import it in PostMan for direct testing.

      image-20240306185438957

      The initial message of the input parameter will be automatically filled in without the need for manual input, as shown in the following figure, and can be run directly:

      image-20240306185621122

      Data List

      The Data List is used to retrieve multiple rows of data, including sorting, fuzzy search, precise search, custom conditional search, combination search, page turning definition, etc. It also supports data export, batch specific field modification of data (such as soft deletion, status change), and supports mutual calling between interfaces and nested output.

      Permissions, display fields and order, interface nesting, data nesting, logical processing, output definition, function calls, and description are all configured and defined on the client side.

      Call Method

      Enter parameters through POST, using either Form or Json string format, based on the input column of the interface document.

      Input

      parameterDescriptionDetail
      orderBySort fieldField name, empty, default by configuration
      orderTypeasc or descasc order, desc reverse order, if empty, default by configuration
      schTextMulti field or fuzzy query by field1. According to the configured fuzzy query field, simply input the search text directly, for example, the configured field is a;b. If the input parameter is c, the query SQL will be: and (a like '%c%' or b like '%c%');
      2. According to the fuzzy query configured by the front-end, fields and keywords need to be passed in, such as a: c; b: C, then query SQL as: and (a like ‘%c%’ and b like ‘%c%’);
      3. The above parameters have been processed through backend anti SQL injection.
      schStrictDefine retrieval rules by fieldSearch by field with logic, input rule is: Col1:Val1;Col2:Val2 ,Col is the field name, Val is the logical definition, and the rules are as follows:
      1. null, specify column as null
      2. !null, specify column is not null
      3. ![txt],specify column as !=’[txt]’
      4. >=[txt],specify column as >=’[txt]’
      5. <=[txt],specify column as <=’[txt]’
      6. >[txt],specify column as >’[txt]’
      7. <[txt],specify column as <’[txt]’
      8. empty,specify column as empty string
      9. including %, like query
      10. in(a,b,c),specify the value of the column in the set
      schAdvAdvanced searchNot yet open
      pageSizeDisplay quantity per pageIf it is 0 or empty, display all data
      numTypeDefault No Serial Number
      1.Sort by page number
      2.Sort by all numbers
       
      pageNumWhich page is displayed, default to first pageIf is blank, display the first page
      keyValueIt is necessary to perform batch data operationsSelect/operate on single or multiple records (, separated) according to the set primary key column name
      (Custom)Value during batch operationThe mapping relationship between fields and inputs is defined by configuration
      (Custom)Value during batch operationThe mapping relationship between fields and inputs is defined by configuration
      (Custom)Value during batch operationThe mapping relationship between fields and inputs is defined by configuration
      isExportHidden parameter, if it is 1, export to ExcelWhen exporting, the search criteria still take effect
      exportMaxHidden parameters, maximum number of exported items, unlimited number of exported items if empty or 0When exporting, the search criteria still take effect
      exportNameHide parameters, define the exported file name, default to Api definitionWhen exporting, the search criteria still take effect

      Note

      When configuring the client, built-in search criteria can be defined, such as permissions, custom conditions, etc. (can be linked with the @p[n]@ parameter)

      Output

      Referring to the Api documentation, the Json structure is defined by the Project project.

      Data Operation

      The Data Operation allows for the addition or modification of single or multiple data entries, supporting simultaneous addition and modification of multiple tables, as well as one-time operations on sub tables. The depth of sub tables is not limited, and the client may have already configured data validation rules.

      Permissions, input fields, logical processing, transaction processing, backend method calls, and descriptions are all configured and defined on the client side.

      Call Method

      Enter parameters through POST, using either Form or Json string format, based on the input column of the interface document. If there is binary data (such as file upload), it is recommended to submit it in Form format.

      Input

      As a Json object, please refer to the Api documentation for details. just as :

      image-20240306191605657

      Important

      The keys that was not hit during parameter input will be automatically ignored.

      For example, if the interface document requires 10 fields to be entered and only 3 fields are matched when called, the server will only process the matching 3 fields.

      The advantage of this is that the Api interface can be configured with all fields, and when called, only a few fields that are required for the parameters can be entered according to the actual situation.

       

      Output

      Referring to the Api documentation, the Json structure is defined by the Project project.

      Data Getting

      The Data Getting is used to obtain a single piece of data, mainly used as a detail query. It supports outputting single and multiple table data together, and fields can also output array objects, that is, nested multiple rows of data. It also supports calling interfaces to each other and nested output.

      Permissions, display fields and order, interface nesting, data nesting, logical processing, output definition, function calls, and description are all configured and defined on the client side.

      Call Method

      GET method input

      Input

      The input parameters are only sequence parameters.

      Output

      Referring to the Api documentation, the Json structure is defined by the Project project.

      Note

      If there is no nested query and no data is found, the value of data is null. When there is a nested query and no data is found in a certain field, the value of that field is FT{NORESULT}.

       

       

      Contact Us

      d4soft@gmail.com