报表设计爱招飞帮助手册

FastWeb中提供了简易的方式进行数据以及打印模式的引入。在打印格式模块引入前,请先检查模块窗口中是否存在需要引用的数据集。该数据集将在打印格式设计模块中被引用。此处以demo数据库中的Basic_WHS(仓库)表为例。对应的数据集的SQL语句设置为SELECT*FROMBasic_WHS。

新建一个模块并进入模块设计界面。在窗口中放置TUgMenuButton或者TUgFSMenuButton组件与TUgFDQuery。为方便起见,将按钮的Caption属性设置为打印。

在窗体结构与检视器中点击UgWebRunFrame,下方切换至事件选项卡,双击其中的OnAfterRunScript生成对应的事件。在其中添加如下程序内容。

//JScript//添加打印报表UgFDQuery01.Connection=UGMM.GetNodeDataLink("demo");UgFDQuery01.SQL.Text="SELECT*FROMBasic_WHS";UgFDQuery01.Open;UGMM.AddReport(btPrint,//报表功能附加到哪个按钮下,名称为对应的控件名称,此处仅为示例,实际使用修改为你使用的名称,比如UgMenuButton01UGMM.ReportDesignPermission(Self),//报表设计权限【动态模块:当前登陆用户等于模块开发者时】self.Guid);12345678//PasScript//添加打印报表UgFDQuery01.Connection:=UGMM.GetNodeDataLink('demo');UgFDQuery01.SQL.Text:='SELECT*FROMBasic_WHS';UgFDQuery01.Open;UGMM.AddReport(btPrint,//报表功能附加到哪个按钮下,名称为对应的控件名称,此处仅为示例,实际使用修改为你使用的名称,比如UgMenuButton01UGMM.ReportDesignPermission(Self),//报表设计权限【动态模块:当前登陆用户等于模块开发者时】self.Guid);12345678//Makesuretoaddcodeblockstoyourcodegroup运行模块,点击按钮右侧的下箭头,可看到启动报表管理器选项,则打印格式设计模块引入成功。

在第一小节的末尾,我们点击[启动报表管理器]选项,打开报表管理器界面。首次启动的页面显示如下:

按钮说明如下:

表格说明如下。

在报表管理器界面中,点击[报表数据],打开配置报表数据集界面。该界面中列出窗口中可使用的数据集。

表格中的说明如下。

在需要选择字段的数据集上使用鼠标左键进行双击,打开设置报表字段界面。填写报表数据集的标题名称,选择字段。此处标题名称填写为仓库。

如果数据集在报表中仅使用特定的几个字段,可在选择字段栏中选择要添加的字段,点击下方的添加按钮添加该字段至列表中。

如果需要加载数据集中的所有字段,点击加载图标按钮加载全部字段。

双击对应行的字段标题,可编辑修改字段的标题,该名称会在报表设计器中显示。

报表字段选择修改完成后,点击[确定]以保存。

接下来将介绍FastWeb中实现报表的设计。在报表管理器界面中点击添加按钮,进入报表设计器界面。默认状态的报表设计界面如下图所示。

页面设置中经常使用的项目包括页面的大小,页边距等内容。双击页面背景的部分,打开页面设置进行页面的尺寸设置。

在纸张的选项卡中,可以设置纸张的大小,纸张的方向以及纸张页面的边距。

也可在Page的属性列表中修改如下内容以实现页面的修改。

在报表设计页面,点击右侧数据树&函数库中的[数据]选项卡,点击数据集按钮,打开选取报表数据库对话框。

在其中选择引入的数据集,点击左侧的按钮以勾选数据库,点击[确定]按钮,点击完成后等待数据载入,随后可在右侧的工具箱中看到导入的字段内容。

设计器中包含了报表打印模式涉及的基础内容。

接下来我们以一个简单的报表模板为例介绍模板的设计。

按照上述介绍设定好数据。切换至数据段选项卡,将其中的TfrxPageHeader(页首)、TfrxPageFooter(页尾)与TfrxMasterData(主数据)分别点击并放置于页面上。其中TfrxMasterData在放置时会提示选取数据库,选择默认的数据库(仓库)。将主数据栏位拖动放置于页首与页尾之间。

设计完成的样例如下:

切换至Basics选项卡,在其中选择TfrxMemoView,在页首数据段处单击将其放置于其中,在弹出的窗口中填写名称为仓库列表,点击[确定]以保存。

拖动区域以使其适合区域要求。建议将字体修改成宋体,使用其他字体目前可能会出现预览状态无法显示的情况。修改居中属性,大小,加粗等字体样式。

经过该步骤后,可能的界面显示如下:

放置主数据表,可从右侧的数据中选择项目拖动放置于主数据栏位中。从Bacode选项卡中选择TfrxBarcodeView放置于主数据栏位中,在弹出的页面中点击红色箭头标注处打开运算式编辑器,选择FWHSCode字段双击以加入至运算式编辑框中,点击[确定]。

设计完成的界面样式如下:

调整所有会显示文字内容的对象的字体等信息,建议使用宋体字体来显示中文内容,因为目前仅宋体支持中文字的显示,设置完成后的样式如下:

在设计阶段,可通过点击左上角的运行按钮查看报表修改后的显示效果。

如果报表设计完成后,点击左上角的保存至数据库按钮,系统将保存报表模板提交至数据库中。如果是首次提交,则会弹出报表名称对话框,在其中填写报表的名称,点击[确定]按钮保存。

报表保存完成后。在原先的打印按钮中可以查看到设计的报表列表,点击对应项可打开报表预览界面。其中在报表名称前标注红色√的项目为默认的报表项,在使用时直接点击[打印]按钮以启用默认报表的打印预览界面。

布局工具栏包含对控件位置调整的操作按钮。

文本工具栏包含对文本字体格式等设置的常用工具。

数据工具栏包含了数据操作的按钮,右侧的搜索栏可以根据输入的信息搜索字段。

文本对象具有许多功能。它可以在框架中显示文本并用一种颜色填充。可以使用任何大小和样式的任何字体显示文本。可以在工具栏上直观地设置所有属性。以下是一些文本设计示例:

现在,让我们看一下该基本对象的其他功能。

让我们创建一个新的文本对象以显示两行文本:

Thisisavery,very,verylongtextline.Andthisisanotherline,theshorterone.

从工具栏对文本对象启用所有边框,然后使用鼠标将对象调整为最大9x3的大小。我们看到对象不仅可以显示一行,而且可以显示多行文本。现在将对象宽度减小到5厘米。显然,长文本不适合边框内容,因此被换行了。这是由WordWrap对象属性控制。如果禁用该功能(在对象查看器中或通过对象上下文菜单),任何长行都将被裁切。

现在,让我们看看对象内部的文本对齐方式是如何工作的。对齐按钮位于文本格式工具栏中,用于控制水平或垂直文本对齐。注意两端对齐按钮,该按钮可让您将段落对齐到对象的两个边缘。为此,必须启用WordWrap。

对象中的所有文本都可以旋转到0..360°范围内的任何角度。请在对象查看器的Rotation属性中设置所需的角度。如下图所示,将文本旋转到90、180或270°以外的角度时,文本可能会被对象的边框切断。要解决此问题,请稍微增加对象高度,以使所有文本都适合对象。

让我们简要地看一下影响其外观的其他文本对象属性。这些属性大多数仅在对象查看器中可用:

文本对象可识别一些简单的HTML标签。标签可以位于对象的文本内。默认情况下,标签是禁用的,要启用它们,请对象检查器中启用AllowHTMLTags属性。以下是受支持标签的列表:

:粗体:斜体文本:带下划线的文字:下标:上标:字体颜色:启用WordWrap时未拆分的文本,整个文本移至下一行1234567请注意,文本对象仅支持少量标签,但这对于大多数应用程序来说已经足够。无法通过HTML标记修改字体大小或名称。

以下示例将展示如何使用这些标签。

Hello,World!Todayis[DATE].1运行报表时,我们可以得到类似如下信息:

Hello,World!Todayis2018/01/01.1当创建报告并遇到方括号中的表达式时,报表引擎将计算该表达式的值,并将该值插入文本中以代替该表达式。文本对象可以包含任意数量的与普通文本混合的表达式。复杂表达式可以包含方括号(例如[1+2*(3+4)])。常量,变量,函数和数据表字段都可以在表达式中使用。

报表引擎可以自动识别文本中方括号内的表达式。但是,如果我们的普通文本包含不希望被视为表达式的方括号,会发生什么?例如,如果我们需要显示以下内容:

a[1]:=101报表引擎会将[1]视为表达式并将文本显示为:

a1:=101当然,这不是我们想要的。避免这种情况发生的其中一种方法是禁用表达式识别。禁用AllowExpressions属性,文本中的所有表达式将被忽略。在我们的示例中,报表将准确显示我们需要的内容:

a[1]:=101但是有时文本需要同时包含表达式和带方括号的普通文本,例如:

a[1]:=[myVar]1禁用AllowExpressions可以使我们在所需的位置显示方括号,但同时也禁用对表达式的处理。在这种情况下,报表设计器允许您使用另一组符号来指定表达式。默认情况下,ExpressionDelimiters属性值为[,]。在我们的示例中,我们可以使用尖括号代替表达式:

a[1]:=1必须在ExpressionDelimiters属性中设置<,>,在此属性中需要使用逗号分隔开头和结尾符号。另一个要求是,开始和结束符号不能相同,因此%,%将不起作用。可以使用复数符号,例如<%,%>。因此我们的示例可能如下所示:

对于数据、变量、函数的内容,可双击选择项添加至运算式编辑框中。点击[确定]按钮以保存文本对象的运算式。

使用此对象,您可以插入图表,照片或任何其他图片信息。

在报表页面上放置一个图片对象。如果图片编辑器没有自动打开,则双击“图片”对象。您可以从图形文件中加载任何图片,也可以清除现有图片。

对象的某些属性在报表结构&属性查看器中可用:

仅在对象查看器中可用的一个属性是FileLink,输入文件名(例如c:\picture.bmp)或包含文件名的变量(例如[picture_file]),将在运行报表时从命名文件中加载图片。

图片对象也可以显示来自数据库的数据。通过在对象检查器中设置DataSet和DataField属性,可以将该对象连接到数据库字段。与文本对象相反,这是将对象连接到其数据的唯一方法。

选择框对象用于显示一个取值为True或者False的对象的属性。其中的Checked属性可用于设置是否显示,CheckStyle属性用于显示选择框的显示样式。

选择框对象也可以显示来自数据库的数据。通过在对象检查器中设置DataSet和DataField属性,可以将该对象连接到数据库字段。仅有Boolean字段的内容可在此正确显示。

条形码用于显示特定字符串的条码展示。该对象在创建后会自动打开条码编辑器界面。如需要修改已有的条形码,双击条形码对象打开编辑器。

在码一栏中输入要显示的条形码字符。如果需要输入表达式形式的内容,点击码栏位右侧的函数图标打开表达式编辑器进行表达式输入。可引入数据集中的字段进行显示。

二维码对象用于显示特定字符串的二维码展示。在属性Text中可修改显示的字符串内容。二维码对象也可以显示数据集中的内容,通过在对象检查器中设置DataSet和DataField属性,可以将该对象连接到数据库字段。

二维码支持的编码有以下几种类型,可在属性对象查看器中修改BarType来变更。

数据段用于将它们包含的对象放置在输出页面上的特定位置。将对象放在PageHeader(页首)区域中时,我们告诉报表引擎,给定的对象必须显示在完成的报表中每个页面的顶部。同样,PageFooter(页尾)区域中的对象显示在每个页面的底部。让我们用一个例子来证明这一点。我们将在页面顶部创建一个包含“Hello!”的报告,其右侧为当前日期,在页面底部的右侧为页码。

我们先添加几个新的数据段(“PageHeader(页首)”、“PageFooter(页尾)”、“ReportTitle(标题)”)。单击对象工具栏上的[数据段]按钮,然后从图标中选择[(TfrxReportTitle)标题]、[(TfrxPageHeader)页首]、[(TfrxPageFooter)页尾]”。设计器自动在页面上设定放置的区域(标题区域在顶部,数据区域在中间,页脚在底部)。

现在,我们添加一些对象。在“PageHeader”区域中添加一个系统文本对象,然后在其编辑器中,从[变量]列表中选择[Date](当前日期也可以通过文本对象显示)在其编辑器中会键入“[Date]”。接下来,将一个包含“Hello!”的文本对象添加到“ReportTitle”区域。按照在页首添加日期的方式,将显示页码[Page]的文本对象添加到“PageFooter”区域。

运行报告时,可以看到相应的内容会输出于对应的位置中。

数据段负责在页面上定位对象。根据数据段的类型,我们可以在页面顶部或底部以及第一页或最后一页上打印对象。大多数报告中需要的基本范围如下:

如您所见,文本对象可以显示数据库中的数据以及静态文本和表达式。我们还看到,可以通过两种方式完成此操作:通过将指向数据库字段的链接放在对象文本中,或者通过对象的DataSet和DataField属性将对象连接到所需字段。第一种方法适用于在同一对象中同时显示字段内容和限定文本。例如:

仓库:[仓库."FWHSName"]1指向数据库字段的链接需要特殊的语法:[datasetname.“fieldname”]。字段名称(以及数据集名称)可以包含空格,但点和引号符号之间不能有任何空格。

此外,我们还可以将计算操作应用于表达式中的字段,如下所示:

仓库ID:[<仓库."FInterID">*1]1请注意必须使用方括号和尖括号。请记住,默认情况下使用方括号来分隔对象文本中的表达式。如有需要,方括号可以替换为其他任何打开/关闭字符对。表达式内部使用尖括号来描述报表变量或数据库字段。逻辑上我们应该写:

仓库代码:[<仓库."FWHSName">]1而不是

仓库:[仓库."FWHSName"]1但是,这两种表示法都是正确的,因为报表引擎不需要尖括号,其中表达式仅包含变量或仅包含DB字段。在所有其他情况下,都需要使用尖括号。

在实际的报表操作中,有时可能会遇到需要打印备注的情况,如果需要打印备注,需要在报表中添加该字段来更新报告。

乍一看,这似乎很容易-在现有对象之间的数据数据段中添加一个文本对象,将其连接到注释字段,并将对象的大小设置为一个固定数值。但是,报告预览并不是我们想要的:报表引擎完全按照指示执行。注释字段包含长度可变的多行文本,但是显示该字段信息的文本对象具有固定大小。这就是为什么某些行似乎被切断的原因。

当然,可以增加对象的大小或减小其字体的大小。但是,这可能会导致输出页面上的空间浪费,因为有些备注信息可能会很长,有些会很短。报表引擎提供了一些属性用来解决这个问题。

这些属性允许数据段或对象自动调整其高度,为给定记录(行)创建必要的空间。为此,我们只需要启用数据段和文本对象的Stretch属性。但是,这还不够,因为文本较长的文本对象应该能够自行拉伸,因此我们还需要设置其他一些属性。

文本对象可以自动设置其高度和宽度,以为其内容腾出空间。可以使用AutoWidth和StretchMode。AutoWidth允许文本对象改变其宽度,以使所有行都留出空间而不会拆分任何单词。当一个对象只有一个文本行并且向右增长不会影响其他对象时,此模式很有用。Stretch属性允许对象的高度增加以容纳文本,而无需更改对象的宽度。Stretch有几种模式可以在对象检查器中选择:

在这里,我们对文本对象的属性感兴趣。通过对象查看器将StretchMode设置为smActualHeight启用它。同时启用数据段的Stretched属性。预览报告,并确保现在一切都按预期进行。

如您所见,在构建报表时,报表引擎使用数据填充对象,并在启用拉伸的情况下拉伸对象。然后计算数据段的高度,以便每个对象都有足够的空间。如果禁用了数据段的拉伸属性,则不会执行此高度调整,并且频段将以设计中设置的高度显示。在这种情况下,我们将看到具有较长文本的对象仍将被拉伸,但是数据段不会被拉伸,这会导致文本覆盖。

让我们看一下上图中显示的报告内容显示区域的特别之处:页面底部有很多空白。为什么会出现这样的情况?创建报告后,报表引擎引擎将数据段填充页面的空白区域。显示每个数据段后,当前位置向下移动。当报表引擎发现没有足够的空白显示下一个区域时(其高度大于页面上剩余的空白),报表引擎会创建一个新页面并从此处继续显示。

报告包含一个大文本的对象的数据段,这就是数据段高度很大的原因。此外,如果较大的数据段区在页面上没有足够的空间显示,则将其移至下一个数据段区,从而在页面底部留下大量未使用的空间。

为了减少纸张浪费,我们需要使用报表引擎中的一个功能,该功能可以根据数据段的内容制作段落。我们需要做的就是启用MasterData数据段的AllowSplit属性。您将看到报告页面底部的空白越来越少:

此数据段拆分如何工作?报表引擎中的文本对象支持此功能。它们可以拆分,而其他对象则不能。当报表引擎需要拆分数据段时,它会通过以下方式进行拆分:

以下示例为拆分的具体过程分析:

分割算法并不完美,最终输出可能与预期不符。如果分割数据段上的对象以复杂的方式分组和/或它们的字体大小不同,则应非常谨慎地使用此选项。这是可能生成的示例:

在某些报表设计中,可能需要文本来包裹其他对象(通常在使用图片时)。让我们在当前示例中演示报表引擎如何做到这一点。

在下方的数据数据段中再添加一个文本对象。如下所示:

我们将为[Bio."Notes"]对象禁用拉伸,并为底部对象启用拉伸。使文本从[Bio."Notes"]对象“流动”到底部,在对象查看器中设置[Bio."Notes"]对象的FlowTo属性,这是一个下拉列表。从此列表中选择底部对象的名称。结果报告将如下所示:

生成报告时,如果文本不适合顶部对象,则多余部分将移至底部对象。通过将两个对象排列在图片周围,可以实现文本环绕效果。

请注意:在插入链接的对象之前,必须在报表中插入主要对象,否则文本流动可能无法正常工作!如果发生这种情况,请选择链接的对象,然后使用[置于顶层]菜单项将其置于最前。

有时有必要以框架表的形式来显示数据。要在报表引擎中创建这种类型的报告,只需为位于数据数据段中的对象启用框架即可。让我们用一个示例来演示框架的几种变体。

创建与此类似的报告:

将文本对象并排放置在数据段上,并最小化数据段的高度。

第一种也是最简单的表具有完整的单元框架。为此,请为每个对象启用所有框架线(位于Frame.Typ属性中),点击[所有框线]按钮:

再次通过Frame.Typ属性,框架仅绘制水平或垂直单元格线:

最后,要仅在表上绘制外部框架,需要对报告进行修改:

可以看到,我们添加了两个文本对象,一个在页首,另一个在页面页脚区域中。启用了沿数据数据段边缘的对象的适当框架线,结果报告如下所示:

所有这些示例都包含大小固定的数据段。伸展数据段时如何显示表格?让我们通过一个例子来解释。在我们的报告中添加一个新字段FNote。正如您已经了解的那样,必须为此对象以及对象所在的波段都启用Stretch属性,以便更改数据段高度,具体取决于文本对象中文字的大小。生成的报告如下所示:

这与我们需要的有所不同。如果相邻对象的框架也拉伸,则看起来会更好。报表引擎可以轻松解决此问题。在对象查看器中,将所有要拉伸的对象的StretchMode属性设置为smMaxHeight,报表引擎引擎将首先计算最大带高度,然后在启用拉伸的情况下拉伸对象到数据段的底部边缘。由于对象框架与对象一起伸展,因此报表的外观会发生变化:

与表格类型的报告相比,其他报告(例如标签报告)可能会将数据安排在一个字段的另一字段下。让我们看一看此类报告的示例,该示例显示有关物料的数据,如前一个示例所示。报告数据以标签形式显示,并具有以下结构:

预览效果如下:

请注意,页面右侧有很多空白。要使用整个页面,可以在报告页面设置中设置显示数据的列数。可通过设置报表页面的Columns、ColumnsWidth来设置显示的列数以及列宽。在我们的示例中,栏数需要设置为3,报表引擎会自动调整其他选项。列框架在设计器中显示为垂直细线:

现在可以通过以下方式创建报告。只要页面底部有空白,报表引擎就会重复主数据数据段。之后,将在同一页面上创建一个新列,并且数据数据段将从新列的顶部开始重复:这与简单报表形成对比,在简单报表中,将创建一个新页面而不是一个新列。当第二列被填充后,将创建第三列,依此类推-我们的示例中有三列。当所有列都填满后,报表引擎将创建一个新页面并继续从第一列开始显示数据。

我们的三列报告如下所示:

对象查看器中可用于所有数据数据段的Coloums属性是设置列数的另一种方法。但是,如果将此属性从零更改,则仅针对所选数据数据段而不是整个页面设置列数(如上例所示)。效果是首先从“从左到右然后从上到下”显示数据,这与上面显示的“从上到下然后从左到右”输出相反。

在Page属性中禁用列(将Columns设置为1),然后在数据数据段的Coloums属性中输入3。请注意,ColumnWidth属性也必须从默认值零更改,以防止第2列第3列与第1列重叠,报表引擎将列框架显示为虚线:

此设计以“从左到右然后从上到下”的顺序显示数据。

当标签类型报告中的一个字段的内容长度可变时,可能会出现问题。为了在我们的示例中模拟此情况,让我们将[dts1."FNote"]对象的宽度减小到2.5厘米,并为此对象以及数据段启用Stretch属性。启用所有对象的所有框架线,以使拉伸功能的效果清晰可见。现在,设计输出如下报告:

在这里,[dts1."FNote"]字段对象包含很多文本,并被拉伸成多行。这会使位于其下方的对象向下移动。发生这种情况的原因是,所有对象的默认ShiftMode属性均设置为smAlways,这意味着如果它们上方有可拉伸对象(启用了Stretch属性的文本对象),则它们将向下移动。偏移的距离取决于上方对象的伸展程度。

我们不希望在标签上发生这样的事情,我们希望[dts1."FItemName"]对象也能移动相同的量。此时我们可以通过使用特殊的报表引擎数据段类型(称为子数据段)来实现。子数据段链接到其父数据段(并显示在其父数据段之后)。在设计中添加一个子数据段,并将两个文本对象拖到其中,如下所示:

通过在对象查看器中将MasterData数据段的Child属性设置为Child1,将MasterData数据段链接到Child数据段。现在,每次MasterData数据段显示时,Child数据段都将紧随其后显示:

现在,子数据段中的内容完全对齐。要防止子数据段在页面上的空白空间不足(从其父数据段变为“孤立”)的情况下移至下一页,请在对象查看器中启用父数据段的KeepChild属性。

您已经了解了smAlways如何用于ShiftMode属性。让我们看一下smWhenOverlapped。在此模式下,当上方的对象伸展并与下方的对象重叠时,会发生对象移动。

到目前为止,我们的示例报告仅使用一个数据集(“一级数据”或MasterData)来控制数据输出。这足以从一个数据库表中输出数据。报表引擎还允许设计的报告最多具有六个数据级别,所有这些数据级别都在一个设计页面上。此外,通过使用子报表对象可以实现报告中无限数量的数据级别。通常,大多数报告仅需要一个,两个或三个数据级别,很少有大量数据级别。

让我们看看如何设计两个数据级别的报告。该报告将从演示表中输出数据:“客户”和“订单”。第一个表是客户列表,第二个表是这些客户下的订单列表。这些表包含以下字段中的数据:

客户:

CustNoCompany1221KauaiDiveShoppe1231Unisco1351SightDiver….12345订单:

OrderNoCustNoSaleDate1003135112.04.19881023122101.07.19881052135106.01.19891055135104.02.19891060123128.02.19891123122124.08.1993….12345678如您所见,第二张表包含所有客户下的所有订单的列表。要从一个客户放置在“客户”表中的“订单”表中查看订单,将两个表链接到两个表所共有的“CustNo”字段上。此数据的报告输出应如下所示:

1221KauaiDiveShoppe102301.07.1988112324.08.19931231Unisco106028.02.19891351SightDiver100312.04.1988105206.01.1989105504.02.19891234567891011在报表设计器中,在[报表]-[数据]对话框中勾选使用的数据源,添加一个主数据和明细数据。

主数据数据段需要放置在明细数据段上方,否则会导致报表数据出现错误。

数据数据段可能会有一个头和一个尾,首先输出标题,然后输出数据段中的所有记录,最后输出页脚。

报表引擎支持程序,这是一种用高级语言编写的程式,它是报表的一部分。报表运行时,程序也会运行,程序可以控制报表引擎的操作来处理正常操作无法处理的数据。比如程序可以根据预定义的条件隐藏冗余数据。

在报表设计器的设计界面中,点击底部中间的代码选项卡,打开程序编辑界面,界面如下图所示:

报表引擎支持的程序语言结构为PasScript与JScript。其格式显示如下:

//JScriptShowMessage("HelloWorld");12//PasScriptShowMessage('HelloWorld');12//Makesuretoaddcodeblockstoyourcodegroup之后运行报表,会弹出一个提示框,其中包含HelloWorld的文字内容。

在此过程中,我们创建了一个由单个beginend.块组成的程序。程序结构非常简单,只包含一个主程序。报表运行后立即执行主程序,在这种情况下,它显示了对话框,该程序在对话框结束后立即结束。主程序运行完毕后,正常的报表构建开始。

我们可以从程序去访问任何报表对象。如果在报表中存在Page1页面与Memo1页面,则可以在程序中使用,并按名称调用。

//JScriptMemo1.Color=clRed;12//PasScriptMemo1.Color:=clRed;12//Makesuretoaddcodeblockstoyourcodegroup可从程序访问的报表对象以及树形显示在报表结构&属性查看器的报表结构树形框中。

上述示例运行后,对应的对象颜色会显示成红色。

在引用报表的数据库字段时,应使用尖括号。

//JScriptvarMyVariable="你好!";12//PasScriptvarMyVariable:String;beginMyVariable:='你好!';end.123456//Makesuretoaddcodeblockstoyourcodegroup变量的值可以显示在文本对象中,可在文本对象编辑框中输入[MyVariable]。变量的名称必须是唯一的。这意味着名称不得复制任何其他报表对象,标准函数或常量的名称。如果程序中存在错误,则在运行报表时将显示一条消息,并且将停止报表的创建。

本处以报表设计实例中制作的报表为例,筛选仓库代码开头为0的仓库列表。点击选择主数据段,然后在左侧的属性查看器中点击事件选项卡。

列表中列出了可用的事件,双击OnBeforePrint右侧的编辑框创建事件,进入至程序编辑界面。

填写以下内容。

//JScriptfunctionMasterData1OnBeforePrint(sender){if(Copy(<仓库."FWHSCode">,1,1)=='0'){MasterData1.Visible=True;}else{MasterData1.Visible=False;}}123456789//PasScriptprocedureMasterData1OnBeforePrint(Sender:TfrxCompnent);beginifCopy(<仓库."FWHSCode">,1,1)='0'ThenMasterData1.Visible:=TrueElseMasterData1.Visible:=False;end;12345678//Makesuretoaddcodeblockstoyourcodegroup运行程序并确保程序能够正常工作。

除了普通的报表对象(如页面,段,“文本”和其他对象)之外,还有一些其他系统对象可以在程序中使用。它们可能有助于报表构建的管理。比如“Engine”对象就是这样一个对象,所有可用的对象罗列如下:

此方法表示当前报表链接可以设置对象的属性。

functionCalc(constExpr:String):Variable;1该函数用于返回“Expr”的值,这是一个表达式,例如,Report.Calc('1+2')返回3。任何有效的表达式都可以在参数中传递。

这是最有用和最有趣的对象。通过使用引擎的属性和方法,可以创建异乎寻常的报表设计布局。

procedureAddAnchor(constText:String);1将“Text”添加到锚点列表中。

procedureNewColumn;1在最后一列自动分页后,在多列报表中创建一个新列插入。

procedureShowBand(Band:TfrxBand);1显示具有指定名称的段,显示段后,CurY位置自动递增。

functionFreeSpace:Extended;1返回页面上剩余的空白高度(以像素为单位)。

functionGetAnchorPage(constText:String):Integer;1返回已放置指定锚点的页码。

“Engine”对象代表报表的引擎,它管理报表的构建。可以使用引擎的属性和方法来管理在页面上排列数据段的过程。首先是一些理论。

下图显示了报表页面的各个维度。

页面的物理尺寸是PaperWidth和PaperHeight属性,在选择页面时在对象检查器中可见。A4页面的尺寸为210x297mm。

PageWidth和PageHeight是可打印区域的尺寸,通常小于页面的物理尺寸。可打印区域的大小取决于报表页面属性LeftMargin,TopMargin,RightMargin和BottomMargin。可打印区域的大小(以像素为单位)由Engine.PageWidth和Engine.PageHeight函数返回。

最后,FreeSpace是页面上可用空间的高度。如果有一个“页脚”段在页面上,计算FreeSpace时会考虑其高度。Engine.FreeSpace函数以像素为单位返回此高度。请注意,在显示下一个段后,页面上的可用空间会减少,这在计算FreeSpace时会被考虑在内。

报表页面是如何构建的?只要有足够的可用空间,报表引擎核心就会在页面上显示段。当没有剩余可用空间时,打印“页脚”段(如果需要)并创建一个新的空白页。如上所述,在显示下一个段后,可用空间的高度减小。此外,显示下一个段从当前位置开始,该位置由X轴和Y轴上的坐标定义。当前位置分别由Engine.CurX和Engine.CurY返回。打印完下一个段后,CurY自动增加打印段的高度。创建新页面后,CurY等于“0”。打印多列报表时,CurX会更改。

Engine.CurX和Engine.CurY不仅可读还可写。这意味着可以通过递增或递减这些值来移动数据段。

例如,在如下的报表中:

它显示的报表格式如下:

通过编写程序实现。

//JScriptfunctionMasterData1OnBeforePrint(sender){Engine.CurX=Engine.CurX+5;}1234//PasScriptprocedureMasterData1OnBeforePrint(Sender:TfrxComponent);beginEngine.CurX:=Engine.CurX+5;end;12345//Makesuretoaddcodeblockstoyourcodegroup更改CurY可以使段重叠,例如:

//JScriptfunctionMasterData1OnBeforePrint(sender){Engine.CurY=Engine.CurY-15;}1234//PasScriptprocedureMasterData1OnBeforePrint(Sender:TfrxComponent);beginEngine.CurY:=Engine.CurY-15;end;12345//MakesuretoaddcodeblockstoyourcodegroupEngine.NewPage方法在报表中的任何所需位置插入分页符,然后从新输出页面的顶部继续打印。可以在打印第二条记录后插入一个break:

//JScriptfunctionMasterData1OnAfterPrint(sender){if(==2)Engine.NewPage;}12345//PasScriptprocedureMasterData1OnAfterPrint(Sender:TfrxComponent);beginif=2ThenEngine.NewPage;end;123456//Makesuretoaddcodeblockstoyourcodegroup请注意,我们使用了OnAfterPrint事件(也就是说,在打印段之后)。另请注意,“Line”系统变量返回记录的序号。

Engine.NewColumn方法在多列报表中插入分栏符。如果页面上没有剩余的空闲列,则会创建一个新页面。

报表引擎核心通常负责报表构建。它按特定顺序显示报表段,这是数据所需的次数,从而创建完整的报表。有时需要以非标准形式显示报表引擎核心无法完成的报表。在这种情况下,可以使用报表设计页面的OnManualBuild事件手动构建报表。如果定义了此事件的处理程序,则报表引擎核心在需要数据输出时将控制权转移给它。同时报表引擎核心自动处理位于页面上的那些段的显示,例如“报表标题”,“页面标题”,“列标题”,“报表页脚”,“页脚”,“列页脚“和”背景“。核心还处理新页面和列的建。OnManualBuild事件处理程序的目的是以用户控制的顺序显示数据段,它们的标题和页脚。

以报表创建的例子继续执行,在页面中插入第二个主数据段,不设置其连接的数据集。在这种情况下,直接执行打印是无法输出内容的。故在此处使用手动创建。

处理程序将以交替顺序显示这些段(每个段六次)。显示六个段后,将插入一个小间隙。

//JScriptfunctionPage1OnBeforePrint(sender){Memo1.Text=UGMM.CreateGuid;}1234//PasScriptprocedurePage1OnBeforePrint(Sender:TfrxComponent);beginMemo1.Text:=UGMM.CreateGuid;end;12345//Makesuretoaddcodeblockstoyourcodegroup在报表执行时,将对应的文本框内容更换为GUID编号。

FastWeb报表设计器中引入TARS连接的方式如下:

设置对象的对齐方式,有以下选项可选。

勾选此项以允许使用运算式。运算式包括数据集字段[A."FInterID"]类型或者[DATE]类型。如果此项不勾选则方括号内的内容仅视为文本。

勾选此项以允许文本框解析HTML标签,以下是可以识别的HTML标签。

:粗体:斜体文本:带下划线的文字:下标:上标:字体颜色:启用WordWrap时未拆分的文本,整个文本移至下一行1234567勾选此选项后,如果输入的格式内容如下:

textboldtexttextinitalicboldandinitalicE=mc2A1=B2thisisausualtext,andthisisaredonethisisausualtext,andthisisanorangeone12345显示的内容效果如下图。

此项在FastWeb中无作用。

设定对象位置的锚点信息。即对象的边缘相对于上级的边缘是否存在相对位置的关系。这个属性在边缘大小发生变化时很有用处。

勾选此选项,对象的宽度会随着文本长度的变化而自动调整。

设定对象内部的填充笔刷的样式。

勾选此选项,对象的高度会根据文本量的情况进行调整。否则将设定为固定的高度值。

设定文本框中各个字符之间的间距大小,以像素为单位。

设定以确认是否要省略对象范围内的文本。

设定当BrushStyle为bsSolid时,填充使用的颜色,点击右侧的√可以打开调色盘选择颜色。

此属性在FastWeb中不起作用。

设定对象绑定显示的数据集字段的名称。

设定对象绑定显示的数据集的名称,数据集引入后可通过下拉列表来选择。

对象的描述信息,此项仅在设计阶段使用,助于理解。

此选项用于设定数据显示的格式,包含以下内容。

设定表达式的标记符号,默认为[,],表示使用[]来作为表达式的标记符号,在其中的部分作为表达式处理。

设定文本编辑框内部填充的类型,有以下几项可选。

设定填充的内容的类型。

勾选此项后,如果当前文本对象无法容纳文本时,超出对象显示范围的文本内容将显示至选定的其他对象。

设定显示的文本的字体,点击右侧的√打开设置,可选择字体(Family)、字形(Style)和大小(Size)等。

用于设置横向方向上的文字距离边框的像素值。

用于设置纵向方向上的文字距离边框的像素值。

用于设置分组序号的名称。

编辑框中的文本的水平对齐的方式。

设置对象的高度,此处的数值以cm(厘米)为单位。

勾选此项后,当编辑框中显示的字段内容为数字类型时,数字前面的零位不显示。

设置对象的提示信息。

对象左侧距离页面左侧的距离,以厘米为单位。

设定文本编辑内容之间的行间距,以像素为单位。

此项存放文本编辑框中的内容。

此项用于设定对象的名称。

段落的第一行缩进的距离,以像素为单位。

是否继承父窗体的字体样式。

设置此对象是否可以在打印页面中显示。

此项用于设置对编辑框文字的处理方式以及处理等级。

设置对象中文字逆时针的旋转角度。取值的范围是0~359。

当此项被勾选后,文字内容会以右对齐方式显示。

设置对象的自动切换模式。

设置此项以确认是否显示提示信息。

设置对象的拉伸模式。

设置是否抑制重复数据的显示。

对象的标记内容,此处仅支持整数类型的填写,此项在FastWeb中无作用。

对象的标记内容,此处仅支持字符类型的填写。

设置对象的顶部距离其上级对象的顶部的距离,以cm(厘米)为单位。

勾选此项后,文本对象会被添加下划线。

此项用于设置下划线文本的样式。

设定文本指向的链接。此项在FastWeb中无作用。

设置是否在此对象中适用默认的字符集。此项在FastWeb中无作用。

编辑框中的文本的垂直对齐的方式。

设置此对象在各种模式下的可见性。以下项目的设置在FastWeb中无作用。

勾选此项后,当前对象在设计以及打印输出界面中可见。

设置对象的宽度,以cm(厘米)为单位。

此项设置后,文本对象会固定大小,当单行文字的长度大于文本对象的宽度时会被截断,仅显示前面的文本。

此项设置后,文本对象会固定大小,当单行文字的长度大于文本对象的宽度时文本会换行显示。

设置是否以所见即所得的模式显示文本。

对象显示为图片框,通过手动设置图片源或者从数据集中指定来获取图片进行显示。

勾选此项后,对象自动根据图片像素的大小设定对象的大小。

勾选此项后,图像会自动设定为居中的位置。

设定图片文件的地址链接,此项在FastWeb中不起作用。

设置图片质量,此项在FastWeb中无作用。

勾选此项后,图片在图片对象中的显示会保持纵横比。

用于设置显示的图片内容,点击右侧的√打开图片选择器界面,选择图片加载。

设置当勾选此项后,图片会根据对象的尺寸大小进行拉伸。

设置对象的底是否为透明。

当对象设置为不透明时显示的颜色。点击右侧的√打开调色盘以显示颜色。

此对象显示为一个带选框的对象,可以显示打勾或者打叉的图像。

当选择对象的Checked属性为True时显示的内容的颜色。点击右侧的√打开调色盘选择颜色。

当此项被勾选时,会显示此项被勾选的状态,否则不显示。

设置被勾选状态时显示的样式。即Checked属性为True时显示的样式。

当选择对象的底色的颜色。点击右侧的√打开调色盘选择颜色。

设置表达式用于生成布尔值,当表达式的值为True时,显示复选框,当表达式值为False时,显示为不选择状态下的内容。

当Checked属性为False时显示的样式类型。

设定条形码的编码类型。

勾选以设置在支持校验位的条码中加入计算校验和。

设置对象显示的颜色,点击√打开调色盘,点击选择颜色。

设置表达式用于生成显示的条码信息。

此项用于设置对文字的处理方式以及处理等级。

设置对象中内容逆时针的旋转角度。取值的范围是0~359。

设置以确认对象是否显示文本信息。

设置是否显示测试线。

设置在文本中显示的文本内容以及条码编码的内容。

设置条码间隔的边距,以像素为单位。

设置条码的缩放倍数。

设置二维码的显示类型。

可以控制打印或预览窗体和报表上节或控件的外观。此项在FastWeb中无作用。

此项目前在FastWeb中无作用。

传入显示的文本的十六进制表示值。

设置二维码与对象的边缘的控件距离。

此对象作为显示报告标题的容器,用于放置其他显示于报告标题中的对象。

设置以是否允许此对象分隔。此项在FastWeb中无作用。

设置对象的子对象。此项在FastWeb中无作用。

设置填充内容与边缘的间距,以像素为单位。

使子对象与当前对象保持一致,此属性在FastWeb中无作用。

设置对象是否继承上级的的字体设置。

设置此项后,如果子对象是不可见的则打印。

设置转换引擎的模式。

当此项勾选后,当打印输出至此项时自动换页。

设置当勾选此项后,其中的内容会根据对象的尺寸大小进行拉伸。

此对象作为显示报告摘要的容器,用于放置其他显示于报告摘要的对象,比如一些用于合计计算的字段。

此对象作为显示野页首的容器,用于放置其他显示于页首的对象,比如表格的表头等内容。

勾选此项,以设置在第一页打印页首内容。

此对象作为显示页尾的容器,用于放置其他显示于页尾的对象,比如一些详细的注释说明等。

此对象作为显示头对象的容器,用于放置其他显示于头的对象,比如首页明确标注的内容。

勾选此项后,在新的页面中会重新打印头对象。

此对象作为显示头对象的容器,用于放置其他显示于头的对象,比如尾页尾部明确标注的内容。

此对象作为其他区间对象的附属对象使用。

设定附加的行数。

设定附加行的模式。

此对象作为数据以列表形式展示时使用。

设定每列之间的间距。当列数量为2以上时可用,

设定对象分成的列数。

设定对象各列的宽度。

设定对象绑定的数据集名称。

设定实现过滤的条件。

是否在主数据对象后跟上尾对象。

设置使尾对象与当前对象保持一致。

设置使头对象与当前对象保持一致。

设置使所有与主数据对象关联的对象均保持一致。

设定大纲文本。

设置此项后,如果对应的明细数据集对象中内容为空的话则打印此对象。

设定数据集对象显示行的数目。

此对象设定为群组的首对象。用于分组开头的容器。

设置群组对象的分组条件,为一个条件表达式。

是否对群组进行钻取。

是否对群组进行扩展钻取。

设置此项后,当开启新的一页是重新打印分组头中的内容。

设置此项后,在一个群组打印结束后会重置页数的计数。

当DrillDown设定为True时,如果此项勾选则会显示子对象中的内容。

当DrillDown设定为True时,如果此项勾选则会显示尾对象中的内容。

此对象设定为群组的尾对象。用于分组结尾的容器。

勾选此项后,如果打印的数据集分组只有一个则隐藏此对象。

THE END
1.日语数字1视频加载失败,可以 刷新 试试 00:00/00:00 评论 还没有人评论过,快来抢首评 发布 日语数字1-10日语 日语学习 日语教学 拳击那点事 发布于:江西省 2025.02.02 00:00 +1 首赞 收藏 日语数字1-10日语 日语学习 日语教学 推荐视频 已经到底了 热门视频 已经到底了 https://www.sohu.com/a/855151749_100114195
2.史上最全的office办公软件使用技巧1.在“工具”菜单中,单击“自定义”命令。 2.选择“命令”选项,在“类别”框中,单击“表格”;在“命令”框中,找到并单击“自动求和”,然后用左键将它拖放到常用工具栏中的适当位置。 3.关闭“自定义”对话框。 现在,把插入点置于存放和数的单元格之中,单击常用工具栏中的“自动求和”按钮,则Word将计算并显https://www.yjbys.com/edu/office/34406.html
3.Excel表格在财务会计的应用基本操作学习笔记一格式-单元格-数字-自定义-?.?-确定 评价:自定义的功能太强大了。要好好学学。 5 停用单个超链接 (1)如果您刚刚输入完,就不想它变成超链接形式,只需立即按下“Ctrl +Z” (2)右键,然后在弹出的菜单中选择“取消超链接” 6 停用多个超链接 http://www.360doc.com/content/11/0725/17/7391024_135786900.shtml
4.QR码国家标准(图片和表格后续会更新)qr二维码中国标准图9 位置探测图形的结构 7.3.3 分隔符 在每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,从数字模式到日本汉字模式,每种模式的字符所需的位数依次增加。在符号中可以通过模式的转换使数据的位应用指示符可以采用字符集(a-z ,A-Z)中任何一个拉丁字母(用字符的ASCII值加100)或者用一个两位数https://blog.csdn.net/qq_31798135/article/details/99111653
5.zfcg.czt.fujian.gov.cn/upload/document/20221207/ea8d810f5edb2投标人上传电子投标文件被福建省政府采购网上公开信息系统投标客户端所赋予的项目内部识别码与本招标项目的其他投标人相同的;b3系统记录的编制电子投标文件使用的计算机或上传电子投标文件使用的计算机网卡MAC地址与本招标项目的其他投标人一致的;b4投标人上传的电子投标文件若出现使用本项目其他投标人的数字证书加密的或https://zfcg.czt.fujian.gov.cn/upload/document/20221207/ea8d810f5ed744e78c1b1791c4608d75.html
6.高考日语作文要求多少字(共16篇)【导语】以下是小编整理的高考日语作文要求多少字(共16篇),欢迎阅读分享。 篇1:求职信一般要求多少字 求职信一般都是不限定你的字数的,普遍就是300-500字左右,你只要写得能感动那些公司企业的招聘人员就可以获得面试的机会了, 求职信一般要求多少字 , https://www.hrrsj.com/zuowen/zuowendaquan/244714.html
7.www.zhuanyechaichu.com/meishisphfvnb75/641385.html2000年初,华为、中兴通讯等通信技术公司凭借在ICT领域的影响力,将通信设备出口到海外市场,参与多国电信基础设施建设,为当地数字化发展奠定了基础。其后,传统美女100分之百无遮挡 89.02MB 87%好评877人) AVwwwH白穴水 gay激情肉欲乱伦 不灭经典达叔街射8合1第一弹 02.35MB 57%好评52人) h文母乳 姬小满http://www.zhuanyechaichu.com/meishisphfvnb75/641385.html
8.3月29日苏州园区人才市场综合类人才现场招聘会女性,本科及以上学历,日语1级,有营业相关经验2年以上,会英语者优先考虑。 营业助理: 女性,大专及以上学历,日语2级及以上,有营业助理相关经验1年以上,会英语者优先考虑。 仲琦科技(苏州工业园区)有限公司 展位号:S22 DIP制程工程师 1名 1.产品品质异常问题点分析,提出对应的解决改善方案 2.DIP材料问题联络http://www.xszrcw.com/news/news-show-3365.htm
9.2020年本科教学基本状态数据填报指南大类名称:学校按大类招生,学生入校后,经过1~2年的基础培养,再根据兴趣和双向选择原则进行分流的专业大类。 大类代码:指学校对专业大类的自定义代码。 分流时间:指按大类招生培养后,同一大类的学生在某个年级开始分专业培养的时间,以所在的学期计算(不计暑期学期),如在大一上学期分流,请填写阿拉伯数字“1”。https://jwc.gdufe.edu.cn/2021/1008/c6498a140021/page.htm
10.详解CSS文本属性(Text)css教程1. color 属性: 颜色的前景色 (文本/文本装饰/边框/当前颜色的 颜色) ⑴文本 和 边框 的 颜色 每个像素 有自己的颜色,类似 电脑里的图片 都是像素图 色块: 把图 放很大就会看到 点变成 小色块了color: hsl(30, 100%, 50%); /*hsl()中带 不透明度值,浏览器支持度不好,用 hsla()*/ https://www.php.cn/java-article-494607.html
11.IT实训报告1、 日语培训 由于公司为日资企业,日常工作要求职员使用日语,因此,公司特从日本请来中原先生为我们做培训。大家零基础开始,每天有两到三个小时的学习时间,每周一参加语言阶段性测试。过程虽然比较艰难,但是效果显著,目前基本工作语言可用日语交流。 2、 Java实训 https://www.ruiwen.com/shixunbaogao/7262645.html
12.BricsCAD(Mac)发行说明COPYCLIP我们修复了在将实体复制粘贴到包含可见性状态的绘图时导致 BricsCAD 崩溃的错误。 SR131911 颜色/表格/块/对话框更新了旋钮控件组件以允许更轻松SR80151SR100245SR100896SR116302SR118391SR126724SR127012 MTFLAGSMTFLAGS的默认值从 0 更改为 7。这意味着显示的重新生成(和重绘)和绘图的(初始)加载https://boa.bricsys.com/common/releasenotes.jsp?i=7268
13.详解CSS文本属性(Text)技术资讯示例1: 把一段汉字,设置成相反的 从右到左的 方向. .color { width: 450px; 示例2: 改变 表格中 列的排列顺序css .dirTest { border: 1px solid; width: 300px; 标准,数字,长度值,百分比,继承。 ①正常 行间距(默认):normal 设置 正常的行高,取决于 用户代理。默认https://www.henghost.com/jishu/17303/
14.如何在ExceL电子表格里输入多位数字如何在ExceL电子表格里输入多位数字 篇一 数字超过11位就会变成科学计数法,例如123456789789变成1.23457E+11,而超过15位的话,15位后面的数字全部变成0,解决方法有2种 第一种:先输入英文输入状态下的单引号 ' 然后再输入数字即可正常显示。 第二种:或者先选中该列或该单元格,鼠标右击,“设置单元格格式”,“数字”https://mip.oh100.com/peixun/office/464650.html
15.1如何完成支持全球语言的ui设计?微信高手总结了8500字干货!值得注意的是,文本扩展关注的是「文本长度」的变化,而不是「字符数」的变化。因为,汉语、日语的字符所需的水平空间一般都比拉丁字母大得多。例如,英文中的「desktop」在日文中写为「デスクトップ」,虽然日文的字符数少了 1 个,但所需的水平空间却大了很多。 https://www.uisdc.com/ui-design-2
16.掘金数字上的中国:ChatGPT中国产业链手册如是金融研究院以ChatGPT为代表的LLMs(大语言模型)由于其具备强大的工作创造力和行业适应力,应用场景也十分广泛。考虑到“AI+”万物的想象空间之广泛难以穷尽,在此部分我们仅探讨LLMs在短期内可能大规模实现应用的行业与场景。 1.AI+客户服务——ICS ICS,即智能客服(Intelligent Customer Service),指应用人工智能技术,代替人工进行https://www.shangyexinzhi.com/article/10310941.html
17.文字识别软件ABBYYFineReaderPDFv15.0.114.4683中文破解版6、填写PDF表格 填写PDF表格或扫描纸张表格中的交互式字段,以在指定空间添加文本。使用传真或数字签名签署表格。 二、合作并批准PDF 分享想法,收集团队的反馈,并获得批准的文件。使用工具通过在文档中进行标记,注释和绘制来直接在PDF中进行讨论和决策。 1、标记并注释 https://www.423xz.com/office/4337.html
18.坪地这8家大厂,招人!4、固件工程师:1人 要求:3年以上电子行业汇编程序设计工作经验;熟悉8bit芯海,合泰,晶华微等MCU,有电子秤方面工作经验优先考虑;使用过ADC采样、UART、SPI、IIC等功能模块;良好的编程习惯,清晰的逻辑思维,能解决调试过程中出现的各种bug;熟悉模拟及数字电路,对硬件有一定的功底,能自己调试及排查电路方面问题;有良好的https://www.sznews.com/news/content/2021-07/15/content_24394405.htm
19.日语图片识别提取文字图片识别提取文字热门域名 1元 随心购 1元/年起 日语图片识别提取文字 内容精选 换一换 RPA_RPA在银行的应用_RPA的全称是什么 小程序等。 为了确保识别的准确性和稳定性,我们对输入图片有一些要求。首先,图片的尺寸要求格式为JPG、BMP或PNG,宽和高都要大于100px,大小不能超过1MB。其次,我们提供了两种参数约定供您选择:图https://www.huaweicloud.com/theme/399027-5-R