为什么下面循环中的跟踪会在false每次迭代时返回,即使有8个可能值中有6个命名的节点??? 这只有在我有一个命名空间时才会发生.有没有其他方法来检查节点值???
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private namespace ltrs = "letters";
use namespace ltrs;
private var myArray:Array = ["a","b","c","d","e","f","g","h"];
private function checkXML():void
{
for each (var p:String in myArray)
{
trace(myXML.hasOwnProperty(p).toString()); // returns false;
}
}
]]>
</mx:Script>
<mx:XML id="myXML">
<root xmlns="letters">
<a>true</a>
<b>true</b>
<c>true</c>
<e>true</e>
<f>true</f>
<g>true</g>
</root>
</mx:XML>
<mx:Button click="checkXML();" />
</mx:Application>
Run Code Online (Sandbox Code Playgroud) 我有一个Flex应用程序,它在我们的网络服务器上调用.aspx页面,该页面构建一个PDF或Excel文件.现在,我使用navigateToURL()来调用文件,这在成功构建输出文件时工作正常.但是,如果出现错误或超时,则无法在Flash影片中知道这一点.
我正在尝试使用URLLoader,以便我可以侦听HTTP状态代码,并知道何时加载完成,但是,URLLoader只返回位图数据,没有提示用户打开或保存输出文件.反正有没有这样做?
以下是我的ActionScript代码的两个版本:
private function buildFile():void
{
var variables:URLVariables = new URLVariables();
variables.rptName = "report1";
variables.rptFormat = "PDF";
var request:URLRequest = new URLRequest();
request.url = "/buildFile.aspx";
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,
httpStatusHandler);
loader.load(request);
}
private function buildFile():void
{
var variables:URLVariables = new URLVariables();
variables.rptName = "report1";
variables.rptFormat = "PDF";
var request:URLRequest = new URLRequest();
request.url = "/buildFile.aspx";
request.method = URLRequestMethod.POST;
request.data = variables;
navigateToURL(request, "_self");
}
Run Code Online (Sandbox Code Playgroud)
仅供参考,这是当前输出PDF或Excel文件的代码块:
System.Web.HttpContext httpC;
httpC = System.Web.HttpContext.Current;
httpC.Response.Clear(); …Run Code Online (Sandbox Code Playgroud) 我可以在UTF-8编码的XML中包含诸如"ã"和"ê"之类的字符,还是必须是UTF-16编码的?
我的HTML页面中有以下JavaScript引用页面上的HTML表单:
<script type="text/javascript">
<!--
var myForm = document.myForm;
function validateForm() {
if (myForm.myInput == "")
alert("Please input some text.");
return false;
}
myForm.submit();
}
function showFormInput() {
myForm.reset();
document.getElementById('myInput').style.display = 'inline';
}
//-->
</script>
...
<form name="myForm" id="myForm" action="..." method="post">
<input id="myInput" name="myInput" type="text" value="" style="display:none;" />
</form>
Run Code Online (Sandbox Code Playgroud)
这两个函数在尝试访问变量时抛出异常myForm,称"myForm为null或不是对象".为什么会这样?
更新:我认为我从中收集的一件事是全局变量通常应该用于字符串文字 - 而不是DOM中的元素.我将继续这样做,并谨慎使用元素变量,并且只在加载DOM之后.
我有现有的PDF,我需要动态添加图像/图像.图像来自文件上传.上传文件后,如何指定将图像放在PDF上的位置.我找到的一个代码段无法正常工作.这需要适用于具有任意数量页面的PDF.据我所知,绝对定位是从PDF最后一页的左下角设置的.如果我需要从顶部30像素和第1页左侧50像素显示图像,我该如何做到这一点?或者,如果我需要从第2页的左上角/ 100像素显示50像素的图像?
我尝试使用http://rip747.wordpress.com/2009/03/26/add-an-image-dynamically-to-a-pdf-with-cf-and-itext/上的代码.我已根据我的需要对其进行了修改:
<cfscript>
myLeft = 30;
myTop = 50;
myPageNum = 1;
// output buffer to write PDF
fileIO = createObject("java","java.io.FileOutputStream").init(myOutputPath);
// reader to read our PDF
reader = createObject("java","com.lowagie.text.pdf.PdfReader").init(mySourcePath);
// stamper so we can modify our existing PDF
stamper = createObject("java","com.lowagie.text.pdf.PdfStamper").init(reader, fileIO);
// get the content of our existing PDF
content = stamper.getOverContent(reader.getNumberOfPages());
// create an image object so we can add our dynamic image to our PDF
image = createobject("java", "com.lowagie.text.Image");
// initalize our image …Run Code Online (Sandbox Code Playgroud) 假设以下查询:
SELECT
ID,
COUNT(1) AS NumRecords,
SUM(Quantity) AS TotalQty
SUM(Quantity)/COUNT(1) AS Avg
FROM SOME_TABLE
GROUP BY ID
Run Code Online (Sandbox Code Playgroud)
现在它返回:
ID NumRecords TotalQty Avg
1 15 6 2
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个小数为2的十进制值Avg(即"2.5").
我尝试CAST将计算作为DECIMAL,NUMERIC,FLOAT和VARCHAR,但它总是返回一个INTEGER.
我主要使用ColdFusion,一种非编译语言,但这是所有语言的一般问题.
我正在使用getter/setter以及CRUD方法创建对象.这是一个示例:
<cffunction name="getPeriodStartDate" output="false" returntype="Numeric">
<cfreturn VARIABLES.PeriodStartDate />
</cffunction>
<cffunction name="setPeriodStartDate" output="false" returntype="Void">
<cfargument name="PeriodStartDate" type="Numeric" required="true" />
<cfset VARIABLES.PeriodStartDate = ARGUMENTS.PeriodStartDate />
</cffunction>
<cffunction name="getDollarAmount" output="false" returntype="Numeric">
<cfreturn VARIABLES.DollarAmount />
</cffunction>
<cffunction name="setDollarAmount" output="false" returntype="Void">
<cfargument name="DollarAmount" type="Numeric" required="true" />
<cfset VARIABLES.DollarAmount = ARGUMENTS.DollarAmount />
</cffunction>
<cffunction name="read" output="false" returntype="Query">
<!---
READ QUERY
--->
<cfreturn _qData />
</cffunction>
<cffunction name="create" output="false" returntype="Void">
<!---
INSERT QUERY
--->
</cffunction>
<cffunction name="update" output="false" returntype="Void">
<!---
UPDATE QUERY
--->
</cffunction>
<cffunction name="delete" …Run Code Online (Sandbox Code Playgroud) 这是一个我以前从未注意过的奇怪的事情.
我在ColdFusion 8中针对iSeries/DB2数据库运行SELECT查询.
这是最简单形式的查询:
<cfquery name="qMyData" datasource="#APPLICATION.DataSource#">
SELECT 'XXX 111'
FROM MYLIB.MYTABLE
</cfquery>
Run Code Online (Sandbox Code Playgroud)
选择的值是XXX 111(两个字符串之间的两个空格).查询返回的值是XXX 111(它删除第二个空格):
<cfdump var="#qMyData#" />
Run Code Online (Sandbox Code Playgroud)
返回以下查询结果:
<TABLE class=cfdump_query>
<TBODY>
<TR>
<TH style="CURSOR: hand" class=query title="click to collapse" onclick=cfdump_toggleTable(this); colSpan=5>query</TH></TR>
<TR bgColor=#eeaaaa>
<TD style="CURSOR: hand" class=query title="click to collapse" onclick=cfdump_toggleRow_qry(this);> </TD>
<TD class=query>00001</TD>
<TR>
<TD style="CURSOR: hand" class=query title="click to collapse" onclick=cfdump_toggleRow_qry(this);>1</TD>
<TD vAlign=top>XXX 111 </TD>
Run Code Online (Sandbox Code Playgroud)
为什么ColdFusion会移除第二个空间?有没有解决方法来确保我获得我正在尝试检索的EXACT值?
以下两个switch/case语句的更好实践是什么?
有没有更简单的方法(更少的代码)来做到这一点?
switch (myValue)
{
case 1:
{
methodFor1();
break;
}
case 2:
case 3:
{
methodFor2or3();
if (myValue == 2)
methodFor2();
if (myValue == 3)
methodFor3();
break;
}
}
...or...
switch (myValue)
{
case 1:
{
methodFor1();
break;
}
case 2:
case 3:
{
methodFor2or3();
switch (myValue)
{
case 2:
{
methodFor2();
break;
}
case 3:
{
methodFor3();
break;
}
}
break;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个基Address类,它定义了基本的地址属性,并充当CRUD对象:
我有一个'ShipToAddress'类,它扩展了Address并包含了两个属性:
Address包括每个属性的验证方法,并ShipToAddress包括仅对其属性(电话号码和电子邮件地址)进行验证.
我的问题是,我还想在不重复代码的情况下考虑这两个类的美国和国际地址,以便我可以为州和邮政编码提供不同的验证方法.美国国家验证将确保该值是50个国家之一.国际验证只会确保它不超过数据库中允许的长度.
我如何设计它以允许任意数量的不同类型的地址(美国,加拿大等),但也有基Address类和ShipToAddress类,而不重复代码?我基本上想要以下内容:
Address 基类ShipToAddressUSAAddressUSAShipToAddress***Address***ShipToAddress我有几台运行ColdFusion 8的Windows 2003 Web服务器,其中ColdFusion Administrator应用程序作为自己的IIS网站运行,只能通过127.0.0.1(localhost)访问.
如果只有远程访问服务器的用户是管理员,是否需要在应用程序中使用密码?
coldfusion ×4
apache-flex ×2
oop ×2
xml ×2
architecture ×1
asp.net ×1
casting ×1
cfquery ×1
conditional ×1
document ×1
elements ×1
encoding ×1
forms ×1
function ×1
ibm-midrange ×1
image ×1
itext ×1
javascript ×1
namespaces ×1
pdf ×1
return ×1
return-value ×1
scripting ×1
security ×1
select ×1
string ×1
t-sql ×1
urlloader ×1
urlrequest ×1
utf-16 ×1
utf-8 ×1
variables ×1