那位大虾帮助小弟一下,老板要炒我鱿鱼!!!!!!!在线等待高分想送

tingfeng1981 2003-10-18 12:07:34
老板让我用vb做一个库存管理的软件
入库自动增加,出库自动减少,
并且能自动计算数目和单价相成得到的金额
然后生成一张表打印出来,
帮帮小弟吧,
这年头找份工作不容易
555555555555
...全文
45 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingfeng1981 2003-10-19
  • 打赏
  • 举报
回复
老板不炒鱿鱼就是万幸了
给我钱,我从来没有想过
做的没有大家说的那么复杂
只是一个小系统
谢谢大家的支持
up
zlpanzy 2003-10-18
  • 打赏
  • 举报
回复
入库自动增加,出库自动减少__建一基本表
自动计算数目和单价相成得到的金额——je=sl*dj
然后生成一张表打印出来__用datareport
tingfeng1981 2003-10-18
  • 打赏
  • 举报
回复
我别的问题都解决了,
就是关于和怎么打印的问题我不懂,
怎么调用打印机
由于我是一个初学者
帮下忙
tingfeng1981 2003-10-18
  • 打赏
  • 举报
回复
怪我说的不清楚,
我是有段代码老是出错
呵呵,
看来引起公愤了
^-^
Dublue 2003-10-18
  • 打赏
  • 举报
回复
在这里有问题可以帮你解决,哪段代码不行可以帮你修改,但不能帮你做软件,尤其是体力活,连需求都没有,做什么?
hhjjhjhj 2003-10-18
  • 打赏
  • 举报
回复
你们公司是开发软件的吗?
如果不是,这不是你的工作
axer 2003-10-18
  • 打赏
  • 举报
回复
同意lgxysl(我心欲静),进销存类的东西需要相当的会计和物流等专业知识,不是简单的加加减减,业务很重要。
lzj34 2003-10-18
  • 打赏
  • 举报
回复
做一个成功的库存软件不是一件容易的事情,老板给你多少钱?
守城小轩 2003-10-18
  • 打赏
  • 举报
回复
打印可以用Data Report VB自带的报表生成器
简单易用!相关资料msdn上很详细!
lgxysl 2003-10-18
  • 打赏
  • 举报
回复
建议:
1、如果只是你的公司要使用,并不是做成软件,并且你的公司属于中小型企业,请你直接用access2000来设计,access2000提供强大的报表打印功能。
2、如果确要用vb的话,用printer控件可以实现打印功能,楼上已说得很清楚,我就不多说了。如果要使表格打印得美观,你可以调用excel。如果你有水晶报表控件的话,也可以使用它。
3、价格问题你真的解决了吗?库存的单价计算方法有很多种,如“先进先出法”、“后进先出法”、“加权平均法”、“移动加权平均法”等。这些算法你解决了吗?如果没有,你这个系统是不成功的。如果老板没有要求你做这些,那么可以肯定你所在的只是个小公司。
4、如果你所做的系统是多人使用的,还要解决一些事务处理的问题,如锁定、解锁、参照完整性、数据一致性等问题。

做一个成功的库存软件不是一件容易的事情,老板给你多少钱?
阿建像熊猫 2003-10-18
  • 打赏
  • 举报
回复
CommonDialog1可以试试哦。
With CommonDialog1
.CancelError = True
.Flags = 1048576
.ShowPrinter


For i = 1 To .Copies '''打印几份。
Command1.Visible = False
Command2.Visible = False
' Printer Printpicture
UformClose.PrintForm
Next
End With
txlicenhe 2003-10-18
  • 打赏
  • 举报
回复
楼主也可以用专门的报表工具,比如Crystal Report
liaorui 2003-10-18
  • 打赏
  • 举报
回复
不要打击楼主了!
楼上的已经解释的很清楚了,还不会,网上关于打印方面的源码大把,DOWN一个下来看看吧。
andysammi 2003-10-18
  • 打赏
  • 举报
回复
up
goodname008 2003-10-18
  • 打赏
  • 举报
回复
调用打印设置对话框可能用这个API函数.


PrintDlg
The PrintDlg function displays a Print dialog box or a Print Setup dialog box. The Print dialog box enables the user to specify the properties of a particular print job.

The Print Setup dialog box should not be used in new applications. It has been superseded by the Page Setup common dialog box created by the PageSetupDlg function.

BOOL PrintDlg(
LPPRINTDLG lppd // pointer to structure with initialization data
);

Parameters
lppd
Pointer to a PRINTDLG structure that contains information used to initialize the dialog box. When PrintDlg returns, this structure contains information about the user's selections.
Return Values
If the user clicks the OK button, the return value is nonzero. The members of the PRINTDLG structure pointed to by the lppd parameter indicate the user's selections.

If the user canceled or closed the Print or Printer Setup dialog box or an error occurred, the return value is zero. To get extended error information, use the CommDlgExtendedError function. If the user canceled or closed the dialog box, CommDlgExtendedError returns zero; otherwise, it returns one of the following values:

CDERR_FINDRESFAILURE PDERR_CREATEICFAILURE
CDERR_INITIALIZATION PDERR_DEFAULTDIFFERENT
CDERR_LOADRESFAILURE PDERR_DNDMMISMATCH
CDERR_LOADSTRFAILURE PDERR_GETDEVMODEFAIL
CDERR_LOCKRESFAILURE PDERR_INITFAILURE
CDERR_MEMALLOCFAILURE PDERR_LOADDRVFAILURE
CDERR_MEMLOCKFAILURE PDERR_NODEFAULTPRN
CDERR_NOHINSTANCE PDERR_NODEVICES
CDERR_NOHOOK PDERR_PARSEFAILURE
CDERR_NOTEMPLATE PDERR_PRINTERNOTFOUND
CDERR_STRUCTSIZE PDERR_RETDEFFAILURE


Remarks
If the hook procedure (pointed to by the lpfnPrintHook or lpfnSetupHook member of the PRINTDLG structure) processes the WM_CTLCOLORDLG message, the hook procedure must return a handle for the brush that should be used to paint the control background.

Windows NT 5.0 and later: You can use the PrintDlgEx function to display a Print property sheet, which has a General page containing controls similar to the Print common dialog box.

Windows CE: The PRINTDLG structure contains different members in Windows CE than it does in Windows desktop platforms.

QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 2.0 or later.
Header: Declared in commdlg.h.
Import Library: Use comdlg32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT.

goodname008 2003-10-18
  • 打赏
  • 举报
回复
使用 Printer 对象


有几种方法可在 Printer 对象中放置文本和图形。为了使用 Printer 对象进行打印,应按以下任一方式进行:

如果要使用缺省打印机以外的打印机打印,需在 Printers 集合中指定打印机给 Printer 对象。


将文本和图形装入 Printer 对象。


用 NewPage 和 EndDoc 方法打印 Printer 对象的内容。
Printer 对象的属性
Printer 对象的属性,初始化时与 Windows“控制面板”中设置的缺省打印机的那些属性匹配。运行时,可设置任何 Printer 对象的属性,包括:PaperSize,Height,Width,Orientation,ColorMode,Duplex,TrackDefault,Zoom,DriverName,DeviceName,Port,Copies,PaperBin 和 PrintQuality。关于这些方法的细节和语法,请参阅《语言参考》。

如果 TrackDefault 属性为 True,并且在 Windows“控制面板”中改变了缺省打印机,则 Printer 对象属性值将会反映新的缺省打印机的属性。

在一页当中,一旦设置了某个属性,就不能在该页中改变某些属性。对这些属性的改变只能影响以后各页。下列语句给出了如何用不同的打印质量来打印各页:

For pageno = 1 To 4
Printer.PrintQuality = -1 * pageno
Printer.Print "The quality of this page is"; pageno
Printer.NewPage
Next

打印质量值可从 –4 到 –1,或是一个与打印机分辨率(每英寸的点数 DPI)对应的正整数。例如,下列代码把打印机分辨率设置为 300 DPI:

Printer.PrintQuality = 300

详细信息 关于 Printer 对象属性的详细信息,请参阅《语言参考》的有关属性的内容。

注意 Printer 属性值的效果依赖于打印机生产厂家提供的驱动程序。有些属性设置值没有作用,或几个不同的属性设置值可能有相同作用。在允许值范围之外的设置,可能产生错误,也可能不会产生错误。关于指定驱动程序的详细信息,请参阅生产厂家的文档资料。

Scale 属性
Printer 对象有以下刻度属性:

ScaleMode


ScaleLeft 和 ScaleTop


ScaleWidth 和 ScaleHeight


Zoom
TScaleLeft 和 ScaleTop 属性分别定义打印页左上角的 x 坐标和 y 坐标。通过改变 ScaleLeft 和 ScaleTop 的值,可改变打印页的左边距和上边距。例如,通过下列语句,用 ScaleLe 和 ScaleTop 可指定打印的窗体 (PFrm) 在页中心:

Printer.ScaleLeft = -((Printer.Width - PFrm.Width) / 2)
Printer.ScaleTop = -((Printer.Height - PFrm.Height) _
/ 2)

许多打印机都支持 Zoom 属性。该属性定义按原来的百分之多少输出。缺省的 Zoom 属性值为 100,指定输出将按实际尺寸的百分之百来打印。可利用 Zoom 属性使打印页比实际纸页大一些或小一些。例如,将 Zoom 属性设置为 50,可使打印页看起来只是实际打印纸页长和宽的一半。下列语法将缺省 Printer 对象的 Zoom 属性设置为原来的一半:

Printer.Zoom = 50

定位文本和图形
就象为窗体和图形框设置属性一样,可为 Printer 对象设置 CurrentX 和 CurrentY 属性。这两个属性决定 Printer 对象当前页中的输出位置。下列语句设置了当前页左上角的图片坐标:

Printer.CurrentX = 0
Printer.CurrentY = 0

也可用 TextHeight 和 TextWidt 方法在 Printer 对象中定位文本。关于使用这些文本方法的详细内容,请参阅本章前面的“在指定位置显示打印输出”一节。

在 Printer 对象上打印窗体
也许需要应用程序打印一个或多个窗体(连同窗体上的信息),尤其是当窗体的设计用于发票或时间表之类的打印资料时,更是如此。要做到这一点,最简单的途径是用 PrintForm 方法。在 Printer 对象中使用 Print 和图形方法,可在激光打印机上获得最佳效果。但要注意,使用 Printer 对象之前需要做较多准备,因为在打印之前要在 Printer 对象中重建窗体。

在 Printer 对象中重建窗体也可能需要重建下列内容:

窗体的轮廓,包括标题和菜单栏。


控件和它们的内容,包括文本和图形。


直接应用于窗体的图形输出方法,包括 Print方法。
重建 Printer 对象中的元素的扩展工作,取决于应用程序和所需打印窗体内容的多少。

在窗体上重建文本和图形
当使用 Print,Line,Circle,PaintPicture 或 PSet 方法,在窗体中创建文本和图形时,可能需要在 Printer 对象中显示一个输出备份。实现此操作的最简便方法就是遍写一个与设备无关的过程来重建文本和图形。

例如,下列过程就使用了 PaintPicture 方法,将窗体或控件的 Picture 属性打印到任意一个输出对象中,如,打印机或另一个窗体:

Sub PrintAnywhere (Src As Object, Dest As Object)
Dest.PaintPicture Src.Picture, Dest.Width / 2, _
Dest.Height / 2
If Dest Is Printer Then
Printer.EndDoc
End If
End Sub

然后调用此过程,并传送原对象和目标对象:

PrintAnywhere MyForm, Printer
PrintAnywhere MyForm, YourForm

详细信息 详细信息请参阅《语言参考》的“Print 方法”,“Line 方法”,“Circle 方法”,“Pset 方法”或“PaintPicture 方法”。

打印窗体上的控件
Printer 对象可接收 Print 方法和图形方法的输出(如:Line 方法或 Pset 方法)。但不能把控件直接放在 Printer 对象中。如果应用程序需要打印控件,则必须编写过程来调用 Printer 对象要用到的每种控件,或使用 PrintForm 方法。

打印 Printer 对象的内容
一旦将文本和图形放到 Printer 对象中,就可用 EndDoc 方法打印该内容。EndDoc 方法要换页,并将悬置的所有输出都送给假脱机系统。spooler 在输出传送到打印机的过程中,截取打印作业,并将它送往硬盘或内存,将打印工作保存在那里,直到打印机准备好为止。例如:

Printer.Print "This is the first line of text in _
a pair."
Printer.Print "This is the second line of text in _
a pair."
Printer.EndDoc

注意 如果应用程序结尾没有明确调用 EndDoc,Visual Basic 会自动调用。

创建多页文档
打印较长的文档时,可用 NewPage 方法,在代码中指定新的一页。例如:

Printer.Print "This is page 1."
Printer.NewPage
Printer.Print "This is page 2."
Printer.EndDoc

取消打印作业
可用 KillDoc 方法结束当前的打印作业。例如,可用对话框询问是继续打印还是结束文档:

Sub PrintOrNot()
Printer.Print "This is the first line to _
illustrate KillDoc method"
Printer.Print "This is the second line to _
illustrate KillDoc method"
Printer.Print "This is the third line to _
illustrate KillDoc method"
If vbNo = MsgBox("Print this fine document?", _
vbYesNo) Then
Printer.KillDoc
Else
Printer.EndDoc
End If
End Sub

如果操作系统的打印管理器正在处理打印工作,则 KillDoc 方法将删除送入打印机的所有作业。但如果打印管理器没有控制打印工作,可能有页已送入打印机并且不会受 KillDoc 的影响。送入打印机的数据量与打印机驱动程序中的数据量稍有不同。

注意 使用 KillDoc 方法不能结束使用 PrintForm 方法开始打印的作业。





Printer 对象和 Printers 集合


使用 Printer 对象可以实现与系统打印机的通讯(最初是缺省系统打印机)。

用 Printers 集合可获取有关系统上所有可用打印机的信息。

语法

Printer

Printers(index)

index 所在处表示从 0 到 Printers.Count-1 之间的整数。

说明

用图形方法在 Printer 对象上绘制文本和图形。一旦 Printer 对象中含有将要打印的输出信息,可用 EndDoc 方法直接将输出信息送到应用程序的缺省打印机上。

如果要打印这些信息,应该检查和可能还要修正窗体的布局。例如,如果用 PrintForm 方法打印窗体,则到页底图形图象可能被剪切,而文本则被移到下一页。

Printers 集合可用来查询可用的打印机,这样就可以为应用程序指定一台缺省打印机。例如也许要找出哪些可用打印机用了指定的打印驱动程序。下面的代码查找所有的可用打印机,定位在第一个将页码方向设置为纵向的打印机,然后将其设置为 Portrait。

Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
'设定为系统缺省打印机。
Set Printer = X
' 终止查找打印机。
Exit For
End If
Next

用 Set 语句指定 Printers 集合中的某一打印机为缺省打印机。前面的示例指定由对象变量 X 标识的打印机为应用程序的缺省打印机。

注意 如果用 Printers 集合来确定某一特定打印机,如 Printers(3),则只能访问只读属性。如果想访问个别打印机的可读写属性,那么首先要使那个打印机成为应用程序的缺省打印机。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧