1
*!*          TransForm(m.TCuatro,"@Z 999,999,999") + " "
*!*  CDate("mx",Val(Right(Allt(field(4,"_Actual")),2)),Val("20"+SubStr(Allt(field(3,"_Actual")),2,2))) + " N(15,2)," + ;
*!*           CDate("mx",Val(Right(Allt(field(5,"_Actual")),2)),Val("20"+SubStr(Allt(field(4,"_Actual")),2,2))) + " N(15,2)," + 
CadExel = CDate("mx",Val(Right(Allt(field(2,"_Actual")),2)),Val("20"+SubStr(Allt(field(2,"_Actual")),2,2))) + " N(15,2)," + ;         
          "Promedio N(15,2), " + ;
          "Cuota" + CDate("mx",__Mes,__Ano) + " N(12), " + ;
          "VsProm N(12,2), " + ;
          "Dobles N(12), Triples N(12), Fuera C(6)"
*!*           CDate("mx",Val(Right(Allt(field(6,"_Actual")),2)),Val("20"+SubStr(Allt(field(5,"_Actual")),2,2))) + " N(12),"
*!*           Padl(CDate("mx",Val(Right(Allt(field(4,"_Actual")),2)),Val("20"+SubStr(Allt(field(4,"_Actual")),2,2))),14) + " " + ;
*!*           Padl(CDate("mx",Val(Right(Allt(field(5,"_Actual")),2)),Val("20"+SubStr(Allt(field(5,"_Actual")),2,2))),14) + " " + 
TitNF   = Padl(CDate("mx",Val(Right(Allt(field(3,"_Actual")),2)),Val("20"+SubStr(Allt(field(3,"_Actual")),2,2))),14) + " " + ;
          Padl("Promedio",14) + " " + ;
          Padl("Cuota",11) + " " + ;
          Padl("VsAA",11) + " " + ;
          Padl("Dobles",11) + " " + ;
          Padl("Triples",11) + " " + ;
          Padl("Rango",5) + " " 
*!*           Padl(CDate("mx",Val(Right(Allt(field(6,"_Actual")),2)),Val("20"+SubStr(Allt(field(6,"_Actual")),2,2))),11) + " "

Select * From __Cadena Order By Que Into Cursor __Paso
Select __Cadena
Zap
Select __Paso
   Cad = "insert into __Cadena Values ( "
   For i= 1 To FCount()
      Cad = Cad + "__Paso." + Allt(Field(i,"__Paso")) + ","
   EndFor
   Cad = Left(Cad,Len(Cad)-1) + ")"
Go Top
Do While !Eof()
   &Cad
   Select __Paso
   Skip    
EndDo
Select __Paso
Use

*!* Set ClassLib To MyTool
*!* Barra = CreateObject("MiBarra")
*!* Barra.Dock(0)
*!* Barra.Show

*!* Define Class MiBarra As MyToolBar
*!* EndDefine
*!* Read Events
Select __Cadena
Go Top
Do vfreport With "Premier", TitNF , " Cuotas Club-Premier" + " de " + cDate("my",__Mes,__Ano) + IIf(__EsCF," (CF)"," (UV) "),"("+Allt(m.xNomPunto)+")",  "Cuotas",;
   CadExel,"",.F.,.F.,1,1,2,1,.F.,.F.,0

好吧,代码是创建这个的最后一部分: 在此处输入图像描述

所以你可以看到一个名为“mar08”的列,它是 Marzo 2008 或“2008 年 3 月”,在这个例子中我有一个列,但在部分代码中它有 3 个或多个列,所以我需要添加这个每列的行:

此代码用于新列

CDate("mx",Val(Right(Allt(field(3,"_Actual")),2)),Val("20"+SubStr(Allt(field(2,"_Actual")),2,2))) + " N(12)," + ;

以及此列数据的代码

Padl(CDate("mx",Val(Right(Allt(field(3,"_Actual")),2)),Val("20"+SubStr(Allt(field(3,"_Actual")),2,2))),11) + " " + ;

我的问题是

我如何为自动添加列和数据的代码进行循环?

我是 Visual Fox 98 的新手

4

1 回答 1

1

如果我明白你在这里问的是你会怎么做......

CadExel = ""
TitNF = ""
FOR X = 1 TO n (where n is the number of columns you want to add)
    CadExel = CadExel + CDate("mx",Val(Right(Allt(field(3,"_Actual")),2)),Val("20"+SubStr(Allt  (field(2,"_Actual")),2,2))) + " N(12),"
    TitNF = TitNF + Padl(CDate("mx",Val(Right(Allt(field(3,"_Actual")),2)),Val("20"+SubStr(Allt(field(3,"_Actual")),2,2))),11) + " "
ENDFOR

CadExel = CadExel + ; 
    "Promedio N(15,2), " + ;
      "Cuota" + CDate("mx",__Mes,__Ano) + " N(12), " + ;
      "VsProm N(12,2), " + ;
      "Dobles N(12), Triples N(12), Fuera C(6)"
TitNF = TitNF + ;
      Padl("Promedio",14) + " " + ;
      Padl("Cuota",11) + " " + ;
      Padl("VsAA",11) + " " + ;
      Padl("Dobles",11) + " " + ;
      Padl("Triples",11) + " " + ;
      Padl("Rango",5) + " " 

基本上,您会将列连接到 CadEx,并将列数据从 FOR 循环中连接到 TitNF。'X' 是每次迭代都会递增的变量,因此您可能需要在 CadExel 和 TitNF 变量中的某处使用它来更改表达式的一部分。

如果我对此不满意,那么也许这至少会让您了解如何使用 FOR 循环来构建您正在寻找的列和列数据。

于 2012-07-03T13:54:52.323 回答