我的朋友经营一家小草药公司,并没有任何软件可以帮助他做任何事情.我为他创建了一些短期工作的电子表格,但理想情况下他需要一些带有某种形式的数据库.
他需要一个基本系统来输入和跟踪他的订单/库存,将库存分组成草药配方(草药的比例),使用公式的数学运算等等.它不是很复杂,所有输入都可以完成使用基本形式.
我已经绘制了所需的基本数据库方案和表单,但我想知道实现它的最佳方法是什么.我正在考虑使用像Django这样的框架,因为它很容易创建基本表单并具有良好的对象关系映射.但如果我这样做,我将不得不在他的计算机上安装Django,他将通过网络浏览器运行它.我这样做是因为HTML表单看起来很简单,与制作类似Swing GUI的东西相比.
有人有什么建议吗?它只需要简单并快速完成.
谢谢.
在ASP.NET中是否可以获取包含一些HTML的字符串并使ASP.NET解析它并为我创建一个Control?例如:
string rawHTML = "<table><td><td>Cell</td></tr></table>";
HTMLTable table = MagicClass.ParseTable(rawHTML);
Run Code Online (Sandbox Code Playgroud)
我知道这是一件坏事,但我处于不幸的情况,这是我能够实现我所需要的唯一方式(因为我无法修改这个特定的同事的代码).
另外,我知道LiteralControl允许你在其中控制任意HTML,但不幸的是我需要将它们转换为适当的控件.
不幸的是,HTMLTable不支持InnerHTML属性.我需要完全保留HTML树,所以我不能把它放到<div>标签中.
谢谢.
我有一个Windows窗体(.NET)应用程序,可以同时打开多个文档.
让每个文档(表单)运行自己的事件循环会很方便.通过简短的实验,在自己的STA线程中启动多个事件循环似乎可行.有什么理由说这是个坏主意吗?
我正在编写一个脚本来删除超过1周的一些构建工件.
这些文件的名称形式为artifact-1.1-200810391018.exe.
如何仅删除大于1周的文件,不包括日期时间戳结束时的小时和分钟时间?
目前它正在删除目录中的所有文件.
#!/bin/sh
NIGHTLY_LOCATIONS=( "/foo" "/bar" )
ARTIFACT_PREFIX="artifact-*-"
NUM_TO_KEEP=7
for home in $(seq 0 $((${#NIGHTLY_LOCATIONS[@]} - 1))); do
echo "Removing artifacts for" ${NIGHTLY_LOCATIONS[$location]}
for file in `find ${NIGHTLY_LOCATIONS[$location]} -name "$ARTIFACT_PREFIX*"`; do
keep=true
for day in $(seq 0 $((${NUM_TO_KEEP} - 1))); do
date=`date --date="$day days ago" +%Y%m%d`
echo $(basename $file ".exe") " = " $ARTIFACT_PREFIX$date
if [ "$(basename $file ".exe")" != "$ARTIFACT_PREFIX$date" ]; then
keep=false
fi
done
if [ !$keep ]; then
echo "Removing file"
rm -f …Run Code Online (Sandbox Code Playgroud) 我想运行一个后台任务,它从TextReader读取输入并一次处理一行.我希望阻止后台任务,直到用户将某些文本键入字段并单击提交按钮.是否有一些TextReader会在文本可用之前阻塞,并允许您以某种方式向底层源添加更多文本?
我认为指向同一个MemoryStream的StreamReader和StreamWriter可能有效,但似乎没有.StreamReader看到MemoryStream在开始时为空,并且从不再次检查.
我意识到编写ProcessLine()方法并在用户单击提交按钮时调用它会更容易.但是,我正在尝试设计一个插件架构,我希望插件看起来像带有输入流和输出流的老式控制台应用程序.我希望插件的输入流只是阻塞,直到用户点击带有一些输入文本的提交按钮.
我想用一堆货币存储价值,我不太热衷于花车的不精确性.能够直接在查询中对它们进行数学运算也是必需的.
十进制是走这里的方式吗?
题
我有一个用Java编写的应用程序.它被设计为独立运行在Linux机器上.我正在尝试生成一个新的firefox窗口.但是,Firefox从未打开过.它总是有一个shell退出代码1.我可以使用gnome-terminal运行相同的代码,它打开正常.
背景
所以,这是它的初始化过程:
一旦程序运行起来,用户可以点击一个按钮来生成一个firefox窗口.这是我的代码.记得X在显示器上运行:1.
码
public boolean openBrowser()
{
try {
Process oProc = Runtime.getRuntime().exec( "/usr/bin/firefox --display=:1" );
int bExit = oProc.waitFor(); // This is always 1 for some reason
return true;
} catch ( Exception e ) {
oLogger.log( Level.WARNING, "Open Browser", e );
return false;
}
}
Run Code Online (Sandbox Code Playgroud) 当您使用StateServer时,如何找出活动用户的数量?还可以查询StateServer并检索会话状态中的内容吗?
我知道如果你使用SqlServer作为后备存储,这是可能的,但我希望它们在内存中.
我有一个列表框,我有以下ItemTemplate:
<DataTemplate x:Key="ScenarioItemTemplate">
<Border Margin="5,0,5,0"
Background="#FF3C3B3B"
BorderBrush="#FF797878"
BorderThickness="2"
CornerRadius="5">
<DockPanel>
<DockPanel DockPanel.Dock="Top"
Margin="0,2,0,0">
<Button HorizontalAlignment="Left"
DockPanel.Dock="Left"
FontWeight="Heavy"
Foreground="White" />
<Label Content="{Binding Path=Name}"
DockPanel.Dock="Left"
FontWeight="Heavy"
Foreground="white" />
<Label HorizontalAlignment="Right"
Background="#FF3C3B3B"
Content="X"
DockPanel.Dock="Left"
FontWeight="Heavy"
Foreground="White" />
</DockPanel>
<ContentControl Name="designerContent"
Visibility="Collapsed"
MinHeight="100"
Margin="2,0,2,2"
Content="{Binding Path=DesignerInstance}"
Background="#FF999898">
</ContentControl>
</DockPanel>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
如您所见,ContentControl的Visibility设置为折叠.
我需要定义一个触发器,使Visibility设置为"Visible"
当ListItem被选中时,我无法弄明白.
有任何想法吗?
更新:当然我可以简单地复制DataTemplate并向有问题的ListBox添加触发器以使用其中一个或另一个,但我想防止重复此代码.
// goal: update Address record identified by "id", with new data in "colVal"
string cstr = ConnectionApi.GetSqlConnectionString("SwDb"); // get connection str
using (DataContext db = new DataContext(cstr)) {
Address addr = (from a in db.GetTable<Address>()
where a.Id == id
select a).Single<Address>();
addr.AddressLine1 = colValue.Trim();
db.SubmitChanges(); // this seems to have no effect!!!
}
Run Code Online (Sandbox Code Playgroud)
在调试器中,addr具有db表中的所有当前值,并且我可以在调用db.SubmitChanges()之前验证AddressLine1是否已更改... SQL Profiler在SubmitChanges行执行时仅显示"重置连接".任何人都知道为什么这不起作用?谢谢!