| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Sab 25 Abr, 2015 10:24 pm Asunto: Delphi a c++ |
|
|
Por favor a ver si alguien me puede traducir este código:
| Código: |
procedure TWork_form.Button4Click(Sender: TObject);
var wd:variant;
rang:variant;
table:variant;
num_rows, num_columns:integer;
i,j:integer;
begin
if not(DBGrid1.DataSource.DataSet.IsEmpty)
then
begin
num_rows:=DBGrid1.DataSource.DataSet.RecordCount;
num_columns:=DBGrid1.DataSource.DataSet.FieldCount;
wd:=CreateOleObject('Word.application');
wd.visible:=false;
wd.documents.add;
rang:=Wd.ActiveDocument.Range(Wd.ActiveDocument.Range.End-1,
Wd.ActiveDocument.Range.End-1);
Wd.ActiveDocument.Tables.Add(Range:=Rang, NumRows:=num_rows, NumColumns:=num_columns);
i:=1;
table:=wd.activedocument.tables.item(1);
while not (DBGrid1.DataSource.DataSet.eof) do
begin
for j:=0 to num_columns-1 do
begin
table.cell(i, j+1).range.text:=DBGrid1.DataSource.DataSet.Fields[j].asstring;
end;
DBGrid1.DataSource.DataSet.next;
inc(i);
end;
end;
wd.ActiveDocument.SaveAs(extractfilepath(application.ExeName)+'test1.doc');
wd.Application.Documents.Close;
wd.Quit;
wd:=UnAssigned;
end;
|
Está en Delphi y lo necesito en c++.
Muchas gracias a quien pueda ayudarme. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
vizca321 Lt


Registrado: 06 May 2008Mensajes: 83Ubicación: Mexico
|
Publicado: Lun 27 Abr, 2015 7:04 pm Asunto: |
|
|
Esto es lo que mi conocimiento alcanza a traducir :roll: agrega un
TWordApplication
[code]
Variant rang;
Variant table;
int num_rows, num_columns;
int i;
if(!DBGrid1->DataSource->DataSet->IsEmpty()){
num_rows = DBGrid1->DataSource->DataSet->RecordCount;
num_columns = DBGrid1->DataSource->DataSet->FieldCount;
rang = wd->ActiveDocument->Range(wd->ActiveDocument->Range->End-1,
wd->ActiveDocument->Range->End-1);
wd->ActiveDocument->Tables->Add(Range = Rang, NumRows = num_rows, NumColumns = num_columns);
i = 1;
table = wd->ActiveDocument->Tables->Item(1);
while(!DBGrid1->DataSource->DataSet->Eof){
for(int j = 0;j <num_columns - 1 ; j ++ ) {
Cell( i , j + 1) -> Range -> Text = DBGrid1->DataSource->DataSet->Fields[j]->AsString;
}
DBGrid1->DataSource->DataSet->Next();
inc(i);
}
}
wd->ActiveDocument->SaveAs(AxtractFilePath(Application->ExeName) + "Test1.doc");
wd->Application->Documents->Close();
wd->Quit;
wd = UnAssigned;[/code]
Esta linea no la entiendo espero te sirva
[code] rang = wd->ActiveDocument->Range(wd->ActiveDocument->Range->End-1,
wd->ActiveDocument->Range->End-1);[/code]
En este link hablan de tablas
[url]https://cppbuilder.es/viewtopic.php?t=13469&highlight=word[/url] _________________ [code:1]//----------------Att Gabriel----------------
void Gracias(){
if (Respuesta == true){
Showmessage("Muchisimas Gracias!")
else
Showmessage("Ojala te sirva... ^_^ ");
}[/code:1]
Ultima edición por vizca321 el Mar 28 Abr, 2015 6:00 am, editado 4 veces |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Lun 27 Abr, 2015 9:38 pm Asunto: |
|
|
Gracias vizca321 pero sigue sin funcionar, me da el siguiente error "Pointer to structure required on left side of -> or ->*", creo que es porque hay demasiadas flechas. Nada seguiré esperando. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
vizca321 Lt


Registrado: 06 May 2008Mensajes: 83Ubicación: Mexico
|
Publicado: Mar 28 Abr, 2015 5:48 am Asunto: |
|
|
Corregí algunas cosas se me borraba codigo no creo que te de la solucion pero talvez puedas avanzar
| Tugui escribió: | | "Pointer to structure required on left side of -> or ->*" |
Es la linea que no entiendo en el codigo despues del range no hay puntero es lo que indica creo o algo asi  _________________ [code:1]//----------------Att Gabriel----------------
void Gracias(){
if (Respuesta == true){
Showmessage("Muchisimas Gracias!")
else
Showmessage("Ojala te sirva... ^_^ ");
}[/code:1] |
|
| Volver arriba |
|
 |
|