form-generator 扩展一种表格布局,结合ruoyi的表单生成器,效果与form-create的表格布局功能完全一致

### 实现方案 要在 RuoYi 表单生成器中扩展一种表格布局,使其效果与 `form-create` 的表格布局功能一致,可以通过以下方式实现: #### 1. 扩展表单项配置 为了支持类似于 `form-create` 中的表格布局功能,需要在现有的 `RightPanel.vue` 文件中增加新的组件选项。这一步骤允许用户定义表格列数以及每一项的具体位置。 ```vue <template v-if="activeData.__config__.tag === 'sf-grid'"> <el-form-item label="网格布局"> <el-input-number v-model="activeData.__config__.colSpan" :min="1" :max="24" placeholder="请输入列宽"></el-input-number> </el-form-item> </template> ``` 此部分代码用于设置动态调整每行列宽度的功能[^2]。 #### 2. 定义新类型的表单项 创建一个新的自定义组件来表示表格单元格,并将其注册到 `form-generator` 的可用控件列表中。具体来说,在 `components/form-designer/components/index.js` 或类似的文件中加入如下逻辑: ```javascript export default { name: 'GridFormItem', props: ['data'], render(h) { const children = []; let colIndex = 0; while (colIndex < this.data.__config__.columns.length) { const columnCount = Math.min(24 / this.data.__config__.colSpan, this.data.__config__.columns.length - colIndex); children.push( h('el-col', { props: { span: this.data.__config__.colSpan * columnCount } }, [ ...this.data.__config__.columns.slice(colIndex, colIndex + columnCount).map(child => h(child.component, child.props)) ]) ); colIndex += columnCount; } return h('el-row', {}, children); }, }; ``` 这段脚本实现了将多个字段按指定比例分布于同一行的效果[^2]。 #### 3. 数据持久化处理 当设计完成并提交时,需确保这些额外的数据结构能够被正确存储至数据库。修改原有的 `submitForm()` 方法以适应更复杂的嵌套关系: ```javascript // 校验表单数据,成功则组装表单数据发送后台保存 submitForm() { ... // 额外处理 grid 类型的特殊字段映射 genTable.columns.forEach(column => { if (column.type === 'grid') { column.childrenFields = JSON.stringify(column.fields.map(field => field.key)); } }); updateGenTable(genTable).then(...); } ``` 这里特别注意的是对于复杂类型(如 Grid),应采用序列化的形式存入数据库以便后续解析使用[^1]。 #### 4. 后端事务保障 考虑到可能涉及多张表的同时更新操作,建议利用 Spring Framework 提供的声明式事务管理机制保证一致性[^3]: ```java @Service public class GenTableService { @Autowired private GenTableMapper genTableMapper; @Transactional(rollbackFor = Exception.class) public void saveOrUpdate(GenTable genTable) throws RuntimeException { try { genTableMapper.updateById(genTable); List<String> subTables = Arrays.asList("sub_table_1", "sub_table_2"); for(String tableName : subTables){ processSubTable(tableName, genTable.getParams()); } } catch(Exception e){ throw new RuntimeException(e.getMessage(),e); } } } ``` 以上服务层函数展示了如何通过捕获异常触发回滚机制保护数据完整性[^3]。 --- ###

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

Python内容推荐

使用form-create动态生成vue自定义组件和嵌套表单组件

使用form-create动态生成vue自定义组件和嵌套表单组件

主要介绍了使用form-create动态生成vue自定义组件和嵌套表单组件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

vue+element创建动态的form表单及动态生成表格的行和列

vue+element创建动态的form表单及动态生成表格的行和列

动态创建form表单,网上有插件 (form-create) 不过我不知道它怎么用,没有使用成功,如果你使用成功了,欢迎下方留言.   最后我使用了笨方法,针对各个表单写好通用的组件,然后根据type用v-if来渲染对应的表单,数据,事件什么的都可以动态的传进去,比较好用 <el size=mini class=lj-form> <div v-for=(item,i) key=i> &lt;!-- 0单行文本 --&gt; &lt;el-form-item

组件使用文档.docx

组件使用文档.docx

vue使用自定义表单生成器

excavator:终极表格生成器,可轻松生成申请表格、调查等。 (不再维护!)

excavator:终极表格生成器,可轻松生成申请表格、调查等。 (不再维护!)

挖掘机 ULTIMATE FORM GENERATOR使用 MEAN 框架。 命令行界面 # run locally ./excavator [admin|manager] [create|delete|list|reset-password] ... # run in a running backend container docker exec -it excavator_backend_1 ./excavator [admin|manager] ... 测试 # install and start mongod, then # run these commands to start testing: npm install npm test # manually do tests alias mocha='./node_modules/mocha/bin/mocha' moch

Laravel开发-crud-generator

Laravel开发-crud-generator

Laravel开发-crud-generator Laravel 5积垢发生器

vue-ele-form-generator可视化表单设计工具-其他

vue-ele-form-generator可视化表单设计工具-其他

vue-ele-form-generator是专为vue-ele-form开发的可视化表单设计工具,并且支持vscode 插件、cli 本地启动、在线设计多种方式,让表单开发的效率更上一层楼! vue-ele-form-generator特性: 1、提供vscode 插件更贴近日常开发 2、可视化配置页面 3、提供 vue-ele-form 全部基础组件 和 全部扩展组件 4、支持组件属性点选配置 5、支持本地启动, 告别被墙的痛苦 6、服务器保存, 应用到项目 7、基于项目的多表单管理, 省去二次开发 8、数据持久化(刷新依然存在) 9、一键生成配置 json 数据 10、一键生成.vue 格式内容 注意: 此设计器不是独立存在的,是依托于 vue-ele-form,在使用前请务必阅读 vue-ele-form 的文档。

大学计划使用教程 4PPT学习教案.pptx

大学计划使用教程 4PPT学习教案.pptx

大学计划使用教程 4PPT学习教案.pptx

RoRTutorialBook:Ruby on Rails 6教程书示例和应用

RoRTutorialBook:Ruby on Rails 6教程书示例和应用

指南书 Ruby on Rails 6教程书示例和应用

VB编程资源大全(英文源码 表单)

VB编程资源大全(英文源码 表单)

1 , manc-skinex.zip<br>This is an example of how to add skins to your program.<END><br>2 , irregularForms.zip<br>This is a great example. It takes two images to shape the form, then blits the "face" onto the form also.<END><br>3 , noclose.zip<br>This demonstrates how to remove the "X" located on the top of your form, while keeping the maximize and minimize buttons visible.<END><br>4 , dos-menu.zip<br>This example shows how to change your applications menu apperance as in color and font.<END><br>5 , dos-iface.zip<br>This is an example of how to use skins in your program, and also using BitBlt for a great looking interface.<END><br>6 , sg_settings.zip<br>This demonstrates how to save information about your program in the registry of windows. Much more reliable than using INIs<END><br>7 , Menubmp.zip<br>This demonstrates how to add images to a menu.<END><br>8 , 3DBorders.zip<br>This bas lets you create 3D Borders on your form.<END><br>9 , manc-resize.zip<br>This is an example project I did to go with the Resize module below.<END><br>10 , resize.zip<br>When resizing your form, this bas will let you also resize the controls<END><br>11 , invisbas.zip<br>This is a bas that will make your form transparent but leave all of the controls visible.<END><br>12 , FormScroller.zip<br>This bas will let your form exit in diferant directions.<END><br>13 , appbar14.zip<br>This example demonstrates how to have your Application "merge" with windows like the taskbar does.<END><br>14 , winhole.zip<br>This example demonstrates how to put a hole in the center of a form.<END><br>15 , tileform.zip<br>This will tile a picture on the background of your form.<END><br>16 , radiomnu.zip<br>This demonstrates how to add radio buttons to your menus<END><br>17 , mnupics.zip<br>This will add pictures to a menu. This is an excellent example.<END><br>18 , savepos.zip<br>This will show you how to save and load the last recorded position of your form.<END><br>19 , shapeform.zip<br>This will change the shape of a sample form to pre-selected shapes.<END><br>20 , splash.zip<br>This demonstrates how to create a splash form for your program.<END><br>21 , menustat.zip<br>This shows how to display information about the menu item in a label.<END><br>22 , coolbar.zip<br>This is an example of how to make a toolbar like Office 97 in your VB Applications.<END><br>23 , showdrag.zip<br>This example shows how to show the windows contents while the window is being dragged.<END><br>24 , avb-gradient.zip<br>This bas is composed of 35 Differant Gradient Color Fades. It is meant to inhance Interface Design without spending a lot of time on solely the interface.<END><br>25 , avb-addressof.zip<br>An Example of Using the 'AddressOf' Operater in VB5 to Limit the Size that the User is Permitted to Resize your Form.<END><br>26 , windis.zip<br>This is a straight forward example of how to disable any Win95/98 window..<END><br>27 , tk421-api.zip<br>Demonstrates how to retrieve various information about specific windows<END><br>28 , InetPass.zip<br>This example demonstrates how to get windows' cached passwords.<br>"This example will show all of the cached passwords on a local system !"<END><br>29 , Toolbar1.zip<br>Label ToolBar. Quick set up, color option, curor change, good for beginners, small projects <END><br>30 , OpacityForm.zip<br>Opacity Form Effect<END><br>31 , MoveForm.zip<br>Moves a form around the screen just by dragging it.<END><br>32 , RoolingForm.zip<br>Creates a "rolling" form using SetWindowRgn API call.<END><br>33 , CoolEffectForm.zip<br>Cool effects form is a true resizable form. It also includes clickable labels that change color with the mouseover event. Fully commented too!<END><br>34 , menus.zip<br>If you wanna make a Menu that suports permissions by user and module with "No Access", "Read Only" and "Full Control" rights, you Found it!! Sory, but the examples are in Portuguese<END><br>35 , MDForm.zip<br>Demonstrates the creation of Master/Detail form using an RDO connection, also helps understand the object oriented programming concepts in VB<END><br>36 , DockDemo.zip<br>A form that docks to the edges of the desktop (and actually works), and takes the taskbar into consideration.<END><br>37 , transparentform.zip<br>Transparent Form with bitmap mask 1 line code for call this DLL<END><br>38 , region.zip<br>This application shows how to "skin a form" to the shape of any bitmap image. The code uses the CreateRectRgn API call to ignore transparent colors and create a form in the shape of the image. This sample uses an image of Homer Simpson<END><br>39 , DynaMenu.zip<br>Program shows how to dynamically create submenu items for both the menu and the popup at run time, and at the same time allowing for free switching between the normal and the columnized menus (and popups), and between menu (and popup) with added bitmaps and without. If the menu (and popup) length goes beyond the predetermined length, the code will automatically sectionalize the menu (and popup) according to the said predetermined length (i.e. as an interval value), and will provide Up and/or Dn graphics to enable navigation between the menu sections.<END><br>40 , CoolExplorer2.zip<br>The new and improved Cool Explorer: Many new functions.<END><br>41,JinieScreensaver.zip<br>A small VB program which is a screensaver using Microsoft Agent. Using the way in which this program works, you can also create a screensaver to run under any version of Windows.<END><br>42,wireframe.zip<br>A computer engineering student from Slovenia has put this together. Its a VB program with all source code and sample for creating a bspline / beziere curve / wireframe generator. Very good and fast code.<END><br>43,reaction.zip<br>A computer engineering student from Slovenia has put this together. Its a reaction-diffusion texture and if you understand all this graphical/mathematical stuff then its very good.<END><br>44,filedirector.zip<br>This is an application I wrote to work in conjunction with the "Windows Explorer / Send To" option. This app helps me to move files quicker that using the copy/paste feature. This project contains some API code from User32 for file moving and API code for registry work.<END><br>45,centerform.zip<br>This is a VB project that shows how to make the form centered on the screen. It also makes the form scroll of the screen and end. I have included A text file with the code for people who cant load vb6 projects and I have also included and .exe of the proj<END><br>46,starfield.zip<br>Two little projects included here. One does a starfield type scrolling - very good, and the second includes two small controls. The first is a hyperlink which will launch the default browser with a URL when click on (it looks just like a hyperlink<END><br>47,filesearch.zip<br> The find option off the Start menu in Windows allows you to amongst other things, find files on your computer that match particular patterns, or were created on/after a certain date. This project mimics this Windows function and searches directories look<END><br>48,gradientfill.zip<br>This little sample contains a routine that allows a picture box to be flood filled with a gradient and from a specified colour value. A box can be filled from left to right or from top to bottom. A very simple bit of code, but useful - if not used to exc<END><br>49,cmovemousecursor.zip<br>This little demo shows how you can move the mouse pointer to a different place on the screen, e.g. command button or other control. It uses a Windows API call but is really simple to understand. Enjoy!<END><br>50,ctray.zip<br>Another cracker by Jonathon. He described it as "to help anyone trying to progress to the next level of VB programming". The sample application includes how to use the Windows API for doing file operations, putting an application into the system tray<END><br>51,cwindowontop.zip<br>This little routine will, if included on the Form_Load event of a form, keep the form/window on top of all other on the desktop. It uses an API call, but the example has been put tidily into a subroutine. It would be essential bit of code for those appl<END><br>52,NewForm.zip<br>If you're bored with standard forms, u can try this one.<END><br>53,KrustyTime.zip<br>Krusty the Clown tells time, and months, and weeks, and days etc. A simple program that you can use for your desktop.<END><br>54,msgblast.zip<br>MsgBlaster.bas is standard VB6 module, which implements a generic framework for window subclassing. The main advantage of using MsgBlaster.bas (as opposed to third-party subclassing controls) is that it does not impose any additional runtime requirements. <END><br>55,spider.zip<br>See a spider is crawling on your form,enjoy it ! <END><br>56,Dither2.zip<br>This application shows how to create a form with a fade out background. <END><br>57,LockOut.zip<br>This shows how to use the form keypress to record keystrokes. This program won't let you exit until you type "zx" in a row at any point. It must be in a sequence. There are many possible upgrades so you cannot Alt+Tab out etc. <END><br>58,rotate.zip<br>This example shows you how to create a circular form, and also track the mouse around the screen <END><br>59,tilebackground.zip<br>Tile a picture on the BG of a form. <END><br>60,GCBDemo.zip<br>Graphic control box demo with code. Demonstrates creating a control box using image controls, dragging a window using the API, pop-up menus, limiting form resize, centering controls and other good stuff. <END><br>61,Tabasic.zip<br>It`s a simple program in which you can write a Text, change its color and its font. <END><br>62,splitter.zip<br>This application demonstrates how to implement a splitter bar in a Visual Basic Project. <END><br>63,Tabasic_V1.0.1.zip<br>You can create a Text, change its color and its font, just like the fisrt Version of Tabasic. But now you can Save or Load the Text you have created. <END><br>64,formsize.zip<br>Application which sets form size restrictions. You can set Mix, Man, and fixed form sizes. <END><br>65,ProgressBar.zip<br>This program shows the progress of an action!! <END><br>66,TipOfDay.zip<br>Tip Of Day. It`s name speaks for itself. <END><br>67,msgbox.zip<br>This is a program that will allow to create message boxes easily and fast. it has an auto preview so when you type the text or whatnot it shows you. <END><br>68,FormShaper.zip<br>This is a DLL that make shaping your VB forms as esy as pie. Just call a few methods and that's it. You can have rectangles, rounded rectangles, ellipse, polygons and any combination of them.<br> <END><br>69,EllipticForm.zip<br>An Elliptic form. <END><br>70,fancy.zip<br>Create a fancy colored form. <END><br>71,transperant.zip<br>Makes forms transperant. <END><br>72,FormEffect.zip<br>To illustrate some form effects: transparency and shapes. This code allows for free switching between normal and transparent states of the same form (and free toggling between transparency with frame and without frame), and shows shaped forms as well (rectangular form with rounded corners, oval form and round form). <END><br>73,radar.zip<br>Radar form. <END><br>74,click_game.zip<br>This is a simple program with some simple logics.check it out and rate it.I will be waiting for your responce through e-mail. <END><br>75,progressbar2.zip<br> A progressbar with a difference ! <END><br>76,RoundSplash.zip<br>Splash Screen with an animated ROUND FORM. <END><br>77,resize2.zip<br>You know... Real resize function needs some information about what to do. It cannot be done without information. The program even doesn't know what I want until I give it!!! <END><br>78,oledesktop.zip<br>Ole Drag and Drop Example. <END><br>79,clsTDBGrid.zip<br>Are you using True DBgrid for your application? this class improve your speed of programming, with right-click feature, its all user-define style. <END><br>80,f_165.zip<br>How to create a directory tree like in Explorer(19KB)<END><br>81,f_183.zip<br>A program demonstrating the ListView control(7KB)<END><br>82,f_162.zip<br>An example program using the MS Comm control(14KB)<END><br>83,f_164.zip<br>An example program using the Toolbar control(3KB)<END><br>84,f_115.zip<br>A simple web browser built using the Web Browser control(2KB)<END><br>85,f_163.zip<br>How to enumerate the windows using the EnumWindows API(28KB)<END><br>86,f_159.zip<br>A simple example of exchanging data across a network using the WinSock control(4KB)<END><br>87,f_160.zip<br>A basic example on how to transfer files across the network using the WinSock Control(18KB)<END><br>

笔记:用LR做Web性能测试---简单入门

笔记:用LR做Web性能测试---简单入门

本人用LR做web性能测试的很基础的关于脚本的笔记,关联忘记写了,其他的应该都有涉及到。

基于89C51单片机控制的智能湿度控制系统设计.pdf

基于89C51单片机控制的智能湿度控制系统设计.pdf

基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf基于89C51单片机控制的智能湿度控制系统设计.pdf

MapMagicDemo.unitypackage

MapMagicDemo.unitypackage

unity场景地形地图编辑生成插件MapMagic World Generator 1.10.1 所支持的Unity版本:5.6.4 及以上版本需要Unity2018.3.2f1版本 A node based procedural and infinite game map generator. Each node on a graph represents a terrain or ob ject generator: noise, voronoi, blend, curve, erosion, scatter, forest, etc. Once the nodes are connected the magic happens: a game map will be created without any human involvement. No need for painstaking work sculpting and drawing vast terrains, placing thousands of ob jects, painting fields of grass: just give your orders to the plugin in the form of a node graph and it will create a map automagically! Supports multiple biomes: forests, deserts, snowy plains, jungle and other terrain types from different graphs could be blended together. Out of the box compatibility with: - Voxeland 5 - CTS - MegaSplat - RTP - uNature And in pinned (non-dynamic) mode: with all of the assets using standard Unity terrains. The asset comes with the full source code.

Delphi xe4 下完美支持中文的二维码控件

Delphi xe4 下完美支持中文的二维码控件

delphi xe_xe4 下完美支持中文的二维码(条码 共83种)控件,为了大家正常使用,我特意编了代码示例,文档里说明了如何安装。

ABAP程序设计源代码(黄佳)

ABAP程序设计源代码(黄佳)

初学SAP编程必须看的号东西。。。

DevComponents.DotNetBar v8.8.0.0.for.NET.part2.rar

DevComponents.DotNetBar v8.8.0.0.for.NET.part2.rar

功能极其强大的UI控件,适合DotNet全系列使用,效果在这里就不发了,可以去官方网站 www.devcomponents.com 。能够完美模仿Office2007风格,兼之更加强大的可以替代VS.Net自带控件。8.8新增了很多功能,包括 Office2010 样式、Ribbon 等等。 DotNetBar is world's first component to introduce fully featured Office 2010, Windows 7 and Office 2007 style Ribbon controls, first to provide full Windows XP Theme support, first to provide Diamond Docking Guides for dockable windows etc. With DotNetBar you always get latest advancements in user interface technology in your applications before anyone else. Partial list of DotNetBar Ribbon Control features: Office 2010 Styling with new Application Button and Windows 7 and Windows Vista Glass support Office 2010 style Backstage Application Menu Windows 7 Styling Quick Access Toolbar (QAT) support with full customization and placement control Black, Silver and Blue color schemes included Office 2010, Windows 7 and Office 2007 Style Application Button Office 2010, Windows 7 and Office 2007 Style form support Office 2010, Windows 7 and Office 2007 Style popup Galleries Integrated support for Contextual Tabs concept Predefined color schemes for tabs and tab groups Office 2010, 2007 style KeyTips (accelerator keys) both single key and multi-key are fully supported You can create Drop-down menus, even drop-down toolbars are fully supported You can add any standard DotNetBar items to the RibbonControl header One or more tabs can belong to Tab Groups. Tab groups are used to visually group similar tab commands. Usually they are used for contextual tabs that are shown based on active selection and disappear once something else is selected Full control over Tab Group header is provided. It can be hidden, font changed, height changed and appearance completely customized through ElementStyle appearance object (in Office 2003 style) You can add any VS.NET Windows Forms control to a Ribbon tabs. Keyboard Shortcuts are fully supported as well Windows Vista Glass support Custom Office 2010, Windows 7 and Office 2007 style color scheme generator based on single color Intelligent resizing of buttons on the Ribbon to fit the screen size

DevComponents.DotNetBar v8.8.0.0.for.NET.part1.rar

DevComponents.DotNetBar v8.8.0.0.for.NET.part1.rar

功能极其强大的UI控件,适合DotNet全系列使用,效果在这里就不发了,可以去官方网站 www.devcomponents.com 。能够完美模仿Office2007风格,兼之更加强大的可以替代VS.Net自带控件。8.8新增了很多功能,包括 Office2010 样式、Ribbon 等等。 DotNetBar is world's first component to introduce fully featured Office 2010, Windows 7 and Office 2007 style Ribbon controls, first to provide full Windows XP Theme support, first to provide Diamond Docking Guides for dockable windows etc. With DotNetBar you always get latest advancements in user interface technology in your applications before anyone else. Partial list of DotNetBar Ribbon Control features: Office 2010 Styling with new Application Button and Windows 7 and Windows Vista Glass support Office 2010 style Backstage Application Menu Windows 7 Styling Quick Access Toolbar (QAT) support with full customization and placement control Black, Silver and Blue color schemes included Office 2010, Windows 7 and Office 2007 Style Application Button Office 2010, Windows 7 and Office 2007 Style form support Office 2010, Windows 7 and Office 2007 Style popup Galleries Integrated support for Contextual Tabs concept Predefined color schemes for tabs and tab groups Office 2010, 2007 style KeyTips (accelerator keys) both single key and multi-key are fully supported You can create Drop-down menus, even drop-down toolbars are fully supported You can add any standard DotNetBar items to the RibbonControl header One or more tabs can belong to Tab Groups. Tab groups are used to visually group similar tab commands. Usually they are used for contextual tabs that are shown based on active selection and disappear once something else is selected Full control over Tab Group header is provided. It can be hidden, font changed, height changed and appearance completely customized through ElementStyle appearance object (in Office 2003 style) You can add any VS.NET Windows Forms control to a Ribbon tabs. Keyboard Shortcuts are fully supported as well Windows Vista Glass support Custom Office 2010, Windows 7 and Office 2007 style color scheme generator based on single color Intelligent resizing of buttons on the Ribbon to fit the screen size

hibernate_reference.pdf

hibernate_reference.pdf

Hibernate 官方网站上的一本介绍hibernate的参考资料。

Quickreport v5.05.1 for BC++ XE4 Full Source

Quickreport v5.05.1 for BC++ XE4 Full Source

QuickReport is a set of components and controls that allow reports to be designed and previewed in the Delphi and C++ Builder IDEs. Applications including Quickreport functionality can then be deployed royalty free. QuickReport is a banded report generator written in 100% Delphi code that integrates very closely with Delphi and C++Builder. Design reports within the Delphi/C++Builder IDE using the form designer as a report designer. Basic Features Report Designing - QuickReport is a banded report generator written in Delphi. Integrated very closely with Delphi and C++Builder, reports are designed in the Delphi IDE, using the IDE form designer as a report designer. Data connectivity - Quickreport can use any data component descended from the VCL TDataset class. The abstract table component provides a means to access any data that can be seen by Delphi or C++Builder while retaining all report features. Output modes - reports may be sent directly to a printer, saved in document format for later viewing, or saved as HTML, PDF, XML, CSV, XL, WMF or ASCII format. HTML and PDF may be streamed for fileless output. Features in detail Standard preview Thumbnails and text search MemoryLimit property of TQRPrinterSettings enables suppression of temporary files. Temporary files will be created if more memory is required than set. The PDF and HTML export filters do not create temporary files PrintQuality, Collate and Colour printer settings are in the report printer settings and the QRPrinterSetup dialogue box Composite report upgrade enables exporting. TCompositeReport has an ExportToFilter method for use with the PDF, HTML XML and XL filters Frames and background exports have been implemented. Band and control frames and backgrounds will be exported Export Filters can concatenate reports; PDF, HTML and XLS filters will take several reports The Direct print for metafil method may be called to send a saved report directly to the selected printer. Printer settings are respected and take precedence over internal report settings when possible Abstract dataset (Table) enables reports to be designed around a set of fields. Data to the fields can be fed in an event that is called when the dataset advances. Reports behave exactly as with a usual dataset XML/XSLT export filter outputs the document (not the data) as a browser viewable XML/XSLT document. A stylesheet for browser viewing is supplied Transparent bands and background image property is a QRImage control placed on the report (not on a band). The control remains invisible but its bitmap is painted onto each page before other printing. Bands may be set to Transparent to stop them over-painting the background Memo and RichText routines calculate the expanded height of a band and is is possible to stop bands breaking across pages without writing code RichText controls export to PDF, XML and HTML as images PDF filter enables TrueType fonts to be embeded, does not make temporary files and has a corresponding control that integrates with the preview The HTML (Web) filter produces smaller files and has properties to fix image linking difficulties and to improve the page-to-page links PDF, HTML and XML filters on palette and in preview controls integrate into the preview save menu when put on a form. Home: http://www.quickreport.co.uk/ProductInfo.aspx

Sakemail

Sakemail

SakEmail components Copyright ?1997 - 2003 Sergio A. Kessler web: http://groups.yahoo.com/group/sakemail/To subscribe to the mailing list of sakemail, just go tohttp://groups.yahoo.com/group/sakemail/History:0.9 - First released version0.9.1b -Fixed when a mail server reply on the connection with more than one line0.9.2b - I forget to return a value in functions retrieveHeader/Message =) and fixed it. Some minor bugs that I don‘t remember fixed.- Added MIME-compliant base64 support (not for use by now). Added examples.0.9.2.1b- Fixed a bug when send a mail and the first line disappear (thanks to Arun)- Now, you could do MySMTP.MsgTo := ‘a@doma.com; b@domb.com;c@domc.com‘; the spaces before/after semicolon doesn‘t matter (I hope ;)).0.9.3b- Many changes, I added a SakMsg component that make send binary attachments a snap. But have one problem, if you send as attach a file > 20 Kb, it doesn‘t work (I don‘t know why, maybe a problem of sockets). Developed with a version 2.0b of WSockets and D3.0.9.3.1b- Changed the POP.login to a function that return the number of new msgs.- Added the event OnRetrieveProgress on the SakPOP, and fixed the example, sorry =)- Minor changes to the code.1.0- Developed with WSockets 1.2 POP.Login now return a boolean depending id the user is authorized, and POP.Init return the number of new msgs.1.01- Fixed a bug with a bounced mail.1.02- Minor bugs fixed (some variants of boundary)14/10/971.1.0- Warning: WSockets1.2 have some bugs that result in bad attachments. So I decided to use the sockets of Delphi 3 founded in D3 c/s D3.01 pro and D3.01 c/s. Now all seems to work fine and much more smooth. And of course the interface of SakEmail hasn‘t changed.26/10/971.2.0- Added the Reply-To field to TSakMsg comp. Now you must use ‘,‘ when you want to send the msg. to multiple recipients, i.e.: ‘a@doma.com, b@domb.com,c@domc.com‘ This change is done for better compatibility with other emails clients.- Better formatting of the field Date of TSakMsg. Some changes to the code.17/11/971.2.1- Now, all searches are made in case-insensitive, it could prevent some unexpected responses (no one reported, but...). Some changes to the code (again).20/11/971.2.2- Some bugs fixed. (Thanks to Serge Wagener from .lu)24/11/971.2.3- Added the field ‘MIME-Version: 1.0‘. It seems that is necessary :)25/11/971.3.0- Added compatibility with SCO and VAX servers. Fixed a minor bug with the boundary.- Change the generator of the message id.- Added the field MessageId and InReplyTo to the TSakMsg component.- Added the field In-Reply-To that is added to the message generated when it is <> ‘‘.30/11/971.3.1- Almost rewrote the parsing code. Now is more easy for you if you want hack/modify the code.- Better treatment of emails with html inside.15/12/971.4- Added support for UUCoded attachments.- Added a small delay when sending the email, seems that some servers can‘t deglut the info too fast, causing problems with sockets buffers and leading to crash the client machine, I don‘t know if is a Borland bug or Microsoft bug. (thanks to Don Higgins).19/12/971.4.1- Fixed a bug that send double ‘<‘ and ‘>‘ (ie. <<ser@dom.com>>) when the full user name is used. Check the new SMTP demo. Thanks to Serge Wagener for locate this bug, track it down and send me the fix.2/2/981.5.0- Added the Canceled property to TSakPOP and to TSakSMTP. Due to this addition now RetrieveAllMessages is a function that return the number of msgs. retrieved and SendMessage is a boolean function (maybe someone has pressed the cancel btn).- Fixed a bug when the subject field is too large.9/2/981.5.1- Fixed a bug with a message within a message (recursive msgs).18/2/981.5.2- Fixed a bug what happens when after the field ‘To:‘ appear a blank line(Thanks to Osvaldo Fillia). Fixed a bug when sending email to more than two address (the separator is still ‘,‘).9/3/981.6.0- Sometimes the filenames of an attachment contain invalid chars making very dificult to open a TSaveDialog (you have noted this ?), now SakEmail deletes the invalid chars.- Applied a patch from Matjaz Bravc, that resolve the problem of localized dates, letting you choose (in design time) if you want localized dates (NOT recommended) or standards dates (english) via the LocalizedDates boolean property in the TSakSMTP comp. Thanks also to Serge Dosyukov for sending me a fix.- Also I applied another patch of Gregor Duchalski that cure a bug with PChar when this unit is used under NT. - It seems that some machines need more delay when sendig a msg (see previous posting 19/12/97), thanks to Matjaz Bravc.- I discover a bug in the transparency code, it is fixed now. Did you see the benefits of Open Source Software ? :)26/3/981.6.1- Added a FUNCFileName private variable to manage the complete path of the attached file. I receive problems reports with this, it work now ?.- Reduced the line sleep to 30 (tell me if this value doesn‘t work for you).27/4/981.7.0- Fixed a memory leak, thanks to Don Higgins.- Moved the string esErrorInFormatOfMsg to a property of SakPOP.- Because some people need to use IP addresses instead of Host names, I‘ve added a new property IPAddress to SakPOP and SakSMTP. If both are filled, then the Host name will be used, thanks to Roger F. Reghin for reporting this. The side effect for this is that YOUR app must check if the host is a host name or a IP address, in my app I remove the periods and try to convert the result to a float (long integers don‘t work, but float accept chars ‘e‘) if it doesn‘t work I assume that is a host name (someone has a better and simple idea ?).- Added the property FileStream to the class TAtachedFile and the procedure SaveToStream, this was done by Brian Sheperd- The address separator (in the TO: field) is ‘,‘ and ‘;‘ now (before it was ‘,‘ only).1.7.1- Roger F. Reghin has sended me a pair of nice patches that resolve in a good behavior when the destination address is something like &quot;Roger Reghin&quot; <rreghin@hotmail.com> and some servers says that they couldn‘t relay that mail, etc. Also Roger has made the IPAddress property obsolete (do not use it, use Host instead), SakEmail will resolve the host properly no matter if it is a host name or a IP address. So in the next version I will remove the IPAddress property. Thank you, Roger.1.8.0- Well, it seems that I made a mistake, I investigated the previous behavior and it is a fault of the SMTP (RFC 821), so I fixed it.- The IPAddress property has been removed, use Host. Goeran Strehl (asem) has sended me a patch that fix a memory leak and one problem with the object inspector and the Text property of a SakMsg. Dmitry Bondarenko say that some servers do not send the msg size after the RETR command, so he fix that issuing a LIST n command first (work nicely).- Added the property CC (Carbon Copy) to the SakMsg object.1.8.1- Added the property ReturnPath to the SakMsg comp. Minor changes to the scanning code for the filename of attachments.1.8.2- Fixed a bug with the filename of attachments (thanks to Taufer Pavel Ing.).- Added the function IsIPAddress from hou yg (the actual code don‘t work if the server is 265.net :) Fixed a minor bug with html pages like attachments. Some fucking email server return a bounded message declaring the boundary like ‘boundary = ‘ and not ‘boundary=‘ wich is clear in the RFC, fixed.1.8.3- A obscure bug was found by HuangYeJun from china, in the RetrieveHeaders function if the retrieved text was larger than 1024 bytes and the crlf.crlf fall in the middle of two chunks, the function is blocked. I don‘t use this function, btw.1.8.3.1- Just cleaned up a bit the FindUUAtachs function. Not bug or enhancements release. Serge Wagener put me to work >:|1.8.4- Dmitry Bondarenko (again) has found a bug in wich I do not respect the RFC, wich say that replys from the SMTP server could be multi-line, and the previous version just manage as far as two lines. He also send me a nice patch, so the bug is fixed.- Craig Manley added a ExtraHeaders property, please, use with care, it‘s just not valid to put inside it whatever thing.- The CC header was not being added to the headers that were being sent, so Craig fixed it.- Warning: I‘ve put try/except in the TSakPOP.Connect and TSMTP.Connect function around the line FSocket.Open, so you will need to write something like: myPOP.Connect; if POPError then ... in your code, the old way was: try myPOP.Connect; except ..... end; If you are strongly opossed to this change, drop me a line and tell me why (I‘m in doubts).1.8.5- Greg Nixon added the priority property. The default priority for each msg created will be prNormal, so you don‘t need to change your code any bit.1.8.6- Ulf Sturegren has added D4 compatibility, not many changes to the source (one letter), but he found the error.- Hou yg has sent to me a revisited IsIPAddress function, so I put the newer function in, infortunely my reply to him doesn‘t want to go.1.8.7- Ok, I discovered a weird bug, some old emailers (navigator 2) does not format the message in multipart mode if people send an attach, without writing any text and with no MIME settings. Fixed. This could be serious, I recommend upgrading.1.8.8- A small fix with the CC field. Some stupid mail servers put tabs in some fields (CC:, TO:) when they want to make a new line, the correct is to put at least a space in the beginning of the line, added a little code to &quot;fix&quot; that.1.8.9- Some ‘moderns‘ pop3 servers doesn‘t support the LAST command, so I‘ve added a little code to cope with this and added a boolean property ServerSupportLastCmd. See TSakPOP.Init for more details. Reported by Jan Najvarek.1.9.0- Kaufman Alex has added two properties to the SakMsg object, the ContentType and the Headers property, that should be self explaining (I modified a little the code he sended me, btw).1.9.1- I rewrote and greatly simplified the code that deal with the multiple address in the TO: field and remove some possible bugs in it.1.9.2- Alex discovered and fix a bug when a file attached is not enclosed between quotes, resulting in the filename without the first and last character.1.9.3- Better detection of the boundary in multipart messages. Fixed a bug when the attached file is empty.1.9.4- Chris G黱ther send me *lots* of memory leaks fixes, very good job, Chris. - Some weird PGP messages are now processed well.- Yang Qiandong from china fixed a compiler hint and a warning.- Modified TSakSMTP.FReceiveTextFromSocket as suggested by Greg Nixon.- Dmitry Bondarenko send me a patch that fixes some issues with the LAST command (that some servers don‘t implement) and other patch that fixes a problem when servers add spare words in the tail of the answer.- Some minor changes suggested by Matthew Vincent.- Support for _big_ attachments files (me).- Make the code more modular and simple (still is not very modular).1.10.0- Move some stuff to a sak_util unit.- Support for quoted-printable msgs, thanks to Chris G黱ther.- Fix the BCC field.- New property sakMsg.ContentTransferEncoding.2.0.0- Major reestructure of the files and the source code.- Simplifyied sakPOP3.pas a _lot_- Support encapsulated messages (message/rfc822).- Nested multipart messages are processed fine.- Attachs with quoted-printable are processed fine.- Many bugs fixes.2.0.1- A fiasco, sorry.2.0.2- Fixed a bug in the sak_CleanUpAddress.- Do the rigth job if the ContentType is ‘plain/text‘ and the encoding is base64.- Redone sak_ExtractAddress and sak_ExtractAlias.- New ‘Sender‘ property in SakMsg (normally not used, so do not use it, unless you know what you are doing) ‘Thanks‘ to Alex Kaufman for this.2.0.3- A *severe* bug with multiple addresses was fixed.2.0.4- Fixed bogus Message-number (Message-id is the correct) Thanks to Peter Honan- Added SizeInBytes property to the SakMsg component. (petition of Alex Kaufman)- Fixed a minor bug in TSakPOP.RetrieveHeaders. Fix from Alex.- Added RetrieveMessageOnlyHeaders and - RetrieveAllMessagesOnlyHeaders.2.0.5- Fix when the mail server reply is like <cr><cr><lf> (two cr).- Fix function IsIpAddress.- Both fixes by Alessandro Rossi.2.0.6- Fix a bug in the sak_Base64Decode function when the data to decode is null (I found it in the hard way).- Andy Charalambous make it sure you can send more than one email without disconnecting and connecting again.- And Chris ‘Memory Hunter‘ G黱ther killed some memory leaks (again).2.2.0- the f* sleep line that was bothering us for years is gone, gone, gone. Thanks to Syed Ahmed.- a getUIDL method of SakPOP. Thanks to Alex Kaufman.- a UIDL property on SakMsg. (me)- a SakPOP.GetUIDLsOnRetrieve boolean property (default false) (me)- change some ‘Exception.Create()‘ to ‘raise Exception.Create()‘ Thanks to Anton Saburov.- change SakPOP.Init from function to procedure (me)- new SakPOP.NewMsgsCount property (me)- changed SakPOP.Password to SakPOP.UserPassword (me)- changed SakPOP.ErrorInFormatOfMsg to SakPOP.StrErrorInFormatOfMsg- OnLookup event on SakPOP and SakSMTP. Thanks to Syed Ahmed.- OnConnecting event on SakPOP and SakSMTP (me).- OnReceiveTextFromSocket event on SakPOP and SakSMTP (me). (mostly for debug)- OnSendTextToSocket event on SakPOP and SakSMTP (me). (mostly for debug)- Headers are retrieved without the mail body (ugly bug, fix from Alex Kaufman)2.4.0- I‘ve revamped TSakMsg, many funcionality from SakPOP was moved to SakMsg, where it belongs.- Now SakMsg has a RawMail property wich you may find useful, now you can do: SakMsg1.RawMail.LoadFromFile(‘(uidl).mail‘); SakMsg1.ParseMsg; or SakMsg1.RawMail.LoadFromStream( myStream); SakMsg1.ParseMsg; or SakMsg1.RawMail.SaveToFile( ‘(uidl).mail‘); etc, etc...- Added a property TSakMsg.ClearRawMailAfterParse for memory saving.- the return of the f* sleep line (it causes freezes on winsock 1.1 systems like win95, win98 has winsock 2 so there is no problem if you remove the line)- lost of the DecodeProgess events :( (sorry, I don‘t know how to fit this events on the new SakMsg)2.6.0- the sleep() line is dead, it will never come back. Sending an email is a pleasure now.- SakMsg has a TextEncoding (8Bit, Base64) property, I think this will be useful to people with others charset than iso-8859-1- the base64 routines have been rewritten, they are more OO and faster (they are now in SakMIME.pas).- cosmetic changes all over the place.2.6.1- simplifyed ParseMsg2 a lot, it work better now.- speed up the search for uucoded attachs (the previous search was very dumb)- fixed bug Msg.SizeInBytes always 0- added a couple of Application.ProcessMessages to make the app more responsive.2.6.2- moved some functions from sak_utils to SakMIME.- make const parameters all over the place.- fix the bug that introduces a final crlf in quoted-printable attachs.- fix a division by zero if attached file is 0 bytes long, fixed by Peter Kollanyi.2.6.3- fix a rare bug when the header of a email (more probably a encapsulated one) has first line/s in blank. Easy and innocuous bug.2.6.4- fix the bug that insert the attachs of type text/* on the body of the email.- change the Smtp.SendMessage for Smtp.SendTheMessage to avoid a BCBuilder problem. Both problems reported by Andreas Franzen. SendMessage is still there, but it‘s now deprecated, I will remove it in the future.2.6.5- moved the ParseMsg activation from SakPOP to SakMsg (where it belong), this means that after setting the RawMail property of SakMsg, this does a ParseMsg automatically. before: SakMsg1.RawMail := ... SakMsg1.ParseMsg; now: SakMsg1.RawMail := ... hope I‘m not breaking too much code out there ... :)- some changes in the way attachments are processed (now the html part is separated correctly and images within the html are recognized)- RetrieveMessage() and RetrieveMessageOnlyHeaders() now take an additional parameter, a TSakMsg var, so people can change some parameters before parsing, see the source in SakPOP3.pas (the old way is still supported, but they will be removed in the future)- bug fixes that I do not remember.3.0.0- moved code around.- removed deprecated functions (I told you about this)- new SakAttFile unit.- Base64Encode( AttFile), Base64Decode( AttFile), UUDecode( AttFile) has been moved to the TAtachedFile object, so you can do AttFile.Base64Encode, AttFile.Base64Decode, etc- SakSMTP have lost EncodeStart, EncodeProgess and EncodeEnd events as a consequence of the previous change.- SakPOP.Canceled and SakSMTP.Canceled properties have been made read-only and SakPOP.Cancel and SakSMTP.Cancel procedures (or methods) have been added.- add a SakMsg.FillRawMail method that will fill the RawMail property with a rfc822 message based on the properties of SakMsg.- changed SakSMTP.Quit & SakPOP.Quit to Disconnect- deleted TAttachedFile.FileStream (redundant), use BodyBin- removed the function sak_getTempFileName (as it should no be trusted) use function sak_GetTempPath- the new SakIMAP component !, this make a pleasure to work with incoming emails (as you can have folders, etc). Note: the IMAP component has only been tested with the Uni. of Washington server, but it should work with any *STANDARD COMPLIANT* server. Anyways, the code of this component is very simple, so if you have problems, a look in the source code can enligthen you.3.0.1- fixed a brown paper type of bug.3.0.2- support the case where attachs do not come from files (Lars Karlslund)- minor bugfix in UUDecode function (Lars Karlslund)- if the SakMsg.Username is empty, do a VRFY command at the smtp server to try to get the full user name (sergio)- function TSakIMAP.GetFolderList (Peter Nagel)- function TSakIMAP.GetHierarchyDelim (Peter Nagel)- frustrated intent (ie. commented out) to remove memory leaks in POP, SMTP & IMAP destroy functions (Ronald Moesbergen)3.0.3- actually create (and free) the FolderList in sakIMAP (Neculau Andrei)- try to send the FQDM to the HELO command in SMTP (sergio)- commented out the VRFY command in SakSMTP, and cut the from address in the From field (in SakMsg), so if the username is empty, the SMTP server rewrite the from address in a complete way, with username & full address (sergio)- fix a minor bug in TBase64DecodingStream.Write function (Lars Karlslund)3.4.0- many, many improvements to the IMAP component by Peter Honan (I applied the patch with minor modifications, mainly to respect delphi coding standard, taking out the overloading, the selectFolder function was overcomplicated, etc)- FAQ updated (me)3.4.1- minimize the chance for two temporal messages stored on disk to collide (can be hit in previous versions if you run multiple instances of retrieveMessage at the same time)- FAQ updated.3.4.2- a new sak_CleanUpAddresses() implementation, by Knut Baardsen- better handling for temporal messages, suggested by Andrew- many improvements (including ACL -Access Control List) to the IMAP component by James Chaplin3.4.3- reverted to the old sak_CleanUpAddresses() implementation Knut‘s one is almost rigth, but don‘t let us use addresses without domains- add Headers.Clear before filling headers, by &quot;Antonio Carlos Ribeiro Faria&quot; <consultor@cys.com.br>3.5.0- add TSakMsg.LoadFromTextFile from Oak Chantosa- big jumbo mambo patch from James Chaplin first patch: 1) Operation timeout - OperationTimeout timeout for non-responding receive operations. 2) Forced abend - ForceAbend method that will disconnect and reset state. 3) Optional folder lists - AvFolderList and AvSUBFolderList provide alternatives to FolderList and SUBFolderList that ensure the lists do not contain inacessible folders ( flagged by the server ). 4) Folder name fix - Provided a function to &quot;fix&quot; folder names before submission. Currently it fixes names containing spaces. second patch: 1) Capability - Ask for server capabilities/extensions. 2) Noop - Basic noop command - updates message counts as well - preferred alternative to status. 3) Status - Explicit status command - generally useful for status of a non-selected mailbox. 4) Fetch - Retrieve message data. 5) FetchBody - Retrieve the body of the message. 6) ExamineFolder - A read-only select command. 7) CloseSelectedFolder - Close the currently selected folder. 8) Idle - RFC2177 extension - not implemented on very many servers. 9) Search - Search based on RFC2066 criteria. 10) UIDSearch - Search based on RFC2066 criteria - results are in UID form. 11) UIDStoreFlags - Store message flags based on UID. 12) UIDFetch - Fetch message data by UID. 13) UIDCopyMessageToFolder - Copy a message by UID. 14) Authenticate - Basic framework. Only plain authentication extension implemented. 15) CloseOnError - A new property that allows the user to turn off the default behaviour of disconnecting from the server when an IMAP error is received 16) Namespace - RFC2342 Namespace query command. 17) ListFullHierarchy - Property which allows a switch between &quot;*&quot; ( default ) or &quot;%&quot; as the wilcard for default folder/list methods. 18) List - Explicit list command in case it is needed. third patch: 1) fix problem with imapd 2001a, reported by Holger Mauermann. 2) remove all warnings.3.5.1- revert change to the base64 encoding routine.3.5.2- changes from James Chaplin: 1) TSakIMAP will now properly process non-numeric UIDs for messages ( there was a sak_StrWord2Int transform being used before - which always produced a 0 value for non-numeric UIDs ). 2) TSakIMAP.RetrieveMessageExt ( private method ) was modified to provide a retrieval by either MsgID or UID. 3) TSakIMAP.RetrieveMessageByUID was modified to use the slightly more efficient TSakIMAP.RetrieveMessageExt(UID) method specified in 2) above. I also made an update to the SakMIME.pas unit. The changes that were implemented are: 1) sak_Base64Encode - a basic Base64 encoder. String input and string output with the option for CRLF splitting. 2) sak_Base64Decode - a basic Base64 decoder. String input and string output with a control for CRLF interpretation. 3) sak_Base64Verify - a very basic Base64 string verifier.3.5.3- robustify and code cleanups by Paul Vernon.3.5.4- access violation fix by Paul Vernon.3.5.5- go back to good old trusty 3.5.23.5.6- this time, all the cleanup & fixes from Paul Vernon seems to work well.3.6.0- Paul Vernon latest minor fixes- added basic SMTP authentication, by Delfi and Antonio Carlos Ribeiro Faria3.6.1- fix a mayor bug when sending to many addresses (by sergio)3.7.0- add full support for html mails, by Paul Vernon. (The TAttachedFile now has an extra boolean property called embedded. This property lets you use the syntax <img src=DownloadFiles2&quot;CID@myimg.gif&quot;> in your HTML mails)- fix a weird typo for BCC fields- add Content-ID, by alejandro Castro- fix &quot;_&quot; characters in subject, regression fix.- cleanups all around, by Paul Vernon.- SMTP example updated to cope with html emails.**warning** from this version, the html part of mails will not be stored as attachments by default, if you want this behavior, you just do something like: aSakMsg := TSakMsg.Create( self); aSakMsg.HTMLAsAttachment := true; ...3.7.1- fix TSakMsg.PopulateList (Jalin)3.7.2 (codenamed &quot;melissa&quot;)- fixed a bug when the Populatelist procedure got re-written in sakMsg. It wasn‘t populating the SendTo field if there was only one e-mail address... (Paul Vernon)3.7.3 - Congratulations to Sergio on the addition to his family. This release was made by Paul Vernon who has temporarily taken over the release functions for the SakMail components whilst Sergio spends time AFK!- The 3.7.2 bug fix added blank entries to the address lists. The PopulateList procedure has been re-written again to hopefully cope with any type of e-mail address formatting.- The SMTP example noted in 3.7.0 actually shipped with this release!3.7.4- Bugfix for detecting UUEncoded mails correctly. Previous versions processed MIME mails with the value ‘begin xyz‘ if it appeared at the beginning of a line as a UUEncoded mail when they should not have.- POP and SMTP connect procedures are now functions. Existing code is unaffected. However, you can now use the following code if (sakPOP.Connect) then begin end;- POP gracefully quits if it receives an error now by calling Disconnect correctly.3.7.5- Further code to improve identification of UUEncoded mails. Essentially looking for the end as well as the beginning to ensure that it is correct.- Code optimisation of certain UUEncoded mail id functions.- Fix to ensure that the body of a mail that is UUEncoded is not lost.- MIME-Version string introduced into TsakMsg component to help with UUEncoded mail identification.- SizeInBytes property altered to read private variable using a function. If the private variable is 0, the function reads the length of the FRawMail.Text property.- Fix to make sure that the filename is not overwritten by a blank value when parsing mail-headers.3.7.6- Fixed list index out of bounds error.- Added POP3 RSET call TSakPOP.Reset.3.7.7- Altered SizeInBytes and Octets values to return server-side size when d/l headers only and use actual size once the entire message is downloaded.- Fixed a bug in GetBasicHeaders where To and CC fields could be mishandled if the mail headers were formed in a particular way.4.0.0 beta- All methods are now wrapped in classes. sak_util is now included for backwards compatibility only.- Several changes to make sakMail thread safe including the introduction of Mutexes which are cross process safe. Critical sections were an option however, although mutexes are a little slower, they are much more effective when you aren‘t sure how the code is going to be deployed...- Made several changes to the way connections are tracked, now making better use of the underlying Delphi components own properties and functions.- Several bug fixes included from solutions posted on mailing lists. Including change to datetime function to respect local time separator. There are more including one that Adem re-raised.- Removed almost all pointers as per Adems suggestion. Makes for neater code.- Hopefully backwards compatibility is kept. This is one of the objectives of the excersice although, internally, the components no longer use any of the non-object based methods. Also some of the non-object based methods actually have been re-written to create an object use the instance of the original method and then destroy the object again. This introduces a minor overhead however, because the objects are discreet, the trade is for much better memory usage and greater thread safety.- Introduced an include file to define compiler directives. Currently there are two directives. One defines whether to use the VCL or not, the other defines whether or not to use the FastStrings components. - With the intoduction of the Include file, this allows the development of code that is optional for users. One of these such changed is the use of the FastStrings base64 decoder. If you install the FastStrings components and turn on the compiler directive, you should have no functional changes however, the base64 decoder routines should have a much higher performance rating. Tests clock in at over 2000% faster attachment decoding on a P4 1.8GHz machine. (1.2Mb file 1686mS native sak Base64 Decoder, 79mS using FastStrings!)- This version is being released as a beta as the changes are pretty drastic. If the code is deemed to be stable and backwards compatible then it will be re-released as v4.0.1 with no changes.4.0.1 beta- Fixed an issue where Range Checking highlighted that the Attachment b64 decode routine raise a Range Error if the line that was to be decoded was empty. i.e. ‘‘.- Introduced a compiler directive to turn off range checking in the sakMIME procedure TBase64DecodingStream.Write to make sure that it runs correctly as Range Checking causes issues in this function.4.0.2 beta- Changed MailDateToDateTime function to the one provided by DengZhaoHui with a few modifications as even though it has better date processing than the original it caused EConvertErrors with some non-rfc dates.- Added the compiler directive to allow the inclusion of MD5 components from the DCPCrypt suite of encryption components. This allows the components to do APOP and SMTP AUTH functions as specified in RFCs 2095, 2104, 2449 and 2554. {UseDCP} ***** NOTE: These functions are experimental as although they are RFC compliant, they have not been tested against a secure mail server yet... *****- Using EurekaLog during load testing of the POP mail component, found and fixed several AV‘s in sakMSG, sakMIME and sakPOP. Mainly simple mistakes that required re-ordering of code or more checks before trying to manipulate data.- Altered the sockets code to be more stable with some servers. The previous implementation was totally incompatible with SendMail NT v3.0.2.- Fix added to compensate for incorrect operation of Connected property in some versions of Delphi.- Altered GetMultiLineFieldBody as per Adems suggestion. Also took some of Adems code and added it to GetFieldValueFromLine as the escape characters can appear in single line headers as well as multi-line ones.- TClientSocket is deprecated in Delphi 7. This may be the next large change in the sakEmail components. - Updated distribution to include more RFC‘s regarding the message format, POP and IMAP and hashing functions for CRAM mechanisms.- Fixed the handling of redirected mails as created by Eudora.- Force PopulateList to clear the list before populating it again.- Created a Delphi 6 package file.4.0.3 - Fixed AUTHSMTP buffer initialisation error. (Dmitry G. Kozhinov and Gabi Slonto)- Improved identification of servers that do not support the UIDL command. A small overhead is intorduced on servers that do support the command and have several mails to download but the feature allows better interaction with those servers that do not support UIDL.- Priority is now reported correctly when an e-mail is being decoded rather than only being used when sending an e-mail.4.0.4- Fixed an issue with a malformed header in a mail sent from MS Word through an Exchange server- Added a couple of try...finally blocks to the sakIMAP component.- Altered the sakIMAP components connected function to mirror the more accurate sakPOP method.- Consolidated all compiler directives into sakDef.inc- Added versioning compiler directives to allow the compilation of sakemail under Delphi 4.- General tidying of code. 4.0.5- Created a Delphi 7 package- Added properties to the IMAP component to allow read access to the LocalAddr and LocalHost socket properties.- Bugfix to sakMsg PopulateList function where a comma separated list did not contain any spaces- Access violation in sakPOP component due to incorrect use of free,freeandnil and compiler directives4.0.6- Added several features to the IMAP components.- Tidied up SMTP authentication routines (Improved use of MD5 for authentication using DCP components)- Included capability to send messages without an SMTP server (using Indy DNS components for MX lookups)- Bugfix in message parsing to stop a recursion loop due to a malformed mail.4.0.7- Memory leaks found by Amos and Paul regarding the sakMsg and sakPOP units respectively.- Bug fixes to attachment save code including stripping out invalid .. sequences from filenames- Improved the GetConnectedState method to check against the RemoteHost value on the Socket.- Updated POP example to be more responsive when downloading mail. Fixed a memory leak.Don‘t forget to subscribe to the mailing list (see the web pages at http://groups.yahoo.com/group/sakemail/)

CUDA Programming Guide, Release 13.3 中文版

CUDA Programming Guide, Release 13.3 中文版

CUDA Programming Guide, Release 13.3 中文版

最新推荐最新推荐

recommend-type

高校技术转移办公室如何实现技术成果的智能推荐与精准路演?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
recommend-type

麻烦了熠哥,麻烦了熠哥麻烦了哈

麻烦了熠哥,麻烦了熠哥麻烦了哈。麻烦了熠哥,麻烦了熠哥麻烦了哈。麻烦了熠哥,麻烦了熠哥麻烦了哈
recommend-type

STM32 LCD 16×2 屏幕使用

STM32 LCD 16×2 屏幕使用
recommend-type

两台逆变器并联零序环流抑制+LCL并网矢量控制Simulink仿真

内容概要:本文详细介绍了基于两台逆变器并联运行的Simulink仿真模型,重点研究了零序环流抑制与LCL滤波器结合的并网矢量控制策略。通过构建精确的逆变器并联系统模型,采用先进的控制算法有效抑制零序环流,同时利用LCL滤波器提升并网电流质量,增强系统稳定性与电能质量。内容涵盖系统建模、控制策略设计、关键参数整定及仿真验证全过程,并提供完整的仿真文件与参考文献,便于读者复现与深入理解。该模型对分布式发电系统中多逆变器并网协调控制的研究具有重要参考价值。; 适合人群:电力电子、新能源发电、自动化及相关领域的高校研究生、科研人员及企业研发工程师。; 使用场景及目标:①掌握多逆变器并联系统中零序环流的产生机理与抑制方法;②学习LCL滤波器的设计及其在并网逆变器中的矢量控制应用;③通过Simulink仿真平台完成控制系统建模与性能验证,服务于科研项目开发或课程设计实践。; 阅读建议:建议读者结合提供的参考文献与仿真模型文件,逐步搭建系统模型,重点关注控制器参数设计与环流抑制效果的关系,并尝试调整工况以观察系统动态响应特性,从而深化对并网控制策略的理解。
recommend-type

share_b0dd64dd072936e16da2f27bbd48bdc51791767975916.mp4

share_b0dd64dd072936e16da2f27bbd48bdc51791767975916.mp4
recommend-type

Go语言高并发云原生数据库实战:覆盖时序、图、文档、关系型及区块链数据库

数据库系列课程中“Go语言高并发与云原生项目实战资源”这一标题,实质上指向当前企业级数据基础设施演进的核心交汇点:以Go语言为开发底座,深度融合高并发处理能力、云原生架构范式与多模态数据库技术体系的工程化实践路径。其描述中“New SQL OLAP”并非泛指传统OLAP(联机分析处理)系统,而是特指新一代基于SQL接口、面向实时/近实时分析场景、具备弹性伸缩、存算分离、多租户隔离、流批一体能力的现代化分析型数据库范式——它既继承了SQL易用性、标准兼容性与成熟生态优势,又突破了传统MPP架构在动态扩缩容、混合负载支持、低延迟响应(亚秒级)、高吞吐写入(百万TPS级)及云环境适配性等方面的固有瓶颈。该范式典型代表包括ClickHouse(列式存储+向量化执行+异步复制)、Doris(MySQL协议兼容+物化视图+Rollup预聚合)、StarRocks(全新C++内核+智能物化视图+统一实时分析)、Trino(联邦查询引擎+插件化连接器+无状态协调节点)以及由Go语言主导构建的新兴系统如QuestDB(专为时序优化的SQL OLAP,支持毫秒级时间分区、内存映射IO、SIMD加速)、Materialize(基于Timely Dataflow实现的增量物化视图引擎,支持SQL流式持续查询)等。 从压缩包内子文件名列表可深度解构其知识体系全景:首先,“时序数据库”模块聚焦IoT、监控、金融行情等高频写入、按时间窗口聚合、降采样、异常检测等典型场景,涵盖InfluxDB(TSM引擎+Flux查询语言)、Prometheus(本地TSDB+Pull模型+Recording Rules)、TDengine(单机亿级写入+超级表建模+内置计算函数)及QuestDB(Go+Rust混合编写,支持SQL JOIN时序对齐、LIVE QUERY实时订阅)等,强调时间戳主键设计、倒排索引优化、无锁写入队列、LSM-Tree与Delta Encoding压缩策略;“关系型数据库”部分不仅覆盖MySQL(InnoDB事务隔离级别实现、Buffer Pool管理、Redo/Undo日志机制、主从GTID复制)、PostgreSQL(MVCC快照原理、WAL日志归档、逻辑复制、扩展PL/pgSQL与FDW外部数据包装器),更深入探讨其在云原生下的演进形态——如Citus(PG分布式扩展)、CockroachDB(Spanner-inspired强一致分布式SQL,Raft共识+Multi-Raft Group分片)、YugabyteDB(DocDB存储层+YSQL兼容层,支持自动分片与跨区域复制);“文档型数据库”解析MongoDB(WiredTiger引擎的LSM+Copy-on-Write、Change Streams实时监听、Aggregation Pipeline阶段优化)、Elasticsearch(倒排索引+Doc Values列存+Query DSL语法树编译、Hot-Warm-Cold冷热分层架构)及其与Go生态集成(mongo-go-driver异步操作、elastic/v7客户端批量写入优化);“图数据库”涵盖Neo4j(Cypher查询语言+原生存储+图算法库)、Nebula Graph(Shared-Nothing架构+Storage-Compute分离+gQL查询语言)、Dgraph(Raft分片+GraphQL+-like查询+增量同步),重点剖析属性图模型、Gremlin/Cypher图遍历算法复杂度、索引组织(如Label Index、Property Index、Composite Index)及Go客户端驱动的连接池管理与事务控制;“数据仓库与大数据”模块横跨Lambda/Kappa架构对比、Iceberg/Hudi/Delta Lake三大开源表格式(ACID事务保证、Schema演化、Time Travel、隐藏分区、Z-Order聚类)、Flink SQL实时ETL、Spark SQL离线数仓构建,并强调Go语言在数据管道编排(如通过Airflow Go SDK或自研轻量调度器)、元数据服务(Atlas Go Client)、数据质量校验(custom Go validator集成Great Expectations)中的独特价值;“区块链”子项并非孤立技术,而是作为可信数据源接入层,解析Hyperledger Fabric(Channel隔离+Chaincode链码+Private Data Collection)、Ethereum(Solidity合约+Web3.go SDK交互+事件日志解析)如何与OLAP系统联动,实现链上数据可信导入、溯源分析与合规审计;“图数据库”与“区块链”的并列暗示了知识图谱与链上地址关系挖掘、反洗钱图谱构建等交叉应用场景。 整个课程体系以Go语言为贯穿主线:利用其goroutine轻量级协程与channel通信机制实现高并发数据采集Agent(如Kafka Consumer Group自动再平衡、Prometheus Exporter指标暴露);借助net/http与fasthttp构建低延迟API网关,对接多数据库后端并实现熔断限流(go-zero微服务框架集成Sentinel);运用Go Module依赖管理与CGO调用C/C++高性能库(如ClickHouse C++ client、OpenSSL加密);结合Docker+Kubernetes Operator模式封装数据库StatefulSet部署(如etcd-operator、postgres-operator),实现自动化备份恢复(Velero+Restic)、配置热更新(Consul KV+watch)、健康探针定制(livenessProbe执行SQL心跳检测)。尤为关键的是,课程将“云原生”具象为可观测性(OpenTelemetry Go SDK埋点+Jaeger链路追踪+Prometheus指标采集)、声明式API(CRD定义数据库实例规格)、服务网格集成(Istio mTLS加密数据库连接)、GitOps交付(Argo CD同步Helm Chart部署Doris集群)等可落地实践。最终,所有技术模块均服务于构建一个具备毫秒级实时分析、PB级数据规模、跨地域高可用、多源异构数据联邦、安全合规审计能力的新一代SQL OLAP平台——这不仅是技术选型的集合,更是面向未来十年数据密集型应用的系统性工程方法论。
recommend-type

OpenStock:中小企业可用的开源库存管理系统

## 1. OpenStock 是什么:一个面向中小企业的开源库存管理系统,不是玩具项目 OpenStock 这个名字乍一听像某个云服务的子产品,但实际它是一个完全面向真实业务场景打磨出来的开源库存管理平台。我第一次在 GitHub 上看到它时,第一反应是“又一个 React + MongoDB 的练手项目”,点开 README 后才意识到——这东西真能用,而且已经在三家本地五金店、两家烘焙工坊和一家小型医疗器械经销商那里跑了一年多。它不追求炫酷的 3D 仓库可视化,也不堆砌微服务架构,核心就干一件事:让老板、仓管员、采购员三类角色,在同一套数据底座上,用最顺手的方式完成“入库→上架→出库→
recommend-type

深度学习里常听说的‘内积层’到底指什么?它和全连接层是什么关系?

### 关于内积层的理解 在深度学习领域,并不存在名为“内积层”的标准术语。然而,在某些情况下,“内积”这一概念可能被提及来描述特定类型的运算或者变换过程。 #### 内积的概念解释 内积是指两个相同维度向量之间的乘积累加操作,即对应位置元素相乘后再求和的结果。这种计算方式广泛应用于各种机器学习算法之中[^1]。当提到“内积层”,可能是指涉及此类运算的一个抽象层次或者是对某一具体实现方法的形象称呼。 #### 类似功能的层——全连接层 实际上,在卷积神经网络架构里承担类似角色的是全连接层(Fully Connected Layer),该层负责接收来自前面各层提取到的空间局部特征并将其
recommend-type

MATLAB 2019实现多波形同坐标绘图及示波器数据导出至Excel和Origin

在MATLAB中实现“多波形同坐标”绘制,是信号处理、控制系统仿真、通信系统建模、电力电子分析以及各类工程科研实验数据可视化中的核心技能之一。该技术的本质在于:将多个具有相同横轴物理意义(如时间、频率、采样点索引等)但不同纵轴响应特征(如电压、电流、相位、幅值、误差、状态变量等)的波形信号,在同一组坐标系(即同一个axes对象)中叠加显示,从而实现直观对比、趋势分析、时序对齐、误差评估与动态演化观察等关键科学目的。其重要性远超简单的绘图操作,而是一种融合了数据采集逻辑、内存管理策略、图形句柄控制、色彩语义设计、图例标注规范及跨平台数据互通能力的系统性工程实践。 首先,从数据来源维度看,“多波形”的生成途径高度多样化:既可来自Simulink模型中多个Scope模块的实时仿真输出,也可源于MATLAB脚本中通过算法生成的多组理论波形(如正弦+方波+锯齿波混合信号),还可导入外部测量设备(如示波器、DAQ卡、网络分析仪)采集的实测数据(.csv/.mat/.tdms格式)。尤其在Simulink环境中,新版MATLAB(R2019a及以后)对Scope模块进行了深度重构——引入了“Logging to Workspace”机制,取代了旧版中依赖To Workspace模块或手动右键导出的低效方式。用户只需在Scope界面点击齿轮图标→进入Configuration Properties→勾选“Log data to workspace”,并指定变量名(如waveData)、保存格式(推荐Array或Timeseries)及采样率/缓冲区大小,即可在仿真结束后自动将全部通道数据以结构化数组形式载入Base Workspace。此过程确保了时间轴严格同步、采样点一一对应,为后续多波形精准叠加奠定数据一致性基础。 其次,在绘图实现层面,“同坐标”并非简单调用多次plot命令即可达成。必须深入理解MATLAB图形系统的底层架构:每个figure包含一个或多个axes容器,而每个axes可容纳任意数量的line对象。标准做法是使用hold on指令锁定当前axes,再依次plot多组x-y数据;更优方案则是采用向量化语法——如plot(x1,y1,x2,y2,x3,y3,...),MATLAB会自动为每条曲线分配不同颜色与线型,并共享同一坐标轴范围。针对不同量纲波形(如电压V与温度℃),需启用yyaxis left/right双Y轴;若需多X轴(如时间与频率映射),则需借助twinx或自定义坐标变换。此外,必须配套执行xlabel、ylabel、title、legend、grid on、box on等指令完善图表语义,其中legend应明确标注各波形物理含义(如'PWM驱动信号'、'电机转速反馈'、'PID输出误差'),避免歧义。对于高频采样大数据(如100万点),应启用plot(...,'-','Marker','none')禁用标记点以提升渲染效率,并考虑使用xlim/ylim限定视图区域防止坐标轴过度拉伸。 再者,跨软件协同是该技术落地的关键延伸。描述中提及导出至Excel与Origin,这要求掌握MATLAB的数据导出范式:对已加载的waveData数组,可用writematrix(waveData,'output.xlsx')直接写入表格,或用xlswrite(旧版)、writematrix+writematrix组合导出多列;对于Origin,则推荐生成符合其支持格式的.dat文件(空格/制表符分隔),或通过COM接口调用OriginLab自动化引擎实现无缝对接。值得注意的是,导出前务必验证数据维度——Array格式默认为M×N矩阵,第1列为时间轴,其余列为各通道波形;若为Structure格式,则需先提取waveData.time与waveData.signals.values字段重组为二维数组,否则易导致坐标错位。 最后,工程实践中需规避若干典型陷阱:一是未清空工作区导致变量名冲突;二是忽略采样率不一致引发的时间轴偏移(如两路信号采样率分别为1kHz与10kHz,须先重采样对齐);三是legend顺序与plot调用顺序不匹配造成标签错位;四是未设置FontSize、LineWidth等属性致使论文插图不符合出版规范(IEEE/Elsevier通常要求字号≥8pt,线宽≥1.5pt)。综上,“matlab多波形同坐标”绝非孤立命令技巧,而是贯通建模仿真、数据采集、图形编程、结果验证与学术表达的全链条能力,其掌握程度直接反映工程师在复杂系统分析中的专业深度与工程严谨性。
recommend-type

OpenStock:开源A股行情数据抓取与自动化选股策略工具

如果你盯盘一天只能看两三次,如果你复盘时总想搞清楚“今天到底哪些票资金在进、哪些在出”,又不想每天打开行情软件被广告和荐股弹窗轰炸,那“OpenStock”这个开源项目可能会刚好踩中你的需求。 OpenStock是一套面向个人投资者的开源行情数据抓取与分析工具,核心理念很简单:把A股每日的行情快照、涨跌停数据、板块资金流向、技术指标信号全部自动拉到本地,集中清洗入库,再用一套可扩展的选股策略引擎做二次筛选,最终输出你真正关心的“可以复盘、可以跟踪、可以留档”的数据结果。它适合三类人:一是没有编程基础但想用现成脚本做常用数据留档的交易者,二是刚入门量化、想用真实行情数据练手策略的开发者,三是已