ReportMachine OCX

http://rmachine.haotui.com/thread-55-1-1.html

偏高偏低提示

[IF( [RMDBDataSet1."abnormalIndicator"]='h','↑',IF( [RMDBDataSet1."abnormalIndicator"]='l','↓',''))]

RMReport.ocx

RMEngine.Init(1); // 初始化
RMEngine.LoadFromFile('c:1.rmf'); // 读入报表模版
RMEngine.AddDataSet(DataModule2.Customers, 'CustomersDS'); // 增加一个数据表
RMEngine.DesignReport; // 设计报表
RMReport.ShowReport; // 预览报表 

c#调用

this.dataSet1 = new System.Data.DataSet();
this.dataView1 = new System.Data.DataView();
this.rmReport1 = new RMReportEngine.RMReport();
this.dataSet1.Reset();

            this.oleDbDataAdapter1.SelectCommand.CommandText = "select * from Customer";
            this.oleDbDataAdapter1.Fill(this.dataSet1, "Customer");
            this.dataView1.Table = this.dataSet1.Tables["Customer"];
            this.dataView1.RowFilter = "CustNo >= 3000";
            //this.dataGrid1.DataSource = this.dataView1;

            rmReport1.ModifyPrepared = false;
            rmReport1.Init(this, TxRMReportType.rmrtReport);
            //rmReport1.PreviewOptions.BtnDesignVisible = true;
            //rmReport1.AddDataSet(this.dataSet1.Tables["Customer"], "db1");
            rmReport1.AddDataSet(this.dataView1, "db1");
            rmReport1.LoadFromFile(MainPath + "reports\SimpleList.rmf"); //SimpleList.rmf

            rmReport1.AddVariable("公司名称", "我的公司名称", true);
            rmReport1.AddVariable("公司简称", "我的公司简称", true);
            rmReport1.AddVariable("公司电话", "我的公司电话", true);

            if (radioButton1.Checked)
            {
                    rmReport1.ShowReport();
            }
            else
            {
                rmReport1.DesignReport();
            }

 

public void AddDataSet(System.Data.DataView aDataView, string aDatasetName)

public void AddDataSet(System.Data.DataTable aDataTable, string aDatasetName)

public void AddDetailDataSet(System.Data.DataTable aDataTable, string aDatasetName, string aMasterName, System.Data.DataRelation aDataRelation)

public void AddVariable(string aVarName, object aVarValue, bool aIsString)

public void GetReportData(ref string aReportData)

public void Init(System.Windows.Forms.Form aOwner, RMReportEngine.RMReportType aReportType)

web版 RMViewer.ocx

http://rmachine.haotui.com/thread-56-1-1.html

编译client_ActiveForm目录中的项目就会生成RMViewer.ocx

com版本

COM控件(ocx)可以在VB、.Net、VC、Delphi等支持ADO的开发工具中使用

ocx版本

Dim conn
    Dim rs
    Dim sql
    Dim rq
    Dim Engine

    Set conn = OpenDBConnection
    Set rs = Server.CreateObject ("ADODB.recordset")
    sql = "SELECT * from customer"
    rs.Open sql, conn, 1, 1

    Set Engine = Server.CreateObject("RMEngine.Engine")
    Engine.Init
    Engine.AddDataSet "db1", rs
    Engine.SetReportFile RootPath & "SimpleList.rmf"
    Engine.ViewerVersion = ViewerVersion
    Engine.ViewerFileName = ViewerFileName
    Engine.SaveReportURL = "asp/DesignReportSave.asp?Report=" & "SimpleList.rmf" 
    Engine.AddVariable "NowTime", Now, false

    Engine.ShowProgress = True

    Set rs = nothing
    conn.Close
    Set conn = nothing

报表机器,双屏切换到单屏看不见预览界面了,解决方法修改注册表

计算机HKEY_USERSS-1-5-21-3613803311-2736177264-1221004870-500SoftwareWHF SoftWareReport MachineFormTRMPreviewForm

XPosition 1606 改为0

YPosition -173改为0

     if GetFieldValue('RMDBDataSet1."SFYYFSX"') then   //  是否用药方式行
     begin
          //ShowMessage(Memo12.Text);
          Memo12.HAlign:=rmhRight;
    end
     else
     begin
         Memo12.HAlign:=rmhLeft;
     end;

procedure MasterData1_OnBeforePrint(Sender: TObject);
begin
     if GetFieldValue('RMDBDataSet1."SFZZYZX"') then   //   是否重整医嘱行
     begin
          Line1.Visible:=true;   
     end      
     else     
     begin
          Line1.Visible:=false;  
     end;
end;
procedure Memo13_OnAfterCalc(Sender: TObject);
begin
     if Pos('┐',Memo13.Text)<>0 then
      begin
          Memo13.Visible:=true;
          Shape2.Shape:=rmVertLine;
          Shape2.Visible:=true;
          Shape1.Visible:=false;
          Shape3.Visible:=false;
     end
     else if Pos('┘',Memo13.Text)<>0 then
      begin
          Memo13.Visible:=true;
          Shape3.Shape:=rmVertLine;
          Shape3.Visible:=true;
          Shape1.Visible:=false;
          Shape2.Visible:=false;

     end
     else  if Pos('│',Memo13.Text)<>0 then
     begin
          //Memo13.text:='';
          Memo13.Visible:=true;
          Shape1.Shape:=rmVertLine;
          Shape1.Visible:=true;
          Shape2.Visible:=false;
          Shape3.Visible:=false;

     end
     else
     begin
          Memo13.Visible:=true;
          Shape1.Visible:=false;
          Shape2.Visible:=false;
          Shape3.Visible:=false;
     end;
end;

procedure Memo12_OnAfterCalc(Sender: TObject);
begin
     if GetFieldValue('RMDBDataSet1."SFYYFSX"') then   //  是否用药方式行
     begin
          //ShowMessage(Memo12.Text);
          Memo12.HAlign:=rmhRight;
    end
     else
     begin
         Memo12.HAlign:=rmhLeft;
     end;
end;

原文地址:https://www.cnblogs.com/cb168/p/4936662.html