在我的C#应用程序中,我正在尝试生成打印预览而屏幕上没有显示进度对话框.
我相信你可以使用PrintDocument.PrintController来打印真实的(即不是打印预览),但是在执行打印预览时它似乎不起作用.
我的代码如下:
public FrmDeliveryNotePrintPreview(DeliveryNote deliveryNote)
{
InitializeComponent();
this.Text = "Delivery Note #" + deliveryNote.Id.ToString();
// The print preview window should occupy about 90% of the
// total screen height
int height = (int) (Screen.PrimaryScreen.Bounds.Height * 0.9);
// Making an assumption that we are printing to A4 landscape,
// then adjust the width to give the correct height:width ratio
// for A4 landscape.
int width = (int) (height / 1.415);
// Set the bounds of this form. The …
Run Code Online (Sandbox Code Playgroud) 近年来我写了大量的软件,其中大部分都倾向于共享一个或多个公共库.(最常见的库,是我用来调用SQL存储过程和返回对象数组的库)
我对管理图书馆的方式不满意,我正在寻找改善工作方式的建议.
我第一次创建现在的共享库时,我在解决方案中将库添加为单独的类库项目.
现在,当我开始一个新的解决方案并且我知道我将需要一个我已经拥有的库时,我将去找到该库的项目并将文件复制到新的解决方案中.
这留下了我的文件系统(和SVN服务器)周围的相同库项目的几个副本,它感觉不对.
有没有更好的工作方式,所以我只有一个所有解决方案共享的库的主副本,而不是每个解决方案都有自己的库项目副本?
c# projects-and-solutions shared-libraries visual-studio-2008
可能重复:
PDO准备的声明
我确定答案很简单,但我似乎无法找到它.
我正在使用PDO(PHP数据对象)对MySQL数据库运行查询,并且发现在对数据库执行之前显示准备好的查询很有用.
有没有办法做到这一点?例如:
$query = 'SELECT Id, Name, Comment FROM Users WHERE Id = :id';
$pdoStatement = $db->prepare($query);
$pdoStatement->bindValue(':id', $id);
// How can I view the actual statement that will be executed, showing the real
// value that will be used in place of ':id'
$pdoStatement->execute();
Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio 2008(C#Express Edition),我正在尝试调试由于我触发的事件而发生的TargetInvocationException.
我的问题并不是特别关于这个异常,(因此我没有提供有关此异常的任何细节),而是更多关于有效地使用IDE来调试它.
我可以看到内部异常为我提供了调试错误所需的详细信息(点击异常帮助器中的"查看详细信息"),但是相当懒,或者我应该说,试图充分利用我在的工具我的处置,我希望能够说服IDE在我的代码中为正确的线程显示原始(内部异常)的异常帮助器,完成堆栈跟踪,而不是向我显示调用线程的异常详细信息.
这是可能的,如果是这样,我该怎么做呢?
我们有一个基于PHP的时间表系统,该系统是在内部开发的,并且已经发展了多年,但是向用户呈现的一条信息是每个项目剩余的工作日数.
目前,我只是取当前日期和项目结束日期之间的差异,然后除以7并乘以5.这已经足够长时间,并且对于周一至周五全职工作的员工来说大部分都是准确的.但是,我们现在有一些工作人员每周只工作一天.
时间表系统知道员工工作的日期,这些信息存储在用户类的字符串中,对于全职工作者,值将是NNYYYYY
(含义ssMTWTF
).
通过将两个日期之间的差异除以7,然后乘以它们工作的天数,我可以非常轻松地使结果更准确,但在进行此更改时,我正在考虑生成更准确的计算方法真正的价值.
想到的最简单的方法是在两个日期之间使用循环,将星期几与用户的工作模式进行比较,在用户当天工作的日子将一个添加到计数器.
由于时间表上的项目数量而且项目每次可以跨越12个月或18个月(这对于每个页面加载都是很多循环),因此每页视图必须平均执行大约30次此计算,我我想知道在PHP中是否有更有效的方法吗?
在Stack Overflow上搜索了这个问题,我现在明白Github for Windows将与Gitlab一起工作.
我在本地服务器上使用Gitlab社区版,我无法让它工作,所以只是为了扩展我上面链接的问题,任何人都可以确认它是否适用于Gitlab的社区版本?
我试图用我的电子邮件和密码连接,将URL设置为安装的基本URL(https://git.example.com/
),我可能只是使用了错误的URL吗?我发现Github for Windows的文档有点缺乏.
我有一个简单的bash脚本,它构成了我开发的内部Web应用程序的一部分.
其目的是在用户删除原始图像时自动删除图像的缩略图.
该脚本将一些基本状态信息记录到文件中 /var/log/images.log
#!/bin/bash
cd $thumbpath
filecount=0
# Purge extraneous thumbs
find . -type f | while read file
do
if [ ! -f "$imagepath/$file" ]
then
filecount=$[$filecount+1]
rm -f "$file"
fi
done
echo `date`: $filecount extraneous thumbs removed>>/var/log/images.log
Run Code Online (Sandbox Code Playgroud)
虽然脚本正确地删除了拇指,但它不会正确输出正在清除的拇指数量,它总是会显示0
.
例如,只是手动创建了一些孤立的缩略图,然后运行我的脚本,手动生成的孤立的拇指被删除,但日志显示:
Thu Jun 9 23:30:12 BST 2011:0删除了多余的拇指
我在做什么错的是从显示大于零,当文件等多项停止$ filecounter 都被删除.
我已经创建了以下bash脚本来测试它,这完美地工作,0
然后输出1
:
#!/bin/bash
count=0
echo $count
count=$[$count+1]
echo $count
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢你的答案,但为什么以下工作
$ x=3
$ x=$[$x+1]
$ echo $x
4
Run Code Online (Sandbox Code Playgroud)
...并且第二个示例也有效,但它在第一个脚本中不起作用?
第二编辑:
这有效
count=0 …
Run Code Online (Sandbox Code Playgroud) 我开发了一个简单的基于C#控制台的应用程序,用于从Sage Line 50中的表中提取一些数据,并将数据上传到Web服务器.它在Windows 7 x64上使用ODBC连接,并且工作正常.Sage帐户数据位于映射的网络驱动器上.
我开发/测试了这个软件的PC,完全安装了Sage Line 50 2011,带有v17 ODBC驱动程序,并且已经应用了所有更新.
最终,应用程序将在我们的文件服务器上作为预定作业运行,但是当我尝试在我们的Windows 2008 R2文件服务器(承载Sage帐户数据的同一文件服务器)上运行代码时,ODBC驱动程序会抛出异常, 如下:
ERROR [28000] User ID or Password invalid
ERROR [01000] The driver returned invalid (or failed to return) SQL_DRIVER_ODBC_VER: 2.00
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr).
Run Code Online (Sandbox Code Playgroud)
密码错误是用词不当,因为我知道密码是正确的.ODBC配置也已确认.
我只安装了安装光盘上的Sage ODBC驱动程序,因为我不希望在我们的服务器上安装完整的Sage应用程序,并注意到S17DBC32.dll文件与我工作站上安装的文件版本不同(可能)因为Sage帐户安装的自动更新).我已经尝试将这个较新的文件复制到我们文件服务器上原始文件的顶部,并重新创建了ODBC配置,但这没有用.
我没有重新启动服务器,因为将DLL文件复制到旧文件(它是生产服务器).服务器是否需要重新启动才能使新DLL生效,或者是否有其他方法可以触发此操作?
也许我正在咆哮错误的树,Sage ODBC驱动程序DLL版本无关紧要?任何帮助非常感谢.
编辑
有机会重启服务器,新的DLL没有任何区别.我仍然看到同样的错误.