dinamica v3.4.5 (dynamic v3.4.5) changelog

Dinamica 3.4.5 版本更新包括了 PDF 输出改进、多级记录集支持、报表细节优化、日期格式验证、HTML 报表增强等功能,并对模板引擎、事务记录集等进行了改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

05/04/2015 v3.4.5

* Improved dinamica.AbstractPDFOutput to use the CI pdf-file-name in config.xml
  or by default if the configuration report.pdf name does not exist.

* Using dinamica.encoding system property that is equal to the value of context-param "file-encoding" in web.xml,
  This system property can handle smoothly and validator.xml config.xml recorded in iso-8859-1 but
  the encoding of the JVM (Java process) is UTF-8 or another (system property file.encoding). With this error is avoided
  accents and other special characters distorted when they come from these XML files. This setting
  was made for those cases when they are not allowed in production indicate -Dfile.encoding = ISO-8859-1 on
  especially when they are running on Linux. The dinamica.Controller, dinamica.StringUtil and dinamica.xml.Document classes were affected.

* Improved dinamica.Recordset and dinamica.Record class to support multiple recordset Children
  in each row of a Recordset, now every Children can have an ID to identify you, and each record
  recordset can have an arbitrary number of recordsets Children, to allow more complex data models
  in memory. They getChildren new methods setChildren and receiving recordset to store ID is created.

* Correction in dinamica.GenericTableManagerIdentity class to allow processing details and do not try empty
  recording them, avoiding trigger an exception and supporting a master / detail where detail is not required to fill form.

* Correction dinamica.GenericTableManagerIdentity.getLastID () to use SCOPE_IDENTITY () instead of@@identity because if the table
  has an associated audit trigger the function result is wrong. 

* New ValidatorUtil.isValidDateFormat () method - see JavaDocs for more information.
 
* Adjust the dinamica.TemplateEngine class that supports the TIME type, although only via jTDS v1.3.1 supports for Sybase (limitation
  JDBC driver, not dynamically). 
  
* Correction in dinamica.PDFGenericReport class to use the whole range of masks date and time
  that supports Java in fields Date, Time and TimeStamp. 
  
* Improved dinamica.PDFGenericReport class: a) support new attribute header = "true | false" in the <pdf-report>, 
  b) support to insert in the report the contents of another PDF using a new element:
  
  <Include action = "/ action / xyz / pdf $ {fld: xxx}" recordset = "xxx.sql" />
  
  The report to be included should have the footer off, and possibly also the header. If the master report that
  others include no header = "false", then the content will appear after a first page with the title and
  the other PDF on the next page.

* New dinamica.xml.Document method: public dinamica.xml.Element [] getElements (Element e, String tagName)
  See JavaDocs for more information.

* Improved support dinamica.GenericTransaction Recordsets class to nested defined in config.xml:

	<Transaction>
		<Code> dinamica.GenericTransaction </ code>
		<Validator> false </ validator>
		<Transaction> false </ transaction>
		<Jdbc-log> false </ jdbc-log>
		<Recordset id = "cotizacion.sql" source = "sql" scope = "transaction">
			<Recordset id = "items.sql" source = "sql" />
			<Recordset id = "total_items" source = "total" params = "items.sql" totalCols = "all" />
			<Recordset id = "responsables.sql" source = "sql" />
		</ Recordset>
		<Recordset id = "gran_total.sql" source = "sql" scope = "transaction" />
	</ Transaction>
	
	In this version only supports one sublevel with several recordsets children if necessary, the child recordset
	They may be of "sql" or "total" only type. The parent Recordset supports any normal recordset
	defined in config.xml and can come from the request or the session if necessary.

* Rewritten dinamica.MasterDetailOutput class to support HTML reports Master / Detail 2 levels:

	<Output>
		<Code> dinamica.MasterDetailOutput </ code>
		<Template> template.htm </ template>
		<Set-http-headers> true </ set-http-headers>
		<Content-type> text / html </ content-type>
		<Print mode = "form" recordset = "gran_total.sql" />
	</ Output>

	<Repmd>
		<Master recordset = "cotizacion.sql">
			<Detail recordset = "items.sql" mode = "table" tag = "rows" />
			<Detail recordset = "total_items" mode = "form" />
			<Detail recordset = "responsables.sql" mode = "table" tag = "rows-responsible" />
		</ Master>
	</ Repmd>

  This class extends dinamica.GenericOutput and supports the full functionality of this further processing
  the definition of underreporting Master / Detail, which is assembled in memory and inserted into template.htm
  main replacing the variable $ {subtemplate}. In the Action should be additional template which defines
  section of the master and the N sections of the details that are necessary, and should be called subtemplate.htm.

* Improved dinamica.TemplateEngine.replace (rs Recordset, nullValueExpr String, String repeatSectionTag)
  now keeps the invisible header table if it does not have records for it
  It should be incorporated into the html of the table one style = "display: recordsetID.display" which is the ID recordsetID
  recordset that fills the table. If the recordset has no record, the marker will be replaced by the word "none"
  unseen by the head of the table. The marker is for optional use.

* Improved dinamica.PDFGenericReport, now supports nested sections from a <record>,
  simplifying the preparation of reports Master / Detail. Example:
  
	<Pdf-title> Demo - new techniques </ pdf-title>
	<Pdf-logo url = '/ images / logo-dinamica.png' scale = '100' />

	<Pdf-report pageSize = "letter" rotate = "false">
	
		<Record recordset = 'cotizacion.sql' width = '55 'spacingBefore = '15'>
			<Col name = 'cotizacion_id' title = 'Code' format = '00000' align = 'center' />
			<Col name = 'fec_inicio' title = 'Start Date' format = "yyyy-MM-dd 'align =' center '/>
			<Col name = 'project' title = 'Project' align = 'center' />
			<Col name = 'gerencia_combo' title = 'responsible management' align = 'center' />
			
			<Table recordset = 'items.sql' width = '100' spacingBefore = '10 'title =' Items To Quote ">
				<Col name = 'descrip' title = 'Description' width = '25 'align =' left '/>
				<Col name = 'cost' title = 'Unit Cost' width = '25 'align =' right 'format =' #, ###, ## 0.00 '/>
				<Col name = 'amount' title = 'Number' width = '25 'align =' center '/>
				<Col name = 'Total' title = 'Subtotal' width = '25 'align =' right 'format =' #, ###, ## 0.00 '/>
			</ Table>		
			
	 		<After-table-row recordset = "total_items">
	 			<Col value = "TOTAL" align = "right" colspan = "3" />
	 			<Col name = "total" format = "#, ###, ## 0.00" align = "right" />
	 		</ After-table-row>	
	 		
	 		<Table recordset = 'responsables.sql' width = '100' spacingBefore = '10 'title =' Manager '>
				<Col name = 'name' title = 'Full name' width = '25 'align =' left '/>
				<Col name = 'cell' title = 'Cell' width = '25 'align =' center '/>
				<Col name = 'email' title = 'Email' width = '25 'align =' center '/>
			</ Table>
			
		</ Record>
		
		<Record recordset = 'gran_total.sql' width = '55 'spacingBefore = '15'>
			<Col name = 'gran_total' title = 'GRAND TOTAL' format = '#, ###, ## 0.00 "align =" right "/>
		</ Record>
		
	</ Pdf-report> 

* New class dinamica.css (dynamic / webapp)

  .exportPDF {
		padding-left: 5px; 
		background-origin: content-box; 
		display: block; 
		margin: 0 auto; 
		height: 25px; 
		width: 150px; 
		background-image: url ('/ $ {context} /images/pdf.png'); 
		background-repeat: no-repeat; 
		background-position: left center;
  }

  It is used for exporting the PDF button in the new MasterDetail reports (using the improvements described above).

* The template "agenda" has been updated to the new look CSS3 (dynamic / templates)

* New Class Filter dinamica.security.IndexFilter to send headers X-Frame-Option and Strict-Transport-Security
  If the root / or /index.htm page is requested, this is mostly for security audits that analyze vulnerabilities
  on websites.

* Improved dinamica.jaxws.AbstractImpl new getErrorMessage (int) methods and getErrorMessage (int, Object ...) to
  allow to use a file in the package error.properties where classes reside Web Service to outsource
  error messages. File Example:
  
  1010 = The filter parameter can not be null
  1011 = The filter CustomerID parameter field is null or empty
  1012 = There is a customer with this ID:% s
  
  There may be messages with variable parameters, the API supports class. In the code of the classes
  extend dinamica.jaxws.AbstractImpl, they can trigger errors like this:
  
  if (out.getRecordCount () == 0)
  	throw new ServiceException (1012 getErrorMessage (1012 filter.getCustomerid ()));

  if (null == filter)
	throw new ServiceException (1010 getErrorMessage (1010)); 
内容概要:本文详细介绍了如何使用STM32微控制器精确控制步进电机,涵盖了从原理到代码实现的全过程。首先,解释了步进电机的工作原理,包括定子、转子的构造及其通过脉冲信号控制转动的方式。接着,介绍了STM32的基本原理及其通过GPIO端口输出控制信号,配合驱动器芯片放大信号以驱动电机运转的方法。文中还详细描述了硬件搭建步骤,包括所需硬件的选择与连接方法。随后提供了基础控制代码示例,演示了如何通过定义控制引脚、编写延时函数和控制电机转动函数来实现步进电机的基本控制。最后,探讨了进阶优化技术,如定时器中断控制、S形或梯形加减速曲线、微步控制及DMA传输等,以提升电机运行的平稳性和精度。 适合人群:具有嵌入式系统基础知识,特别是对STM32和步进电机有一定了解的研发人员和技术爱好者。 使用场景及目标:①学习步进电机与STM32的工作原理及二者结合的具体实现方法;②掌握硬件连接技巧,确保各组件间正确通信;③理解并实践基础控制代码,实现步进电机的基本控制;④通过进阶优化技术的应用,提高电机控制性能,实现更精细和平稳的运动控制。 阅读建议:本文不仅提供了详细的理论讲解,还附带了完整的代码示例,建议读者在学习过程中动手实践,结合实际硬件进行调试,以便更好地理解和掌握步进电机的控制原理和技术细节。同时,对于进阶优化部分,可根据自身需求选择性学习,逐步提升对复杂控制系统的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值